@kvman/kvcoder 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +9 -0
- package/dist/api.d.ts +386 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +2 -0
- package/dist/api.js.map +1 -0
- package/dist/artifacts/artifact-format.d.ts +9 -0
- package/dist/artifacts/artifact-format.d.ts.map +1 -0
- package/dist/artifacts/artifact-format.js +32 -0
- package/dist/artifacts/artifact-format.js.map +1 -0
- package/dist/artifacts/artifact-records.d.ts +12 -0
- package/dist/artifacts/artifact-records.d.ts.map +1 -0
- package/dist/artifacts/artifact-records.js +17 -0
- package/dist/artifacts/artifact-records.js.map +1 -0
- package/dist/artifacts/register-artifacts.d.ts +3 -0
- package/dist/artifacts/register-artifacts.d.ts.map +1 -0
- package/dist/artifacts/register-artifacts.js +37 -0
- package/dist/artifacts/register-artifacts.js.map +1 -0
- package/dist/calls/binary-checks.d.ts +8 -0
- package/dist/calls/binary-checks.d.ts.map +1 -0
- package/dist/calls/binary-checks.js +12 -0
- package/dist/calls/binary-checks.js.map +1 -0
- package/dist/calls/connector-help.d.ts +3 -0
- package/dist/calls/connector-help.d.ts.map +1 -0
- package/dist/calls/connector-help.js +73 -0
- package/dist/calls/connector-help.js.map +1 -0
- package/dist/calls/help-text.d.ts +19 -0
- package/dist/calls/help-text.d.ts.map +1 -0
- package/dist/calls/help-text.js +22 -0
- package/dist/calls/help-text.js.map +1 -0
- package/dist/calls/line-run.d.ts +33 -0
- package/dist/calls/line-run.d.ts.map +1 -0
- package/dist/calls/line-run.js +56 -0
- package/dist/calls/line-run.js.map +1 -0
- package/dist/calls/run-shell.d.ts +12 -0
- package/dist/calls/run-shell.d.ts.map +1 -0
- package/dist/calls/run-shell.js +88 -0
- package/dist/calls/run-shell.js.map +1 -0
- package/dist/calls/run-tool.d.ts +49 -0
- package/dist/calls/run-tool.d.ts.map +1 -0
- package/dist/calls/run-tool.js +66 -0
- package/dist/calls/run-tool.js.map +1 -0
- package/dist/calls/shell-command.d.ts +25 -0
- package/dist/calls/shell-command.d.ts.map +1 -0
- package/dist/calls/shell-command.js +31 -0
- package/dist/calls/shell-command.js.map +1 -0
- package/dist/calls/shell-program.d.ts +5 -0
- package/dist/calls/shell-program.d.ts.map +1 -0
- package/dist/calls/shell-program.js +8 -0
- package/dist/calls/shell-program.js.map +1 -0
- package/dist/connector-call.d.ts +66 -0
- package/dist/connector-call.d.ts.map +1 -0
- package/dist/connector-call.js +133 -0
- package/dist/connector-call.js.map +1 -0
- package/dist/connectors/artifact.d.ts +51 -0
- package/dist/connectors/artifact.d.ts.map +1 -0
- package/dist/connectors/artifact.js +101 -0
- package/dist/connectors/artifact.js.map +1 -0
- package/dist/connectors/ask.d.ts +58 -0
- package/dist/connectors/ask.d.ts.map +1 -0
- package/dist/connectors/ask.js +85 -0
- package/dist/connectors/ask.js.map +1 -0
- package/dist/connectors/background.d.ts +29 -0
- package/dist/connectors/background.d.ts.map +1 -0
- package/dist/connectors/background.js +56 -0
- package/dist/connectors/background.js.map +1 -0
- package/dist/connectors/binary.d.ts +5 -0
- package/dist/connectors/binary.d.ts.map +1 -0
- package/dist/connectors/binary.js +27 -0
- package/dist/connectors/binary.js.map +1 -0
- package/dist/connectors/builtin-connectors.d.ts +217 -0
- package/dist/connectors/builtin-connectors.d.ts.map +1 -0
- package/dist/connectors/builtin-connectors.js +49 -0
- package/dist/connectors/builtin-connectors.js.map +1 -0
- package/dist/connectors/connector-command.d.ts +26 -0
- package/dist/connectors/connector-command.d.ts.map +1 -0
- package/dist/connectors/connector-command.js +17 -0
- package/dist/connectors/connector-command.js.map +1 -0
- package/dist/connectors/delegate.d.ts +32 -0
- package/dist/connectors/delegate.d.ts.map +1 -0
- package/dist/connectors/delegate.js +82 -0
- package/dist/connectors/delegate.js.map +1 -0
- package/dist/connectors/fs.d.ts +60 -0
- package/dist/connectors/fs.d.ts.map +1 -0
- package/dist/connectors/fs.js +132 -0
- package/dist/connectors/fs.js.map +1 -0
- package/dist/connectors/mcp.d.ts +37 -0
- package/dist/connectors/mcp.d.ts.map +1 -0
- package/dist/connectors/mcp.js +69 -0
- package/dist/connectors/mcp.js.map +1 -0
- package/dist/connectors/payload-fields.d.ts +9 -0
- package/dist/connectors/payload-fields.d.ts.map +1 -0
- package/dist/connectors/payload-fields.js +13 -0
- package/dist/connectors/payload-fields.js.map +1 -0
- package/dist/connectors/shell.d.ts +19 -0
- package/dist/connectors/shell.d.ts.map +1 -0
- package/dist/connectors/shell.js +22 -0
- package/dist/connectors/shell.js.map +1 -0
- package/dist/delay.d.ts +3 -0
- package/dist/delay.d.ts.map +1 -0
- package/dist/delay.js +11 -0
- package/dist/delay.js.map +1 -0
- package/dist/delegate/approved-run.d.ts +13 -0
- package/dist/delegate/approved-run.d.ts.map +1 -0
- package/dist/delegate/approved-run.js +54 -0
- package/dist/delegate/approved-run.js.map +1 -0
- package/dist/delegate/programs.d.ts +32 -0
- package/dist/delegate/programs.d.ts.map +1 -0
- package/dist/delegate/programs.js +67 -0
- package/dist/delegate/programs.js.map +1 -0
- package/dist/delegate/register-worker-run.d.ts +9 -0
- package/dist/delegate/register-worker-run.d.ts.map +1 -0
- package/dist/delegate/register-worker-run.js +70 -0
- package/dist/delegate/register-worker-run.js.map +1 -0
- package/dist/delegate/run-program.d.ts +9 -0
- package/dist/delegate/run-program.d.ts.map +1 -0
- package/dist/delegate/run-program.js +59 -0
- package/dist/delegate/run-program.js.map +1 -0
- package/dist/delegate/runs.d.ts +27 -0
- package/dist/delegate/runs.d.ts.map +1 -0
- package/dist/delegate/runs.js +68 -0
- package/dist/delegate/runs.js.map +1 -0
- package/dist/delegate/workers.d.ts +266 -0
- package/dist/delegate/workers.d.ts.map +1 -0
- package/dist/delegate/workers.js +80 -0
- package/dist/delegate/workers.js.map +1 -0
- package/dist/docs.d.ts +14 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +59 -0
- package/dist/docs.js.map +1 -0
- package/dist/files/edit-text.d.ts +13 -0
- package/dist/files/edit-text.d.ts.map +1 -0
- package/dist/files/edit-text.js +46 -0
- package/dist/files/edit-text.js.map +1 -0
- package/dist/files/file-queue.d.ts +3 -0
- package/dist/files/file-queue.d.ts.map +1 -0
- package/dist/files/file-queue.js +17 -0
- package/dist/files/file-queue.js.map +1 -0
- package/dist/files/list-entries.d.ts +14 -0
- package/dist/files/list-entries.d.ts.map +1 -0
- package/dist/files/list-entries.js +40 -0
- package/dist/files/list-entries.js.map +1 -0
- package/dist/files/read-file.d.ts +17 -0
- package/dist/files/read-file.d.ts.map +1 -0
- package/dist/files/read-file.js +53 -0
- package/dist/files/read-file.js.map +1 -0
- package/dist/files/search-text.d.ts +14 -0
- package/dist/files/search-text.d.ts.map +1 -0
- package/dist/files/search-text.js +62 -0
- package/dist/files/search-text.js.map +1 -0
- package/dist/files/workspace-path.d.ts +5 -0
- package/dist/files/workspace-path.d.ts.map +1 -0
- package/dist/files/workspace-path.js +37 -0
- package/dist/files/workspace-path.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/job-rows.d.ts +24 -0
- package/dist/jobs/job-rows.d.ts.map +1 -0
- package/dist/jobs/job-rows.js +74 -0
- package/dist/jobs/job-rows.js.map +1 -0
- package/dist/jobs/process-handlers.d.ts +8 -0
- package/dist/jobs/process-handlers.d.ts.map +1 -0
- package/dist/jobs/process-handlers.js +43 -0
- package/dist/jobs/process-handlers.js.map +1 -0
- package/dist/jobs/process-records.d.ts +15 -0
- package/dist/jobs/process-records.d.ts.map +1 -0
- package/dist/jobs/process-records.js +30 -0
- package/dist/jobs/process-records.js.map +1 -0
- package/dist/jobs/process-report.d.ts +8 -0
- package/dist/jobs/process-report.d.ts.map +1 -0
- package/dist/jobs/process-report.js +44 -0
- package/dist/jobs/process-report.js.map +1 -0
- package/dist/jobs/process-run.d.ts +26 -0
- package/dist/jobs/process-run.d.ts.map +1 -0
- package/dist/jobs/process-run.js +70 -0
- package/dist/jobs/process-run.js.map +1 -0
- package/dist/jobs/process-text.d.ts +5 -0
- package/dist/jobs/process-text.d.ts.map +1 -0
- package/dist/jobs/process-text.js +11 -0
- package/dist/jobs/process-text.js.map +1 -0
- package/dist/jobs/register-jobs.d.ts +3 -0
- package/dist/jobs/register-jobs.d.ts.map +1 -0
- package/dist/jobs/register-jobs.js +61 -0
- package/dist/jobs/register-jobs.js.map +1 -0
- package/dist/mcp/command-transport.d.ts +17 -0
- package/dist/mcp/command-transport.d.ts.map +1 -0
- package/dist/mcp/command-transport.js +60 -0
- package/dist/mcp/command-transport.js.map +1 -0
- package/dist/mcp/connect.d.ts +12 -0
- package/dist/mcp/connect.d.ts.map +1 -0
- package/dist/mcp/connect.js +54 -0
- package/dist/mcp/connect.js.map +1 -0
- package/dist/mcp/oauth-provider.d.ts +25 -0
- package/dist/mcp/oauth-provider.d.ts.map +1 -0
- package/dist/mcp/oauth-provider.js +59 -0
- package/dist/mcp/oauth-provider.js.map +1 -0
- package/dist/mcp/register-mcp.d.ts +3 -0
- package/dist/mcp/register-mcp.d.ts.map +1 -0
- package/dist/mcp/register-mcp.js +61 -0
- package/dist/mcp/register-mcp.js.map +1 -0
- package/dist/mcp/secrets.d.ts +7 -0
- package/dist/mcp/secrets.d.ts.map +1 -0
- package/dist/mcp/secrets.js +20 -0
- package/dist/mcp/secrets.js.map +1 -0
- package/dist/mcp/servers.d.ts +33 -0
- package/dist/mcp/servers.d.ts.map +1 -0
- package/dist/mcp/servers.js +31 -0
- package/dist/mcp/servers.js.map +1 -0
- package/dist/mcp/sign-in-record.d.ts +10 -0
- package/dist/mcp/sign-in-record.d.ts.map +1 -0
- package/dist/mcp/sign-in-record.js +4 -0
- package/dist/mcp/sign-in-record.js.map +1 -0
- package/dist/mcp/sign-in.d.ts +12 -0
- package/dist/mcp/sign-in.d.ts.map +1 -0
- package/dist/mcp/sign-in.js +75 -0
- package/dist/mcp/sign-in.js.map +1 -0
- package/dist/mcp/tools.d.ts +19 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +31 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/messages/attachments.d.ts +8 -0
- package/dist/messages/attachments.d.ts.map +1 -0
- package/dist/messages/attachments.js +48 -0
- package/dist/messages/attachments.js.map +1 -0
- package/dist/messages/receive-message.d.ts +15 -0
- package/dist/messages/receive-message.d.ts.map +1 -0
- package/dist/messages/receive-message.js +60 -0
- package/dist/messages/receive-message.js.map +1 -0
- package/dist/messages/register-messages.d.ts +3 -0
- package/dist/messages/register-messages.d.ts.map +1 -0
- package/dist/messages/register-messages.js +63 -0
- package/dist/messages/register-messages.js.map +1 -0
- package/dist/problems.d.ts +8 -0
- package/dist/problems.d.ts.map +1 -0
- package/dist/problems.js +14 -0
- package/dist/problems.js.map +1 -0
- package/dist/prompt/build-prompt.d.ts +29 -0
- package/dist/prompt/build-prompt.d.ts.map +1 -0
- package/dist/prompt/build-prompt.js +60 -0
- package/dist/prompt/build-prompt.js.map +1 -0
- package/dist/prompt/register-prompt.d.ts +3 -0
- package/dist/prompt/register-prompt.d.ts.map +1 -0
- package/dist/prompt/register-prompt.js +29 -0
- package/dist/prompt/register-prompt.js.map +1 -0
- package/dist/prompt/session-prompt.d.ts +24 -0
- package/dist/prompt/session-prompt.d.ts.map +1 -0
- package/dist/prompt/session-prompt.js +50 -0
- package/dist/prompt/session-prompt.js.map +1 -0
- package/dist/prompt/working-method.d.ts +7 -0
- package/dist/prompt/working-method.d.ts.map +1 -0
- package/dist/prompt/working-method.js +51 -0
- package/dist/prompt/working-method.js.map +1 -0
- package/dist/register-settings.d.ts +142 -0
- package/dist/register-settings.d.ts.map +1 -0
- package/dist/register-settings.js +51 -0
- package/dist/register-settings.js.map +1 -0
- package/dist/registry/loaded.d.ts +32 -0
- package/dist/registry/loaded.d.ts.map +1 -0
- package/dist/registry/loaded.js +41 -0
- package/dist/registry/loaded.js.map +1 -0
- package/dist/registry/register-connectors.d.ts +32 -0
- package/dist/registry/register-connectors.d.ts.map +1 -0
- package/dist/registry/register-connectors.js +126 -0
- package/dist/registry/register-connectors.js.map +1 -0
- package/dist/registry/register-sections.d.ts +18 -0
- package/dist/registry/register-sections.d.ts.map +1 -0
- package/dist/registry/register-sections.js +99 -0
- package/dist/registry/register-sections.js.map +1 -0
- package/dist/registry/session-points.d.ts +11 -0
- package/dist/registry/session-points.d.ts.map +1 -0
- package/dist/registry/session-points.js +89 -0
- package/dist/registry/session-points.js.map +1 -0
- package/dist/result-text.d.ts +11 -0
- package/dist/result-text.d.ts.map +1 -0
- package/dist/result-text.js +21 -0
- package/dist/result-text.js.map +1 -0
- package/dist/schemas/records.d.ts +357 -0
- package/dist/schemas/records.d.ts.map +1 -0
- package/dist/schemas/records.js +159 -0
- package/dist/schemas/records.js.map +1 -0
- package/dist/schemas/registry.d.ts +160 -0
- package/dist/schemas/registry.d.ts.map +1 -0
- package/dist/schemas/registry.js +37 -0
- package/dist/schemas/registry.js.map +1 -0
- package/dist/sessions/new-session.d.ts +6 -0
- package/dist/sessions/new-session.d.ts.map +1 -0
- package/dist/sessions/new-session.js +52 -0
- package/dist/sessions/new-session.js.map +1 -0
- package/dist/sessions/register-fork-export.d.ts +5 -0
- package/dist/sessions/register-fork-export.d.ts.map +1 -0
- package/dist/sessions/register-fork-export.js +62 -0
- package/dist/sessions/register-fork-export.js.map +1 -0
- package/dist/sessions/register-lifecycle.d.ts +3 -0
- package/dist/sessions/register-lifecycle.d.ts.map +1 -0
- package/dist/sessions/register-lifecycle.js +59 -0
- package/dist/sessions/register-lifecycle.js.map +1 -0
- package/dist/sessions/register-sessions.d.ts +3 -0
- package/dist/sessions/register-sessions.d.ts.map +1 -0
- package/dist/sessions/register-sessions.js +93 -0
- package/dist/sessions/register-sessions.js.map +1 -0
- package/dist/sessions/session-lookup.d.ts +10 -0
- package/dist/sessions/session-lookup.d.ts.map +1 -0
- package/dist/sessions/session-lookup.js +25 -0
- package/dist/sessions/session-lookup.js.map +1 -0
- package/dist/sessions/session-view.d.ts +118 -0
- package/dist/sessions/session-view.d.ts.map +1 -0
- package/dist/sessions/session-view.js +105 -0
- package/dist/sessions/session-view.js.map +1 -0
- package/dist/store/collections.d.ts +471 -0
- package/dist/store/collections.d.ts.map +1 -0
- package/dist/store/collections.js +46 -0
- package/dist/store/collections.js.map +1 -0
- package/dist/turns/background.d.ts +6 -0
- package/dist/turns/background.d.ts.map +1 -0
- package/dist/turns/background.js +27 -0
- package/dist/turns/background.js.map +1 -0
- package/dist/turns/cancel-turn.d.ts +3 -0
- package/dist/turns/cancel-turn.d.ts.map +1 -0
- package/dist/turns/cancel-turn.js +31 -0
- package/dist/turns/cancel-turn.js.map +1 -0
- package/dist/turns/compaction.d.ts +12 -0
- package/dist/turns/compaction.d.ts.map +1 -0
- package/dist/turns/compaction.js +55 -0
- package/dist/turns/compaction.js.map +1 -0
- package/dist/turns/end-turn.d.ts +15 -0
- package/dist/turns/end-turn.d.ts.map +1 -0
- package/dist/turns/end-turn.js +67 -0
- package/dist/turns/end-turn.js.map +1 -0
- package/dist/turns/history.d.ts +28 -0
- package/dist/turns/history.d.ts.map +1 -0
- package/dist/turns/history.js +47 -0
- package/dist/turns/history.js.map +1 -0
- package/dist/turns/lost-reply.d.ts +31 -0
- package/dist/turns/lost-reply.d.ts.map +1 -0
- package/dist/turns/lost-reply.js +43 -0
- package/dist/turns/lost-reply.js.map +1 -0
- package/dist/turns/message-blocks.d.ts +9 -0
- package/dist/turns/message-blocks.d.ts.map +1 -0
- package/dist/turns/message-blocks.js +25 -0
- package/dist/turns/message-blocks.js.map +1 -0
- package/dist/turns/model-context.d.ts +81 -0
- package/dist/turns/model-context.d.ts.map +1 -0
- package/dist/turns/model-context.js +46 -0
- package/dist/turns/model-context.js.map +1 -0
- package/dist/turns/model-info.d.ts +7 -0
- package/dist/turns/model-info.d.ts.map +1 -0
- package/dist/turns/model-info.js +10 -0
- package/dist/turns/model-info.js.map +1 -0
- package/dist/turns/model-retry.d.ts +3 -0
- package/dist/turns/model-retry.d.ts.map +1 -0
- package/dist/turns/model-retry.js +23 -0
- package/dist/turns/model-retry.js.map +1 -0
- package/dist/turns/register-interruptions.d.ts +3 -0
- package/dist/turns/register-interruptions.d.ts.map +1 -0
- package/dist/turns/register-interruptions.js +31 -0
- package/dist/turns/register-interruptions.js.map +1 -0
- package/dist/turns/register-turns.d.ts +3 -0
- package/dist/turns/register-turns.d.ts.map +1 -0
- package/dist/turns/register-turns.js +66 -0
- package/dist/turns/register-turns.js.map +1 -0
- package/dist/turns/resolve.d.ts +7 -0
- package/dist/turns/resolve.d.ts.map +1 -0
- package/dist/turns/resolve.js +29 -0
- package/dist/turns/resolve.js.map +1 -0
- package/dist/turns/run-calls.d.ts +34 -0
- package/dist/turns/run-calls.d.ts.map +1 -0
- package/dist/turns/run-calls.js +99 -0
- package/dist/turns/run-calls.js.map +1 -0
- package/dist/turns/run-command.d.ts +26 -0
- package/dist/turns/run-command.d.ts.map +1 -0
- package/dist/turns/run-command.js +118 -0
- package/dist/turns/run-command.js.map +1 -0
- package/dist/turns/settle-calls.d.ts +17 -0
- package/dist/turns/settle-calls.d.ts.map +1 -0
- package/dist/turns/settle-calls.js +98 -0
- package/dist/turns/settle-calls.js.map +1 -0
- package/dist/turns/start-turn.d.ts +87 -0
- package/dist/turns/start-turn.d.ts.map +1 -0
- package/dist/turns/start-turn.js +40 -0
- package/dist/turns/start-turn.js.map +1 -0
- package/dist/turns/step.d.ts +8 -0
- package/dist/turns/step.d.ts.map +1 -0
- package/dist/turns/step.js +168 -0
- package/dist/turns/step.js.map +1 -0
- package/dist/ui/register-ui.d.ts +3 -0
- package/dist/ui/register-ui.d.ts.map +1 -0
- package/dist/ui/register-ui.js +75 -0
- package/dist/ui/register-ui.js.map +1 -0
- package/dist/web/components/call.css +2 -0
- package/dist/web/components/call.js +386 -0
- package/dist/web/components/connectors.css +2 -0
- package/dist/web/components/connectors.js +2403 -0
- package/dist/web/components/conversation.css +2 -0
- package/dist/web/components/conversation.js +4319 -0
- package/dist/web/components/mcp-sign-in.css +2 -0
- package/dist/web/components/mcp-sign-in.js +265 -0
- package/dist/web/components/model.css +2 -0
- package/dist/web/components/model.js +545 -0
- package/dist/web/components/question.css +2 -0
- package/dist/web/components/question.js +321 -0
- package/dist/web/components/sessions.css +2 -0
- package/dist/web/components/sessions.js +264 -0
- package/docs/connectors.md +86 -0
- package/docs/sections.md +27 -0
- package/locales/ar.json +418 -0
- package/locales/en.json +418 -0
- package/package.json +70 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from '@kvman/sdk';
|
|
2
|
+
import { sessionPointSchema } from "../schemas/registry.js";
|
|
3
|
+
import { invalid } from "../problems.js";
|
|
4
|
+
import { records, txRecords } from "../store/collections.js";
|
|
5
|
+
import { callerExtension, loadedOwners, ownsPublicCommand, registrations } from "./loaded.js";
|
|
6
|
+
// Session points (plan 08 §8.4): an extension has one of its public commands queued when something happens to a
|
|
7
|
+
// session. Each runs inside kvcoder's own job, `kvcoder.handler.run`, which records its id before the command runs, so
|
|
8
|
+
// a message the command injects (its `rootId` is that id) is always recognized and starts no turn.
|
|
9
|
+
const week = 7 * 24 * 3_600_000;
|
|
10
|
+
/** Queues one job per handler registered for `point`, and remembers their ids. */
|
|
11
|
+
export async function firePoint(ctx, point, input) {
|
|
12
|
+
const store = records(ctx.store);
|
|
13
|
+
const handlers = await store.handlers.find({ point }, { limit: 1000 });
|
|
14
|
+
if (handlers.length === 0)
|
|
15
|
+
return;
|
|
16
|
+
const loaded = await loadedOwners(ctx, handlers.map((entry) => entry.owner));
|
|
17
|
+
for (const handler of handlers.filter((entry) => loaded.has(entry.owner)))
|
|
18
|
+
await ctx.execAsync('kvcoder.handler.run', { command: handler.command, input });
|
|
19
|
+
}
|
|
20
|
+
/** Whether the running job descends from a handler job kvcoder queued. */
|
|
21
|
+
export async function fromSessionHandler(ctx) {
|
|
22
|
+
return (await records(ctx.store).handlerJobs.count({ jobId: ctx.job.rootId })) > 0;
|
|
23
|
+
}
|
|
24
|
+
export function registerSessionPoints(ctx) {
|
|
25
|
+
ctx.registerCommand('kvcoder.handler.run', {
|
|
26
|
+
description: "Runs a session handler's command, remembering its job so the handler's injections start no turn.",
|
|
27
|
+
input: z.object({ command: z.string(), input: z.record(z.string(), z.json()) }),
|
|
28
|
+
output: z.object({}),
|
|
29
|
+
handle: async ({ command, input }) => {
|
|
30
|
+
await records(ctx.store).handlerJobs.insert({ jobId: ctx.job.id, at: Date.now() });
|
|
31
|
+
await ctx.exec(command, input);
|
|
32
|
+
return {};
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
ctx.registerCommand('kvcoder.handler.register', {
|
|
36
|
+
description: "Registers one of the caller's public commands to be queued at a session point.",
|
|
37
|
+
input: z.object({ point: z.string(), command: z.string().min(1) }),
|
|
38
|
+
output: z.object({}),
|
|
39
|
+
public: true,
|
|
40
|
+
handle: async ({ point, command }) => {
|
|
41
|
+
const owner = callerExtension(ctx, 'session handlers');
|
|
42
|
+
const known = sessionPointSchema.safeParse(point);
|
|
43
|
+
if (!known.success)
|
|
44
|
+
throw invalid(`There is no session point ${point}.`, { point });
|
|
45
|
+
if (!ownsPublicCommand(await registrations(ctx), owner, command))
|
|
46
|
+
throw invalid(`${command} isn't a public command of ${owner}.`, { command });
|
|
47
|
+
await ctx.store.transaction((tx) => {
|
|
48
|
+
const { handlers } = txRecords(tx);
|
|
49
|
+
for (const old of handlers.find({ point: known.data, owner }, { limit: 1 }))
|
|
50
|
+
handlers.delete(old.id);
|
|
51
|
+
handlers.insert({ owner, point: known.data, command });
|
|
52
|
+
});
|
|
53
|
+
return {};
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
ctx.registerCommand('kvcoder.handler.unregister', {
|
|
57
|
+
description: "Removes the caller's handler of a session point; each extension has its own.",
|
|
58
|
+
input: z.object({ point: sessionPointSchema }),
|
|
59
|
+
output: z.object({}),
|
|
60
|
+
public: true,
|
|
61
|
+
handle: async ({ point }) => {
|
|
62
|
+
const owner = callerExtension(ctx, 'session handlers');
|
|
63
|
+
const { handlers } = records(ctx.store);
|
|
64
|
+
for (const own of await handlers.find({ point, owner }, { limit: 1 }))
|
|
65
|
+
await handlers.delete(own.id);
|
|
66
|
+
return {};
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
ctx.registerQuery('kvcoder.handler.list', {
|
|
70
|
+
description: 'Lists the session handlers.',
|
|
71
|
+
input: z.object({}),
|
|
72
|
+
output: z.array(z.object({ point: sessionPointSchema, command: z.string(), owner: z.string() })),
|
|
73
|
+
public: true,
|
|
74
|
+
handle: async () => (await records(ctx.store).handlers.find({}, { limit: 1000 })).map(({ point, command, owner }) => ({ point, command, owner })),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/** Clears the handlers at kvcoder's start, and forgets handler-job ids older than a week (ADR 0009, 103). */
|
|
78
|
+
export async function clearSessionPoints(ctx) {
|
|
79
|
+
const store = records(ctx.store);
|
|
80
|
+
for (let found = await store.handlers.find({}, { limit: 1000 }); found.length > 0; found = await store.handlers.find({}, { limit: 1000 })) {
|
|
81
|
+
for (const handler of found)
|
|
82
|
+
await store.handlers.delete(handler.id);
|
|
83
|
+
}
|
|
84
|
+
const cutoff = Date.now() - week;
|
|
85
|
+
for (const job of await store.handlerJobs.find({}, { limit: 1000 }))
|
|
86
|
+
if (job.at < cutoff)
|
|
87
|
+
await store.handlerJobs.delete(job.id);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=session-points.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-points.js","sourceRoot":"","sources":["../../src/registry/session-points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9F,gHAAgH;AAChH,uHAAuH;AACvH,mGAAmG;AAEnG,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AAEhC,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAQ,EAAE,KAAmB,EAAE,KAAgC;IAC7F,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,MAAM,GAAG,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7J,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAQ;IAC/C,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAQ;IAC5C,GAAG,CAAC,eAAe,CAAC,qBAAqB,EAAE;QACzC,WAAW,EAAE,kGAAkG;QAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/E,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YACnC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,eAAe,CAAC,0BAA0B,EAAE;QAC9C,WAAW,EAAE,gFAAgF;QAC7F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,MAAM,OAAO,CAAC,6BAA6B,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC;gBAAE,MAAM,OAAO,CAAC,GAAG,OAAO,8BAA8B,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/I,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;gBACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;gBACnC,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;oBAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrG,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,eAAe,CAAC,4BAA4B,EAAE;QAChD,WAAW,EAAE,8EAA8E;QAC3F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrG,OAAO,EAAE,CAAC;QACZ,CAAC;KACF,CAAC,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,sBAAsB,EAAE;QACxC,WAAW,EAAE,6BAA6B;QAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChG,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAClJ,CAAC,CAAC;AACL,CAAC;AAED,6GAA6G;AAC7G,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAQ;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1I,KAAK,MAAM,OAAO,IAAI,KAAK;YAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAAE,IAAI,GAAG,CAAC,EAAE,GAAG,MAAM;YAAE,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnI,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Output over this many bytes is cut. */
|
|
2
|
+
export declare const outputLimit: number;
|
|
3
|
+
/** The bytes kept at each end of cut output. */
|
|
4
|
+
export declare const outputKept: number;
|
|
5
|
+
/** The first and last bytes of cut output around the marker. */
|
|
6
|
+
export declare function cutOutput(head: Buffer, omitted: number, tail: Buffer): string;
|
|
7
|
+
/** Cuts text over 30 KB to its first and last 15 KB around an explicit marker. */
|
|
8
|
+
export declare function truncate(text: string): string;
|
|
9
|
+
/** The text a line in the shell returns to the model: the output (already cut, trailing newlines dropped), then any notes, then its exit code (ADR 0009, 93). */
|
|
10
|
+
export declare function resultLines(output: string, exitCode: number, notes?: readonly string[]): string;
|
|
11
|
+
//# sourceMappingURL=result-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-text.d.ts","sourceRoot":"","sources":["../src/result-text.ts"],"names":[],"mappings":"AAEA,0CAA0C;AAC1C,eAAO,MAAM,WAAW,QAAY,CAAC;AACrC,gDAAgD;AAChD,eAAO,MAAM,UAAU,QAAY,CAAC;AAEpC,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,iKAAiK;AACjK,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAEnG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// What a call returns to the model, and how long output is cut (plan 08 §8.3, ADR 0009, 93).
|
|
2
|
+
/** Output over this many bytes is cut. */
|
|
3
|
+
export const outputLimit = 30 * 1024;
|
|
4
|
+
/** The bytes kept at each end of cut output. */
|
|
5
|
+
export const outputKept = 15 * 1024;
|
|
6
|
+
/** The first and last bytes of cut output around the marker. */
|
|
7
|
+
export function cutOutput(head, omitted, tail) {
|
|
8
|
+
return `${head.toString('utf8')}\n[… ${omitted} bytes omitted …]\n${tail.toString('utf8')}`;
|
|
9
|
+
}
|
|
10
|
+
/** Cuts text over 30 KB to its first and last 15 KB around an explicit marker. */
|
|
11
|
+
export function truncate(text) {
|
|
12
|
+
const bytes = Buffer.from(text, 'utf8');
|
|
13
|
+
if (bytes.length <= outputLimit)
|
|
14
|
+
return text;
|
|
15
|
+
return cutOutput(bytes.subarray(0, outputKept), bytes.length - 2 * outputKept, bytes.subarray(bytes.length - outputKept));
|
|
16
|
+
}
|
|
17
|
+
/** The text a line in the shell returns to the model: the output (already cut, trailing newlines dropped), then any notes, then its exit code (ADR 0009, 93). */
|
|
18
|
+
export function resultLines(output, exitCode, notes = []) {
|
|
19
|
+
return [output.replace(/[\r\n]+$/, ''), ...notes, `[exit code ${exitCode}]`].filter((part) => part !== '').join('\n');
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=result-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-text.js","sourceRoot":"","sources":["../src/result-text.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAE7F,0CAA0C;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC,gDAAgD;AAChD,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC;AAEpC,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,IAAY;IACnE,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,OAAO,sBAAsB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;AAC5H,CAAC;AAED,iKAAiK;AACjK,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,QAAgB,EAAE,QAA2B,EAAE;IACzF,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,cAAc,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxH,CAAC"}
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import { z } from '@kvman/sdk';
|
|
2
|
+
import type { JsonValue } from '../connector-call.ts';
|
|
3
|
+
export type { JsonValue };
|
|
4
|
+
/** How hard the model thinks, as kvai takes it. */
|
|
5
|
+
export declare const thinkingSchema: z.ZodEnum<{
|
|
6
|
+
off: "off";
|
|
7
|
+
minimal: "minimal";
|
|
8
|
+
low: "low";
|
|
9
|
+
medium: "medium";
|
|
10
|
+
high: "high";
|
|
11
|
+
}>;
|
|
12
|
+
/** Tokens and cost, summed. */
|
|
13
|
+
export declare const usageSchema: z.ZodObject<{
|
|
14
|
+
input: z.ZodNumber;
|
|
15
|
+
output: z.ZodNumber;
|
|
16
|
+
cacheRead: z.ZodNumber;
|
|
17
|
+
cacheWrite: z.ZodNumber;
|
|
18
|
+
cost: z.ZodNumber;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
/** A session title: a string, or a translation key. */
|
|
21
|
+
export declare const titleSchema: z.ZodString;
|
|
22
|
+
/** A session's status. */
|
|
23
|
+
export declare const statusSchema: z.ZodEnum<{
|
|
24
|
+
idle: "idle";
|
|
25
|
+
running: "running";
|
|
26
|
+
waiting: "waiting";
|
|
27
|
+
}>;
|
|
28
|
+
/** A binary connector's check result, stored in the session at its first step. */
|
|
29
|
+
export declare const checkSchema: z.ZodObject<{
|
|
30
|
+
name: z.ZodString;
|
|
31
|
+
passed: z.ZodBoolean;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
/** How a turn ended. */
|
|
34
|
+
export declare const outcomeSchema: z.ZodEnum<{
|
|
35
|
+
done: "done";
|
|
36
|
+
cancelled: "cancelled";
|
|
37
|
+
failed: "failed";
|
|
38
|
+
interrupted: "interrupted";
|
|
39
|
+
maxSteps: "maxSteps";
|
|
40
|
+
}>;
|
|
41
|
+
/** Where a message came from. */
|
|
42
|
+
export declare const sourceSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
43
|
+
kind: z.ZodLiteral<"user">;
|
|
44
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
45
|
+
kind: z.ZodLiteral<"extension">;
|
|
46
|
+
name: z.ZodString;
|
|
47
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
48
|
+
kind: z.ZodLiteral<"subagent">;
|
|
49
|
+
sessionId: z.ZodString;
|
|
50
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
51
|
+
kind: z.ZodLiteral<"job">;
|
|
52
|
+
jobId: z.ZodString;
|
|
53
|
+
}, z.core.$strip>]>;
|
|
54
|
+
/** A message's kind. */
|
|
55
|
+
export declare const messageKindSchema: z.ZodEnum<{
|
|
56
|
+
user: "user";
|
|
57
|
+
assistant: "assistant";
|
|
58
|
+
toolResult: "toolResult";
|
|
59
|
+
notice: "notice";
|
|
60
|
+
note: "note";
|
|
61
|
+
summary: "summary";
|
|
62
|
+
}>;
|
|
63
|
+
export declare const sessionDocSchema: z.ZodObject<{
|
|
64
|
+
title: z.ZodString;
|
|
65
|
+
autoTitle: z.ZodBoolean;
|
|
66
|
+
status: z.ZodEnum<{
|
|
67
|
+
idle: "idle";
|
|
68
|
+
running: "running";
|
|
69
|
+
waiting: "waiting";
|
|
70
|
+
}>;
|
|
71
|
+
parentId: z.ZodNullable<z.ZodString>;
|
|
72
|
+
worker: z.ZodDefault<z.ZodNullable<z.ZodObject<{
|
|
73
|
+
name: z.ZodString;
|
|
74
|
+
instructions: z.ZodString;
|
|
75
|
+
}, z.core.$strip>>>;
|
|
76
|
+
model: z.ZodNullable<z.ZodString>;
|
|
77
|
+
thinking: z.ZodEnum<{
|
|
78
|
+
off: "off";
|
|
79
|
+
minimal: "minimal";
|
|
80
|
+
low: "low";
|
|
81
|
+
medium: "medium";
|
|
82
|
+
high: "high";
|
|
83
|
+
}>;
|
|
84
|
+
stepJobId: z.ZodNullable<z.ZodString>;
|
|
85
|
+
turnId: z.ZodNullable<z.ZodString>;
|
|
86
|
+
endedTurns: z.ZodNumber;
|
|
87
|
+
nextSeq: z.ZodNumber;
|
|
88
|
+
usage: z.ZodObject<{
|
|
89
|
+
input: z.ZodNumber;
|
|
90
|
+
output: z.ZodNumber;
|
|
91
|
+
cacheRead: z.ZodNumber;
|
|
92
|
+
cacheWrite: z.ZodNumber;
|
|
93
|
+
cost: z.ZodNumber;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
durationMs: z.ZodNumber;
|
|
96
|
+
checks: z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
97
|
+
name: z.ZodString;
|
|
98
|
+
passed: z.ZodBoolean;
|
|
99
|
+
}, z.core.$strip>>>;
|
|
100
|
+
connectors: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
101
|
+
createdAt: z.ZodString;
|
|
102
|
+
updatedAt: z.ZodString;
|
|
103
|
+
}, z.core.$strip>;
|
|
104
|
+
export declare const messageDocSchema: z.ZodObject<{
|
|
105
|
+
sessionId: z.ZodString;
|
|
106
|
+
turnId: z.ZodNullable<z.ZodString>;
|
|
107
|
+
seq: z.ZodNumber;
|
|
108
|
+
block: z.ZodNumber;
|
|
109
|
+
kind: z.ZodEnum<{
|
|
110
|
+
user: "user";
|
|
111
|
+
assistant: "assistant";
|
|
112
|
+
toolResult: "toolResult";
|
|
113
|
+
notice: "notice";
|
|
114
|
+
note: "note";
|
|
115
|
+
summary: "summary";
|
|
116
|
+
}>;
|
|
117
|
+
source: z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
118
|
+
kind: z.ZodLiteral<"user">;
|
|
119
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
120
|
+
kind: z.ZodLiteral<"extension">;
|
|
121
|
+
name: z.ZodString;
|
|
122
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
123
|
+
kind: z.ZodLiteral<"subagent">;
|
|
124
|
+
sessionId: z.ZodString;
|
|
125
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
126
|
+
kind: z.ZodLiteral<"job">;
|
|
127
|
+
jobId: z.ZodString;
|
|
128
|
+
}, z.core.$strip>]>>;
|
|
129
|
+
content: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
130
|
+
fileIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
131
|
+
fileNames: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
132
|
+
model: z.ZodNullable<z.ZodString>;
|
|
133
|
+
usage: z.ZodNullable<z.ZodObject<{
|
|
134
|
+
input: z.ZodNumber;
|
|
135
|
+
output: z.ZodNumber;
|
|
136
|
+
cacheRead: z.ZodNumber;
|
|
137
|
+
cacheWrite: z.ZodNumber;
|
|
138
|
+
cost: z.ZodNumber;
|
|
139
|
+
}, z.core.$strip>>;
|
|
140
|
+
durationMs: z.ZodNullable<z.ZodNumber>;
|
|
141
|
+
createdAt: z.ZodString;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
export declare const queuedDocSchema: z.ZodObject<{
|
|
144
|
+
sessionId: z.ZodString;
|
|
145
|
+
source: z.ZodUnion<readonly [z.ZodObject<{
|
|
146
|
+
kind: z.ZodLiteral<"user">;
|
|
147
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
148
|
+
kind: z.ZodLiteral<"extension">;
|
|
149
|
+
name: z.ZodString;
|
|
150
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
151
|
+
kind: z.ZodLiteral<"subagent">;
|
|
152
|
+
sessionId: z.ZodString;
|
|
153
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
154
|
+
kind: z.ZodLiteral<"job">;
|
|
155
|
+
jobId: z.ZodString;
|
|
156
|
+
}, z.core.$strip>]>;
|
|
157
|
+
text: z.ZodString;
|
|
158
|
+
fileIds: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
159
|
+
fileNames: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
160
|
+
createdAt: z.ZodString;
|
|
161
|
+
}, z.core.$strip>;
|
|
162
|
+
/** What a pending call waits on. */
|
|
163
|
+
export declare const pendingSchema: z.ZodObject<{
|
|
164
|
+
toolCallId: z.ZodString;
|
|
165
|
+
kind: z.ZodEnum<{
|
|
166
|
+
subagent: "subagent";
|
|
167
|
+
worker: "worker";
|
|
168
|
+
question: "question";
|
|
169
|
+
approval: "approval";
|
|
170
|
+
}>;
|
|
171
|
+
questionId: z.ZodNullable<z.ZodString>;
|
|
172
|
+
question: z.ZodNullable<z.ZodJSONSchema>;
|
|
173
|
+
childSessionId: z.ZodNullable<z.ZodString>;
|
|
174
|
+
runId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
175
|
+
}, z.core.$strip>;
|
|
176
|
+
/** A call the person approves before it runs: what the model said it does, and the connector command with its payload. */
|
|
177
|
+
export declare const runCallSchema: z.ZodObject<{
|
|
178
|
+
description: z.ZodString;
|
|
179
|
+
connector: z.ZodString;
|
|
180
|
+
command: z.ZodString;
|
|
181
|
+
payload: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
182
|
+
}, z.core.$strict>;
|
|
183
|
+
export declare const heldResultSchema: z.ZodObject<{
|
|
184
|
+
toolCallId: z.ZodString;
|
|
185
|
+
text: z.ZodString;
|
|
186
|
+
details: z.ZodNullable<z.ZodJSONSchema>;
|
|
187
|
+
isError: z.ZodBoolean;
|
|
188
|
+
run: z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
189
|
+
description: z.ZodString;
|
|
190
|
+
connector: z.ZodString;
|
|
191
|
+
command: z.ZodString;
|
|
192
|
+
payload: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
193
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
194
|
+
command: z.ZodString;
|
|
195
|
+
timeoutMs: z.ZodNumber;
|
|
196
|
+
}, z.core.$strip>]>>;
|
|
197
|
+
}, z.core.$strip>;
|
|
198
|
+
export declare const turnDocSchema: z.ZodObject<{
|
|
199
|
+
sessionId: z.ZodString;
|
|
200
|
+
startedAt: z.ZodString;
|
|
201
|
+
endedAt: z.ZodNullable<z.ZodString>;
|
|
202
|
+
durationMs: z.ZodNumber;
|
|
203
|
+
steps: z.ZodNumber;
|
|
204
|
+
lost: z.ZodDefault<z.ZodNumber>;
|
|
205
|
+
usage: z.ZodObject<{
|
|
206
|
+
input: z.ZodNumber;
|
|
207
|
+
output: z.ZodNumber;
|
|
208
|
+
cacheRead: z.ZodNumber;
|
|
209
|
+
cacheWrite: z.ZodNumber;
|
|
210
|
+
cost: z.ZodNumber;
|
|
211
|
+
}, z.core.$strip>;
|
|
212
|
+
outcome: z.ZodNullable<z.ZodEnum<{
|
|
213
|
+
done: "done";
|
|
214
|
+
cancelled: "cancelled";
|
|
215
|
+
failed: "failed";
|
|
216
|
+
interrupted: "interrupted";
|
|
217
|
+
maxSteps: "maxSteps";
|
|
218
|
+
}>>;
|
|
219
|
+
calls: z.ZodArray<z.ZodObject<{
|
|
220
|
+
toolCallId: z.ZodString;
|
|
221
|
+
toolName: z.ZodString;
|
|
222
|
+
}, z.core.$strip>>;
|
|
223
|
+
pending: z.ZodArray<z.ZodObject<{
|
|
224
|
+
toolCallId: z.ZodString;
|
|
225
|
+
kind: z.ZodEnum<{
|
|
226
|
+
subagent: "subagent";
|
|
227
|
+
worker: "worker";
|
|
228
|
+
question: "question";
|
|
229
|
+
approval: "approval";
|
|
230
|
+
}>;
|
|
231
|
+
questionId: z.ZodNullable<z.ZodString>;
|
|
232
|
+
question: z.ZodNullable<z.ZodJSONSchema>;
|
|
233
|
+
childSessionId: z.ZodNullable<z.ZodString>;
|
|
234
|
+
runId: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
235
|
+
}, z.core.$strip>>;
|
|
236
|
+
results: z.ZodArray<z.ZodObject<{
|
|
237
|
+
toolCallId: z.ZodString;
|
|
238
|
+
text: z.ZodString;
|
|
239
|
+
details: z.ZodNullable<z.ZodJSONSchema>;
|
|
240
|
+
isError: z.ZodBoolean;
|
|
241
|
+
run: z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
242
|
+
description: z.ZodString;
|
|
243
|
+
connector: z.ZodString;
|
|
244
|
+
command: z.ZodString;
|
|
245
|
+
payload: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
246
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
247
|
+
command: z.ZodString;
|
|
248
|
+
timeoutMs: z.ZodNumber;
|
|
249
|
+
}, z.core.$strip>]>>;
|
|
250
|
+
}, z.core.$strip>>;
|
|
251
|
+
}, z.core.$strip>;
|
|
252
|
+
export declare const questionDocSchema: z.ZodObject<{
|
|
253
|
+
sessionId: z.ZodString;
|
|
254
|
+
rootSessionId: z.ZodString;
|
|
255
|
+
turnId: z.ZodString;
|
|
256
|
+
toolCallId: z.ZodString;
|
|
257
|
+
kind: z.ZodEnum<{
|
|
258
|
+
text: "text";
|
|
259
|
+
approval: "approval";
|
|
260
|
+
choice: "choice";
|
|
261
|
+
confirm: "confirm";
|
|
262
|
+
}>;
|
|
263
|
+
question: z.ZodRecord<z.ZodString, z.ZodJSONSchema>;
|
|
264
|
+
}, z.core.$strip>;
|
|
265
|
+
export declare const backgroundDocSchema: z.ZodObject<{
|
|
266
|
+
sessionId: z.ZodString;
|
|
267
|
+
ref: z.ZodString;
|
|
268
|
+
kind: z.ZodEnum<{
|
|
269
|
+
connector: "connector";
|
|
270
|
+
subagent: "subagent";
|
|
271
|
+
}>;
|
|
272
|
+
call: z.ZodString;
|
|
273
|
+
startedAt: z.ZodString;
|
|
274
|
+
}, z.core.$strip>;
|
|
275
|
+
/** How a program worker's run stands. */
|
|
276
|
+
export declare const runStatusSchema: z.ZodEnum<{
|
|
277
|
+
running: "running";
|
|
278
|
+
cancelled: "cancelled";
|
|
279
|
+
failed: "failed";
|
|
280
|
+
interrupted: "interrupted";
|
|
281
|
+
succeeded: "succeeded";
|
|
282
|
+
}>;
|
|
283
|
+
export declare const runDocSchema: z.ZodObject<{
|
|
284
|
+
sessionId: z.ZodString;
|
|
285
|
+
toolCallId: z.ZodNullable<z.ZodString>;
|
|
286
|
+
worker: z.ZodString;
|
|
287
|
+
kind: z.ZodEnum<{
|
|
288
|
+
opencode: "opencode";
|
|
289
|
+
pi: "pi";
|
|
290
|
+
claude: "claude";
|
|
291
|
+
}>;
|
|
292
|
+
call: z.ZodString;
|
|
293
|
+
command: z.ZodString;
|
|
294
|
+
args: z.ZodArray<z.ZodString>;
|
|
295
|
+
timeoutMs: z.ZodNumber;
|
|
296
|
+
jobId: z.ZodNullable<z.ZodString>;
|
|
297
|
+
status: z.ZodEnum<{
|
|
298
|
+
running: "running";
|
|
299
|
+
cancelled: "cancelled";
|
|
300
|
+
failed: "failed";
|
|
301
|
+
interrupted: "interrupted";
|
|
302
|
+
succeeded: "succeeded";
|
|
303
|
+
}>;
|
|
304
|
+
startedAt: z.ZodString;
|
|
305
|
+
endedAt: z.ZodNullable<z.ZodString>;
|
|
306
|
+
exitCode: z.ZodNullable<z.ZodNumber>;
|
|
307
|
+
output: z.ZodNullable<z.ZodString>;
|
|
308
|
+
}, z.core.$strip>;
|
|
309
|
+
export declare const processDocSchema: z.ZodObject<{
|
|
310
|
+
workspaceId: z.ZodString;
|
|
311
|
+
sessionId: z.ZodString;
|
|
312
|
+
title: z.ZodString;
|
|
313
|
+
call: z.ZodString;
|
|
314
|
+
startedAt: z.ZodString;
|
|
315
|
+
endedAt: z.ZodExactOptional<z.ZodString>;
|
|
316
|
+
end: z.ZodExactOptional<z.ZodEnum<{
|
|
317
|
+
interrupted: "interrupted";
|
|
318
|
+
exited: "exited";
|
|
319
|
+
agent: "agent";
|
|
320
|
+
person: "person";
|
|
321
|
+
}>>;
|
|
322
|
+
exitCode: z.ZodExactOptional<z.ZodNullable<z.ZodNumber>>;
|
|
323
|
+
signal: z.ZodExactOptional<z.ZodNullable<z.ZodString>>;
|
|
324
|
+
reported: z.ZodBoolean;
|
|
325
|
+
starting: z.ZodExactOptional<z.ZodBoolean>;
|
|
326
|
+
}, z.core.$strip>;
|
|
327
|
+
export declare const artifactDocSchema: z.ZodObject<{
|
|
328
|
+
sessionId: z.ZodString;
|
|
329
|
+
artifactId: z.ZodString;
|
|
330
|
+
title: z.ZodString;
|
|
331
|
+
format: z.ZodEnum<{
|
|
332
|
+
markdown: "markdown";
|
|
333
|
+
html: "html";
|
|
334
|
+
url: "url";
|
|
335
|
+
}>;
|
|
336
|
+
content: z.ZodString;
|
|
337
|
+
version: z.ZodNumber;
|
|
338
|
+
createdAt: z.ZodString;
|
|
339
|
+
updatedAt: z.ZodString;
|
|
340
|
+
}, z.core.$strip>;
|
|
341
|
+
export type SessionDoc = z.output<typeof sessionDocSchema>;
|
|
342
|
+
export type MessageDoc = z.output<typeof messageDocSchema>;
|
|
343
|
+
export type QueuedDoc = z.output<typeof queuedDocSchema>;
|
|
344
|
+
export type TurnDoc = z.output<typeof turnDocSchema>;
|
|
345
|
+
export type Pending = z.output<typeof pendingSchema>;
|
|
346
|
+
export type HeldResult = z.output<typeof heldResultSchema>;
|
|
347
|
+
export type RunCallDoc = z.output<typeof runCallSchema>;
|
|
348
|
+
export type QuestionDoc = z.output<typeof questionDocSchema>;
|
|
349
|
+
export type BackgroundDoc = z.output<typeof backgroundDocSchema>;
|
|
350
|
+
export type ArtifactDoc = z.output<typeof artifactDocSchema>;
|
|
351
|
+
export type ProcessDoc = z.output<typeof processDocSchema>;
|
|
352
|
+
export type RunDoc = z.output<typeof runDocSchema>;
|
|
353
|
+
export type Usage = z.output<typeof usageSchema>;
|
|
354
|
+
export type Outcome = z.output<typeof outcomeSchema>;
|
|
355
|
+
export type Source = z.output<typeof sourceSchema>;
|
|
356
|
+
export type Title = z.output<typeof titleSchema>;
|
|
357
|
+
//# sourceMappingURL=records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/schemas/records.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { z } from '@kvman/sdk';
|
|
2
|
+
import { artifactFormats } from "../artifacts/artifact-format.js";
|
|
3
|
+
// kvcoder's records (plan 08 §8.1): sessions, messages, turns, and what waits on the person.
|
|
4
|
+
/** How hard the model thinks, as kvai takes it. */
|
|
5
|
+
export const thinkingSchema = z.enum(['off', 'minimal', 'low', 'medium', 'high']);
|
|
6
|
+
const tokens = z.number().int().nonnegative();
|
|
7
|
+
/** Tokens and cost, summed. */
|
|
8
|
+
export const usageSchema = z.object({ input: tokens, output: tokens, cacheRead: tokens, cacheWrite: tokens, cost: z.number().nonnegative() });
|
|
9
|
+
/** A session title: a string, or a translation key. */
|
|
10
|
+
export const titleSchema = z.string();
|
|
11
|
+
/** A session's status. */
|
|
12
|
+
export const statusSchema = z.enum(['idle', 'running', 'waiting']);
|
|
13
|
+
/** A binary connector's check result, stored in the session at its first step. */
|
|
14
|
+
export const checkSchema = z.object({ name: z.string(), passed: z.boolean() });
|
|
15
|
+
/** How a turn ended. */
|
|
16
|
+
export const outcomeSchema = z.enum(['done', 'cancelled', 'failed', 'interrupted', 'maxSteps']);
|
|
17
|
+
/** Where a message came from. */
|
|
18
|
+
export const sourceSchema = z.union([
|
|
19
|
+
z.object({ kind: z.literal('user') }),
|
|
20
|
+
z.object({ kind: z.literal('extension'), name: z.string() }),
|
|
21
|
+
z.object({ kind: z.literal('subagent'), sessionId: z.string() }),
|
|
22
|
+
z.object({ kind: z.literal('job'), jobId: z.string() }),
|
|
23
|
+
]);
|
|
24
|
+
/** A message's kind. */
|
|
25
|
+
export const messageKindSchema = z.enum(['user', 'assistant', 'toolResult', 'notice', 'note', 'summary']);
|
|
26
|
+
export const sessionDocSchema = z.object({
|
|
27
|
+
title: titleSchema,
|
|
28
|
+
autoTitle: z.boolean(),
|
|
29
|
+
status: statusSchema,
|
|
30
|
+
parentId: z.string().nullable(),
|
|
31
|
+
// The worker a child session runs for, with the instructions it started with (ADR 0021, 29).
|
|
32
|
+
worker: z.object({ name: z.string(), instructions: z.string() }).nullable().default(null),
|
|
33
|
+
model: z.string().nullable(),
|
|
34
|
+
thinking: thinkingSchema,
|
|
35
|
+
stepJobId: z.string().nullable(),
|
|
36
|
+
turnId: z.string().nullable(),
|
|
37
|
+
endedTurns: z.number().int().nonnegative(),
|
|
38
|
+
nextSeq: z.number().int().nonnegative(),
|
|
39
|
+
usage: usageSchema,
|
|
40
|
+
durationMs: z.number().nonnegative(),
|
|
41
|
+
checks: z.array(checkSchema).nullable(),
|
|
42
|
+
connectors: z.array(z.string()).nullable(),
|
|
43
|
+
createdAt: z.string(),
|
|
44
|
+
updatedAt: z.string(),
|
|
45
|
+
});
|
|
46
|
+
export const messageDocSchema = z.object({
|
|
47
|
+
sessionId: z.string(),
|
|
48
|
+
turnId: z.string().nullable(),
|
|
49
|
+
seq: z.number().int().nonnegative(),
|
|
50
|
+
block: z.number().int().nonnegative(),
|
|
51
|
+
kind: messageKindSchema,
|
|
52
|
+
source: sourceSchema.nullable(),
|
|
53
|
+
content: z.record(z.string(), z.json()),
|
|
54
|
+
fileIds: z.array(z.string()).nullable(),
|
|
55
|
+
fileNames: z.array(z.string()).nullable(),
|
|
56
|
+
model: z.string().nullable(),
|
|
57
|
+
usage: usageSchema.nullable(),
|
|
58
|
+
durationMs: z.number().nonnegative().nullable(),
|
|
59
|
+
createdAt: z.string(),
|
|
60
|
+
});
|
|
61
|
+
// A message waiting for the running step to append its results (ADR 0009, 102).
|
|
62
|
+
export const queuedDocSchema = z.object({ sessionId: z.string(), source: sourceSchema, text: z.string(), fileIds: z.array(z.string()).nullable(), fileNames: z.array(z.string()).nullable(), createdAt: z.string() });
|
|
63
|
+
/** What a pending call waits on. */
|
|
64
|
+
export const pendingSchema = z.object({
|
|
65
|
+
toolCallId: z.string(),
|
|
66
|
+
kind: z.enum(['question', 'subagent', 'approval', 'worker']),
|
|
67
|
+
questionId: z.string().nullable(),
|
|
68
|
+
question: z.json().nullable(),
|
|
69
|
+
childSessionId: z.string().nullable(),
|
|
70
|
+
// The run of a program worker the call waits on (ADR 0021, 23).
|
|
71
|
+
runId: z.string().nullable().default(null),
|
|
72
|
+
});
|
|
73
|
+
/** A call the person approves before it runs: what the model said it does, and the connector command with its payload. */
|
|
74
|
+
export const runCallSchema = z.strictObject({ description: z.string(), connector: z.string(), command: z.string(), payload: z.record(z.string(), z.json()) });
|
|
75
|
+
// An approved call of the old shell tool. It is kept only so a turn stored before `run` still parses; it is never run
|
|
76
|
+
// (ADR 0011, 12).
|
|
77
|
+
const oldShellRunSchema = z.object({ command: z.string(), timeoutMs: z.number().int().positive() });
|
|
78
|
+
// A call's result kept in the turn until the step's calls all resolve; `run` is an approved call the next step runs
|
|
79
|
+
// before it appends the results.
|
|
80
|
+
export const heldResultSchema = z.object({
|
|
81
|
+
toolCallId: z.string(),
|
|
82
|
+
text: z.string(),
|
|
83
|
+
details: z.json().nullable(),
|
|
84
|
+
isError: z.boolean(),
|
|
85
|
+
run: z.union([runCallSchema, oldShellRunSchema]).nullable(),
|
|
86
|
+
});
|
|
87
|
+
export const turnDocSchema = z.object({
|
|
88
|
+
sessionId: z.string(),
|
|
89
|
+
startedAt: z.string(),
|
|
90
|
+
endedAt: z.string().nullable(),
|
|
91
|
+
durationMs: z.number().nonnegative(),
|
|
92
|
+
steps: z.number().int().nonnegative(),
|
|
93
|
+
lost: z.number().int().nonnegative().default(0),
|
|
94
|
+
usage: usageSchema,
|
|
95
|
+
outcome: outcomeSchema.nullable(),
|
|
96
|
+
calls: z.array(z.object({ toolCallId: z.string(), toolName: z.string() })),
|
|
97
|
+
pending: z.array(pendingSchema),
|
|
98
|
+
results: z.array(heldResultSchema),
|
|
99
|
+
});
|
|
100
|
+
export const questionDocSchema = z.object({
|
|
101
|
+
sessionId: z.string(),
|
|
102
|
+
rootSessionId: z.string(),
|
|
103
|
+
turnId: z.string(),
|
|
104
|
+
toolCallId: z.string(),
|
|
105
|
+
kind: z.enum(['text', 'choice', 'confirm', 'approval']),
|
|
106
|
+
question: z.record(z.string(), z.json()),
|
|
107
|
+
});
|
|
108
|
+
// A subagent a session started with `background: true` (ADR 0009, 88), by its child session id. `connector` is the kind
|
|
109
|
+
// of a job started with the old `--async`; such a stored row still parses and is never listed (ADR 0011, 6).
|
|
110
|
+
export const backgroundDocSchema = z.object({ sessionId: z.string(), ref: z.string(), kind: z.enum(['connector', 'subagent']), call: z.string(), startedAt: z.string() });
|
|
111
|
+
/** How a program worker's run stands. */
|
|
112
|
+
export const runStatusSchema = z.enum(['running', 'succeeded', 'failed', 'cancelled', 'interrupted']);
|
|
113
|
+
// A run of a program worker (ADR 0021, 33): the command line it started with, the job that runs it, and what it
|
|
114
|
+
// returned. `toolCallId` is the call a turn waits on, and `null` for a background run.
|
|
115
|
+
export const runDocSchema = z.object({
|
|
116
|
+
sessionId: z.string(),
|
|
117
|
+
toolCallId: z.string().nullable(),
|
|
118
|
+
worker: z.string(),
|
|
119
|
+
kind: z.enum(['opencode', 'pi', 'claude']),
|
|
120
|
+
call: z.string(),
|
|
121
|
+
command: z.string(),
|
|
122
|
+
args: z.array(z.string()),
|
|
123
|
+
timeoutMs: z.number().int().positive(),
|
|
124
|
+
jobId: z.string().nullable(),
|
|
125
|
+
status: runStatusSchema,
|
|
126
|
+
startedAt: z.string(),
|
|
127
|
+
endedAt: z.string().nullable(),
|
|
128
|
+
exitCode: z.number().int().nullable(),
|
|
129
|
+
output: z.string().nullable(),
|
|
130
|
+
});
|
|
131
|
+
// A background process a session started with `background: true` (ADR 0009, 150). It lives in the global store, since the
|
|
132
|
+
// handlers for kvman stopping and starting run in Home. It is running until `end` is set; `reported` says whether the
|
|
133
|
+
// session has been told how it ended.
|
|
134
|
+
export const processDocSchema = z.object({
|
|
135
|
+
workspaceId: z.string(),
|
|
136
|
+
sessionId: z.string(),
|
|
137
|
+
title: z.string(),
|
|
138
|
+
call: z.string(),
|
|
139
|
+
startedAt: z.string(),
|
|
140
|
+
endedAt: z.string().exactOptional(),
|
|
141
|
+
end: z.enum(['exited', 'agent', 'person', 'interrupted']).exactOptional(),
|
|
142
|
+
exitCode: z.number().int().nullable().exactOptional(),
|
|
143
|
+
signal: z.string().nullable().exactOptional(),
|
|
144
|
+
reported: z.boolean(),
|
|
145
|
+
starting: z.boolean().exactOptional(),
|
|
146
|
+
});
|
|
147
|
+
// A document shown beside the chat (plan 08 §8.5, ADR 0009, 175): `sessionId` is the chat's own id, `artifactId`
|
|
148
|
+
// names it within the chat, and only the latest content is kept.
|
|
149
|
+
export const artifactDocSchema = z.object({
|
|
150
|
+
sessionId: z.string(),
|
|
151
|
+
artifactId: z.string(),
|
|
152
|
+
title: z.string(),
|
|
153
|
+
format: z.enum(artifactFormats),
|
|
154
|
+
content: z.string(),
|
|
155
|
+
version: z.number().int().min(1),
|
|
156
|
+
createdAt: z.string(),
|
|
157
|
+
updatedAt: z.string(),
|
|
158
|
+
});
|
|
159
|
+
//# sourceMappingURL=records.js.map
|