@kvman/kvcoder 0.1.6 → 0.1.8
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/dist/api.d.ts +49 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/calls/run-shell.d.ts.map +1 -1
- package/dist/calls/run-shell.js +39 -9
- package/dist/calls/run-shell.js.map +1 -1
- package/dist/connector-call.d.ts +1 -1
- package/dist/connector-call.d.ts.map +1 -1
- package/dist/connector-call.js +4 -2
- package/dist/connector-call.js.map +1 -1
- package/dist/connectors/artifact.d.ts +1 -1
- package/dist/connectors/artifact.d.ts.map +1 -1
- package/dist/connectors/artifact.js +4 -4
- package/dist/connectors/artifact.js.map +1 -1
- package/dist/connectors/ask.d.ts +24 -0
- package/dist/connectors/ask.d.ts.map +1 -1
- package/dist/connectors/ask.js +20 -11
- package/dist/connectors/ask.js.map +1 -1
- package/dist/connectors/background.d.ts +14 -1
- package/dist/connectors/background.d.ts.map +1 -1
- package/dist/connectors/background.js +53 -23
- package/dist/connectors/background.js.map +1 -1
- package/dist/connectors/builtin-connectors.d.ts +110 -0
- package/dist/connectors/builtin-connectors.d.ts.map +1 -1
- package/dist/connectors/builtin-connectors.js +4 -1
- package/dist/connectors/builtin-connectors.js.map +1 -1
- package/dist/connectors/delegate.d.ts +3 -2
- package/dist/connectors/delegate.d.ts.map +1 -1
- package/dist/connectors/delegate.js +27 -9
- package/dist/connectors/delegate.js.map +1 -1
- package/dist/connectors/execution-map.d.ts +62 -0
- package/dist/connectors/execution-map.d.ts.map +1 -0
- package/dist/connectors/execution-map.js +142 -0
- package/dist/connectors/execution-map.js.map +1 -0
- package/dist/connectors/fs.d.ts +32 -1
- package/dist/connectors/fs.d.ts.map +1 -1
- package/dist/connectors/fs.js +76 -45
- package/dist/connectors/fs.js.map +1 -1
- package/dist/connectors/mcp.d.ts +18 -1
- package/dist/connectors/mcp.d.ts.map +1 -1
- package/dist/connectors/mcp.js +54 -6
- package/dist/connectors/mcp.js.map +1 -1
- package/dist/connectors/payload-fields.d.ts.map +1 -1
- package/dist/connectors/payload-fields.js +1 -1
- package/dist/connectors/payload-fields.js.map +1 -1
- package/dist/delegate/approved-run.d.ts +4 -6
- package/dist/delegate/approved-run.d.ts.map +1 -1
- package/dist/delegate/approved-run.js +74 -34
- package/dist/delegate/approved-run.js.map +1 -1
- package/dist/delegate/git-staging.d.ts +12 -0
- package/dist/delegate/git-staging.d.ts.map +1 -0
- package/dist/delegate/git-staging.js +54 -0
- package/dist/delegate/git-staging.js.map +1 -0
- package/dist/delegate/permission.d.ts +240 -0
- package/dist/delegate/permission.d.ts.map +1 -0
- package/dist/delegate/permission.js +78 -0
- package/dist/delegate/permission.js.map +1 -0
- package/dist/delegate/program-permission.d.ts +27 -0
- package/dist/delegate/program-permission.d.ts.map +1 -0
- package/dist/delegate/program-permission.js +53 -0
- package/dist/delegate/program-permission.js.map +1 -0
- package/dist/delegate/register-worker-run.d.ts.map +1 -1
- package/dist/delegate/register-worker-run.js +27 -11
- package/dist/delegate/register-worker-run.js.map +1 -1
- package/dist/delegate/run-program.d.ts.map +1 -1
- package/dist/delegate/run-program.js +29 -8
- package/dist/delegate/run-program.js.map +1 -1
- package/dist/delegate/runs.d.ts +14 -4
- package/dist/delegate/runs.d.ts.map +1 -1
- package/dist/delegate/runs.js +49 -19
- package/dist/delegate/runs.js.map +1 -1
- package/dist/delegate/staging-guard.d.ts +9 -0
- package/dist/delegate/staging-guard.d.ts.map +1 -0
- package/dist/delegate/staging-guard.js +55 -0
- package/dist/delegate/staging-guard.js.map +1 -0
- package/dist/delegate/start-background.d.ts +7 -0
- package/dist/delegate/start-background.d.ts.map +1 -0
- package/dist/delegate/start-background.js +32 -0
- package/dist/delegate/start-background.js.map +1 -0
- package/dist/delegate/start-pending.d.ts +5 -0
- package/dist/delegate/start-pending.d.ts.map +1 -0
- package/dist/delegate/start-pending.js +42 -0
- package/dist/delegate/start-pending.js.map +1 -0
- package/dist/delegate/workers.d.ts +5 -2
- package/dist/delegate/workers.d.ts.map +1 -1
- package/dist/delegate/workers.js +44 -8
- package/dist/delegate/workers.js.map +1 -1
- package/dist/files/file-change.d.ts +28 -0
- package/dist/files/file-change.d.ts.map +1 -0
- package/dist/files/file-change.js +125 -0
- package/dist/files/file-change.js.map +1 -0
- package/dist/files/file-parts.d.ts +18 -0
- package/dist/files/file-parts.d.ts.map +1 -0
- package/dist/files/file-parts.js +40 -0
- package/dist/files/file-parts.js.map +1 -0
- package/dist/files/read-file.d.ts +9 -1
- package/dist/files/read-file.d.ts.map +1 -1
- package/dist/files/read-file.js +35 -13
- package/dist/files/read-file.js.map +1 -1
- package/dist/files/search-text.d.ts +12 -2
- package/dist/files/search-text.d.ts.map +1 -1
- package/dist/files/search-text.js +87 -23
- package/dist/files/search-text.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/jobs/job-rows.d.ts +11 -2
- package/dist/jobs/job-rows.d.ts.map +1 -1
- package/dist/jobs/job-rows.js +24 -13
- package/dist/jobs/job-rows.js.map +1 -1
- package/dist/jobs/process-handlers.d.ts.map +1 -1
- package/dist/jobs/process-handlers.js +12 -1
- package/dist/jobs/process-handlers.js.map +1 -1
- package/dist/jobs/process-report.d.ts.map +1 -1
- package/dist/jobs/process-report.js +2 -1
- package/dist/jobs/process-report.js.map +1 -1
- package/dist/jobs/process-run.d.ts.map +1 -1
- package/dist/jobs/process-run.js +2 -1
- package/dist/jobs/process-run.js.map +1 -1
- package/dist/jobs/register-jobs.d.ts.map +1 -1
- package/dist/jobs/register-jobs.js +1 -0
- package/dist/jobs/register-jobs.js.map +1 -1
- package/dist/maps/map-reminder.d.ts +7 -0
- package/dist/maps/map-reminder.d.ts.map +1 -0
- package/dist/maps/map-reminder.js +24 -0
- package/dist/maps/map-reminder.js.map +1 -0
- package/dist/maps/map-rules.d.ts +36 -0
- package/dist/maps/map-rules.d.ts.map +1 -0
- package/dist/maps/map-rules.js +86 -0
- package/dist/maps/map-rules.js.map +1 -0
- package/dist/maps/map-schema.d.ts +55 -0
- package/dist/maps/map-schema.d.ts.map +1 -0
- package/dist/maps/map-schema.js +27 -0
- package/dist/maps/map-schema.js.map +1 -0
- package/dist/maps/register-maps.d.ts +3 -0
- package/dist/maps/register-maps.d.ts.map +1 -0
- package/dist/maps/register-maps.js +21 -0
- package/dist/maps/register-maps.js.map +1 -0
- package/dist/mcp/connect.d.ts +2 -0
- package/dist/mcp/connect.d.ts.map +1 -1
- package/dist/mcp/connect.js +16 -4
- package/dist/mcp/connect.js.map +1 -1
- package/dist/mcp/oauth-provider.d.ts +8 -5
- package/dist/mcp/oauth-provider.d.ts.map +1 -1
- package/dist/mcp/oauth-provider.js +31 -22
- package/dist/mcp/oauth-provider.js.map +1 -1
- package/dist/mcp/secrets.d.ts +2 -0
- package/dist/mcp/secrets.d.ts.map +1 -1
- package/dist/mcp/secrets.js +6 -0
- package/dist/mcp/secrets.js.map +1 -1
- package/dist/mcp/sign-in.d.ts.map +1 -1
- package/dist/mcp/sign-in.js +12 -4
- package/dist/mcp/sign-in.js.map +1 -1
- package/dist/messages/receive-message.d.ts +2 -1
- package/dist/messages/receive-message.d.ts.map +1 -1
- package/dist/messages/receive-message.js +34 -9
- package/dist/messages/receive-message.js.map +1 -1
- package/dist/messages/register-messages.d.ts.map +1 -1
- package/dist/messages/register-messages.js +13 -8
- package/dist/messages/register-messages.js.map +1 -1
- package/dist/messages/send-receipt.d.ts +10 -0
- package/dist/messages/send-receipt.d.ts.map +1 -0
- package/dist/messages/send-receipt.js +14 -0
- package/dist/messages/send-receipt.js.map +1 -0
- package/dist/prompt/build-prompt.d.ts +1 -0
- package/dist/prompt/build-prompt.d.ts.map +1 -1
- package/dist/prompt/build-prompt.js +5 -1
- package/dist/prompt/build-prompt.js.map +1 -1
- package/dist/prompt/project-rules.d.ts +6 -0
- package/dist/prompt/project-rules.d.ts.map +1 -0
- package/dist/prompt/project-rules.js +37 -0
- package/dist/prompt/project-rules.js.map +1 -0
- package/dist/prompt/session-grants.d.ts +209 -0
- package/dist/prompt/session-grants.d.ts.map +1 -0
- package/dist/prompt/session-grants.js +50 -0
- package/dist/prompt/session-grants.js.map +1 -0
- package/dist/prompt/session-prompt.d.ts +3 -2
- package/dist/prompt/session-prompt.d.ts.map +1 -1
- package/dist/prompt/session-prompt.js +24 -40
- package/dist/prompt/session-prompt.js.map +1 -1
- package/dist/prompt/working-method.d.ts.map +1 -1
- package/dist/prompt/working-method.js +23 -17
- package/dist/prompt/working-method.js.map +1 -1
- package/dist/register-settings.d.ts +3 -1
- package/dist/register-settings.d.ts.map +1 -1
- package/dist/register-settings.js +5 -4
- package/dist/register-settings.js.map +1 -1
- package/dist/registry/register-connectors.d.ts +9 -0
- package/dist/registry/register-connectors.d.ts.map +1 -1
- package/dist/registry/register-connectors.js +20 -12
- package/dist/registry/register-connectors.js.map +1 -1
- package/dist/result-text.d.ts +4 -0
- package/dist/result-text.d.ts.map +1 -1
- package/dist/result-text.js +9 -0
- package/dist/result-text.js.map +1 -1
- package/dist/schemas/records.d.ts +142 -0
- package/dist/schemas/records.d.ts.map +1 -1
- package/dist/schemas/records.js +60 -2
- package/dist/schemas/records.js.map +1 -1
- package/dist/sessions/execution-root.d.ts +8 -0
- package/dist/sessions/execution-root.d.ts.map +1 -0
- package/dist/sessions/execution-root.js +25 -0
- package/dist/sessions/execution-root.js.map +1 -0
- package/dist/sessions/new-session.d.ts +5 -1
- package/dist/sessions/new-session.d.ts.map +1 -1
- package/dist/sessions/new-session.js +17 -4
- package/dist/sessions/new-session.js.map +1 -1
- package/dist/sessions/register-context.d.ts.map +1 -1
- package/dist/sessions/register-context.js +6 -5
- package/dist/sessions/register-context.js.map +1 -1
- package/dist/sessions/register-fork-export.d.ts.map +1 -1
- package/dist/sessions/register-fork-export.js +5 -3
- package/dist/sessions/register-fork-export.js.map +1 -1
- package/dist/sessions/register-lifecycle.d.ts.map +1 -1
- package/dist/sessions/register-lifecycle.js +14 -5
- package/dist/sessions/register-lifecycle.js.map +1 -1
- package/dist/sessions/register-sessions.d.ts.map +1 -1
- package/dist/sessions/register-sessions.js +0 -2
- package/dist/sessions/register-sessions.js.map +1 -1
- package/dist/sessions/session-view.d.ts +23 -0
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +4 -1
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/store/all-docs.d.ts +4 -0
- package/dist/store/all-docs.d.ts.map +1 -0
- package/dist/store/all-docs.js +14 -0
- package/dist/store/all-docs.js.map +1 -0
- package/dist/store/collections.d.ts +230 -0
- package/dist/store/collections.d.ts.map +1 -1
- package/dist/store/collections.js +16 -1
- package/dist/store/collections.js.map +1 -1
- package/dist/turns/answer-fingerprint.d.ts +4 -0
- package/dist/turns/answer-fingerprint.d.ts.map +1 -0
- package/dist/turns/answer-fingerprint.js +18 -0
- package/dist/turns/answer-fingerprint.js.map +1 -0
- package/dist/turns/apply-answer.d.ts +19 -0
- package/dist/turns/apply-answer.d.ts.map +1 -0
- package/dist/turns/apply-answer.js +47 -0
- package/dist/turns/apply-answer.js.map +1 -0
- package/dist/turns/background.d.ts +3 -0
- package/dist/turns/background.d.ts.map +1 -1
- package/dist/turns/background.js +13 -12
- package/dist/turns/background.js.map +1 -1
- package/dist/turns/call-permission.d.ts +22 -0
- package/dist/turns/call-permission.d.ts.map +1 -0
- package/dist/turns/call-permission.js +49 -0
- package/dist/turns/call-permission.js.map +1 -0
- package/dist/turns/cancel-step-job.d.ts +14 -0
- package/dist/turns/cancel-step-job.d.ts.map +1 -0
- package/dist/turns/cancel-step-job.js +35 -0
- package/dist/turns/cancel-step-job.js.map +1 -0
- package/dist/turns/child-result.d.ts +7 -0
- package/dist/turns/child-result.d.ts.map +1 -0
- package/dist/turns/child-result.js +24 -0
- package/dist/turns/child-result.js.map +1 -0
- package/dist/turns/compaction.d.ts +15 -1
- package/dist/turns/compaction.d.ts.map +1 -1
- package/dist/turns/compaction.js +44 -16
- package/dist/turns/compaction.js.map +1 -1
- package/dist/turns/end-turn-state.d.ts +42 -0
- package/dist/turns/end-turn-state.d.ts.map +1 -0
- package/dist/turns/end-turn-state.js +64 -0
- package/dist/turns/end-turn-state.js.map +1 -0
- package/dist/turns/end-turn.d.ts +7 -8
- package/dist/turns/end-turn.d.ts.map +1 -1
- package/dist/turns/end-turn.js +52 -55
- package/dist/turns/end-turn.js.map +1 -1
- package/dist/turns/helper-calls.d.ts +6 -0
- package/dist/turns/helper-calls.d.ts.map +1 -0
- package/dist/turns/helper-calls.js +8 -0
- package/dist/turns/helper-calls.js.map +1 -0
- package/dist/turns/history.d.ts +3 -1
- package/dist/turns/history.d.ts.map +1 -1
- package/dist/turns/history.js +15 -7
- package/dist/turns/history.js.map +1 -1
- package/dist/turns/lost-reply.d.ts +7 -0
- package/dist/turns/lost-reply.d.ts.map +1 -1
- package/dist/turns/lost-reply.js +12 -0
- package/dist/turns/lost-reply.js.map +1 -1
- package/dist/turns/message-blocks.d.ts +2 -0
- package/dist/turns/message-blocks.d.ts.map +1 -1
- package/dist/turns/message-blocks.js +7 -0
- package/dist/turns/message-blocks.js.map +1 -1
- package/dist/turns/model-context.d.ts +2 -0
- package/dist/turns/model-context.d.ts.map +1 -1
- package/dist/turns/model-context.js +23 -4
- package/dist/turns/model-context.js.map +1 -1
- package/dist/turns/model-retry.d.ts +2 -1
- package/dist/turns/model-retry.d.ts.map +1 -1
- package/dist/turns/model-retry.js +5 -1
- package/dist/turns/model-retry.js.map +1 -1
- package/dist/turns/read-only.d.ts +6 -0
- package/dist/turns/read-only.d.ts.map +1 -0
- package/dist/turns/read-only.js +12 -0
- package/dist/turns/read-only.js.map +1 -0
- package/dist/turns/receipt-job.d.ts +5 -0
- package/dist/turns/receipt-job.d.ts.map +1 -0
- package/dist/turns/receipt-job.js +40 -0
- package/dist/turns/receipt-job.js.map +1 -0
- package/dist/turns/recover-workspace.d.ts +9 -0
- package/dist/turns/recover-workspace.d.ts.map +1 -0
- package/dist/turns/recover-workspace.js +79 -0
- package/dist/turns/recover-workspace.js.map +1 -0
- package/dist/turns/recovery-state.d.ts +19 -0
- package/dist/turns/recovery-state.d.ts.map +1 -0
- package/dist/turns/recovery-state.js +87 -0
- package/dist/turns/recovery-state.js.map +1 -0
- package/dist/turns/register-interruptions.d.ts.map +1 -1
- package/dist/turns/register-interruptions.js +19 -8
- package/dist/turns/register-interruptions.js.map +1 -1
- package/dist/turns/register-turns.d.ts.map +1 -1
- package/dist/turns/register-turns.js +42 -31
- package/dist/turns/register-turns.js.map +1 -1
- package/dist/turns/resolve.d.ts +4 -0
- package/dist/turns/resolve.d.ts.map +1 -1
- package/dist/turns/resolve.js +19 -17
- package/dist/turns/resolve.js.map +1 -1
- package/dist/turns/retry-turn.d.ts +4 -0
- package/dist/turns/retry-turn.d.ts.map +1 -0
- package/dist/turns/retry-turn.js +20 -0
- package/dist/turns/retry-turn.js.map +1 -0
- package/dist/turns/run-calls.d.ts +21 -4
- package/dist/turns/run-calls.d.ts.map +1 -1
- package/dist/turns/run-calls.js +157 -41
- package/dist/turns/run-calls.js.map +1 -1
- package/dist/turns/run-command.d.ts +5 -3
- package/dist/turns/run-command.d.ts.map +1 -1
- package/dist/turns/run-command.js +21 -12
- package/dist/turns/run-command.js.map +1 -1
- package/dist/turns/settle-calls.d.ts +2 -8
- package/dist/turns/settle-calls.d.ts.map +1 -1
- package/dist/turns/settle-calls.js +26 -35
- package/dist/turns/settle-calls.js.map +1 -1
- package/dist/turns/start-turn.d.ts +8 -83
- package/dist/turns/start-turn.d.ts.map +1 -1
- package/dist/turns/start-turn.js +35 -24
- package/dist/turns/start-turn.js.map +1 -1
- package/dist/turns/step-claim.d.ts +39 -0
- package/dist/turns/step-claim.d.ts.map +1 -0
- package/dist/turns/step-claim.js +72 -0
- package/dist/turns/step-claim.js.map +1 -0
- package/dist/turns/step-intents.d.ts +31 -0
- package/dist/turns/step-intents.d.ts.map +1 -0
- package/dist/turns/step-intents.js +101 -0
- package/dist/turns/step-intents.js.map +1 -0
- package/dist/turns/step-next.d.ts +17 -0
- package/dist/turns/step-next.d.ts.map +1 -0
- package/dist/turns/step-next.js +25 -0
- package/dist/turns/step-next.js.map +1 -0
- package/dist/turns/step.d.ts +1 -1
- package/dist/turns/step.d.ts.map +1 -1
- package/dist/turns/step.js +108 -88
- package/dist/turns/step.js.map +1 -1
- package/dist/turns/summary-facts.d.ts +25 -0
- package/dist/turns/summary-facts.d.ts.map +1 -0
- package/dist/turns/summary-facts.js +63 -0
- package/dist/turns/summary-facts.js.map +1 -0
- package/dist/turns/usage.d.ts +7 -0
- package/dist/turns/usage.d.ts.map +1 -0
- package/dist/turns/usage.js +18 -0
- package/dist/turns/usage.js.map +1 -0
- package/dist/ui/register-ui.js +3 -3
- package/dist/ui/register-ui.js.map +1 -1
- package/dist/web/components/approval.css +2 -0
- package/dist/web/components/approval.js +233 -0
- package/dist/web/components/call.css +1 -1
- package/dist/web/components/call.js +430 -304
- package/dist/web/components/connectors.css +1 -1
- package/dist/web/components/connectors.js +595 -592
- package/dist/web/components/conversation.css +1 -1
- package/dist/web/components/conversation.js +2978 -1637
- package/dist/web/components/mcp-sign-in.css +1 -1
- package/dist/web/components/model.css +1 -1
- package/dist/web/components/model.js +138 -134
- package/dist/web/components/question.css +1 -1
- package/dist/web/components/question.js +148 -78
- package/dist/web/components/sessions.css +1 -1
- package/docs/connectors.md +3 -3
- package/locales/ar.json +95 -13
- package/locales/en.json +95 -13
- package/package.json +6 -6
- package/dist/turns/cancel-turn.d.ts +0 -3
- package/dist/turns/cancel-turn.d.ts.map +0 -1
- package/dist/turns/cancel-turn.js +0 -31
- package/dist/turns/cancel-turn.js.map +0 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { z } from '@kvman/sdk';
|
|
2
|
+
import { chatIdOf } from "../artifacts/artifact-records.js";
|
|
3
|
+
import { changedSteps, mapProgress, plannedSteps, shapeProblem } from "../maps/map-rules.js";
|
|
4
|
+
import { mapStatuses, mapStepSchema } from "../maps/map-schema.js";
|
|
5
|
+
import { invalid, notFound, tooLarge } from "../problems.js";
|
|
6
|
+
import { kebab } from "../schemas/registry.js";
|
|
7
|
+
import { findSession, now } from "../sessions/session-lookup.js";
|
|
8
|
+
import { txRecords } from "../store/collections.js";
|
|
9
|
+
import { callInput } from "./connector-command.js";
|
|
10
|
+
// The `execution-map` connector (plan 08 §8.5, ADR 0064, ADR 0072, ADR 0074, ADR 0075): the lead's plan of a task as steps that wait on each other,
|
|
11
|
+
// which the person watches as a diagram. Each change returns where the work is and what can start, so the task stays
|
|
12
|
+
// at the end of the context. A child session never has it.
|
|
13
|
+
/** What the prompt's index says the connector is for. */
|
|
14
|
+
export const executionMapDescription = 'Plan work of several steps as the execution map: your execution path, the steps you found to be the best and fastest way to deliver the request with the connectors and workers you have, and the implementation plan the person reads, agrees to, and watches as a diagram. Keep it true as you work: the person follows the work on it. A step says what it changes and how in its description, which the person opens with a press, names who does it in uses, and comes after the steps it follows. Steps side by side are branches: each is handed to a worker, so they run at the same time, and your own steps are one line. Mark a step doing when you start it and done with your evidence as soon as its check passed, and record a problem the work does not need with note instead of looking into it.';
|
|
15
|
+
/** The steps one map holds at most, and its notes. */
|
|
16
|
+
export const stepsLimit = 40;
|
|
17
|
+
export const notesLimit = 50;
|
|
18
|
+
const idMessage = 'A step id is lowercase kebab case, such as read-code, up to 50 characters.';
|
|
19
|
+
const stepId = z.string().max(50, idMessage).regex(kebab, idMessage);
|
|
20
|
+
const usedName = z.string().min(1).max(60);
|
|
21
|
+
// A step names what it uses as one name or a few (ADR 0064, 2): a model writes either, and the map keeps one text.
|
|
22
|
+
const usedText = (uses) => (Array.isArray(uses) ? uses.join(', ') : uses);
|
|
23
|
+
const payloads = {
|
|
24
|
+
set: z.strictObject({
|
|
25
|
+
goal: z.string().min(1).max(300).describe('What the whole task delivers, in one sentence.'),
|
|
26
|
+
steps: z
|
|
27
|
+
.array(z.strictObject({
|
|
28
|
+
id: stepId.describe('The name of the step within the map, in lowercase kebab case.'),
|
|
29
|
+
title: z.string().min(1).max(100).describe('What the step does, in a few words the person reads.'),
|
|
30
|
+
description: z.string().min(1).max(500).describe('What the step changes and how, naming the files or parts and the approach, in words the person reads when they open the step.'),
|
|
31
|
+
after: z.array(stepId).describe('The ids of the steps that must be finished before this one; leave it out for a step that can start at once.').exactOptional(),
|
|
32
|
+
uses: z.union([usedName, z.array(usedName).min(1).max(5)]).describe('Who does the step: a connector such as fs, or a worker such as delegate architect; several as a list.').exactOptional(),
|
|
33
|
+
check: z.string().min(1).max(300).describe('How you will verify the step: the command you will run or what you will look at.'),
|
|
34
|
+
}))
|
|
35
|
+
.min(1)
|
|
36
|
+
.max(stepsLimit)
|
|
37
|
+
.describe('The steps, each naming what it comes after.'),
|
|
38
|
+
}),
|
|
39
|
+
update: z.strictObject({
|
|
40
|
+
steps: z
|
|
41
|
+
.array(z.strictObject({
|
|
42
|
+
id: stepId.describe('The step to change.'),
|
|
43
|
+
status: z.enum(mapStatuses).describe('doing when you start it, done when it is verified, failed or skipped with a note, todo to start over.'),
|
|
44
|
+
evidence: z.string().min(10).max(500).describe('For done: what you ran or checked and what it showed.').exactOptional(),
|
|
45
|
+
note: z.string().min(1).max(300).describe('For failed and skipped: why. Otherwise a remark the person sees on the step.').exactOptional(),
|
|
46
|
+
}))
|
|
47
|
+
.min(1)
|
|
48
|
+
.max(stepsLimit)
|
|
49
|
+
.describe('The changes, applied in order; if one is refused, none is made.'),
|
|
50
|
+
}),
|
|
51
|
+
note: z.strictObject({ text: z.string().min(1).max(500).describe('A problem or idea the task does not need, for the person to decide on later.') }),
|
|
52
|
+
get: z.strictObject({}),
|
|
53
|
+
};
|
|
54
|
+
const progress = '{ goal, progress, doing, ready, waiting, failed, notes }: progress is "N of M done", and each list holds "<id>: <title>".';
|
|
55
|
+
export const executionMapCommands = {
|
|
56
|
+
set: { registration: 'kvcoder.map.set', description: 'Makes the execution map, or replaces it; a step whose id stays keeps how far it got.', payload: payloads.set, asks: false, result: progress },
|
|
57
|
+
update: { registration: 'kvcoder.map.step.update', description: 'Changes the status of one or more steps of the map.', payload: payloads.update, asks: false, result: progress },
|
|
58
|
+
note: { registration: 'kvcoder.map.note.add', description: 'Adds a finding to the map\'s "Noted for later" list.', payload: payloads.note, asks: false, result: progress },
|
|
59
|
+
get: { registration: 'kvcoder.map.state.get', description: 'Reads the whole execution map.', payload: payloads.get, asks: false },
|
|
60
|
+
};
|
|
61
|
+
const progressSchema = z.object({ goal: z.string(), progress: z.string(), doing: z.array(z.string()), ready: z.array(z.string()), waiting: z.array(z.string()), failed: z.array(z.string()), notes: z.number().int() });
|
|
62
|
+
const noMap = () => notFound('This chat has no execution map yet. Make one with execution-map set.');
|
|
63
|
+
function existing(store, chatId) {
|
|
64
|
+
const [found] = store.maps.find({ sessionId: chatId }, { limit: 1 });
|
|
65
|
+
if (found === undefined)
|
|
66
|
+
throw noMap();
|
|
67
|
+
return found;
|
|
68
|
+
}
|
|
69
|
+
// A map belongs to its chat, as an artifact does.
|
|
70
|
+
const chatOf = async (ctx, sessionId) => chatIdOf(await findSession(ctx, sessionId));
|
|
71
|
+
function saved(store, found, change) {
|
|
72
|
+
return store.maps.update(found.id, { ...change, version: found.version + 1, updatedAt: now() });
|
|
73
|
+
}
|
|
74
|
+
const commands = executionMapCommands;
|
|
75
|
+
export function registerExecutionMapConnector(ctx) {
|
|
76
|
+
ctx.registerCommand('kvcoder.map.set', {
|
|
77
|
+
description: commands.set.description,
|
|
78
|
+
input: callInput(payloads.set),
|
|
79
|
+
output: progressSchema,
|
|
80
|
+
retries: 0,
|
|
81
|
+
handle: async ({ sessionId, payload }) => {
|
|
82
|
+
const planned = payload.steps.map((step) => ({ ...step, uses: usedText(step.uses) }));
|
|
83
|
+
const problem = shapeProblem(planned);
|
|
84
|
+
if (problem !== undefined)
|
|
85
|
+
throw invalid(problem);
|
|
86
|
+
const chatId = await chatOf(ctx, sessionId);
|
|
87
|
+
return ctx.store.transaction((tx) => {
|
|
88
|
+
const store = txRecords(tx);
|
|
89
|
+
const [found] = store.maps.find({ sessionId: chatId }, { limit: 1 });
|
|
90
|
+
const steps = plannedSteps(planned, found?.steps ?? []);
|
|
91
|
+
const stamp = now();
|
|
92
|
+
if (found === undefined)
|
|
93
|
+
return mapProgress(store.maps.insert({ sessionId: chatId, goal: payload.goal, steps, notes: [], version: 1, createdAt: stamp, updatedAt: stamp }));
|
|
94
|
+
return mapProgress(saved(store, found, { goal: payload.goal, steps }));
|
|
95
|
+
});
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
ctx.registerCommand('kvcoder.map.step.update', {
|
|
99
|
+
description: commands.update.description,
|
|
100
|
+
input: callInput(payloads.update),
|
|
101
|
+
output: progressSchema,
|
|
102
|
+
retries: 0,
|
|
103
|
+
handle: async ({ sessionId, payload }) => {
|
|
104
|
+
const chatId = await chatOf(ctx, sessionId);
|
|
105
|
+
return ctx.store.transaction((tx) => {
|
|
106
|
+
const store = txRecords(tx);
|
|
107
|
+
const found = existing(store, chatId);
|
|
108
|
+
const steps = changedSteps(found.steps, payload.steps);
|
|
109
|
+
if (typeof steps === 'string')
|
|
110
|
+
throw invalid(steps);
|
|
111
|
+
return mapProgress(saved(store, found, { steps }));
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
ctx.registerCommand('kvcoder.map.note.add', {
|
|
116
|
+
description: commands.note.description,
|
|
117
|
+
input: callInput(payloads.note),
|
|
118
|
+
output: progressSchema,
|
|
119
|
+
retries: 0,
|
|
120
|
+
handle: async ({ sessionId, payload }) => {
|
|
121
|
+
const chatId = await chatOf(ctx, sessionId);
|
|
122
|
+
return ctx.store.transaction((tx) => {
|
|
123
|
+
const store = txRecords(tx);
|
|
124
|
+
const found = existing(store, chatId);
|
|
125
|
+
if (found.notes.length >= notesLimit)
|
|
126
|
+
throw tooLarge(`The map already holds ${notesLimit} notes. Report them to the person before you add more.`, notesLimit);
|
|
127
|
+
return mapProgress(saved(store, found, { notes: [...found.notes, { text: payload.text, createdAt: now() }] }));
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
ctx.registerQuery('kvcoder.map.state.get', {
|
|
132
|
+
description: commands.get.description,
|
|
133
|
+
input: callInput(payloads.get),
|
|
134
|
+
output: progressSchema.extend({ steps: z.array(mapStepSchema), noted: z.array(z.string()) }),
|
|
135
|
+
handle: async ({ sessionId }) => {
|
|
136
|
+
const chatId = await chatOf(ctx, sessionId);
|
|
137
|
+
const found = await ctx.store.transaction((tx) => existing(txRecords(tx), chatId));
|
|
138
|
+
return { ...mapProgress(found), steps: found.steps, noted: found.notes.map((note) => note.text) };
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=execution-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-map.js","sourceRoot":"","sources":["../../src/connectors/execution-map.ts"],"names":[],"mappings":"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"}
|
package/dist/connectors/fs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z, type Ctx } from '@kvman/sdk';
|
|
2
2
|
/** What the prompt's index says the connector is for. */
|
|
3
|
-
export declare const fsDescription = "Read, list, search, create, and change files in the workspace folder. Use it instead of cat, ls, grep, or shell redirection: read a file before you
|
|
3
|
+
export declare const fsDescription = "Read, list, search, create, and change files in the workspace folder. Use it instead of cat, ls, grep, or shell redirection: read a file before you change it (a change to a file this chat has not read, or that changed since, fails), write for a new file or a full rewrite (a long file in pieces with part, then assemble), one file per call, and edit for exact text replacements in an existing file.";
|
|
4
4
|
export declare const fsCommands: {
|
|
5
5
|
read: {
|
|
6
6
|
registration: string;
|
|
@@ -8,6 +8,7 @@ export declare const fsCommands: {
|
|
|
8
8
|
payload: z.ZodObject<{
|
|
9
9
|
path: z.ZodString;
|
|
10
10
|
fromLine: z.ZodExactOptional<z.ZodNumber>;
|
|
11
|
+
fromColumn: z.ZodExactOptional<z.ZodNumber>;
|
|
11
12
|
lines: z.ZodExactOptional<z.ZodNumber>;
|
|
12
13
|
}, z.core.$strict>;
|
|
13
14
|
asks: false;
|
|
@@ -28,6 +29,8 @@ export declare const fsCommands: {
|
|
|
28
29
|
payload: z.ZodObject<{
|
|
29
30
|
pattern: z.ZodString;
|
|
30
31
|
path: z.ZodExactOptional<z.ZodString>;
|
|
32
|
+
literal: z.ZodExactOptional<z.ZodBoolean>;
|
|
33
|
+
glob: z.ZodExactOptional<z.ZodString>;
|
|
31
34
|
}, z.core.$strict>;
|
|
32
35
|
asks: false;
|
|
33
36
|
bounded: true;
|
|
@@ -55,6 +58,34 @@ export declare const fsCommands: {
|
|
|
55
58
|
}, z.core.$strict>;
|
|
56
59
|
asks: true;
|
|
57
60
|
};
|
|
61
|
+
undo: {
|
|
62
|
+
registration: string;
|
|
63
|
+
description: string;
|
|
64
|
+
payload: z.ZodObject<{
|
|
65
|
+
path: z.ZodString;
|
|
66
|
+
risky: z.ZodBoolean;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
asks: true;
|
|
69
|
+
};
|
|
70
|
+
part: {
|
|
71
|
+
registration: string;
|
|
72
|
+
description: string;
|
|
73
|
+
payload: z.ZodObject<{
|
|
74
|
+
path: z.ZodString;
|
|
75
|
+
part: z.ZodNumber;
|
|
76
|
+
content: z.ZodString;
|
|
77
|
+
}, z.core.$strict>;
|
|
78
|
+
asks: false;
|
|
79
|
+
};
|
|
80
|
+
assemble: {
|
|
81
|
+
registration: string;
|
|
82
|
+
description: string;
|
|
83
|
+
payload: z.ZodObject<{
|
|
84
|
+
path: z.ZodString;
|
|
85
|
+
risky: z.ZodBoolean;
|
|
86
|
+
}, z.core.$strict>;
|
|
87
|
+
asks: true;
|
|
88
|
+
};
|
|
58
89
|
};
|
|
59
90
|
export declare function registerFsConnector(ctx: Ctx): void;
|
|
60
91
|
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/connectors/fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/connectors/fs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAkBzC,yDAAyD;AACzD,eAAO,MAAM,aAAa,mZACwX,CAAC;AAyBnZ,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASqB,CAAC;AAkE7C,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4DlD"}
|
package/dist/connectors/fs.js
CHANGED
|
@@ -1,33 +1,43 @@
|
|
|
1
|
-
import { mkdir,
|
|
1
|
+
import { mkdir, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { z } from '@kvman/sdk';
|
|
4
4
|
import { applyEdits } from "../files/edit-text.js";
|
|
5
|
+
import { changeFile, undoChange } from "../files/file-change.js";
|
|
6
|
+
import { assembleParts, partsLimit, savePart } from "../files/file-parts.js";
|
|
5
7
|
import { listEntries } from "../files/list-entries.js";
|
|
6
8
|
import { readLines } from "../files/read-file.js";
|
|
7
9
|
import { searchText } from "../files/search-text.js";
|
|
8
10
|
import { resolveInWorkspace } from "../files/workspace-path.js";
|
|
9
11
|
import { invalid, notFound } from "../problems.js";
|
|
12
|
+
import { records } from "../store/collections.js";
|
|
10
13
|
import { callInput } from "./connector-command.js";
|
|
11
14
|
import { edits, risky } from "./payload-fields.js";
|
|
12
15
|
// The `fs` connector (plan 08 §8.5, ADR 0009, 157 to 160; ADR 0011, 8): `read`, `list`, and `search` look inside the
|
|
13
16
|
// workspace folder; `write` creates or replaces a file and `edit` replaces text in one, after the approval the shell's
|
|
14
|
-
// calls get.
|
|
17
|
+
// calls get. A change is checked against what the chat last saw of the file, replaces it whole, and can be undone
|
|
18
|
+
// (ADR 0053).
|
|
15
19
|
/** What the prompt's index says the connector is for. */
|
|
16
|
-
export const fsDescription = 'Read, list, search, create, and change files in the workspace folder. Use it instead of cat, ls, grep, or shell redirection: read a file before you
|
|
20
|
+
export const fsDescription = 'Read, list, search, create, and change files in the workspace folder. Use it instead of cat, ls, grep, or shell redirection: read a file before you change it (a change to a file this chat has not read, or that changed since, fails), write for a new file or a full rewrite (a long file in pieces with part, then assemble), one file per call, and edit for exact text replacements in an existing file.';
|
|
17
21
|
const filePath = (what) => z.string().min(1).describe(`${what}, relative to the workspace folder, or absolute inside it.`);
|
|
18
22
|
const payloads = {
|
|
19
23
|
read: z.strictObject({
|
|
20
24
|
path: filePath('The file to read'),
|
|
21
25
|
fromLine: z.number().int().min(1).describe('The first line to return, counting from 1. The default is 1.').exactOptional(),
|
|
26
|
+
fromColumn: z.number().int().min(1).describe('The character of fromLine to start at, from 1: pass it only as a result gave it in next.').exactOptional(),
|
|
22
27
|
lines: z.number().int().min(1).max(2000).describe('How many lines to return: 2000 by default, which is also the most.').exactOptional(),
|
|
23
28
|
}),
|
|
24
29
|
list: z.strictObject({ path: z.string().describe('The folder to list, relative to the workspace folder, or absolute inside it; the workspace folder when left out or empty.').exactOptional() }),
|
|
25
30
|
search: z.strictObject({
|
|
26
|
-
pattern: z.string().min(1).describe('A JavaScript regular expression, matched against each line, case-sensitive.'),
|
|
31
|
+
pattern: z.string().min(1).describe('A JavaScript regular expression, matched against each line, case-sensitive; plain text with literal.'),
|
|
27
32
|
path: z.string().describe('The file or folder to search, relative to the workspace folder, or absolute inside it; the workspace folder when left out or empty.').exactOptional(),
|
|
33
|
+
literal: z.boolean().describe('true to match pattern as plain text, not as a regular expression.').exactOptional(),
|
|
34
|
+
glob: z.string().min(1).describe('Which files to search, such as *.ts or src/**/*.vue.').exactOptional(),
|
|
28
35
|
}),
|
|
29
36
|
write: z.strictObject({ path: filePath('The file to create or replace'), content: z.string().describe('The whole content of the file.'), risky }),
|
|
30
37
|
edit: z.strictObject({ path: filePath('The existing text file to change'), edits, risky }),
|
|
38
|
+
undo: z.strictObject({ path: filePath('The file whose latest change by this chat to take back'), risky }),
|
|
39
|
+
part: z.strictObject({ path: filePath('The long file being written'), part: z.number().int().min(1).max(partsLimit).describe('The number of this piece, from 1; a number sent again replaces its piece.'), content: z.string().describe('The text of this piece, at most 64 KB.') }),
|
|
40
|
+
assemble: z.strictObject({ path: filePath('The file to write from its saved parts'), risky }),
|
|
31
41
|
};
|
|
32
42
|
export const fsCommands = {
|
|
33
43
|
read: { registration: 'kvcoder.fs.file.get', description: 'Reads lines of a text file.', payload: payloads.read, asks: false, bounded: true },
|
|
@@ -35,9 +45,11 @@ export const fsCommands = {
|
|
|
35
45
|
search: { registration: 'kvcoder.fs.text.search', description: 'Finds the lines that match a regular expression, in a file or under a folder.', payload: payloads.search, asks: false, bounded: true },
|
|
36
46
|
write: { registration: 'kvcoder.fs.write', description: 'Creates a file and its parent folders, or replaces the file.', payload: payloads.write, asks: true },
|
|
37
47
|
edit: { registration: 'kvcoder.fs.edit', description: 'Replaces exact pieces of text in an existing file; if one replacement fails, nothing is written.', payload: payloads.edit, asks: true },
|
|
48
|
+
undo: { registration: 'kvcoder.fs.undo', description: "Takes back this chat's latest change to a file, when the file hasn't changed since.", payload: payloads.undo, asks: true },
|
|
49
|
+
part: { registration: 'kvcoder.fs.part', description: 'Saves one numbered piece of a long file, without writing the file yet.', payload: payloads.part, asks: false },
|
|
50
|
+
assemble: { registration: 'kvcoder.fs.assemble', description: 'Writes a file from its saved parts, in order, and drops them; names the missing numbers when one is absent.', payload: payloads.assemble, asks: true },
|
|
38
51
|
};
|
|
39
52
|
const strictText = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
|
|
40
|
-
const missing = (error) => error instanceof Error && 'code' in error && error.code === 'ENOENT';
|
|
41
53
|
// The file system's own refusals (a folder in the way, no permission) are the model's to read and fix.
|
|
42
54
|
const refusedByFileSystem = (error) => error instanceof Error && 'code' in error && typeof error.code === 'string' && /^E[A-Z]+$/.test(error.code);
|
|
43
55
|
async function asProblems(run) {
|
|
@@ -50,24 +62,7 @@ async function asProblems(run) {
|
|
|
50
62
|
throw error;
|
|
51
63
|
}
|
|
52
64
|
}
|
|
53
|
-
|
|
54
|
-
try {
|
|
55
|
-
return await stat(target);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
if (missing(error))
|
|
59
|
-
return undefined;
|
|
60
|
-
throw error;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
async function readText(target, requested) {
|
|
64
|
-
let bytes;
|
|
65
|
-
try {
|
|
66
|
-
bytes = await readFile(target);
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
throw missing(error) ? notFound(`${requested} doesn't exist.`, { path: requested }) : error;
|
|
70
|
-
}
|
|
65
|
+
function textOf(bytes, requested) {
|
|
71
66
|
try {
|
|
72
67
|
return strictText.decode(bytes);
|
|
73
68
|
}
|
|
@@ -75,39 +70,50 @@ async function readText(target, requested) {
|
|
|
75
70
|
throw invalid(`${requested} isn't valid UTF-8 text, so it isn't edited.`, { path: requested });
|
|
76
71
|
}
|
|
77
72
|
}
|
|
78
|
-
async function
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
async function changed(ctx, sessionId, requested) {
|
|
74
|
+
return { sessionId, shown: requested, real: await resolveInWorkspace(ctx.job.workspace.path, requested) };
|
|
75
|
+
}
|
|
76
|
+
async function writeTo(ctx, sessionId, input) {
|
|
77
|
+
const file = await changed(ctx, sessionId, input.path);
|
|
78
|
+
// A path below a file is refused as the file system says it, before any folder is made.
|
|
79
|
+
await stat(file.real).catch((error) => {
|
|
80
|
+
if (!(error instanceof Error && 'code' in error && error.code === 'ENOENT'))
|
|
81
|
+
throw error;
|
|
82
|
+
});
|
|
83
|
+
await mkdir(path.dirname(file.real), { recursive: true });
|
|
84
84
|
ctx.job.signal.throwIfAborted();
|
|
85
|
-
|
|
86
|
-
return { path: input.path,
|
|
85
|
+
const content = Buffer.from(input.content, 'utf8');
|
|
86
|
+
return changeFile(ctx, file, () => ({ content, value: { path: input.path, bytes: content.length } }));
|
|
87
87
|
}
|
|
88
88
|
const shownAround = 3;
|
|
89
|
-
const
|
|
90
|
-
// What an edit changed (ADR 0034, 1): the file's lines from 3 before the first changed line to 3 after
|
|
89
|
+
const shownEdge = 6;
|
|
90
|
+
// What an edit changed (ADR 0034, 1; ADR 0069, 2): the file's lines from 3 before the first changed line to 3 after
|
|
91
|
+
// the last. A longer change shows its two ends: the model wrote the lines between them itself.
|
|
91
92
|
function changedLines(edited) {
|
|
92
93
|
const lines = edited.text.replace(/^\uFEFF/, '').match(/[^\n]*\n|[^\n]+$/g) ?? [];
|
|
93
94
|
const fromLine = Math.max(edited.firstChangedLine - shownAround, 1);
|
|
94
|
-
const
|
|
95
|
-
|
|
95
|
+
const shown = lines.slice(fromLine - 1, edited.lastChangedLine + shownAround);
|
|
96
|
+
if (shown.length <= 2 * shownEdge + 1)
|
|
97
|
+
return { fromLine, content: shown.join('') };
|
|
98
|
+
return { fromLine, content: [...shown.slice(0, shownEdge), `[… ${String(shown.length - 2 * shownEdge)} lines not shown …]\n`, ...shown.slice(-shownEdge)].join('') };
|
|
96
99
|
}
|
|
97
|
-
async function editIn(ctx, input) {
|
|
98
|
-
const
|
|
99
|
-
const edited = applyEdits(await readText(target, input.path), input.edits);
|
|
100
|
+
async function editIn(ctx, sessionId, input) {
|
|
101
|
+
const file = await changed(ctx, sessionId, input.path);
|
|
100
102
|
ctx.job.signal.throwIfAborted();
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
return changeFile(ctx, file, (previous) => {
|
|
104
|
+
if (previous === undefined)
|
|
105
|
+
throw notFound(`${input.path} doesn't exist.`, { path: input.path });
|
|
106
|
+
const edited = applyEdits(textOf(previous, input.path), input.edits);
|
|
107
|
+
return { content: Buffer.from(edited.text, 'utf8'), value: { path: input.path, replacements: edited.replacements, firstChangedLine: edited.firstChangedLine, ...changedLines(edited) } };
|
|
108
|
+
});
|
|
103
109
|
}
|
|
104
110
|
const commands = fsCommands;
|
|
105
111
|
export function registerFsConnector(ctx) {
|
|
106
112
|
ctx.registerQuery('kvcoder.fs.file.get', {
|
|
107
113
|
description: commands.read.description,
|
|
108
114
|
input: callInput(payloads.read),
|
|
109
|
-
output: z.object({ path: z.string(), fromLine: z.number().int(), totalLines: z.number().int(), content: z.string() }),
|
|
110
|
-
handle: ({ payload }) => asProblems(() => readLines(ctx.job.workspace.path, payload)),
|
|
115
|
+
output: z.object({ path: z.string(), fromLine: z.number().int(), totalLines: z.number().int(), content: z.string(), truncated: z.boolean(), next: z.object({ fromLine: z.number().int(), fromColumn: z.number().int().exactOptional() }).exactOptional() }),
|
|
116
|
+
handle: ({ sessionId, payload }) => asProblems(() => readLines(ctx.job.workspace.path, payload, async (real) => (await records(ctx.store).fileViews.find({ sessionId, path: real }, { limit: 1 }))[0]?.fingerprint)),
|
|
111
117
|
});
|
|
112
118
|
ctx.registerQuery('kvcoder.fs.entry.list', {
|
|
113
119
|
description: commands.list.description,
|
|
@@ -118,7 +124,7 @@ export function registerFsConnector(ctx) {
|
|
|
118
124
|
ctx.registerQuery('kvcoder.fs.text.search', {
|
|
119
125
|
description: commands.search.description,
|
|
120
126
|
input: callInput(payloads.search),
|
|
121
|
-
output: z.object({ files: z.array(z.object({ path: z.string(), matches: z.array(z.object({ line: z.number().int(), text: z.string() })) })), truncated: z.boolean() }),
|
|
127
|
+
output: z.object({ files: z.array(z.object({ path: z.string(), matches: z.array(z.object({ line: z.number().int(), text: z.string() })) })), truncated: z.boolean(), reason: z.enum(['matches', 'time']).exactOptional() }),
|
|
122
128
|
handle: ({ payload }) => asProblems(() => searchText(ctx.job.workspace.path, payload, ctx.job.signal)),
|
|
123
129
|
});
|
|
124
130
|
ctx.registerCommand('kvcoder.fs.write', {
|
|
@@ -127,7 +133,7 @@ export function registerFsConnector(ctx) {
|
|
|
127
133
|
output: z.object({ path: z.string(), created: z.boolean(), bytes: z.number().int() }),
|
|
128
134
|
retries: 0,
|
|
129
135
|
maxInputBytes: 33_554_432,
|
|
130
|
-
handle: ({ payload }) => asProblems(() => writeTo(ctx, payload)),
|
|
136
|
+
handle: ({ sessionId, payload }) => asProblems(() => writeTo(ctx, sessionId, payload)),
|
|
131
137
|
});
|
|
132
138
|
ctx.registerCommand('kvcoder.fs.edit', {
|
|
133
139
|
description: commands.edit.description,
|
|
@@ -135,7 +141,32 @@ export function registerFsConnector(ctx) {
|
|
|
135
141
|
output: z.object({ path: z.string(), replacements: z.number().int(), firstChangedLine: z.number().int(), fromLine: z.number().int(), content: z.string() }),
|
|
136
142
|
retries: 0,
|
|
137
143
|
maxInputBytes: 33_554_432,
|
|
138
|
-
handle: ({ payload }) => asProblems(() => editIn(ctx, payload)),
|
|
144
|
+
handle: ({ sessionId, payload }) => asProblems(() => editIn(ctx, sessionId, payload)),
|
|
145
|
+
});
|
|
146
|
+
ctx.registerCommand('kvcoder.fs.part', {
|
|
147
|
+
description: commands.part.description,
|
|
148
|
+
input: callInput(payloads.part),
|
|
149
|
+
output: z.object({ path: z.string(), part: z.number().int(), parts: z.array(z.number().int()), bytes: z.number().int() }),
|
|
150
|
+
retries: 0,
|
|
151
|
+
handle: async ({ sessionId, payload }) => asProblems(async () => savePart(ctx, await changed(ctx, sessionId, payload.path), payload.part, payload.content)),
|
|
152
|
+
});
|
|
153
|
+
ctx.registerCommand('kvcoder.fs.assemble', {
|
|
154
|
+
description: commands.assemble.description,
|
|
155
|
+
input: callInput(payloads.assemble),
|
|
156
|
+
output: z.object({ path: z.string(), created: z.boolean(), bytes: z.number().int(), parts: z.number().int() }),
|
|
157
|
+
retries: 0,
|
|
158
|
+
handle: async ({ sessionId, payload }) => asProblems(async () => {
|
|
159
|
+
const file = await changed(ctx, sessionId, payload.path);
|
|
160
|
+
await mkdir(path.dirname(file.real), { recursive: true });
|
|
161
|
+
return assembleParts(ctx, file);
|
|
162
|
+
}),
|
|
163
|
+
});
|
|
164
|
+
ctx.registerCommand('kvcoder.fs.undo', {
|
|
165
|
+
description: commands.undo.description,
|
|
166
|
+
input: callInput(payloads.undo),
|
|
167
|
+
output: z.object({ path: z.string(), removed: z.boolean(), bytes: z.number().int() }),
|
|
168
|
+
retries: 0,
|
|
169
|
+
handle: async ({ sessionId, payload }) => asProblems(async () => undoChange(ctx, await changed(ctx, sessionId, payload.path))),
|
|
139
170
|
});
|
|
140
171
|
}
|
|
141
172
|
//# sourceMappingURL=fs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/connectors/fs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/connectors/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/connectors/mcp.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { z, type Ctx } from '@kvman/sdk';
|
|
2
2
|
import { type McpServer } from '../mcp/servers.ts';
|
|
3
3
|
/** What the prompt's index says the connector is for; the session's entry adds its servers. */
|
|
4
|
-
export declare const mcpDescription = "Tools from the MCP servers the person added. Call tools with { \"server\" } to see what a server offers
|
|
4
|
+
export declare const mcpDescription = "Tools from the MCP servers the person added. Call tools with { \"server\" } to see what a server offers and what each tool takes; ask for one tool with { \"server\", \"tool\" } only when you need its full schema. Each call starts the server and closes it, so a server that keeps state between tools, such as a browser, keeps it only inside one run: put the tools that belong together (open the page, fill, click, read) in one run.";
|
|
5
5
|
/** The connector's description with the workspace's servers, as the prompt's index shows it. */
|
|
6
6
|
export declare function mcpIndexDescription(servers: readonly McpServer[]): string;
|
|
7
|
+
/** The tools one run calls at most. */
|
|
8
|
+
export declare const runStepsLimit = 20;
|
|
7
9
|
export declare const mcpCommands: {
|
|
8
10
|
tools: {
|
|
9
11
|
registration: string;
|
|
@@ -27,6 +29,21 @@ export declare const mcpCommands: {
|
|
|
27
29
|
asks: true;
|
|
28
30
|
result: string;
|
|
29
31
|
};
|
|
32
|
+
run: {
|
|
33
|
+
registration: string;
|
|
34
|
+
description: string;
|
|
35
|
+
payload: z.ZodObject<{
|
|
36
|
+
server: z.ZodString;
|
|
37
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
38
|
+
tool: z.ZodString;
|
|
39
|
+
arguments: z.ZodExactOptional<z.ZodRecord<z.ZodString, z.ZodJSONSchema>>;
|
|
40
|
+
}, z.core.$strict>>;
|
|
41
|
+
timeoutMs: z.ZodExactOptional<z.ZodNumber>;
|
|
42
|
+
risky: z.ZodBoolean;
|
|
43
|
+
}, z.core.$strict>;
|
|
44
|
+
asks: true;
|
|
45
|
+
result: string;
|
|
46
|
+
};
|
|
30
47
|
};
|
|
31
48
|
/** What `kvcoder.mcp.tool.call` gives: the tool's text, and whether the tool says it failed. */
|
|
32
49
|
export declare const mcpCallSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/connectors/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW9D,+FAA+F;AAC/F,eAAO,MAAM,cAAc,mbACiZ,CAAC;AAE7a,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAEzE;AAKD,uCAAuC;AACvC,eAAO,MAAM,aAAa,KAAK,CAAC;AAuBhC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIoB,CAAC;AAE7C,gGAAgG;AAChG,eAAO,MAAM,aAAa;;;iBAAuD,CAAC;AASlF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA0DnD"}
|