@xfey/tutti 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/README.md +50 -0
- package/dist/approvals/index.d.ts +3 -0
- package/dist/approvals/index.js +3 -0
- package/dist/approvals/manager.d.ts +47 -0
- package/dist/approvals/manager.js +180 -0
- package/dist/approvals/projections.d.ts +34 -0
- package/dist/approvals/projections.js +444 -0
- package/dist/artifacts/index.d.ts +4 -0
- package/dist/artifacts/index.js +4 -0
- package/dist/artifacts/manifest.d.ts +48 -0
- package/dist/artifacts/manifest.js +334 -0
- package/dist/artifacts/preview-runtime.d.ts +97 -0
- package/dist/artifacts/preview-runtime.js +585 -0
- package/dist/artifacts/static-preview.d.ts +17 -0
- package/dist/artifacts/static-preview.js +180 -0
- package/dist/chat-assistant/index.d.ts +66 -0
- package/dist/chat-assistant/index.js +268 -0
- package/dist/checks/index.d.ts +47 -0
- package/dist/checks/index.js +169 -0
- package/dist/collaboration-state/clarification-messages.d.ts +8 -0
- package/dist/collaboration-state/clarification-messages.js +180 -0
- package/dist/collaboration-state/clarification-records.d.ts +27 -0
- package/dist/collaboration-state/clarification-records.js +266 -0
- package/dist/collaboration-state/clarification-round-writes.d.ts +14 -0
- package/dist/collaboration-state/clarification-round-writes.js +58 -0
- package/dist/collaboration-state/clarification-rounds.d.ts +19 -0
- package/dist/collaboration-state/clarification-rounds.js +347 -0
- package/dist/collaboration-state/clarification-successors.d.ts +8 -0
- package/dist/collaboration-state/clarification-successors.js +318 -0
- package/dist/collaboration-state/execution-status.d.ts +3 -0
- package/dist/collaboration-state/execution-status.js +8 -0
- package/dist/collaboration-state/index.d.ts +17 -0
- package/dist/collaboration-state/index.js +16 -0
- package/dist/collaboration-state/messages.d.ts +25 -0
- package/dist/collaboration-state/messages.js +371 -0
- package/dist/collaboration-state/read-state.d.ts +7 -0
- package/dist/collaboration-state/read-state.js +136 -0
- package/dist/collaboration-state/recovery.d.ts +6 -0
- package/dist/collaboration-state/recovery.js +125 -0
- package/dist/collaboration-state/run-recording.d.ts +5 -0
- package/dist/collaboration-state/run-recording.js +216 -0
- package/dist/collaboration-state/run-results.d.ts +12 -0
- package/dist/collaboration-state/run-results.js +202 -0
- package/dist/collaboration-state/scratchpad-source-state.d.ts +46 -0
- package/dist/collaboration-state/scratchpad-source-state.js +207 -0
- package/dist/collaboration-state/scratchpad.d.ts +8 -0
- package/dist/collaboration-state/scratchpad.js +84 -0
- package/dist/collaboration-state/serialization.d.ts +16 -0
- package/dist/collaboration-state/serialization.js +71 -0
- package/dist/collaboration-state/storage-types.d.ts +136 -0
- package/dist/collaboration-state/storage-types.js +2 -0
- package/dist/collaboration-state/task-details.d.ts +5 -0
- package/dist/collaboration-state/task-details.js +25 -0
- package/dist/collaboration-state/types.d.ts +289 -0
- package/dist/collaboration-state/types.js +2 -0
- package/dist/collaboration-state/worklist.d.ts +11 -0
- package/dist/collaboration-state/worklist.js +286 -0
- package/dist/control-plane/clarification-commands.d.ts +34 -0
- package/dist/control-plane/clarification-commands.js +106 -0
- package/dist/control-plane/command-recovery.d.ts +3 -0
- package/dist/control-plane/command-recovery.js +79 -0
- package/dist/control-plane/context-sync.d.ts +47 -0
- package/dist/control-plane/context-sync.js +207 -0
- package/dist/control-plane/event-publishers.d.ts +24 -0
- package/dist/control-plane/event-publishers.js +192 -0
- package/dist/control-plane/execution-status.d.ts +13 -0
- package/dist/control-plane/execution-status.js +130 -0
- package/dist/control-plane/follow-up-context.d.ts +27 -0
- package/dist/control-plane/follow-up-context.js +93 -0
- package/dist/control-plane/follow-up-output.d.ts +53 -0
- package/dist/control-plane/follow-up-output.js +141 -0
- package/dist/control-plane/follow-up-run.d.ts +22 -0
- package/dist/control-plane/follow-up-run.js +90 -0
- package/dist/control-plane/follow-up-start.d.ts +26 -0
- package/dist/control-plane/follow-up-start.js +101 -0
- package/dist/control-plane/formatters.d.ts +12 -0
- package/dist/control-plane/formatters.js +47 -0
- package/dist/control-plane/index.d.ts +62 -0
- package/dist/control-plane/index.js +416 -0
- package/dist/control-plane/invalidations.d.ts +12 -0
- package/dist/control-plane/invalidations.js +67 -0
- package/dist/control-plane/procedure-logging.d.ts +11 -0
- package/dist/control-plane/procedure-logging.js +95 -0
- package/dist/control-plane/project-brief-refresh.d.ts +31 -0
- package/dist/control-plane/project-brief-refresh.js +105 -0
- package/dist/control-plane/project-context-bootstrap.d.ts +39 -0
- package/dist/control-plane/project-context-bootstrap.js +107 -0
- package/dist/control-plane/reference-summary-refresh.d.ts +22 -0
- package/dist/control-plane/reference-summary-refresh.js +344 -0
- package/dist/control-plane/run-lineage.d.ts +8 -0
- package/dist/control-plane/run-lineage.js +13 -0
- package/dist/control-plane/run-result-recording.d.ts +46 -0
- package/dist/control-plane/run-result-recording.js +81 -0
- package/dist/control-plane/run-scheduler.d.ts +35 -0
- package/dist/control-plane/run-scheduler.js +110 -0
- package/dist/control-plane/run-start.d.ts +30 -0
- package/dist/control-plane/run-start.js +167 -0
- package/dist/control-plane/scratchpad-auto-refresh.d.ts +32 -0
- package/dist/control-plane/scratchpad-auto-refresh.js +150 -0
- package/dist/control-plane/scratchpad-refresh-start.d.ts +60 -0
- package/dist/control-plane/scratchpad-refresh-start.js +240 -0
- package/dist/control-plane/scratchpad-refresh.d.ts +29 -0
- package/dist/control-plane/scratchpad-refresh.js +55 -0
- package/dist/control-plane/scratchpad-source-messages.d.ts +10 -0
- package/dist/control-plane/scratchpad-source-messages.js +131 -0
- package/dist/control-plane/startup-recovery.d.ts +19 -0
- package/dist/control-plane/startup-recovery.js +113 -0
- package/dist/control-plane/task-compile-continuation.d.ts +25 -0
- package/dist/control-plane/task-compile-continuation.js +127 -0
- package/dist/control-plane/task-compile-output.d.ts +29 -0
- package/dist/control-plane/task-compile-output.js +122 -0
- package/dist/control-plane/task-compile-start.d.ts +43 -0
- package/dist/control-plane/task-compile-start.js +280 -0
- package/dist/control-plane/task-proposal.d.ts +3 -0
- package/dist/control-plane/task-proposal.js +37 -0
- package/dist/control-plane/types.d.ts +155 -0
- package/dist/control-plane/types.js +2 -0
- package/dist/control-plane/workflows/index.d.ts +4 -0
- package/dist/control-plane/workflows/index.js +4 -0
- package/dist/control-plane/workflows/openai.d.ts +34 -0
- package/dist/control-plane/workflows/openai.js +411 -0
- package/dist/control-plane/workflows/structured-output-schemas.d.ts +9 -0
- package/dist/control-plane/workflows/structured-output-schemas.js +289 -0
- package/dist/control-plane/workflows/structured-output-validators.d.ts +15 -0
- package/dist/control-plane/workflows/structured-output-validators.js +295 -0
- package/dist/control-plane/workflows/structured-output.d.ts +3 -0
- package/dist/control-plane/workflows/structured-output.js +3 -0
- package/dist/control-plane/workflows/types.d.ts +274 -0
- package/dist/control-plane/workflows/types.js +2 -0
- package/dist/control-plane/worklist-terminal-feedback.d.ts +15 -0
- package/dist/control-plane/worklist-terminal-feedback.js +135 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +32 -0
- package/dist/procedure-engine/index.d.ts +56 -0
- package/dist/procedure-engine/index.js +163 -0
- package/dist/project-brief/index.d.ts +4 -0
- package/dist/project-brief/index.js +3 -0
- package/dist/project-brief/repository.d.ts +5 -0
- package/dist/project-brief/repository.js +97 -0
- package/dist/project-brief/source.d.ts +8 -0
- package/dist/project-brief/source.js +75 -0
- package/dist/project-brief/types.d.ts +40 -0
- package/dist/project-brief/types.js +2 -0
- package/dist/project-docs/context.d.ts +34 -0
- package/dist/project-docs/context.js +86 -0
- package/dist/project-timeline/index.d.ts +20 -0
- package/dist/project-timeline/index.js +100 -0
- package/dist/prompt-templates/index.d.ts +13 -0
- package/dist/prompt-templates/index.js +86 -0
- package/dist/provider-usage/index.d.ts +37 -0
- package/dist/provider-usage/index.js +227 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +2 -0
- package/dist/providers/openai/app-server/json-rpc.d.ts +71 -0
- package/dist/providers/openai/app-server/json-rpc.js +298 -0
- package/dist/providers/openai/app-server/permission-profile.d.ts +64 -0
- package/dist/providers/openai/app-server/permission-profile.js +67 -0
- package/dist/providers/openai/app-server/provider-config.d.ts +10 -0
- package/dist/providers/openai/app-server/provider-config.js +39 -0
- package/dist/providers/openai/app-server/read-only-procedure.d.ts +68 -0
- package/dist/providers/openai/app-server/read-only-procedure.js +293 -0
- package/dist/providers/openai/app-server/runtime-helpers.d.ts +20 -0
- package/dist/providers/openai/app-server/runtime-helpers.js +151 -0
- package/dist/providers/openai/app-server/skills.d.ts +82 -0
- package/dist/providers/openai/app-server/skills.js +222 -0
- package/dist/providers/openai/app-server/smoke-cli.d.ts +2 -0
- package/dist/providers/openai/app-server/smoke-cli.js +42 -0
- package/dist/providers/openai/app-server/smoke-helpers.d.ts +19 -0
- package/dist/providers/openai/app-server/smoke-helpers.js +125 -0
- package/dist/providers/openai/app-server/smoke-provider-input.d.ts +6 -0
- package/dist/providers/openai/app-server/smoke-provider-input.js +20 -0
- package/dist/providers/openai/app-server/smoke-types.d.ts +49 -0
- package/dist/providers/openai/app-server/smoke-types.js +20 -0
- package/dist/providers/openai/app-server/smoke.d.ts +9 -0
- package/dist/providers/openai/app-server/smoke.js +157 -0
- package/dist/providers/openai/app-server/workspace-write-run.d.ts +87 -0
- package/dist/providers/openai/app-server/workspace-write-run.js +379 -0
- package/dist/providers/openai/chat-assistant.d.ts +34 -0
- package/dist/providers/openai/chat-assistant.js +72 -0
- package/dist/providers/openai/codex-app-server.d.ts +126 -0
- package/dist/providers/openai/codex-app-server.js +147 -0
- package/dist/providers/openai/credential-store.d.ts +31 -0
- package/dist/providers/openai/credential-store.js +143 -0
- package/dist/providers/openai/credential-validation.d.ts +45 -0
- package/dist/providers/openai/credential-validation.js +190 -0
- package/dist/providers/openai/index.d.ts +13 -0
- package/dist/providers/openai/index.js +13 -0
- package/dist/providers/openai/machine-local-files.d.ts +19 -0
- package/dist/providers/openai/machine-local-files.js +55 -0
- package/dist/providers/openai/model-config.d.ts +4 -0
- package/dist/providers/openai/model-config.js +4 -0
- package/dist/providers/openai/provider-config-errors.d.ts +6 -0
- package/dist/providers/openai/provider-config-errors.js +13 -0
- package/dist/providers/openai/provider-config-shape.d.ts +3 -0
- package/dist/providers/openai/provider-config-shape.js +108 -0
- package/dist/providers/openai/provider-config-toml.d.ts +13 -0
- package/dist/providers/openai/provider-config-toml.js +113 -0
- package/dist/providers/openai/provider-config.d.ts +73 -0
- package/dist/providers/openai/provider-config.js +117 -0
- package/dist/providers/openai/provider-setup.d.ts +31 -0
- package/dist/providers/openai/provider-setup.js +88 -0
- package/dist/providers/openai/sdk-procedure-runner.d.ts +70 -0
- package/dist/providers/openai/sdk-procedure-runner.js +123 -0
- package/dist/providers/openai/token-usage.d.ts +11 -0
- package/dist/providers/openai/token-usage.js +90 -0
- package/dist/run-engine/index.d.ts +61 -0
- package/dist/run-engine/index.js +140 -0
- package/dist/run-pipeline/candidate-diff.d.ts +3 -0
- package/dist/run-pipeline/candidate-diff.js +10 -0
- package/dist/run-pipeline/openai.d.ts +41 -0
- package/dist/run-pipeline/openai.js +548 -0
- package/dist/run-pipeline/promotion-reconcile.d.ts +13 -0
- package/dist/run-pipeline/promotion-reconcile.js +138 -0
- package/dist/run-pipeline/result-projections.d.ts +39 -0
- package/dist/run-pipeline/result-projections.js +115 -0
- package/dist/run-pipeline/task-run-invocation.d.ts +6 -0
- package/dist/run-pipeline/task-run-invocation.js +130 -0
- package/dist/run-pipeline/task-run-output.d.ts +38 -0
- package/dist/run-pipeline/task-run-output.js +146 -0
- package/dist/server-shell/cli/args.d.ts +7 -0
- package/dist/server-shell/cli/args.js +30 -0
- package/dist/server-shell/cli/cli.d.ts +3 -0
- package/dist/server-shell/cli/cli.js +57 -0
- package/dist/server-shell/cli/errors.d.ts +9 -0
- package/dist/server-shell/cli/errors.js +53 -0
- package/dist/server-shell/cli/git-bootstrap.d.ts +24 -0
- package/dist/server-shell/cli/git-bootstrap.js +246 -0
- package/dist/server-shell/cli/host-lifecycle.d.ts +45 -0
- package/dist/server-shell/cli/host-lifecycle.js +298 -0
- package/dist/server-shell/cli/host-relay-status.d.ts +6 -0
- package/dist/server-shell/cli/host-relay-status.js +43 -0
- package/dist/server-shell/cli/host-runtime-endpoint.d.ts +22 -0
- package/dist/server-shell/cli/host-runtime-endpoint.js +120 -0
- package/dist/server-shell/cli/host-server-runtime.d.ts +30 -0
- package/dist/server-shell/cli/host-server-runtime.js +432 -0
- package/dist/server-shell/cli/index.d.ts +8 -0
- package/dist/server-shell/cli/index.js +8 -0
- package/dist/server-shell/cli/launch.d.ts +45 -0
- package/dist/server-shell/cli/launch.js +115 -0
- package/dist/server-shell/cli/machine-local.d.ts +69 -0
- package/dist/server-shell/cli/machine-local.js +223 -0
- package/dist/server-shell/cli/project-identity.d.ts +20 -0
- package/dist/server-shell/cli/project-identity.js +87 -0
- package/dist/server-shell/cli/relay-registration.d.ts +31 -0
- package/dist/server-shell/cli/relay-registration.js +61 -0
- package/dist/server-shell/command-idempotency/index.d.ts +44 -0
- package/dist/server-shell/command-idempotency/index.js +155 -0
- package/dist/server-shell/dev-runner/cli.d.ts +2 -0
- package/dist/server-shell/dev-runner/cli.js +10 -0
- package/dist/server-shell/dev-runner/config.d.ts +38 -0
- package/dist/server-shell/dev-runner/config.js +277 -0
- package/dist/server-shell/dev-runner/host-cli.d.ts +2 -0
- package/dist/server-shell/dev-runner/host-cli.js +22 -0
- package/dist/server-shell/dev-runner/index.d.ts +3 -0
- package/dist/server-shell/dev-runner/index.js +3 -0
- package/dist/server-shell/dev-runner/runner.d.ts +30 -0
- package/dist/server-shell/dev-runner/runner.js +236 -0
- package/dist/server-shell/http/create-server.d.ts +18 -0
- package/dist/server-shell/http/create-server.js +51 -0
- package/dist/server-shell/http/host-tunnel.d.ts +15 -0
- package/dist/server-shell/http/host-tunnel.js +154 -0
- package/dist/server-shell/http/logger.d.ts +7 -0
- package/dist/server-shell/http/logger.js +19 -0
- package/dist/server-shell/http/routes/agent-context-auth.d.ts +41 -0
- package/dist/server-shell/http/routes/agent-context-auth.js +73 -0
- package/dist/server-shell/http/routes/agent-context-errors.d.ts +6 -0
- package/dist/server-shell/http/routes/agent-context-errors.js +9 -0
- package/dist/server-shell/http/routes/agent-context-messages-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-messages-routes.js +74 -0
- package/dist/server-shell/http/routes/agent-context-project-doc-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-project-doc-routes.js +86 -0
- package/dist/server-shell/http/routes/agent-context-project-docs.d.ts +40 -0
- package/dist/server-shell/http/routes/agent-context-project-docs.js +98 -0
- package/dist/server-shell/http/routes/agent-context-query.d.ts +31 -0
- package/dist/server-shell/http/routes/agent-context-query.js +72 -0
- package/dist/server-shell/http/routes/agent-context-reference-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-reference-routes.js +82 -0
- package/dist/server-shell/http/routes/agent-context-references.d.ts +21 -0
- package/dist/server-shell/http/routes/agent-context-references.js +85 -0
- package/dist/server-shell/http/routes/agent-context-shared.d.ts +34 -0
- package/dist/server-shell/http/routes/agent-context-shared.js +44 -0
- package/dist/server-shell/http/routes/agent-context-skills-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-skills-routes.js +85 -0
- package/dist/server-shell/http/routes/agent-context-workspace-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-workspace-routes.js +130 -0
- package/dist/server-shell/http/routes/agent-context.d.ts +8 -0
- package/dist/server-shell/http/routes/agent-context.js +16 -0
- package/dist/server-shell/http/routes/health.d.ts +7 -0
- package/dist/server-shell/http/routes/health.js +41 -0
- package/dist/server-shell/http/routes/local-control.d.ts +40 -0
- package/dist/server-shell/http/routes/local-control.js +260 -0
- package/dist/server-shell/http/routes/project-api/approval-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/approval-routes.js +64 -0
- package/dist/server-shell/http/routes/project-api/artifacts-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/artifacts-routes.js +166 -0
- package/dist/server-shell/http/routes/project-api/clarification-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/clarification-routes.js +150 -0
- package/dist/server-shell/http/routes/project-api/constants.d.ts +3 -0
- package/dist/server-shell/http/routes/project-api/constants.js +3 -0
- package/dist/server-shell/http/routes/project-api/errors.d.ts +26 -0
- package/dist/server-shell/http/routes/project-api/errors.js +41 -0
- package/dist/server-shell/http/routes/project-api/events-stream.d.ts +11 -0
- package/dist/server-shell/http/routes/project-api/events-stream.js +55 -0
- package/dist/server-shell/http/routes/project-api/execution-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/execution-routes.js +92 -0
- package/dist/server-shell/http/routes/project-api/headers.d.ts +2 -0
- package/dist/server-shell/http/routes/project-api/headers.js +7 -0
- package/dist/server-shell/http/routes/project-api/invalidations.d.ts +10 -0
- package/dist/server-shell/http/routes/project-api/invalidations.js +57 -0
- package/dist/server-shell/http/routes/project-api/messages-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/messages-routes.js +80 -0
- package/dist/server-shell/http/routes/project-api/openapi-approval-routes.d.ts +128 -0
- package/dist/server-shell/http/routes/project-api/openapi-approval-routes.js +32 -0
- package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.d.ts +51 -0
- package/dist/server-shell/http/routes/project-api/openapi-artifacts-routes.js +56 -0
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +466 -0
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.js +165 -0
- package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.d.ts +16 -0
- package/dist/server-shell/http/routes/project-api/openapi-diagnostic-routes.js +17 -0
- package/dist/server-shell/http/routes/project-api/openapi-execution-routes.d.ts +215 -0
- package/dist/server-shell/http/routes/project-api/openapi-execution-routes.js +75 -0
- package/dist/server-shell/http/routes/project-api/openapi-path-parameters.d.ts +9 -0
- package/dist/server-shell/http/routes/project-api/openapi-path-parameters.js +18 -0
- package/dist/server-shell/http/routes/project-api/openapi-skills-routes.d.ts +60 -0
- package/dist/server-shell/http/routes/project-api/openapi-skills-routes.js +51 -0
- package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.d.ts +115 -0
- package/dist/server-shell/http/routes/project-api/openapi-timeline-routes.js +17 -0
- package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.d.ts +323 -0
- package/dist/server-shell/http/routes/project-api/openapi-viewer-routes.js +120 -0
- package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.d.ts +1317 -0
- package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.js +95 -0
- package/dist/server-shell/http/routes/project-api/openapi.d.ts +2457 -0
- package/dist/server-shell/http/routes/project-api/openapi.js +30 -0
- package/dist/server-shell/http/routes/project-api/payload-validation.d.ts +6 -0
- package/dist/server-shell/http/routes/project-api/payload-validation.js +36 -0
- package/dist/server-shell/http/routes/project-api/project-docs-helpers.d.ts +9 -0
- package/dist/server-shell/http/routes/project-api/project-docs-helpers.js +17 -0
- package/dist/server-shell/http/routes/project-api/project-docs-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/project-docs-routes.js +151 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-projection.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-projection.js +658 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/project-timeline-routes.js +23 -0
- package/dist/server-shell/http/routes/project-api/read-state-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/read-state-routes.js +82 -0
- package/dist/server-shell/http/routes/project-api/reference-files-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/reference-files-routes.js +184 -0
- package/dist/server-shell/http/routes/project-api/reference-files.d.ts +17 -0
- package/dist/server-shell/http/routes/project-api/reference-files.js +212 -0
- package/dist/server-shell/http/routes/project-api/repo-projection.d.ts +3 -0
- package/dist/server-shell/http/routes/project-api/repo-projection.js +58 -0
- package/dist/server-shell/http/routes/project-api/schemas.d.ts +1351 -0
- package/dist/server-shell/http/routes/project-api/schemas.js +441 -0
- package/dist/server-shell/http/routes/project-api/session-requirements.d.ts +10 -0
- package/dist/server-shell/http/routes/project-api/session-requirements.js +60 -0
- package/dist/server-shell/http/routes/project-api/skills-helpers.d.ts +7 -0
- package/dist/server-shell/http/routes/project-api/skills-helpers.js +48 -0
- package/dist/server-shell/http/routes/project-api/skills-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/skills-routes.js +185 -0
- package/dist/server-shell/http/routes/project-api/staged-uploads.d.ts +14 -0
- package/dist/server-shell/http/routes/project-api/staged-uploads.js +149 -0
- package/dist/server-shell/http/routes/project-api/system-routes.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api/system-routes.js +141 -0
- package/dist/server-shell/http/routes/project-api/types.d.ts +137 -0
- package/dist/server-shell/http/routes/project-api/types.js +2 -0
- package/dist/server-shell/http/routes/project-api/viewer-projections.d.ts +17 -0
- package/dist/server-shell/http/routes/project-api/viewer-projections.js +102 -0
- package/dist/server-shell/http/routes/project-api/viewer-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/viewer-routes.js +100 -0
- package/dist/server-shell/http/routes/project-api/workflow-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/project-api/workflow-routes.js +85 -0
- package/dist/server-shell/http/routes/project-api/workspace-projections.d.ts +5 -0
- package/dist/server-shell/http/routes/project-api/workspace-projections.js +103 -0
- package/dist/server-shell/http/routes/project-api.d.ts +8 -0
- package/dist/server-shell/http/routes/project-api.js +34 -0
- package/dist/server-shell/http/sse-replay-buffer.d.ts +54 -0
- package/dist/server-shell/http/sse-replay-buffer.js +110 -0
- package/dist/server-shell/http/sse.d.ts +12 -0
- package/dist/server-shell/http/sse.js +22 -0
- package/dist/server-shell/http/static-web.d.ts +6 -0
- package/dist/server-shell/http/static-web.js +52 -0
- package/dist/server-shell/http/validation.d.ts +13 -0
- package/dist/server-shell/http/validation.js +136 -0
- package/dist/server-shell/http/workspace-events.d.ts +38 -0
- package/dist/server-shell/http/workspace-events.js +98 -0
- package/dist/server-shell/session/relay-session-context.d.ts +25 -0
- package/dist/server-shell/session/relay-session-context.js +49 -0
- package/dist/server-shell/smoke/e2e-client.d.ts +59 -0
- package/dist/server-shell/smoke/e2e-client.js +304 -0
- package/dist/server-shell/smoke/index.d.ts +2 -0
- package/dist/server-shell/smoke/index.js +2 -0
- package/dist/skills/constants.d.ts +8 -0
- package/dist/skills/constants.js +9 -0
- package/dist/skills/errors.d.ts +6 -0
- package/dist/skills/errors.js +9 -0
- package/dist/skills/index.d.ts +41 -0
- package/dist/skills/index.js +171 -0
- package/dist/skills/metadata.d.ts +8 -0
- package/dist/skills/metadata.js +80 -0
- package/dist/skills/zip-import.d.ts +18 -0
- package/dist/skills/zip-import.js +241 -0
- package/dist/store/command-recovery.d.ts +26 -0
- package/dist/store/command-recovery.js +71 -0
- package/dist/store/index.d.ts +6 -0
- package/dist/store/index.js +6 -0
- package/dist/store/lifecycle.d.ts +23 -0
- package/dist/store/lifecycle.js +53 -0
- package/dist/store/metadata.d.ts +18 -0
- package/dist/store/metadata.js +30 -0
- package/dist/store/migrations.d.ts +20 -0
- package/dist/store/migrations.js +76 -0
- package/dist/store/sqlite.d.ts +11 -0
- package/dist/store/sqlite.js +21 -0
- package/dist/workspace-ops/constants.d.ts +15 -0
- package/dist/workspace-ops/constants.js +20 -0
- package/dist/workspace-ops/errors.d.ts +8 -0
- package/dist/workspace-ops/errors.js +33 -0
- package/dist/workspace-ops/git.d.ts +13 -0
- package/dist/workspace-ops/git.js +53 -0
- package/dist/workspace-ops/index.d.ts +11 -0
- package/dist/workspace-ops/index.js +9 -0
- package/dist/workspace-ops/mainline.d.ts +2 -0
- package/dist/workspace-ops/mainline.js +16 -0
- package/dist/workspace-ops/project-doc-templates.d.ts +12 -0
- package/dist/workspace-ops/project-doc-templates.js +180 -0
- package/dist/workspace-ops/project-docs.d.ts +7 -0
- package/dist/workspace-ops/project-docs.js +156 -0
- package/dist/workspace-ops/reference-files.d.ts +3 -0
- package/dist/workspace-ops/reference-files.js +137 -0
- package/dist/workspace-ops/reference-metadata.d.ts +13 -0
- package/dist/workspace-ops/reference-metadata.js +86 -0
- package/dist/workspace-ops/reference-summaries.d.ts +17 -0
- package/dist/workspace-ops/reference-summaries.js +298 -0
- package/dist/workspace-ops/run-workspaces.d.ts +18 -0
- package/dist/workspace-ops/run-workspaces.js +271 -0
- package/dist/workspace-ops/types.d.ts +219 -0
- package/dist/workspace-ops/types.js +2 -0
- package/dist/workspace-ops/viewer-file.d.ts +4 -0
- package/dist/workspace-ops/viewer-file.js +207 -0
- package/dist/workspace-ops/viewer-git.d.ts +20 -0
- package/dist/workspace-ops/viewer-git.js +111 -0
- package/dist/workspace-ops/viewer-paths.d.ts +3 -0
- package/dist/workspace-ops/viewer-paths.js +13 -0
- package/dist/workspace-ops/viewer-tree.d.ts +9 -0
- package/dist/workspace-ops/viewer-tree.js +144 -0
- package/dist/workspace-ops/viewer.d.ts +5 -0
- package/dist/workspace-ops/viewer.js +5 -0
- package/migrations/0001_init.sql +674 -0
- package/migrations/0002_allow_sealed_round_successor_note.sql +14 -0
- package/migrations/0003_drop_scratchpad_source_message_refs.sql +1 -0
- package/migrations/0004_read_state.sql +109 -0
- package/migrations/0005_provider_usage.sql +15 -0
- package/migrations/0006_scratchpad_source_state.sql +29 -0
- package/migrations/0007_workspace_signal_read_state_scopes.sql +74 -0
- package/migrations/0008_provider_usage_anchors.sql +32 -0
- package/migrations/0009_project_timeline_events.sql +33 -0
- package/migrations/0010_project_brief.sql +13 -0
- package/migrations/0011_message_author_avatar.sql +5 -0
- package/migrations/README.md +44 -0
- package/node_modules/@tutti/relay-client/dist/host-control.d.ts +164 -0
- package/node_modules/@tutti/relay-client/dist/host-control.js +284 -0
- package/node_modules/@tutti/relay-client/dist/index.d.ts +3 -0
- package/node_modules/@tutti/relay-client/dist/index.js +3 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-frames.d.ts +8 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-frames.js +124 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-types.d.ts +61 -0
- package/node_modules/@tutti/relay-client/dist/tunnel-types.js +2 -0
- package/node_modules/@tutti/relay-client/dist/tunnel.d.ts +4 -0
- package/node_modules/@tutti/relay-client/dist/tunnel.js +144 -0
- package/node_modules/@tutti/relay-client/package.json +18 -0
- package/node_modules/@tutti/shared/dist/domain/index.d.ts +59 -0
- package/node_modules/@tutti/shared/dist/domain/index.js +37 -0
- package/node_modules/@tutti/shared/dist/ids/index.d.ts +85 -0
- package/node_modules/@tutti/shared/dist/ids/index.js +88 -0
- package/node_modules/@tutti/shared/dist/index.d.ts +6 -0
- package/node_modules/@tutti/shared/dist/index.js +6 -0
- package/node_modules/@tutti/shared/dist/schemas/api/approvals.d.ts +307 -0
- package/node_modules/@tutti/shared/dist/schemas/api/approvals.js +110 -0
- package/node_modules/@tutti/shared/dist/schemas/api/artifacts.d.ts +173 -0
- package/node_modules/@tutti/shared/dist/schemas/api/artifacts.js +107 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +704 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.js +224 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +18 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.js +17 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +370 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.js +134 -0
- package/node_modules/@tutti/shared/dist/schemas/api/openapi.d.ts +32 -0
- package/node_modules/@tutti/shared/dist/schemas/api/openapi.js +100 -0
- package/node_modules/@tutti/shared/dist/schemas/api/primitives.d.ts +109 -0
- package/node_modules/@tutti/shared/dist/schemas/api/primitives.js +174 -0
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.d.ts +149 -0
- package/node_modules/@tutti/shared/dist/schemas/api/project-timeline.js +44 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-config.d.ts +21 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-config.js +33 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.d.ts +87 -0
- package/node_modules/@tutti/shared/dist/schemas/api/provider-usage.js +48 -0
- package/node_modules/@tutti/shared/dist/schemas/api/read-state.d.ts +89 -0
- package/node_modules/@tutti/shared/dist/schemas/api/read-state.js +39 -0
- package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.d.ts +484 -0
- package/node_modules/@tutti/shared/dist/schemas/api/runtime-events.js +185 -0
- package/node_modules/@tutti/shared/dist/schemas/api/skills.d.ts +88 -0
- package/node_modules/@tutti/shared/dist/schemas/api/skills.js +71 -0
- package/node_modules/@tutti/shared/dist/schemas/api/types.d.ts +253 -0
- package/node_modules/@tutti/shared/dist/schemas/api/types.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/api/uploads.d.ts +103 -0
- package/node_modules/@tutti/shared/dist/schemas/api/uploads.js +78 -0
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +484 -0
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.js +267 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.d.ts +264 -0
- package/node_modules/@tutti/shared/dist/schemas/api/work-items.js +196 -0
- package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.d.ts +179 -0
- package/node_modules/@tutti/shared/dist/schemas/api/workspace-commands.js +137 -0
- package/node_modules/@tutti/shared/dist/schemas/domain/index.d.ts +31 -0
- package/node_modules/@tutti/shared/dist/schemas/domain/index.js +49 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +46 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.js +46 -0
- package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.d.ts +40 -0
- package/node_modules/@tutti/shared/dist/utils/command-idempotency/index.js +100 -0
- package/node_modules/@tutti/shared/dist/utils/index.d.ts +5 -0
- package/node_modules/@tutti/shared/dist/utils/index.js +5 -0
- package/node_modules/@tutti/shared/dist/utils/logging/index.d.ts +34 -0
- package/node_modules/@tutti/shared/dist/utils/logging/index.js +130 -0
- package/node_modules/@tutti/shared/dist/utils/path-policy/index.d.ts +13 -0
- package/node_modules/@tutti/shared/dist/utils/path-policy/index.js +80 -0
- package/node_modules/@tutti/shared/dist/utils/redaction/index.d.ts +19 -0
- package/node_modules/@tutti/shared/dist/utils/redaction/index.js +158 -0
- package/node_modules/@tutti/shared/package.json +63 -0
- package/package.json +47 -0
- package/prompts/README.md +36 -0
- package/prompts/chat-assistant.md +43 -0
- package/prompts/codex/README.md +13 -0
- package/prompts/codex/no-write-smoke.md +35 -0
- package/prompts/procedures/README.md +38 -0
- package/prompts/procedures/context-sync.md +66 -0
- package/prompts/procedures/follow-up-check.md +83 -0
- package/prompts/procedures/project-brief-refresh.md +79 -0
- package/prompts/procedures/project-context-bootstrap.md +58 -0
- package/prompts/procedures/reference-file-summary.md +49 -0
- package/prompts/procedures/scratchpad-refresh.md +83 -0
- package/prompts/procedures/task-compile.md +116 -0
- package/prompts/prompt-flow-experiment-plan.md +203 -0
- package/prompts/prompt-flow-map.md +478 -0
- package/prompts/runs/README.md +17 -0
- package/prompts/runs/task-continuation.md +148 -0
- package/prompts/runs/task-retry.md +153 -0
- package/prompts/runs/task-run.md +135 -0
- package/prompts/skills/README.md +25 -0
- package/prompts/skills/read-main-chat/README.md +8 -0
- package/prompts/skills/read-main-chat/SKILL.md +18 -0
- package/prompts/skills/read-project-docs/README.md +13 -0
- package/prompts/skills/read-project-docs/SKILL.md +42 -0
- package/prompts/skills/read-references/README.md +9 -0
- package/prompts/skills/read-references/SKILL.md +26 -0
- package/prompts/skills/read-scratchpad/README.md +8 -0
- package/prompts/skills/read-scratchpad/SKILL.md +16 -0
- package/prompts/skills/read-user-skills/README.md +7 -0
- package/prompts/skills/read-user-skills/SKILL.md +22 -0
- package/prompts/skills/read-worklist/README.md +9 -0
- package/prompts/skills/read-worklist/SKILL.md +20 -0
- package/web/assets/Tutti-B7gEyTp1.png +0 -0
- package/web/assets/Tutti-square-BqFU7F0D.png +0 -0
- package/web/assets/index-CWkBgHap.js +29 -0
- package/web/assets/index-D8xJY8Gr.css +1 -0
- package/web/index.html +13 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS read_notification_events (
|
|
2
|
+
event_cursor INTEGER PRIMARY KEY,
|
|
3
|
+
scope TEXT NOT NULL CHECK (scope IN ('chat', 'worklist')),
|
|
4
|
+
source_kind TEXT NOT NULL CHECK (length(source_kind) > 0),
|
|
5
|
+
source_ref TEXT NOT NULL CHECK (length(source_ref) > 0),
|
|
6
|
+
actor_kind TEXT CHECK (
|
|
7
|
+
actor_kind IS NULL OR actor_kind IN ('human', 'system', 'agent')
|
|
8
|
+
),
|
|
9
|
+
actor_ref TEXT,
|
|
10
|
+
occurred_at TEXT NOT NULL,
|
|
11
|
+
created_at TEXT NOT NULL
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
CREATE INDEX IF NOT EXISTS idx_read_notification_events_scope_cursor
|
|
15
|
+
ON read_notification_events (scope, event_cursor);
|
|
16
|
+
|
|
17
|
+
CREATE INDEX IF NOT EXISTS idx_read_notification_events_scope_occurred
|
|
18
|
+
ON read_notification_events (scope, occurred_at, event_cursor);
|
|
19
|
+
|
|
20
|
+
CREATE TABLE IF NOT EXISTS read_state_cursors (
|
|
21
|
+
account_ref TEXT NOT NULL,
|
|
22
|
+
scope TEXT NOT NULL CHECK (scope IN ('chat', 'worklist')),
|
|
23
|
+
read_event_cursor INTEGER NOT NULL DEFAULT 0 CHECK (read_event_cursor >= 0),
|
|
24
|
+
read_at TEXT NOT NULL,
|
|
25
|
+
updated_at TEXT NOT NULL,
|
|
26
|
+
PRIMARY KEY (account_ref, scope)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_read_state_cursors_account
|
|
30
|
+
ON read_state_cursors (account_ref);
|
|
31
|
+
|
|
32
|
+
INSERT INTO read_notification_events (
|
|
33
|
+
scope,
|
|
34
|
+
source_kind,
|
|
35
|
+
source_ref,
|
|
36
|
+
actor_kind,
|
|
37
|
+
actor_ref,
|
|
38
|
+
occurred_at,
|
|
39
|
+
created_at
|
|
40
|
+
)
|
|
41
|
+
SELECT
|
|
42
|
+
'chat',
|
|
43
|
+
'message',
|
|
44
|
+
id,
|
|
45
|
+
author_kind,
|
|
46
|
+
author_ref,
|
|
47
|
+
created_at,
|
|
48
|
+
created_at
|
|
49
|
+
FROM messages;
|
|
50
|
+
|
|
51
|
+
INSERT INTO read_notification_events (
|
|
52
|
+
scope,
|
|
53
|
+
source_kind,
|
|
54
|
+
source_ref,
|
|
55
|
+
occurred_at,
|
|
56
|
+
created_at
|
|
57
|
+
)
|
|
58
|
+
SELECT
|
|
59
|
+
'worklist',
|
|
60
|
+
'task_module',
|
|
61
|
+
id,
|
|
62
|
+
COALESCE(updated_at, created_at),
|
|
63
|
+
COALESCE(updated_at, created_at)
|
|
64
|
+
FROM task_modules;
|
|
65
|
+
|
|
66
|
+
INSERT INTO read_notification_events (
|
|
67
|
+
scope,
|
|
68
|
+
source_kind,
|
|
69
|
+
source_ref,
|
|
70
|
+
occurred_at,
|
|
71
|
+
created_at
|
|
72
|
+
)
|
|
73
|
+
SELECT
|
|
74
|
+
'worklist',
|
|
75
|
+
'task',
|
|
76
|
+
id,
|
|
77
|
+
updated_at,
|
|
78
|
+
updated_at
|
|
79
|
+
FROM tasks;
|
|
80
|
+
|
|
81
|
+
INSERT INTO read_notification_events (
|
|
82
|
+
scope,
|
|
83
|
+
source_kind,
|
|
84
|
+
source_ref,
|
|
85
|
+
occurred_at,
|
|
86
|
+
created_at
|
|
87
|
+
)
|
|
88
|
+
SELECT
|
|
89
|
+
'worklist',
|
|
90
|
+
'task_detail',
|
|
91
|
+
task_id,
|
|
92
|
+
updated_at,
|
|
93
|
+
updated_at
|
|
94
|
+
FROM task_details;
|
|
95
|
+
|
|
96
|
+
INSERT INTO read_notification_events (
|
|
97
|
+
scope,
|
|
98
|
+
source_kind,
|
|
99
|
+
source_ref,
|
|
100
|
+
occurred_at,
|
|
101
|
+
created_at
|
|
102
|
+
)
|
|
103
|
+
SELECT
|
|
104
|
+
'worklist',
|
|
105
|
+
'run_result',
|
|
106
|
+
id,
|
|
107
|
+
created_at,
|
|
108
|
+
created_at
|
|
109
|
+
FROM run_results;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS provider_usage_events (
|
|
2
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
3
|
+
provider TEXT NOT NULL CHECK (provider IN ('openai')),
|
|
4
|
+
source TEXT NOT NULL CHECK (length(source) > 0),
|
|
5
|
+
model TEXT,
|
|
6
|
+
input_tokens INTEGER NOT NULL DEFAULT 0 CHECK (input_tokens >= 0),
|
|
7
|
+
cached_input_tokens INTEGER NOT NULL DEFAULT 0 CHECK (cached_input_tokens >= 0),
|
|
8
|
+
output_tokens INTEGER NOT NULL DEFAULT 0 CHECK (output_tokens >= 0),
|
|
9
|
+
reasoning_output_tokens INTEGER NOT NULL DEFAULT 0 CHECK (reasoning_output_tokens >= 0),
|
|
10
|
+
total_tokens INTEGER NOT NULL CHECK (total_tokens >= 0),
|
|
11
|
+
recorded_at TEXT NOT NULL
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
CREATE INDEX IF NOT EXISTS idx_provider_usage_events_recorded_at
|
|
15
|
+
ON provider_usage_events (recorded_at, id);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS scratchpad_source_state (
|
|
2
|
+
id TEXT PRIMARY KEY CHECK (id = 'current'),
|
|
3
|
+
main_chat_cursor_created_at TEXT,
|
|
4
|
+
main_chat_cursor_message_id TEXT,
|
|
5
|
+
task_compile_cursor_submitted_at TEXT,
|
|
6
|
+
task_compile_cursor_round_id TEXT,
|
|
7
|
+
dirty_since TEXT,
|
|
8
|
+
in_flight_activity_ref TEXT,
|
|
9
|
+
in_flight_started_at TEXT,
|
|
10
|
+
last_completed_at TEXT,
|
|
11
|
+
last_failed_at TEXT,
|
|
12
|
+
backoff_until TEXT,
|
|
13
|
+
updated_at TEXT NOT NULL,
|
|
14
|
+
CHECK (
|
|
15
|
+
(main_chat_cursor_created_at IS NULL AND main_chat_cursor_message_id IS NULL)
|
|
16
|
+
OR (main_chat_cursor_created_at IS NOT NULL AND main_chat_cursor_message_id IS NOT NULL)
|
|
17
|
+
),
|
|
18
|
+
CHECK (
|
|
19
|
+
(task_compile_cursor_submitted_at IS NULL AND task_compile_cursor_round_id IS NULL)
|
|
20
|
+
OR (
|
|
21
|
+
task_compile_cursor_submitted_at IS NOT NULL
|
|
22
|
+
AND task_compile_cursor_round_id IS NOT NULL
|
|
23
|
+
)
|
|
24
|
+
),
|
|
25
|
+
CHECK (
|
|
26
|
+
(in_flight_activity_ref IS NULL AND in_flight_started_at IS NULL)
|
|
27
|
+
OR (in_flight_activity_ref IS NOT NULL AND in_flight_started_at IS NOT NULL)
|
|
28
|
+
)
|
|
29
|
+
);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
ALTER TABLE read_notification_events RENAME TO read_notification_events_old;
|
|
2
|
+
|
|
3
|
+
CREATE TABLE read_notification_events (
|
|
4
|
+
event_cursor INTEGER PRIMARY KEY,
|
|
5
|
+
scope TEXT NOT NULL CHECK (scope IN ('chat', 'worklist', 'references', 'skills')),
|
|
6
|
+
source_kind TEXT NOT NULL CHECK (length(source_kind) > 0),
|
|
7
|
+
source_ref TEXT NOT NULL CHECK (length(source_ref) > 0),
|
|
8
|
+
actor_kind TEXT CHECK (
|
|
9
|
+
actor_kind IS NULL OR actor_kind IN ('human', 'system', 'agent')
|
|
10
|
+
),
|
|
11
|
+
actor_ref TEXT,
|
|
12
|
+
occurred_at TEXT NOT NULL,
|
|
13
|
+
created_at TEXT NOT NULL
|
|
14
|
+
);
|
|
15
|
+
|
|
16
|
+
INSERT INTO read_notification_events (
|
|
17
|
+
event_cursor,
|
|
18
|
+
scope,
|
|
19
|
+
source_kind,
|
|
20
|
+
source_ref,
|
|
21
|
+
actor_kind,
|
|
22
|
+
actor_ref,
|
|
23
|
+
occurred_at,
|
|
24
|
+
created_at
|
|
25
|
+
)
|
|
26
|
+
SELECT
|
|
27
|
+
event_cursor,
|
|
28
|
+
scope,
|
|
29
|
+
source_kind,
|
|
30
|
+
source_ref,
|
|
31
|
+
actor_kind,
|
|
32
|
+
actor_ref,
|
|
33
|
+
occurred_at,
|
|
34
|
+
created_at
|
|
35
|
+
FROM read_notification_events_old;
|
|
36
|
+
|
|
37
|
+
DROP TABLE read_notification_events_old;
|
|
38
|
+
|
|
39
|
+
CREATE INDEX idx_read_notification_events_scope_cursor
|
|
40
|
+
ON read_notification_events (scope, event_cursor);
|
|
41
|
+
|
|
42
|
+
CREATE INDEX idx_read_notification_events_scope_occurred
|
|
43
|
+
ON read_notification_events (scope, occurred_at, event_cursor);
|
|
44
|
+
|
|
45
|
+
ALTER TABLE read_state_cursors RENAME TO read_state_cursors_old;
|
|
46
|
+
|
|
47
|
+
CREATE TABLE read_state_cursors (
|
|
48
|
+
account_ref TEXT NOT NULL,
|
|
49
|
+
scope TEXT NOT NULL CHECK (scope IN ('chat', 'worklist', 'references', 'skills')),
|
|
50
|
+
read_event_cursor INTEGER NOT NULL DEFAULT 0 CHECK (read_event_cursor >= 0),
|
|
51
|
+
read_at TEXT NOT NULL,
|
|
52
|
+
updated_at TEXT NOT NULL,
|
|
53
|
+
PRIMARY KEY (account_ref, scope)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
INSERT INTO read_state_cursors (
|
|
57
|
+
account_ref,
|
|
58
|
+
scope,
|
|
59
|
+
read_event_cursor,
|
|
60
|
+
read_at,
|
|
61
|
+
updated_at
|
|
62
|
+
)
|
|
63
|
+
SELECT
|
|
64
|
+
account_ref,
|
|
65
|
+
scope,
|
|
66
|
+
read_event_cursor,
|
|
67
|
+
read_at,
|
|
68
|
+
updated_at
|
|
69
|
+
FROM read_state_cursors_old;
|
|
70
|
+
|
|
71
|
+
DROP TABLE read_state_cursors_old;
|
|
72
|
+
|
|
73
|
+
CREATE INDEX idx_read_state_cursors_account
|
|
74
|
+
ON read_state_cursors (account_ref);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
ALTER TABLE provider_usage_events
|
|
2
|
+
ADD COLUMN activity_ref TEXT;
|
|
3
|
+
|
|
4
|
+
ALTER TABLE provider_usage_events
|
|
5
|
+
ADD COLUMN workflow_ref TEXT;
|
|
6
|
+
|
|
7
|
+
ALTER TABLE provider_usage_events
|
|
8
|
+
ADD COLUMN task_id TEXT;
|
|
9
|
+
|
|
10
|
+
ALTER TABLE provider_usage_events
|
|
11
|
+
ADD COLUMN run_result_id TEXT;
|
|
12
|
+
|
|
13
|
+
ALTER TABLE provider_usage_events
|
|
14
|
+
ADD COLUMN run_lineage_kind TEXT CHECK (
|
|
15
|
+
run_lineage_kind IS NULL OR run_lineage_kind IN ('initial', 'continuation', 'retry')
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
CREATE INDEX IF NOT EXISTS idx_provider_usage_events_activity_ref
|
|
19
|
+
ON provider_usage_events (activity_ref, recorded_at, id)
|
|
20
|
+
WHERE activity_ref IS NOT NULL;
|
|
21
|
+
|
|
22
|
+
CREATE INDEX IF NOT EXISTS idx_provider_usage_events_workflow_ref
|
|
23
|
+
ON provider_usage_events (workflow_ref, recorded_at, id)
|
|
24
|
+
WHERE workflow_ref IS NOT NULL;
|
|
25
|
+
|
|
26
|
+
CREATE INDEX IF NOT EXISTS idx_provider_usage_events_task_id
|
|
27
|
+
ON provider_usage_events (task_id, recorded_at, id)
|
|
28
|
+
WHERE task_id IS NOT NULL;
|
|
29
|
+
|
|
30
|
+
CREATE INDEX IF NOT EXISTS idx_provider_usage_events_run_result_id
|
|
31
|
+
ON provider_usage_events (run_result_id, recorded_at, id)
|
|
32
|
+
WHERE run_result_id IS NOT NULL;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS project_timeline_events (
|
|
2
|
+
id TEXT PRIMARY KEY,
|
|
3
|
+
event_kind TEXT NOT NULL CHECK (
|
|
4
|
+
event_kind IN ('context_sync', 'reference_summary', 'promotion_reconcile')
|
|
5
|
+
),
|
|
6
|
+
status TEXT NOT NULL CHECK (
|
|
7
|
+
status IN ('running', 'completed', 'failed', 'needs_human', 'skipped')
|
|
8
|
+
),
|
|
9
|
+
summary TEXT,
|
|
10
|
+
activity_ref TEXT,
|
|
11
|
+
workflow_ref TEXT,
|
|
12
|
+
task_id TEXT,
|
|
13
|
+
commit_oid TEXT,
|
|
14
|
+
meta_json TEXT NOT NULL DEFAULT '[]' CHECK (
|
|
15
|
+
json_valid(meta_json) AND json_type(meta_json) = 'array'
|
|
16
|
+
),
|
|
17
|
+
occurred_at TEXT NOT NULL
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
CREATE INDEX IF NOT EXISTS idx_project_timeline_events_order
|
|
21
|
+
ON project_timeline_events (occurred_at, id);
|
|
22
|
+
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_project_timeline_events_activity_ref
|
|
24
|
+
ON project_timeline_events (activity_ref, occurred_at, id)
|
|
25
|
+
WHERE activity_ref IS NOT NULL;
|
|
26
|
+
|
|
27
|
+
CREATE INDEX IF NOT EXISTS idx_project_timeline_events_workflow_ref
|
|
28
|
+
ON project_timeline_events (workflow_ref, occurred_at, id)
|
|
29
|
+
WHERE workflow_ref IS NOT NULL;
|
|
30
|
+
|
|
31
|
+
CREATE INDEX IF NOT EXISTS idx_project_timeline_events_task_id
|
|
32
|
+
ON project_timeline_events (task_id, occurred_at, id)
|
|
33
|
+
WHERE task_id IS NOT NULL;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
CREATE TABLE IF NOT EXISTS project_brief (
|
|
2
|
+
id TEXT PRIMARY KEY CHECK (id = 'current'),
|
|
3
|
+
product_summary TEXT NOT NULL,
|
|
4
|
+
tech_summary TEXT NOT NULL,
|
|
5
|
+
structure_summary TEXT NOT NULL,
|
|
6
|
+
principles_summary TEXT NOT NULL,
|
|
7
|
+
source_docs_json TEXT NOT NULL CHECK (
|
|
8
|
+
json_valid(source_docs_json) AND json_type(source_docs_json) = 'array'
|
|
9
|
+
),
|
|
10
|
+
updated_by_activity_ref TEXT,
|
|
11
|
+
updated_by_workflow_ref TEXT,
|
|
12
|
+
updated_at TEXT NOT NULL
|
|
13
|
+
);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# migrations
|
|
2
|
+
|
|
3
|
+
## 作用
|
|
4
|
+
|
|
5
|
+
这里保存 `apps/server` 本地 SQLite store 的 numbered SQL migrations。
|
|
6
|
+
|
|
7
|
+
## 约定
|
|
8
|
+
|
|
9
|
+
- migration 文件命名使用 `0001_init.sql`、`0002_<name>.sql` 形式。
|
|
10
|
+
- migration 归 host server 所有,不放入 `packages/shared`。
|
|
11
|
+
- `schema_migrations` 记录已应用版本、checksum 和应用时间。
|
|
12
|
+
- SQLite adapter 初始化必须先开启 foreign keys、WAL 和合理 busy timeout;这些 PRAGMA 不放进 numbered migration 文件。
|
|
13
|
+
|
|
14
|
+
## 当前 migrations
|
|
15
|
+
|
|
16
|
+
- `0001_init.sql`:初始化本地 `tutti.sqlite`,包含协作 truth records、store metadata、command idempotency、clarification replay hint、索引和关键 trigger。
|
|
17
|
+
- `0002_allow_sealed_round_successor_note.sql`:允许 Control Plane 在 sealed clarification round 内追加只读 Tutti successor 结论消息,同时继续禁止人类补充消息写入 sealed round。
|
|
18
|
+
- `0003_drop_scratchpad_source_message_refs.sql`:从 Scratchpad 持久化中移除不再暴露给模型、API 或 UI 的来源消息追溯字段。
|
|
19
|
+
- `0004_read_state.sql`:为 Chat / Worklist 未读摘要新增 read notification events 与 per-account read-state cursor,并从已有消息、任务、任务详情和 run result 回填初始事件。
|
|
20
|
+
- `0005_provider_usage.sql`:新增 provider token usage append-only ledger,用于 Timeline token overview projection。
|
|
21
|
+
- `0006_scratchpad_source_state.sql`:新增自动 Scratchpad refresh 的本机 source cursor / dirty / in-flight / backoff 状态表。
|
|
22
|
+
- `0007_workspace_signal_read_state_scopes.sql`:扩展 read-state scope,允许 References 与 Skills 写入模块更新通知事件。
|
|
23
|
+
- `0008_provider_usage_anchors.sql`:为 provider usage ledger 增加可空 activity / workflow / task / run result anchor 字段,供 Timeline 尽力把 token usage 挂到可证明的历史节点。
|
|
24
|
+
- `0009_project_timeline_events.sql`:新增 Timeline 专用 append-only durable event 表,用于记录缺少其他稳定 record 的 context sync、reference summary 与 promotion reconcile 轻量可观测性节点。
|
|
25
|
+
- `0010_project_brief.sql`:新增 host-local Project Brief projection 表,用于保存四个 baseline Project Docs 的短摘要和 source fingerprint。
|
|
26
|
+
- `0011_message_author_avatar.sql`:为消息作者增加可选 Relay account avatar 快照,保证跨浏览器查看历史消息时不依赖当前 viewer profile 或 presence sample。
|
|
27
|
+
|
|
28
|
+
## 当前实现状态
|
|
29
|
+
|
|
30
|
+
- `0001_init.sql`、`0002_allow_sealed_round_successor_note.sql`、`0003_drop_scratchpad_source_message_refs.sql`、`0004_read_state.sql`、`0005_provider_usage.sql`、`0006_scratchpad_source_state.sql`、`0007_workspace_signal_read_state_scopes.sql`、`0008_provider_usage_anchors.sql`、`0009_project_timeline_events.sql`、`0010_project_brief.sql` 与 `0011_message_author_avatar.sql` 已存在,代表当前 host project SQLite schema contract。
|
|
31
|
+
- SQLite adapter、migration runner、checksum 校验、store metadata 初始化、transaction helper 与 command recovery scan helper 已实现。
|
|
32
|
+
- 协作 repository 与 Control Plane 已实现第一批业务读写;Phase 7 首批已复用 `0001_init.sql` 中的 `tasks.latest_run_result_id`、`task_details.result_json` 与 `run_results` 表完成 Run result / checks / promotion 摘要持久化。Control Plane recovery resolver 与 task-bound continuation / retry 复用现有 schema;deterministic promotion reconcile 的业务 truth 仍写入最终 Run result / task detail result,Timeline 轻量节点写入 `project_timeline_events`,merge workspace 不进入 SQLite truth。`provider_usage_events` 只保存 token 计数、调用来源、模型名、记录时间和可空 anchor,不保存 provider secret、prompt 或 raw response。store 基础设施本身已经可以创建并迁移 `tutti.sqlite`。
|
|
33
|
+
|
|
34
|
+
## PRAGMA 边界
|
|
35
|
+
|
|
36
|
+
`PRAGMA foreign_keys = ON`、`PRAGMA journal_mode = WAL` 与 `PRAGMA busy_timeout = 5000` 属于 SQLite connection / adapter 初始化步骤。
|
|
37
|
+
|
|
38
|
+
原因:
|
|
39
|
+
|
|
40
|
+
- `journal_mode = WAL` 不能安全放进事务包裹的 migration runner。
|
|
41
|
+
- numbered migration 应只包含 schema 变更,便于统一 checksum、事务执行和回滚解释。
|
|
42
|
+
- store adapter 每次打开连接都应显式设置 `foreign_keys` 与 `busy_timeout`。
|
|
43
|
+
|
|
44
|
+
schema 设计说明见 [../../../docs/system/sqlite-store-schema.md](../../../docs/system/sqlite-store-schema.md)。
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { type HostConnectionRef, type IdempotencyKey, type ProjectId, type RelayProjectRef, type RelayUploadRef } from "@tutti/shared/ids";
|
|
2
|
+
import type { RelayUploadPurpose, Sha256Digest } from "@tutti/shared/schemas/api";
|
|
3
|
+
export type RelayHostControlFetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
export type RelayProjectProjection = {
|
|
5
|
+
relay_project_ref: RelayProjectRef;
|
|
6
|
+
display_name: string;
|
|
7
|
+
host_status: "online" | "offline" | "unknown";
|
|
8
|
+
};
|
|
9
|
+
export type HostConnectionProjection = {
|
|
10
|
+
host_connection_ref: HostConnectionRef;
|
|
11
|
+
relay_project_ref: RelayProjectRef;
|
|
12
|
+
status: "registered" | "online" | "replaced";
|
|
13
|
+
heartbeat_interval_ms: number;
|
|
14
|
+
tunnel_url: string;
|
|
15
|
+
connected_at: string;
|
|
16
|
+
};
|
|
17
|
+
export type JoinTokenProjection = {
|
|
18
|
+
join_url?: string;
|
|
19
|
+
expires_at: string;
|
|
20
|
+
reusable: true;
|
|
21
|
+
state: "active" | "expired" | "revoked";
|
|
22
|
+
visibility: "visible_once" | "not_recoverable";
|
|
23
|
+
};
|
|
24
|
+
export type RegisterRelayHostConnectionPayload = {
|
|
25
|
+
project_identity: {
|
|
26
|
+
source: "git_config";
|
|
27
|
+
project_id: ProjectId;
|
|
28
|
+
};
|
|
29
|
+
host_auth: {
|
|
30
|
+
kind: "host_registration_secret_v1";
|
|
31
|
+
secret: string;
|
|
32
|
+
};
|
|
33
|
+
display_name: string;
|
|
34
|
+
host: {
|
|
35
|
+
server_version: string;
|
|
36
|
+
host_project_api_base_path: "/api/v1";
|
|
37
|
+
capabilities: {
|
|
38
|
+
sse: boolean;
|
|
39
|
+
provider_config_query: boolean;
|
|
40
|
+
browser_secret_write: false;
|
|
41
|
+
repo_viewer: boolean;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
join_token?: {
|
|
45
|
+
mode: "reuse_active" | "rotate";
|
|
46
|
+
ttl_seconds?: number;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export type RegisterRelayHostConnectionResult = {
|
|
50
|
+
relay_project: RelayProjectProjection;
|
|
51
|
+
host_connection: HostConnectionProjection;
|
|
52
|
+
join_token: JoinTokenProjection;
|
|
53
|
+
host_connection_token: string;
|
|
54
|
+
};
|
|
55
|
+
export type RegisterRelayHostConnectionResponse = {
|
|
56
|
+
command_id: IdempotencyKey;
|
|
57
|
+
disposition: {
|
|
58
|
+
kind: "registered";
|
|
59
|
+
} | {
|
|
60
|
+
kind: "interrupted";
|
|
61
|
+
retry_with_new_command_id: true;
|
|
62
|
+
};
|
|
63
|
+
result?: RegisterRelayHostConnectionResult;
|
|
64
|
+
};
|
|
65
|
+
export type RefreshRelayJoinTokenPayload = {
|
|
66
|
+
project_identity: {
|
|
67
|
+
source: "git_config";
|
|
68
|
+
project_id: ProjectId;
|
|
69
|
+
};
|
|
70
|
+
host_auth: {
|
|
71
|
+
kind: "host_registration_secret_v1";
|
|
72
|
+
secret: string;
|
|
73
|
+
};
|
|
74
|
+
relay_project_ref: RelayProjectRef;
|
|
75
|
+
host_connection_ref: HostConnectionRef;
|
|
76
|
+
join_token?: {
|
|
77
|
+
mode: "reuse_active" | "rotate";
|
|
78
|
+
ttl_seconds?: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
export type RefreshRelayJoinTokenResponse = {
|
|
82
|
+
join_token: JoinTokenProjection;
|
|
83
|
+
};
|
|
84
|
+
export type RelayUploadProjection = {
|
|
85
|
+
upload_id: RelayUploadRef;
|
|
86
|
+
relay_project_ref: RelayProjectRef;
|
|
87
|
+
purpose: RelayUploadPurpose;
|
|
88
|
+
file_name: string;
|
|
89
|
+
size_bytes: number;
|
|
90
|
+
sha256: Sha256Digest;
|
|
91
|
+
media_type?: string;
|
|
92
|
+
expires_at: string;
|
|
93
|
+
};
|
|
94
|
+
export type RelayUploadSignedRequest = {
|
|
95
|
+
method: "GET" | "DELETE";
|
|
96
|
+
url: string;
|
|
97
|
+
};
|
|
98
|
+
export type ResolveRelayUploadResponse = {
|
|
99
|
+
upload: RelayUploadProjection;
|
|
100
|
+
get: RelayUploadSignedRequest & {
|
|
101
|
+
method: "GET";
|
|
102
|
+
};
|
|
103
|
+
delete: RelayUploadSignedRequest & {
|
|
104
|
+
method: "DELETE";
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
export type CompleteRelayUploadResponse = {
|
|
108
|
+
upload: RelayUploadProjection;
|
|
109
|
+
};
|
|
110
|
+
export type RegisterRelayHostConnectionOptions = {
|
|
111
|
+
relayUrl: string;
|
|
112
|
+
projectId: ProjectId;
|
|
113
|
+
hostRegistrationSecret: string;
|
|
114
|
+
displayName: string;
|
|
115
|
+
serverVersion: string;
|
|
116
|
+
commandId?: IdempotencyKey;
|
|
117
|
+
issuedAt?: Date;
|
|
118
|
+
joinToken?: {
|
|
119
|
+
mode: "reuse_active" | "rotate";
|
|
120
|
+
ttlSeconds?: number;
|
|
121
|
+
};
|
|
122
|
+
capabilities?: Partial<RegisterRelayHostConnectionPayload["host"]["capabilities"]>;
|
|
123
|
+
fetch?: RelayHostControlFetch;
|
|
124
|
+
timeoutMs?: number;
|
|
125
|
+
};
|
|
126
|
+
export type RefreshRelayJoinTokenOptions = {
|
|
127
|
+
relayUrl: string;
|
|
128
|
+
projectId: ProjectId;
|
|
129
|
+
relayProjectRef: RelayProjectRef;
|
|
130
|
+
hostConnectionRef: HostConnectionRef;
|
|
131
|
+
hostRegistrationSecret: string;
|
|
132
|
+
joinToken?: {
|
|
133
|
+
mode: "reuse_active" | "rotate";
|
|
134
|
+
ttlSeconds?: number;
|
|
135
|
+
};
|
|
136
|
+
fetch?: RelayHostControlFetch;
|
|
137
|
+
timeoutMs?: number;
|
|
138
|
+
};
|
|
139
|
+
export type ResolveRelayUploadOptions = {
|
|
140
|
+
relayUrl: string;
|
|
141
|
+
projectId: ProjectId;
|
|
142
|
+
relayProjectRef: RelayProjectRef;
|
|
143
|
+
hostConnectionRef: HostConnectionRef;
|
|
144
|
+
hostRegistrationSecret: string;
|
|
145
|
+
uploadId: RelayUploadRef;
|
|
146
|
+
fetch?: RelayHostControlFetch;
|
|
147
|
+
timeoutMs?: number;
|
|
148
|
+
};
|
|
149
|
+
export type CompleteRelayUploadOptions = ResolveRelayUploadOptions & {
|
|
150
|
+
status: "completed" | "aborted";
|
|
151
|
+
};
|
|
152
|
+
export type RelayHostControlClientErrorCode = "relay_unavailable" | "relay_registration_failed";
|
|
153
|
+
export declare class RelayHostControlClientError extends Error {
|
|
154
|
+
readonly code: RelayHostControlClientErrorCode;
|
|
155
|
+
readonly retryable: boolean;
|
|
156
|
+
readonly statusCode?: number | undefined;
|
|
157
|
+
readonly relayErrorCode?: string | undefined;
|
|
158
|
+
constructor(code: RelayHostControlClientErrorCode, message: string, retryable: boolean, statusCode?: number | undefined, relayErrorCode?: string | undefined);
|
|
159
|
+
}
|
|
160
|
+
export declare function registerRelayHostConnection(options: RegisterRelayHostConnectionOptions): Promise<RegisterRelayHostConnectionResponse>;
|
|
161
|
+
export declare function refreshRelayJoinToken(options: RefreshRelayJoinTokenOptions): Promise<RefreshRelayJoinTokenResponse>;
|
|
162
|
+
export declare function resolveRelayUpload(options: ResolveRelayUploadOptions): Promise<ResolveRelayUploadResponse>;
|
|
163
|
+
export declare function completeRelayUpload(options: CompleteRelayUploadOptions): Promise<CompleteRelayUploadResponse>;
|
|
164
|
+
//# sourceMappingURL=host-control.d.ts.map
|