Package com.kingsrook.qqq.backend.core.actions.ai.tools
package com.kingsrook.qqq.backend.core.actions.ai.tools
-
ClassDescriptionBase class for the AI tools the kernel runs.Plain-text renderings of QQQ help content (HTML, markdown or text), for the model: tags removed, whitespace collapsed, length limited.Small builders for the strict JSON Schemas of AI tool inputs.Per-call context for an AI tool: the kernel's instance, settings, exposure policy and redactor, the result being built - and the shared checks and output shaping every tool uses (so no tool can forget one): - visibility (the meta-data customizer, and DENY_HIDE) and exposure checks, - the table READ permission check (recorded in the result's permissionCheck), - action-input preparation (input source USER, omit hidden fields, mask passwords, and the core-enforcement hook), - value shaping: exposure post-filter, masking, redaction and truncation.Thrown by an AI tool to end its call with a non-OK outcome (DENIED, NOT_FOUND, INVALID_INPUT) and a polite message for the model.Typed, validating access to the (untrusted) input object of an AI tool call.count_records: the number of records of a readable table matching a filter (METADATA_ONLY fields may be filtered on) - plus a "count" render payload with an openHref to the filtered list.describe_table: one readable table's fields (only those exposed - NONE fields are omitted; METADATA_ONLY / MASKED ones are flagged), help text, descriptions and the user's permissions.get_record_history: the audit history of one record.get_record: one record of a readable table, by primary key, read as the current user (so record security applies: a record the user can't see is NOT_FOUND, exactly like a missing one) - only exposed field values.list_tables: the tables the current user can read through the assistant (visible, exposed, READ permission), sorted by name, with what else the user may do to each.navigate: build a same-origin in-app link (/app/...) to a table (optionally filtered), a record, a process, a report or an app, for the UI to route to.query_records: records of a readable table matching a filter - only exposed field values (masked where MASKED), at most maxRowsToModel rows, each with a record ref - plus a "records" render payload with an openHref to the filtered list.render_widget: render a dashboard widget the current user may see, with the widget permission check the widget endpoint makes.search_help: keyword search over the app's own documentation - the names, labels, help content and aiDescriptions of the apps, tables, fields, processes and widgets the current user can see (exposed tables and fields only).search_records: free-text record search (RecordSearchAction - and so any record search provider, e.g.