bonecode 1.0.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/ARCHITECTURE.md +183 -0
- package/README.md +71 -0
- package/bin/bonecode +62 -0
- package/bone/migrations/rag_vectors.sql +258 -0
- package/bone/output/agent/.dockerignore +7 -0
- package/bone/output/agent/.env.example +36 -0
- package/bone/output/agent/.github/workflows/ci.yaml +58 -0
- package/bone/output/agent/AgentDomain.bone.map +350 -0
- package/bone/output/agent/AgentDomain.postman_collection.json +958 -0
- package/bone/output/agent/Dockerfile +22 -0
- package/bone/output/agent/README.md +47 -0
- package/bone/output/agent/admin/index.html +740 -0
- package/bone/output/agent/docker-compose.yaml +22 -0
- package/bone/output/agent/k8s/deployment.yaml +75 -0
- package/bone/output/agent/migrations/agent.sql +36 -0
- package/bone/output/agent/migrations/agent_instance.sql +36 -0
- package/bone/output/agent/migrations/audit_log.sql +18 -0
- package/bone/output/agent/migrations/build_step.sql +34 -0
- package/bone/output/agent/migrations/event_outbox.sql +31 -0
- package/bone/output/agent/migrations/plan.sql +30 -0
- package/bone/output/agent/migrations/task.sql +30 -0
- package/bone/output/agent/migrations/tool_call.sql +33 -0
- package/bone/output/agent/openapi.yaml +1116 -0
- package/bone/output/agent/package.json +36 -0
- package/bone/output/agent/schema.graphql +233 -0
- package/bone/output/agent/sdk/client.ts +231 -0
- package/bone/output/agent/src/algorithms.ts +2 -0
- package/bone/output/agent/src/audit.ts +44 -0
- package/bone/output/agent/src/auth.ts +57 -0
- package/bone/output/agent/src/cron.ts +12 -0
- package/bone/output/agent/src/db.ts +32 -0
- package/bone/output/agent/src/debug.ts +66 -0
- package/bone/output/agent/src/events.ts +243 -0
- package/bone/output/agent/src/extensions.ts +54 -0
- package/bone/output/agent/src/failure_rules.ts +323 -0
- package/bone/output/agent/src/flows.ts +168 -0
- package/bone/output/agent/src/health.ts +43 -0
- package/bone/output/agent/src/index.ts +100 -0
- package/bone/output/agent/src/logger.ts +66 -0
- package/bone/output/agent/src/metrics.ts +75 -0
- package/bone/output/agent/src/migrate.ts +352 -0
- package/bone/output/agent/src/migration_diff.ts +108 -0
- package/bone/output/agent/src/notify.ts +125 -0
- package/bone/output/agent/src/routes/agent_instance.ts +234 -0
- package/bone/output/agent/src/routes/build_step.ts +105 -0
- package/bone/output/agent/src/routes/plan.ts +91 -0
- package/bone/output/agent/src/routes/task.ts +105 -0
- package/bone/output/agent/src/routes/tool_call.ts +166 -0
- package/bone/output/agent/src/schemas.ts +384 -0
- package/bone/output/agent/src/state_machines/agent_instance.ts +24 -0
- package/bone/output/agent/src/state_machines/build_step.ts +22 -0
- package/bone/output/agent/src/state_machines/plan.ts +22 -0
- package/bone/output/agent/src/state_machines/task.ts +22 -0
- package/bone/output/agent/src/state_machines/tool_call.ts +22 -0
- package/bone/output/agent/src/tests.ts +362 -0
- package/bone/output/agent/src/websocket.ts +201 -0
- package/bone/output/agent/tsconfig.json +25 -0
- package/bone/output/rag/.dockerignore +7 -0
- package/bone/output/rag/.env.example +36 -0
- package/bone/output/rag/.github/workflows/ci.yaml +58 -0
- package/bone/output/rag/Dockerfile +22 -0
- package/bone/output/rag/RAGDomain.bone.map +287 -0
- package/bone/output/rag/RAGDomain.postman_collection.json +923 -0
- package/bone/output/rag/README.md +47 -0
- package/bone/output/rag/admin/index.html +818 -0
- package/bone/output/rag/docker-compose.yaml +22 -0
- package/bone/output/rag/k8s/deployment.yaml +75 -0
- package/bone/output/rag/migrations/audit_log.sql +18 -0
- package/bone/output/rag/migrations/code_chunk.sql +34 -0
- package/bone/output/rag/migrations/code_file.sql +33 -0
- package/bone/output/rag/migrations/event_outbox.sql +31 -0
- package/bone/output/rag/migrations/indexing_job.sql +33 -0
- package/bone/output/rag/migrations/knowledge_base.sql +35 -0
- package/bone/output/rag/migrations/memory_entry.sql +34 -0
- package/bone/output/rag/openapi.yaml +1097 -0
- package/bone/output/rag/package.json +36 -0
- package/bone/output/rag/schema.graphql +245 -0
- package/bone/output/rag/sdk/client.ts +234 -0
- package/bone/output/rag/src/algorithms.ts +2 -0
- package/bone/output/rag/src/audit.ts +37 -0
- package/bone/output/rag/src/auth.ts +57 -0
- package/bone/output/rag/src/cron.ts +12 -0
- package/bone/output/rag/src/db.ts +32 -0
- package/bone/output/rag/src/debug.ts +66 -0
- package/bone/output/rag/src/events.ts +243 -0
- package/bone/output/rag/src/extensions.ts +350 -0
- package/bone/output/rag/src/failure_rules.ts +315 -0
- package/bone/output/rag/src/flows.ts +239 -0
- package/bone/output/rag/src/health.ts +43 -0
- package/bone/output/rag/src/index.ts +95 -0
- package/bone/output/rag/src/logger.ts +66 -0
- package/bone/output/rag/src/metrics.ts +75 -0
- package/bone/output/rag/src/migrate.ts +364 -0
- package/bone/output/rag/src/migration_diff.ts +108 -0
- package/bone/output/rag/src/notify.ts +99 -0
- package/bone/output/rag/src/routes/code_chunk.ts +75 -0
- package/bone/output/rag/src/routes/code_file.ts +101 -0
- package/bone/output/rag/src/routes/indexing_job.ts +87 -0
- package/bone/output/rag/src/routes/knowledge_base.ts +230 -0
- package/bone/output/rag/src/routes/memory_entry.ts +87 -0
- package/bone/output/rag/src/schemas.ts +394 -0
- package/bone/output/rag/src/state_machines/code_file.ts +23 -0
- package/bone/output/rag/src/state_machines/indexing_job.ts +22 -0
- package/bone/output/rag/src/state_machines/knowledge_base.ts +23 -0
- package/bone/output/rag/src/state_machines/memory_entry.ts +20 -0
- package/bone/output/rag/src/tests.ts +340 -0
- package/bone/output/rag/tsconfig.json +25 -0
- package/bone/output/session/.dockerignore +7 -0
- package/bone/output/session/.env.example +36 -0
- package/bone/output/session/.github/workflows/ci.yaml +58 -0
- package/bone/output/session/Dockerfile +22 -0
- package/bone/output/session/README.md +47 -0
- package/bone/output/session/SessionDomain.bone.map +350 -0
- package/bone/output/session/SessionDomain.postman_collection.json +958 -0
- package/bone/output/session/admin/index.html +667 -0
- package/bone/output/session/docker-compose.yaml +22 -0
- package/bone/output/session/k8s/deployment.yaml +75 -0
- package/bone/output/session/migrations/audit_log.sql +18 -0
- package/bone/output/session/migrations/event_outbox.sql +31 -0
- package/bone/output/session/migrations/message.sql +31 -0
- package/bone/output/session/migrations/part.sql +28 -0
- package/bone/output/session/migrations/permission.sql +28 -0
- package/bone/output/session/migrations/project.sql +28 -0
- package/bone/output/session/migrations/session.sql +38 -0
- package/bone/output/session/openapi.yaml +1101 -0
- package/bone/output/session/package.json +36 -0
- package/bone/output/session/schema.graphql +222 -0
- package/bone/output/session/sdk/client.ts +225 -0
- package/bone/output/session/src/algorithms.ts +2 -0
- package/bone/output/session/src/audit.ts +44 -0
- package/bone/output/session/src/auth.ts +57 -0
- package/bone/output/session/src/cron.ts +12 -0
- package/bone/output/session/src/db.ts +32 -0
- package/bone/output/session/src/debug.ts +66 -0
- package/bone/output/session/src/events.ts +270 -0
- package/bone/output/session/src/extensions.ts +215 -0
- package/bone/output/session/src/failure_rules.ts +284 -0
- package/bone/output/session/src/flows.ts +168 -0
- package/bone/output/session/src/health.ts +43 -0
- package/bone/output/session/src/index.ts +100 -0
- package/bone/output/session/src/logger.ts +66 -0
- package/bone/output/session/src/metrics.ts +75 -0
- package/bone/output/session/src/migrate.ts +332 -0
- package/bone/output/session/src/migration_diff.ts +108 -0
- package/bone/output/session/src/notify.ts +112 -0
- package/bone/output/session/src/routes/message.ts +93 -0
- package/bone/output/session/src/routes/part.ts +79 -0
- package/bone/output/session/src/routes/permission.ts +79 -0
- package/bone/output/session/src/routes/project.ts +79 -0
- package/bone/output/session/src/routes/session.ts +294 -0
- package/bone/output/session/src/schemas.ts +357 -0
- package/bone/output/session/src/state_machines/session.ts +23 -0
- package/bone/output/session/src/tests.ts +326 -0
- package/bone/output/session/src/websocket.ts +201 -0
- package/bone/output/session/tsconfig.json +25 -0
- package/bone/output/workspace/.dockerignore +7 -0
- package/bone/output/workspace/.env.example +36 -0
- package/bone/output/workspace/.github/workflows/ci.yaml +58 -0
- package/bone/output/workspace/Dockerfile +22 -0
- package/bone/output/workspace/README.md +45 -0
- package/bone/output/workspace/WorkspaceDomain.bone.map +189 -0
- package/bone/output/workspace/WorkspaceDomain.postman_collection.json +621 -0
- package/bone/output/workspace/admin/index.html +485 -0
- package/bone/output/workspace/docker-compose.yaml +22 -0
- package/bone/output/workspace/k8s/deployment.yaml +75 -0
- package/bone/output/workspace/migrations/audit_log.sql +18 -0
- package/bone/output/workspace/migrations/codebase.sql +34 -0
- package/bone/output/workspace/migrations/event_outbox.sql +31 -0
- package/bone/output/workspace/migrations/snapshot.sql +32 -0
- package/bone/output/workspace/migrations/workspace.sql +33 -0
- package/bone/output/workspace/openapi.yaml +721 -0
- package/bone/output/workspace/package.json +36 -0
- package/bone/output/workspace/schema.graphql +153 -0
- package/bone/output/workspace/sdk/client.ts +155 -0
- package/bone/output/workspace/src/algorithms.ts +2 -0
- package/bone/output/workspace/src/audit.ts +37 -0
- package/bone/output/workspace/src/auth.ts +57 -0
- package/bone/output/workspace/src/cron.ts +12 -0
- package/bone/output/workspace/src/db.ts +32 -0
- package/bone/output/workspace/src/debug.ts +66 -0
- package/bone/output/workspace/src/events.ts +243 -0
- package/bone/output/workspace/src/extensions.ts +44 -0
- package/bone/output/workspace/src/failure_rules.ts +153 -0
- package/bone/output/workspace/src/health.ts +43 -0
- package/bone/output/workspace/src/index.ts +89 -0
- package/bone/output/workspace/src/logger.ts +66 -0
- package/bone/output/workspace/src/metrics.ts +75 -0
- package/bone/output/workspace/src/migrate.ts +220 -0
- package/bone/output/workspace/src/migration_diff.ts +108 -0
- package/bone/output/workspace/src/notify.ts +73 -0
- package/bone/output/workspace/src/routes/codebase.ts +87 -0
- package/bone/output/workspace/src/routes/snapshot.ts +127 -0
- package/bone/output/workspace/src/routes/workspace.ts +190 -0
- package/bone/output/workspace/src/schemas.ts +231 -0
- package/bone/output/workspace/src/state_machines/codebase.ts +21 -0
- package/bone/output/workspace/src/state_machines/snapshot.ts +20 -0
- package/bone/output/workspace/src/state_machines/workspace.ts +21 -0
- package/bone/output/workspace/src/tests.ts +249 -0
- package/bone/output/workspace/tsconfig.json +25 -0
- package/compat/opencode_adapter.ts +410 -0
- package/package.json +69 -0
- package/scripts/check_benchmark_session.js +34 -0
- package/scripts/check_finish_event.js +24 -0
- package/scripts/check_parts.js +15 -0
- package/scripts/compile.js +79 -0
- package/scripts/copy_opencode.ps1 +53 -0
- package/scripts/create_functions.sql +129 -0
- package/scripts/migrate.js +85 -0
- package/scripts/migrate_from_opencode.ts +218 -0
- package/scripts/test_agent_loop.js +101 -0
- package/scripts/test_api.ps1 +116 -0
- package/scripts/test_context_builder.js +136 -0
- package/scripts/test_context_builder.ts +97 -0
- package/scripts/test_rag.js +189 -0
- package/scripts/test_stream_events.js +36 -0
- package/scripts/test_websocket_and_saga.js +216 -0
- package/src/cli.ts +475 -0
- package/src/config.ts +162 -0
- package/src/context_builder.ts +598 -0
- package/src/engine/account/account.sql.ts +39 -0
- package/src/engine/account/account.ts +456 -0
- package/src/engine/account/repo.ts +166 -0
- package/src/engine/account/schema.ts +99 -0
- package/src/engine/account/url.ts +8 -0
- package/src/engine/acp/README.md +174 -0
- package/src/engine/acp/agent.ts +1968 -0
- package/src/engine/acp/runtime.ts +22 -0
- package/src/engine/acp/session.ts +122 -0
- package/src/engine/acp/types.ts +24 -0
- package/src/engine/agent/agent.ts +463 -0
- package/src/engine/agent/generate.txt +75 -0
- package/src/engine/agent/prompt/compaction.txt +9 -0
- package/src/engine/agent/prompt/explore.txt +18 -0
- package/src/engine/agent/prompt/scout.txt +36 -0
- package/src/engine/agent/prompt/summary.txt +11 -0
- package/src/engine/agent/prompt/title.txt +44 -0
- package/src/engine/agent/subagent-permissions.ts +34 -0
- package/src/engine/auth/index.ts +96 -0
- package/src/engine/background/background/job.ts +200 -0
- package/src/engine/background/job.ts +200 -0
- package/src/engine/bus/bus-event.ts +45 -0
- package/src/engine/bus/global.ts +22 -0
- package/src/engine/bus/index.ts +203 -0
- package/src/engine/command/command/index.ts +181 -0
- package/src/engine/command/command/template/initialize.txt +66 -0
- package/src/engine/command/command/template/review.txt +101 -0
- package/src/engine/command/index.ts +181 -0
- package/src/engine/command/template/initialize.txt +66 -0
- package/src/engine/command/template/review.txt +101 -0
- package/src/engine/config/agent.ts +172 -0
- package/src/engine/config/attachment.ts +25 -0
- package/src/engine/config/command.ts +62 -0
- package/src/engine/config/config.ts +833 -0
- package/src/engine/config/console-state.ts +14 -0
- package/src/engine/config/entry-name.ts +16 -0
- package/src/engine/config/error.ts +23 -0
- package/src/engine/config/formatter.ts +13 -0
- package/src/engine/config/layout.ts +6 -0
- package/src/engine/config/lsp.ts +43 -0
- package/src/engine/config/managed.ts +71 -0
- package/src/engine/config/markdown.ts +96 -0
- package/src/engine/config/mcp.ts +56 -0
- package/src/engine/config/model-id.ts +5 -0
- package/src/engine/config/parse.ts +79 -0
- package/src/engine/config/paths.ts +45 -0
- package/src/engine/config/permission.ts +58 -0
- package/src/engine/config/plugin.ts +84 -0
- package/src/engine/config/provider.ts +111 -0
- package/src/engine/config/reference.ts +23 -0
- package/src/engine/config/server.ts +19 -0
- package/src/engine/config/skills.ts +14 -0
- package/src/engine/config/variable.ts +90 -0
- package/src/engine/control-plane/adapters/index.ts +41 -0
- package/src/engine/control-plane/adapters/worktree.ts +96 -0
- package/src/engine/control-plane/dev/README.md +19 -0
- package/src/engine/control-plane/dev/debug-workspace-plugin.ts +73 -0
- package/src/engine/control-plane/schema.ts +14 -0
- package/src/engine/control-plane/types.ts +59 -0
- package/src/engine/control-plane/util.ts +39 -0
- package/src/engine/control-plane/workspace-adapter-runtime.ts +51 -0
- package/src/engine/control-plane/workspace-context.ts +26 -0
- package/src/engine/control-plane/workspace.sql.ts +20 -0
- package/src/engine/control-plane/workspace.ts +1072 -0
- package/src/engine/data-migration.ts +161 -0
- package/src/engine/effect/app-runtime.ts +143 -0
- package/src/engine/effect/bootstrap-runtime.ts +29 -0
- package/src/engine/effect/bridge.ts +84 -0
- package/src/engine/effect/config-service.ts +67 -0
- package/src/engine/effect/instance-ref.ts +11 -0
- package/src/engine/effect/instance-registry.ts +12 -0
- package/src/engine/effect/instance-state.ts +72 -0
- package/src/engine/effect/promise.ts +17 -0
- package/src/engine/effect/run-service.ts +47 -0
- package/src/engine/effect/runner.ts +217 -0
- package/src/engine/effect/runtime-flags.ts +74 -0
- package/src/engine/effect/service-use.ts +38 -0
- package/src/engine/env/index.ts +37 -0
- package/src/engine/event-v2-bridge.ts +89 -0
- package/src/engine/file/file/ignore.ts +81 -0
- package/src/engine/file/file/index.ts +651 -0
- package/src/engine/file/file/protected.ts +59 -0
- package/src/engine/file/file/ripgrep.ts +481 -0
- package/src/engine/file/file/watcher.ts +167 -0
- package/src/engine/file/ignore.ts +81 -0
- package/src/engine/file/index.ts +651 -0
- package/src/engine/file/protected.ts +59 -0
- package/src/engine/file/ripgrep.ts +481 -0
- package/src/engine/file/watcher.ts +167 -0
- package/src/engine/format/format/formatter.ts +404 -0
- package/src/engine/format/format/index.ts +209 -0
- package/src/engine/format/formatter.ts +404 -0
- package/src/engine/format/index.ts +209 -0
- package/src/engine/git/git/index.ts +347 -0
- package/src/engine/git/index.ts +347 -0
- package/src/engine/id/id.ts +80 -0
- package/src/engine/ide/index.ts +70 -0
- package/src/engine/image/image/image.ts +176 -0
- package/src/engine/image/image.ts +176 -0
- package/src/engine/index.ts +251 -0
- package/src/engine/installation/index.ts +327 -0
- package/src/engine/lsp/client.ts +707 -0
- package/src/engine/lsp/diagnostic.ts +29 -0
- package/src/engine/lsp/language.ts +121 -0
- package/src/engine/lsp/launch.ts +21 -0
- package/src/engine/lsp/lsp/client.ts +707 -0
- package/src/engine/lsp/lsp/diagnostic.ts +29 -0
- package/src/engine/lsp/lsp/language.ts +121 -0
- package/src/engine/lsp/lsp/launch.ts +21 -0
- package/src/engine/lsp/lsp/lsp.ts +507 -0
- package/src/engine/lsp/lsp/server.ts +2064 -0
- package/src/engine/lsp/lsp.ts +507 -0
- package/src/engine/lsp/server.ts +2064 -0
- package/src/engine/mcp/auth.ts +146 -0
- package/src/engine/mcp/index.ts +958 -0
- package/src/engine/mcp/mcp/auth.ts +146 -0
- package/src/engine/mcp/mcp/index.ts +958 -0
- package/src/engine/mcp/mcp/oauth-callback.ts +232 -0
- package/src/engine/mcp/mcp/oauth-provider.ts +214 -0
- package/src/engine/mcp/oauth-callback.ts +232 -0
- package/src/engine/mcp/oauth-provider.ts +214 -0
- package/src/engine/node.ts +6 -0
- package/src/engine/patch/index.ts +689 -0
- package/src/engine/patch/patch/index.ts +689 -0
- package/src/engine/permission/arity.ts +163 -0
- package/src/engine/permission/evaluate.ts +15 -0
- package/src/engine/permission/index.ts +306 -0
- package/src/engine/permission/permission/arity.ts +163 -0
- package/src/engine/permission/permission/evaluate.ts +15 -0
- package/src/engine/permission/permission/index.ts +306 -0
- package/src/engine/permission/permission/schema.ts +13 -0
- package/src/engine/permission/schema.ts +13 -0
- package/src/engine/plugin/azure.ts +26 -0
- package/src/engine/plugin/cloudflare.ts +76 -0
- package/src/engine/plugin/codex.ts +622 -0
- package/src/engine/plugin/digitalocean.ts +411 -0
- package/src/engine/plugin/github-copilot/copilot.ts +394 -0
- package/src/engine/plugin/github-copilot/models.ts +196 -0
- package/src/engine/plugin/index.ts +295 -0
- package/src/engine/plugin/install.ts +439 -0
- package/src/engine/plugin/loader.ts +216 -0
- package/src/engine/plugin/meta.ts +188 -0
- package/src/engine/plugin/shared.ts +323 -0
- package/src/engine/project/bootstrap-service.ts +9 -0
- package/src/engine/project/bootstrap.ts +75 -0
- package/src/engine/project/instance-context.ts +24 -0
- package/src/engine/project/instance-layer.ts +11 -0
- package/src/engine/project/instance-runtime.ts +16 -0
- package/src/engine/project/instance-store.ts +193 -0
- package/src/engine/project/project.sql.ts +17 -0
- package/src/engine/project/project.ts +537 -0
- package/src/engine/project/schema.ts +13 -0
- package/src/engine/project/vcs.ts +405 -0
- package/src/engine/provider/auth.ts +225 -0
- package/src/engine/provider/error.ts +204 -0
- package/src/engine/provider/model-status.ts +8 -0
- package/src/engine/provider/provider.ts +1843 -0
- package/src/engine/provider/schema.ts +30 -0
- package/src/engine/provider/sdk/copilot/AGENTS.md +1 -0
- package/src/engine/provider/transform.ts +1376 -0
- package/src/engine/pty/index.ts +365 -0
- package/src/engine/pty/input.ts +24 -0
- package/src/engine/pty/pty/index.ts +365 -0
- package/src/engine/pty/pty/input.ts +24 -0
- package/src/engine/pty/pty/pty.bun.ts +26 -0
- package/src/engine/pty/pty/pty.node.ts +27 -0
- package/src/engine/pty/pty/pty.ts +25 -0
- package/src/engine/pty/pty/schema.ts +14 -0
- package/src/engine/pty/pty/ticket.ts +68 -0
- package/src/engine/pty/pty.bun.ts +26 -0
- package/src/engine/pty/pty.node.ts +27 -0
- package/src/engine/pty/pty.ts +25 -0
- package/src/engine/pty/schema.ts +14 -0
- package/src/engine/pty/ticket.ts +68 -0
- package/src/engine/question/index.ts +213 -0
- package/src/engine/question/question/index.ts +213 -0
- package/src/engine/question/question/schema.ts +10 -0
- package/src/engine/question/schema.ts +10 -0
- package/src/engine/reference/reference/reference.ts +241 -0
- package/src/engine/reference/reference/repository-cache.ts +147 -0
- package/src/engine/reference/reference.ts +241 -0
- package/src/engine/reference/repository-cache.ts +147 -0
- package/src/engine/session/compaction.ts +651 -0
- package/src/engine/session/compaction_logic.ts +120 -0
- package/src/engine/session/instruction.ts +238 -0
- package/src/engine/session/instruction_loader.ts +54 -0
- package/src/engine/session/llm.ts +459 -0
- package/src/engine/session/message-error.ts +14 -0
- package/src/engine/session/message-v2.ts +1202 -0
- package/src/engine/session/message.ts +146 -0
- package/src/engine/session/overflow.ts +32 -0
- package/src/engine/session/overflow_check.ts +46 -0
- package/src/engine/session/processor.ts +823 -0
- package/src/engine/session/prompt/anthropic.txt +105 -0
- package/src/engine/session/prompt/beast.txt +147 -0
- package/src/engine/session/prompt/build-switch.txt +5 -0
- package/src/engine/session/prompt/codex.txt +79 -0
- package/src/engine/session/prompt/copilot-gpt-5.txt +143 -0
- package/src/engine/session/prompt/default.txt +105 -0
- package/src/engine/session/prompt/gemini.txt +155 -0
- package/src/engine/session/prompt/gpt.txt +107 -0
- package/src/engine/session/prompt/kimi.txt +95 -0
- package/src/engine/session/prompt/max-steps.txt +16 -0
- package/src/engine/session/prompt/plan-reminder-anthropic.txt +67 -0
- package/src/engine/session/prompt/plan.txt +26 -0
- package/src/engine/session/prompt/trinity.txt +97 -0
- package/src/engine/session/prompt.ts +671 -0
- package/src/engine/session/provider_transform.ts +187 -0
- package/src/engine/session/retry.ts +200 -0
- package/src/engine/session/retry_logic.ts +65 -0
- package/src/engine/session/revert.ts +162 -0
- package/src/engine/session/run-state.ts +153 -0
- package/src/engine/session/schema.ts +26 -0
- package/src/engine/session/session.sql.ts +137 -0
- package/src/engine/session/session.ts +1011 -0
- package/src/engine/session/status.ts +94 -0
- package/src/engine/session/summary.ts +164 -0
- package/src/engine/session/system.ts +84 -0
- package/src/engine/session/system_prompt.ts +65 -0
- package/src/engine/session/todo.ts +81 -0
- package/src/engine/session/tool_registry.ts +162 -0
- package/src/engine/share/session.ts +61 -0
- package/src/engine/share/share-next.ts +376 -0
- package/src/engine/share/share.sql.ts +13 -0
- package/src/engine/shell/shell/shell.ts +215 -0
- package/src/engine/shell/shell.ts +215 -0
- package/src/engine/skill/discovery.ts +116 -0
- package/src/engine/skill/index.ts +336 -0
- package/src/engine/skill/prompt/customize-opencode.md +377 -0
- package/src/engine/skill/skill/discovery.ts +116 -0
- package/src/engine/skill/skill/index.ts +336 -0
- package/src/engine/skill/skill/prompt/customize-opencode.md +377 -0
- package/src/engine/snapshot/index.ts +762 -0
- package/src/engine/snapshot/snapshot/index.ts +762 -0
- package/src/engine/sync/README.md +179 -0
- package/src/engine/sync/event.sql.ts +17 -0
- package/src/engine/sync/index.ts +410 -0
- package/src/engine/sync/schema.ts +11 -0
- package/src/engine/temporary.ts +33 -0
- package/src/engine/tool/apply_patch.ts +313 -0
- package/src/engine/tool/apply_patch.txt +33 -0
- package/src/engine/tool/edit.ts +711 -0
- package/src/engine/tool/edit.txt +10 -0
- package/src/engine/tool/external-directory.ts +49 -0
- package/src/engine/tool/glob.ts +103 -0
- package/src/engine/tool/glob.txt +6 -0
- package/src/engine/tool/grep.ts +156 -0
- package/src/engine/tool/grep.txt +8 -0
- package/src/engine/tool/invalid.ts +21 -0
- package/src/engine/tool/json-schema.ts +164 -0
- package/src/engine/tool/lsp.ts +113 -0
- package/src/engine/tool/lsp.txt +24 -0
- package/src/engine/tool/mcp-websearch.ts +96 -0
- package/src/engine/tool/plan-enter.txt +14 -0
- package/src/engine/tool/plan-exit.txt +13 -0
- package/src/engine/tool/plan.ts +78 -0
- package/src/engine/tool/question.ts +44 -0
- package/src/engine/tool/question.txt +10 -0
- package/src/engine/tool/read.ts +337 -0
- package/src/engine/tool/read.txt +14 -0
- package/src/engine/tool/registry.ts +472 -0
- package/src/engine/tool/repo_clone.ts +80 -0
- package/src/engine/tool/repo_clone.txt +5 -0
- package/src/engine/tool/repo_overview.ts +279 -0
- package/src/engine/tool/repo_overview.txt +4 -0
- package/src/engine/tool/schema.ts +14 -0
- package/src/engine/tool/shell/id.ts +19 -0
- package/src/engine/tool/shell/prompt.ts +295 -0
- package/src/engine/tool/shell/shell.txt +77 -0
- package/src/engine/tool/shell.ts +647 -0
- package/src/engine/tool/skill.ts +75 -0
- package/src/engine/tool/skill.txt +5 -0
- package/src/engine/tool/task.ts +337 -0
- package/src/engine/tool/task.txt +58 -0
- package/src/engine/tool/task_status.ts +179 -0
- package/src/engine/tool/task_status.txt +13 -0
- package/src/engine/tool/todo.ts +57 -0
- package/src/engine/tool/todowrite.txt +167 -0
- package/src/engine/tool/tool/apply_patch.ts +313 -0
- package/src/engine/tool/tool/apply_patch.txt +33 -0
- package/src/engine/tool/tool/edit.ts +711 -0
- package/src/engine/tool/tool/edit.txt +10 -0
- package/src/engine/tool/tool/external-directory.ts +49 -0
- package/src/engine/tool/tool/glob.ts +103 -0
- package/src/engine/tool/tool/glob.txt +6 -0
- package/src/engine/tool/tool/grep.ts +156 -0
- package/src/engine/tool/tool/grep.txt +8 -0
- package/src/engine/tool/tool/invalid.ts +21 -0
- package/src/engine/tool/tool/json-schema.ts +164 -0
- package/src/engine/tool/tool/lsp.ts +113 -0
- package/src/engine/tool/tool/lsp.txt +24 -0
- package/src/engine/tool/tool/mcp-websearch.ts +96 -0
- package/src/engine/tool/tool/plan-enter.txt +14 -0
- package/src/engine/tool/tool/plan-exit.txt +13 -0
- package/src/engine/tool/tool/plan.ts +78 -0
- package/src/engine/tool/tool/question.ts +44 -0
- package/src/engine/tool/tool/question.txt +10 -0
- package/src/engine/tool/tool/read.ts +337 -0
- package/src/engine/tool/tool/read.txt +14 -0
- package/src/engine/tool/tool/registry.ts +472 -0
- package/src/engine/tool/tool/repo_clone.ts +80 -0
- package/src/engine/tool/tool/repo_clone.txt +5 -0
- package/src/engine/tool/tool/repo_overview.ts +279 -0
- package/src/engine/tool/tool/repo_overview.txt +4 -0
- package/src/engine/tool/tool/schema.ts +14 -0
- package/src/engine/tool/tool/shell/id.ts +19 -0
- package/src/engine/tool/tool/shell/prompt.ts +295 -0
- package/src/engine/tool/tool/shell/shell.txt +77 -0
- package/src/engine/tool/tool/shell.ts +647 -0
- package/src/engine/tool/tool/skill.ts +75 -0
- package/src/engine/tool/tool/skill.txt +5 -0
- package/src/engine/tool/tool/task.ts +337 -0
- package/src/engine/tool/tool/task.txt +58 -0
- package/src/engine/tool/tool/task_status.ts +179 -0
- package/src/engine/tool/tool/task_status.txt +13 -0
- package/src/engine/tool/tool/todo.ts +57 -0
- package/src/engine/tool/tool/todowrite.txt +167 -0
- package/src/engine/tool/tool/tool.ts +164 -0
- package/src/engine/tool/tool/truncate.ts +160 -0
- package/src/engine/tool/tool/truncation-dir.ts +4 -0
- package/src/engine/tool/tool/webfetch.ts +192 -0
- package/src/engine/tool/tool/webfetch.txt +13 -0
- package/src/engine/tool/tool/websearch.ts +143 -0
- package/src/engine/tool/tool/websearch.txt +14 -0
- package/src/engine/tool/tool/write.ts +104 -0
- package/src/engine/tool/tool/write.txt +8 -0
- package/src/engine/tool/tool.ts +164 -0
- package/src/engine/tool/truncate.ts +160 -0
- package/src/engine/tool/truncation-dir.ts +4 -0
- package/src/engine/tool/webfetch.ts +192 -0
- package/src/engine/tool/webfetch.txt +13 -0
- package/src/engine/tool/websearch.ts +143 -0
- package/src/engine/tool/websearch.txt +14 -0
- package/src/engine/tool/write.ts +104 -0
- package/src/engine/tool/write.txt +8 -0
- package/src/engine/util/archive.ts +17 -0
- package/src/engine/util/bom.ts +31 -0
- package/src/engine/util/data-url.ts +9 -0
- package/src/engine/util/defer.ts +10 -0
- package/src/engine/util/effect-http-client.ts +11 -0
- package/src/engine/util/error.ts +88 -0
- package/src/engine/util/filesystem.ts +252 -0
- package/src/engine/util/format.ts +20 -0
- package/src/engine/util/iife.ts +3 -0
- package/src/engine/util/lazy.ts +20 -0
- package/src/engine/util/local-context.ts +25 -0
- package/src/engine/util/locale.ts +86 -0
- package/src/engine/util/media.ts +26 -0
- package/src/engine/util/process.ts +176 -0
- package/src/engine/util/queue.ts +32 -0
- package/src/engine/util/record.ts +3 -0
- package/src/engine/util/repository.ts +158 -0
- package/src/engine/util/rpc.ts +66 -0
- package/src/engine/util/signal.ts +12 -0
- package/src/engine/util/timeout.ts +13 -0
- package/src/engine/util/token.ts +7 -0
- package/src/engine/util/util/archive.ts +17 -0
- package/src/engine/util/util/bom.ts +31 -0
- package/src/engine/util/util/data-url.ts +9 -0
- package/src/engine/util/util/defer.ts +10 -0
- package/src/engine/util/util/effect-http-client.ts +11 -0
- package/src/engine/util/util/error.ts +88 -0
- package/src/engine/util/util/filesystem.ts +252 -0
- package/src/engine/util/util/format.ts +20 -0
- package/src/engine/util/util/iife.ts +3 -0
- package/src/engine/util/util/lazy.ts +20 -0
- package/src/engine/util/util/local-context.ts +25 -0
- package/src/engine/util/util/locale.ts +86 -0
- package/src/engine/util/util/media.ts +26 -0
- package/src/engine/util/util/process.ts +176 -0
- package/src/engine/util/util/queue.ts +32 -0
- package/src/engine/util/util/record.ts +3 -0
- package/src/engine/util/util/repository.ts +158 -0
- package/src/engine/util/util/rpc.ts +66 -0
- package/src/engine/util/util/signal.ts +12 -0
- package/src/engine/util/util/timeout.ts +13 -0
- package/src/engine/util/util/token.ts +7 -0
- package/src/engine/util/util/which.ts +14 -0
- package/src/engine/util/util/wildcard.ts +59 -0
- package/src/engine/util/which.ts +14 -0
- package/src/engine/util/wildcard.ts +59 -0
- package/src/engine/worktree/index.ts +621 -0
- package/src/rag_worker.ts +519 -0
- package/src/server.ts +201 -0
- package/src/tui.ts +637 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
// Generated by BoneScript compiler. DO NOT EDIT.
|
|
2
|
+
require("dotenv").config();
|
|
3
|
+
import { pool } from "./db";
|
|
4
|
+
|
|
5
|
+
async function migrate() {
|
|
6
|
+
console.log("Running migrations...");
|
|
7
|
+
const client = await pool.connect();
|
|
8
|
+
try {
|
|
9
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
10
|
+
-- Source: d2ab887ef3d842fd
|
|
11
|
+
-- Module: AgentStore
|
|
12
|
+
|
|
13
|
+
CREATE TABLE IF NOT EXISTS agents (
|
|
14
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
15
|
+
session_id UUID NOT NULL,
|
|
16
|
+
model_id VARCHAR NOT NULL,
|
|
17
|
+
provider_id VARCHAR NOT NULL,
|
|
18
|
+
system_prompt VARCHAR NOT NULL,
|
|
19
|
+
temperature DOUBLE PRECISION NOT NULL,
|
|
20
|
+
max_tokens BIGINT NOT NULL,
|
|
21
|
+
context_window_used BIGINT NOT NULL,
|
|
22
|
+
context_window_max BIGINT NOT NULL,
|
|
23
|
+
total_cost_usd DOUBLE PRECISION NOT NULL,
|
|
24
|
+
total_tokens_in BIGINT NOT NULL,
|
|
25
|
+
total_tokens_out BIGINT NOT NULL,
|
|
26
|
+
config JSONB NOT NULL,
|
|
27
|
+
state VARCHAR NOT NULL,
|
|
28
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
29
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
CREATE OR REPLACE FUNCTION update_agents_updated_at()
|
|
34
|
+
RETURNS TRIGGER AS \$\$
|
|
35
|
+
BEGIN
|
|
36
|
+
NEW.updated_at = NOW();
|
|
37
|
+
RETURN NEW;
|
|
38
|
+
END;
|
|
39
|
+
\$\$ LANGUAGE plpgsql;
|
|
40
|
+
|
|
41
|
+
CREATE TRIGGER trg_agents_updated_at
|
|
42
|
+
BEFORE UPDATE ON agents
|
|
43
|
+
FOR EACH ROW
|
|
44
|
+
EXECUTE FUNCTION update_agents_updated_at();
|
|
45
|
+
`);
|
|
46
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
47
|
+
-- Source: d2ab887ef3d842fd
|
|
48
|
+
-- Module: TaskStore
|
|
49
|
+
|
|
50
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
51
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
52
|
+
agent_id UUID NOT NULL,
|
|
53
|
+
session_id UUID NOT NULL,
|
|
54
|
+
description VARCHAR NOT NULL,
|
|
55
|
+
priority BIGINT NOT NULL,
|
|
56
|
+
state VARCHAR NOT NULL,
|
|
57
|
+
result JSONB NOT NULL,
|
|
58
|
+
error VARCHAR NOT NULL,
|
|
59
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
60
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
CREATE OR REPLACE FUNCTION update_tasks_updated_at()
|
|
65
|
+
RETURNS TRIGGER AS \$\$
|
|
66
|
+
BEGIN
|
|
67
|
+
NEW.updated_at = NOW();
|
|
68
|
+
RETURN NEW;
|
|
69
|
+
END;
|
|
70
|
+
\$\$ LANGUAGE plpgsql;
|
|
71
|
+
|
|
72
|
+
CREATE TRIGGER trg_tasks_updated_at
|
|
73
|
+
BEFORE UPDATE ON tasks
|
|
74
|
+
FOR EACH ROW
|
|
75
|
+
EXECUTE FUNCTION update_tasks_updated_at();
|
|
76
|
+
`);
|
|
77
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
78
|
+
-- Source: d2ab887ef3d842fd
|
|
79
|
+
-- Module: PlanStore
|
|
80
|
+
|
|
81
|
+
CREATE TABLE IF NOT EXISTS plans (
|
|
82
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
83
|
+
session_id UUID NOT NULL,
|
|
84
|
+
agent_id UUID NOT NULL,
|
|
85
|
+
task_id UUID NOT NULL,
|
|
86
|
+
steps JSONB NOT NULL,
|
|
87
|
+
rationale VARCHAR NOT NULL,
|
|
88
|
+
estimated_tokens BIGINT NOT NULL,
|
|
89
|
+
state VARCHAR NOT NULL,
|
|
90
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
91
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
CREATE OR REPLACE FUNCTION update_plans_updated_at()
|
|
96
|
+
RETURNS TRIGGER AS \$\$
|
|
97
|
+
BEGIN
|
|
98
|
+
NEW.updated_at = NOW();
|
|
99
|
+
RETURN NEW;
|
|
100
|
+
END;
|
|
101
|
+
\$\$ LANGUAGE plpgsql;
|
|
102
|
+
|
|
103
|
+
CREATE TRIGGER trg_plans_updated_at
|
|
104
|
+
BEFORE UPDATE ON plans
|
|
105
|
+
FOR EACH ROW
|
|
106
|
+
EXECUTE FUNCTION update_plans_updated_at();
|
|
107
|
+
`);
|
|
108
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
109
|
+
-- Source: d2ab887ef3d842fd
|
|
110
|
+
-- Module: BuildStepStore
|
|
111
|
+
|
|
112
|
+
CREATE TABLE IF NOT EXISTS build_steps (
|
|
113
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
114
|
+
task_id UUID NOT NULL,
|
|
115
|
+
agent_id UUID NOT NULL,
|
|
116
|
+
session_id UUID NOT NULL,
|
|
117
|
+
step_type VARCHAR NOT NULL,
|
|
118
|
+
description VARCHAR NOT NULL,
|
|
119
|
+
file_path VARCHAR NOT NULL,
|
|
120
|
+
diff VARCHAR NOT NULL,
|
|
121
|
+
result JSONB NOT NULL,
|
|
122
|
+
error VARCHAR NOT NULL,
|
|
123
|
+
order_index BIGINT NOT NULL,
|
|
124
|
+
state VARCHAR NOT NULL,
|
|
125
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
126
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
CREATE OR REPLACE FUNCTION update_build_steps_updated_at()
|
|
131
|
+
RETURNS TRIGGER AS \$\$
|
|
132
|
+
BEGIN
|
|
133
|
+
NEW.updated_at = NOW();
|
|
134
|
+
RETURN NEW;
|
|
135
|
+
END;
|
|
136
|
+
\$\$ LANGUAGE plpgsql;
|
|
137
|
+
|
|
138
|
+
CREATE TRIGGER trg_build_steps_updated_at
|
|
139
|
+
BEFORE UPDATE ON build_steps
|
|
140
|
+
FOR EACH ROW
|
|
141
|
+
EXECUTE FUNCTION update_build_steps_updated_at();
|
|
142
|
+
`);
|
|
143
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
144
|
+
-- Source: d2ab887ef3d842fd
|
|
145
|
+
-- Module: ToolCallStore
|
|
146
|
+
|
|
147
|
+
CREATE TABLE IF NOT EXISTS tool_calls (
|
|
148
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
149
|
+
session_id UUID NOT NULL,
|
|
150
|
+
agent_id UUID NOT NULL,
|
|
151
|
+
build_step_id UUID NOT NULL,
|
|
152
|
+
tool_name VARCHAR NOT NULL,
|
|
153
|
+
tool_input JSONB NOT NULL,
|
|
154
|
+
tool_output JSONB NOT NULL,
|
|
155
|
+
error VARCHAR NOT NULL,
|
|
156
|
+
duration_ms BIGINT NOT NULL,
|
|
157
|
+
permission_decision VARCHAR NOT NULL,
|
|
158
|
+
state VARCHAR NOT NULL,
|
|
159
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
160
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
CREATE OR REPLACE FUNCTION update_tool_calls_updated_at()
|
|
165
|
+
RETURNS TRIGGER AS \$\$
|
|
166
|
+
BEGIN
|
|
167
|
+
NEW.updated_at = NOW();
|
|
168
|
+
RETURN NEW;
|
|
169
|
+
END;
|
|
170
|
+
\$\$ LANGUAGE plpgsql;
|
|
171
|
+
|
|
172
|
+
CREATE TRIGGER trg_tool_calls_updated_at
|
|
173
|
+
BEFORE UPDATE ON tool_calls
|
|
174
|
+
FOR EACH ROW
|
|
175
|
+
EXECUTE FUNCTION update_tool_calls_updated_at();
|
|
176
|
+
`);
|
|
177
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
178
|
+
-- Source: d2ab887ef3d842fd
|
|
179
|
+
-- Module: AgentInstanceService
|
|
180
|
+
|
|
181
|
+
CREATE TABLE IF NOT EXISTS agent_instances (
|
|
182
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
183
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
184
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
185
|
+
session_id UUID NOT NULL,
|
|
186
|
+
model_id VARCHAR NOT NULL,
|
|
187
|
+
provider_id VARCHAR NOT NULL,
|
|
188
|
+
system_prompt VARCHAR,
|
|
189
|
+
temperature DOUBLE PRECISION,
|
|
190
|
+
max_tokens BIGINT,
|
|
191
|
+
context_window_used BIGINT NOT NULL,
|
|
192
|
+
context_window_max BIGINT NOT NULL,
|
|
193
|
+
total_cost_usd DOUBLE PRECISION NOT NULL,
|
|
194
|
+
total_tokens_in BIGINT NOT NULL,
|
|
195
|
+
total_tokens_out BIGINT NOT NULL,
|
|
196
|
+
config JSONB NOT NULL
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
CREATE INDEX IF NOT EXISTS idx_agent_instances_session_id ON agent_instances (session_id);
|
|
200
|
+
|
|
201
|
+
CREATE OR REPLACE FUNCTION update_agent_instances_updated_at()
|
|
202
|
+
RETURNS TRIGGER AS \$\$
|
|
203
|
+
BEGIN
|
|
204
|
+
NEW.updated_at = NOW();
|
|
205
|
+
RETURN NEW;
|
|
206
|
+
END;
|
|
207
|
+
\$\$ LANGUAGE plpgsql;
|
|
208
|
+
|
|
209
|
+
CREATE TRIGGER trg_agent_instances_updated_at
|
|
210
|
+
BEFORE UPDATE ON agent_instances
|
|
211
|
+
FOR EACH ROW
|
|
212
|
+
EXECUTE FUNCTION update_agent_instances_updated_at();
|
|
213
|
+
`);
|
|
214
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
215
|
+
-- Source: d2ab887ef3d842fd
|
|
216
|
+
-- Module: TaskStore
|
|
217
|
+
|
|
218
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
219
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
220
|
+
agent_id UUID NOT NULL,
|
|
221
|
+
session_id UUID NOT NULL,
|
|
222
|
+
description VARCHAR NOT NULL,
|
|
223
|
+
priority BIGINT NOT NULL,
|
|
224
|
+
state VARCHAR NOT NULL,
|
|
225
|
+
result JSONB NOT NULL,
|
|
226
|
+
error VARCHAR NOT NULL,
|
|
227
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
228
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
CREATE OR REPLACE FUNCTION update_tasks_updated_at()
|
|
233
|
+
RETURNS TRIGGER AS \$\$
|
|
234
|
+
BEGIN
|
|
235
|
+
NEW.updated_at = NOW();
|
|
236
|
+
RETURN NEW;
|
|
237
|
+
END;
|
|
238
|
+
\$\$ LANGUAGE plpgsql;
|
|
239
|
+
|
|
240
|
+
CREATE TRIGGER trg_tasks_updated_at
|
|
241
|
+
BEFORE UPDATE ON tasks
|
|
242
|
+
FOR EACH ROW
|
|
243
|
+
EXECUTE FUNCTION update_tasks_updated_at();
|
|
244
|
+
`);
|
|
245
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
246
|
+
-- Source: d2ab887ef3d842fd
|
|
247
|
+
-- Module: PlanStore
|
|
248
|
+
|
|
249
|
+
CREATE TABLE IF NOT EXISTS plans (
|
|
250
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
251
|
+
session_id UUID NOT NULL,
|
|
252
|
+
agent_id UUID NOT NULL,
|
|
253
|
+
task_id UUID NOT NULL,
|
|
254
|
+
steps JSONB NOT NULL,
|
|
255
|
+
rationale VARCHAR NOT NULL,
|
|
256
|
+
estimated_tokens BIGINT NOT NULL,
|
|
257
|
+
state VARCHAR NOT NULL,
|
|
258
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
259
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
260
|
+
);
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
CREATE OR REPLACE FUNCTION update_plans_updated_at()
|
|
264
|
+
RETURNS TRIGGER AS \$\$
|
|
265
|
+
BEGIN
|
|
266
|
+
NEW.updated_at = NOW();
|
|
267
|
+
RETURN NEW;
|
|
268
|
+
END;
|
|
269
|
+
\$\$ LANGUAGE plpgsql;
|
|
270
|
+
|
|
271
|
+
CREATE TRIGGER trg_plans_updated_at
|
|
272
|
+
BEFORE UPDATE ON plans
|
|
273
|
+
FOR EACH ROW
|
|
274
|
+
EXECUTE FUNCTION update_plans_updated_at();
|
|
275
|
+
`);
|
|
276
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
277
|
+
-- Source: d2ab887ef3d842fd
|
|
278
|
+
-- Module: BuildStepStore
|
|
279
|
+
|
|
280
|
+
CREATE TABLE IF NOT EXISTS build_steps (
|
|
281
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
282
|
+
task_id UUID NOT NULL,
|
|
283
|
+
agent_id UUID NOT NULL,
|
|
284
|
+
session_id UUID NOT NULL,
|
|
285
|
+
step_type VARCHAR NOT NULL,
|
|
286
|
+
description VARCHAR NOT NULL,
|
|
287
|
+
file_path VARCHAR NOT NULL,
|
|
288
|
+
diff VARCHAR NOT NULL,
|
|
289
|
+
result JSONB NOT NULL,
|
|
290
|
+
error VARCHAR NOT NULL,
|
|
291
|
+
order_index BIGINT NOT NULL,
|
|
292
|
+
state VARCHAR NOT NULL,
|
|
293
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
294
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
CREATE OR REPLACE FUNCTION update_build_steps_updated_at()
|
|
299
|
+
RETURNS TRIGGER AS \$\$
|
|
300
|
+
BEGIN
|
|
301
|
+
NEW.updated_at = NOW();
|
|
302
|
+
RETURN NEW;
|
|
303
|
+
END;
|
|
304
|
+
\$\$ LANGUAGE plpgsql;
|
|
305
|
+
|
|
306
|
+
CREATE TRIGGER trg_build_steps_updated_at
|
|
307
|
+
BEFORE UPDATE ON build_steps
|
|
308
|
+
FOR EACH ROW
|
|
309
|
+
EXECUTE FUNCTION update_build_steps_updated_at();
|
|
310
|
+
`);
|
|
311
|
+
await client.query(`-- Generated by BoneScript compiler. DO NOT EDIT.
|
|
312
|
+
-- Source: d2ab887ef3d842fd
|
|
313
|
+
-- Module: ToolCallStore
|
|
314
|
+
|
|
315
|
+
CREATE TABLE IF NOT EXISTS tool_calls (
|
|
316
|
+
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
317
|
+
session_id UUID NOT NULL,
|
|
318
|
+
agent_id UUID NOT NULL,
|
|
319
|
+
build_step_id UUID NOT NULL,
|
|
320
|
+
tool_name VARCHAR NOT NULL,
|
|
321
|
+
tool_input JSONB NOT NULL,
|
|
322
|
+
tool_output JSONB NOT NULL,
|
|
323
|
+
error VARCHAR NOT NULL,
|
|
324
|
+
duration_ms BIGINT NOT NULL,
|
|
325
|
+
permission_decision VARCHAR NOT NULL,
|
|
326
|
+
state VARCHAR NOT NULL,
|
|
327
|
+
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
328
|
+
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
CREATE OR REPLACE FUNCTION update_tool_calls_updated_at()
|
|
333
|
+
RETURNS TRIGGER AS \$\$
|
|
334
|
+
BEGIN
|
|
335
|
+
NEW.updated_at = NOW();
|
|
336
|
+
RETURN NEW;
|
|
337
|
+
END;
|
|
338
|
+
\$\$ LANGUAGE plpgsql;
|
|
339
|
+
|
|
340
|
+
CREATE TRIGGER trg_tool_calls_updated_at
|
|
341
|
+
BEFORE UPDATE ON tool_calls
|
|
342
|
+
FOR EACH ROW
|
|
343
|
+
EXECUTE FUNCTION update_tool_calls_updated_at();
|
|
344
|
+
`);
|
|
345
|
+
console.log("Migrations complete.");
|
|
346
|
+
} finally {
|
|
347
|
+
client.release();
|
|
348
|
+
await pool.end();
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
migrate().catch(e => { console.error(e); process.exit(1); });
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Generated by BoneScript compiler. DO NOT EDIT.
|
|
2
|
+
// Migration diff utility — compares two IR snapshots and produces ALTER statements.
|
|
3
|
+
|
|
4
|
+
import * as fs from "fs";
|
|
5
|
+
|
|
6
|
+
interface Field {
|
|
7
|
+
name: string;
|
|
8
|
+
type: string;
|
|
9
|
+
nullable: boolean;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface Model {
|
|
13
|
+
name: string;
|
|
14
|
+
fields: Field[];
|
|
15
|
+
primary_key: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function diffModels(oldModels: Model[], newModels: Model[]): string[] {
|
|
19
|
+
const statements: string[] = [];
|
|
20
|
+
const oldByName = new Map(oldModels.map(m => [m.name, m]));
|
|
21
|
+
const newByName = new Map(newModels.map(m => [m.name, m]));
|
|
22
|
+
|
|
23
|
+
// New tables
|
|
24
|
+
for (const [name, model] of newByName) {
|
|
25
|
+
if (!oldByName.has(name)) {
|
|
26
|
+
const tableName = toSnake(name) + "s";
|
|
27
|
+
statements.push(`-- New table: ${tableName}`);
|
|
28
|
+
statements.push(`-- (Generated by previous migration)`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Removed tables (warn but don't auto-drop)
|
|
33
|
+
for (const [name] of oldByName) {
|
|
34
|
+
if (!newByName.has(name)) {
|
|
35
|
+
const tableName = toSnake(name) + "s";
|
|
36
|
+
statements.push(`-- WARNING: Table ${tableName} no longer in schema. Manual DROP required.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Modified tables
|
|
41
|
+
for (const [name, newModel] of newByName) {
|
|
42
|
+
const oldModel = oldByName.get(name);
|
|
43
|
+
if (!oldModel) continue;
|
|
44
|
+
|
|
45
|
+
const tableName = toSnake(name) + "s";
|
|
46
|
+
const oldFields = new Map(oldModel.fields.map(f => [f.name, f]));
|
|
47
|
+
const newFields = new Map(newModel.fields.map(f => [f.name, f]));
|
|
48
|
+
|
|
49
|
+
// New columns (backward-compatible)
|
|
50
|
+
for (const [fname, field] of newFields) {
|
|
51
|
+
if (!oldFields.has(fname)) {
|
|
52
|
+
const sqlType = mapType(field.type);
|
|
53
|
+
const nullability = field.nullable ? "" : " NOT NULL DEFAULT (CASE WHEN false THEN NULL ELSE NULL END)";
|
|
54
|
+
statements.push(`ALTER TABLE ${tableName} ADD COLUMN ${fname} ${sqlType}${nullability};`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Removed columns (NOT auto-dropped — backward compat)
|
|
59
|
+
for (const [fname] of oldFields) {
|
|
60
|
+
if (!newFields.has(fname)) {
|
|
61
|
+
statements.push(`-- WARNING: Column ${tableName}.${fname} removed from schema. Run manually: ALTER TABLE ${tableName} DROP COLUMN ${fname};`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Type changes
|
|
66
|
+
for (const [fname, newField] of newFields) {
|
|
67
|
+
const oldField = oldFields.get(fname);
|
|
68
|
+
if (!oldField) continue;
|
|
69
|
+
if (oldField.type !== newField.type) {
|
|
70
|
+
const sqlType = mapType(newField.type);
|
|
71
|
+
statements.push(`ALTER TABLE ${tableName} ALTER COLUMN ${fname} TYPE ${sqlType};`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return statements;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function toSnake(s: string): string {
|
|
80
|
+
return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function mapType(t: string): string {
|
|
84
|
+
const map: Record<string, string> = {
|
|
85
|
+
string: "VARCHAR", uint: "BIGINT", int: "BIGINT", float: "DOUBLE PRECISION",
|
|
86
|
+
bool: "BOOLEAN", timestamp: "TIMESTAMPTZ", uuid: "UUID", bytes: "BYTEA", json: "JSONB",
|
|
87
|
+
};
|
|
88
|
+
return map[t] || "JSONB";
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (require.main === module) {
|
|
92
|
+
const oldFile = process.argv[2];
|
|
93
|
+
const newFile = process.argv[3];
|
|
94
|
+
if (!oldFile || !newFile) {
|
|
95
|
+
console.error("Usage: node migration-diff.js <old-ir.json> <new-ir.json>");
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
const oldIR = JSON.parse(fs.readFileSync(oldFile, "utf-8"));
|
|
99
|
+
const newIR = JSON.parse(fs.readFileSync(newFile, "utf-8"));
|
|
100
|
+
|
|
101
|
+
const oldModels: Model[] = [];
|
|
102
|
+
const newModels: Model[] = [];
|
|
103
|
+
for (const sys of oldIR) for (const mod of sys.modules) for (const m of mod.models) oldModels.push(m);
|
|
104
|
+
for (const sys of newIR) for (const mod of sys.modules) for (const m of mod.models) newModels.push(m);
|
|
105
|
+
|
|
106
|
+
const diff = diffModels(oldModels, newModels);
|
|
107
|
+
console.log(diff.join("\n"));
|
|
108
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// Generated by BoneScript compiler.
|
|
2
|
+
// Notification service — fires on event emissions.
|
|
3
|
+
// Configure NOTIFY_PROVIDER=resend|sendgrid|log (default: log)
|
|
4
|
+
// Set NOTIFY_API_KEY and NOTIFY_FROM_EMAIL in .env
|
|
5
|
+
|
|
6
|
+
import { SystemEvent } from "./events";
|
|
7
|
+
|
|
8
|
+
export type NotifyProvider = "resend" | "sendgrid" | "log";
|
|
9
|
+
|
|
10
|
+
const PROVIDER = (process.env.NOTIFY_PROVIDER || "log") as NotifyProvider;
|
|
11
|
+
const API_KEY = process.env.NOTIFY_API_KEY || "";
|
|
12
|
+
const FROM_EMAIL = process.env.NOTIFY_FROM_EMAIL || "noreply@example.com";
|
|
13
|
+
|
|
14
|
+
export interface NotifyMessage {
|
|
15
|
+
to: string;
|
|
16
|
+
subject: string;
|
|
17
|
+
body: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function sendEmail(msg: NotifyMessage): Promise<void> {
|
|
21
|
+
if (PROVIDER === "log") {
|
|
22
|
+
console.log(`[notify] ${msg.subject} → ${msg.to}`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (PROVIDER === "resend") {
|
|
26
|
+
const res = await fetch("https://api.resend.com/emails", {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json" },
|
|
29
|
+
body: JSON.stringify({ from: FROM_EMAIL, to: msg.to, subject: msg.subject, html: msg.body }),
|
|
30
|
+
});
|
|
31
|
+
if (!res.ok) throw new Error(`Resend error: ${res.status}`);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (PROVIDER === "sendgrid") {
|
|
35
|
+
const res = await fetch("https://api.sendgrid.com/v3/mail/send", {
|
|
36
|
+
method: "POST",
|
|
37
|
+
headers: { "Authorization": `Bearer ${API_KEY}`, "Content-Type": "application/json" },
|
|
38
|
+
body: JSON.stringify({ personalizations: [{ to: [{ email: msg.to }] }], from: { email: FROM_EMAIL }, subject: msg.subject, content: [{ type: "text/html", value: msg.body }] }),
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok) throw new Error(`SendGrid error: ${res.status}`);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Handler for AgentStarted
|
|
46
|
+
export async function notifyAgentStarted(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
47
|
+
await sendEmail({
|
|
48
|
+
to: recipientEmail,
|
|
49
|
+
subject: "AgentStarted notification",
|
|
50
|
+
body: `<p>Event <strong>AgentStarted</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Handler for AgentCompleted
|
|
55
|
+
export async function notifyAgentCompleted(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
56
|
+
await sendEmail({
|
|
57
|
+
to: recipientEmail,
|
|
58
|
+
subject: "AgentCompleted notification",
|
|
59
|
+
body: `<p>Event <strong>AgentCompleted</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Handler for AgentFailed
|
|
64
|
+
export async function notifyAgentFailed(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
65
|
+
await sendEmail({
|
|
66
|
+
to: recipientEmail,
|
|
67
|
+
subject: "AgentFailed notification",
|
|
68
|
+
body: `<p>Event <strong>AgentFailed</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Handler for ToolCallRequested
|
|
73
|
+
export async function notifyToolCallRequested(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
74
|
+
await sendEmail({
|
|
75
|
+
to: recipientEmail,
|
|
76
|
+
subject: "ToolCallRequested notification",
|
|
77
|
+
body: `<p>Event <strong>ToolCallRequested</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Handler for ToolCallCompleted
|
|
82
|
+
export async function notifyToolCallCompleted(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
83
|
+
await sendEmail({
|
|
84
|
+
to: recipientEmail,
|
|
85
|
+
subject: "ToolCallCompleted notification",
|
|
86
|
+
body: `<p>Event <strong>ToolCallCompleted</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Handler for PermissionRequired
|
|
91
|
+
export async function notifyPermissionRequired(event: SystemEvent, recipientEmail: string): Promise<void> {
|
|
92
|
+
await sendEmail({
|
|
93
|
+
to: recipientEmail,
|
|
94
|
+
subject: "PermissionRequired notification",
|
|
95
|
+
body: `<p>Event <strong>PermissionRequired</strong> occurred.</p><pre>${JSON.stringify(event.payload, null, 2)}</pre>`,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export function registerNotificationHandlers(eventBus: any): void {
|
|
100
|
+
// TODO: implement recipient lookup per event type
|
|
101
|
+
// eventBus.subscribe("AgentStarted", async (event: SystemEvent) => {
|
|
102
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
103
|
+
// await notifyAgentStarted(event, recipientEmail);
|
|
104
|
+
// });
|
|
105
|
+
// eventBus.subscribe("AgentCompleted", async (event: SystemEvent) => {
|
|
106
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
107
|
+
// await notifyAgentCompleted(event, recipientEmail);
|
|
108
|
+
// });
|
|
109
|
+
// eventBus.subscribe("AgentFailed", async (event: SystemEvent) => {
|
|
110
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
111
|
+
// await notifyAgentFailed(event, recipientEmail);
|
|
112
|
+
// });
|
|
113
|
+
// eventBus.subscribe("ToolCallRequested", async (event: SystemEvent) => {
|
|
114
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
115
|
+
// await notifyToolCallRequested(event, recipientEmail);
|
|
116
|
+
// });
|
|
117
|
+
// eventBus.subscribe("ToolCallCompleted", async (event: SystemEvent) => {
|
|
118
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
119
|
+
// await notifyToolCallCompleted(event, recipientEmail);
|
|
120
|
+
// });
|
|
121
|
+
// eventBus.subscribe("PermissionRequired", async (event: SystemEvent) => {
|
|
122
|
+
// const recipientEmail = await lookupRecipient(event);
|
|
123
|
+
// await notifyPermissionRequired(event, recipientEmail);
|
|
124
|
+
// });
|
|
125
|
+
}
|