@cleocode/core 2026.3.74 → 2026.3.76
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 +1 -1
- package/dist/cant/approval.d.ts +110 -0
- package/dist/cant/approval.d.ts.map +1 -0
- package/dist/cant/context-builder.d.ts +79 -0
- package/dist/cant/context-builder.d.ts.map +1 -0
- package/dist/cant/discretion.d.ts +95 -0
- package/dist/cant/discretion.d.ts.map +1 -0
- package/dist/cant/index.d.ts +25 -0
- package/dist/cant/index.d.ts.map +1 -0
- package/dist/cant/parallel-runner.d.ts +38 -0
- package/dist/cant/parallel-runner.d.ts.map +1 -0
- package/dist/cant/types.d.ts +127 -0
- package/dist/cant/types.d.ts.map +1 -0
- package/dist/cant/workflow-executor.d.ts +105 -0
- package/dist/cant/workflow-executor.d.ts.map +1 -0
- package/dist/conduit/conduit-client.d.ts +26 -0
- package/dist/conduit/conduit-client.d.ts.map +1 -0
- package/dist/conduit/factory.d.ts +13 -0
- package/dist/conduit/factory.d.ts.map +1 -0
- package/dist/conduit/http-transport.d.ts +32 -0
- package/dist/conduit/http-transport.d.ts.map +1 -0
- package/dist/conduit/index.d.ts +12 -0
- package/dist/conduit/index.d.ts.map +1 -0
- package/dist/crypto/credentials.d.ts +40 -0
- package/dist/crypto/credentials.d.ts.map +1 -0
- package/dist/engine-result.d.ts +1 -1
- package/dist/engine-result.d.ts.map +1 -1
- package/dist/error-catalog.d.ts +1 -1
- package/dist/error-catalog.d.ts.map +1 -1
- package/dist/error-registry.d.ts +1 -1
- package/dist/error-registry.d.ts.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/hooks/handlers/agent-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/context-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/error-hooks.d.ts +14 -5
- package/dist/hooks/handlers/error-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/file-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/handler-helpers.d.ts +41 -0
- package/dist/hooks/handlers/handler-helpers.d.ts.map +1 -0
- package/dist/hooks/handlers/mcp-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/work-capture-hooks.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2285 -767
- package/dist/index.js.map +4 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/internal.d.ts +7 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/memory/brain-retrieval.d.ts +3 -0
- package/dist/memory/brain-retrieval.d.ts.map +1 -1
- package/dist/mvi-helpers.d.ts +52 -0
- package/dist/mvi-helpers.d.ts.map +1 -0
- package/dist/nexus/workspace.d.ts.map +1 -1
- package/dist/output.d.ts +2 -2
- package/dist/output.d.ts.map +1 -1
- package/dist/pagination.d.ts +1 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/sessions/find.d.ts +3 -0
- package/dist/sessions/find.d.ts.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/store/agent-registry-accessor.d.ts +454 -0
- package/dist/store/agent-registry-accessor.d.ts.map +1 -0
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.d.ts +7 -0
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/signaldock-sqlite.d.ts +48 -0
- package/dist/store/signaldock-sqlite.d.ts.map +1 -0
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/task-store.d.ts.map +1 -1
- package/dist/store/tasks-schema.d.ts +240 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/validation-schemas.d.ts +32 -0
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/tasks/find.d.ts +3 -0
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/list.d.ts +5 -2
- package/dist/tasks/list.d.ts.map +1 -1
- package/dist/tasks/show.d.ts +3 -0
- package/dist/tasks/show.d.ts.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/migrations/drizzle-tasks/20260324000000_assignee-column/migration.sql +6 -0
- package/migrations/drizzle-tasks/20260324000000_assignee-column/snapshot.json +9 -0
- package/migrations/drizzle-tasks/20260327000000_agent-credentials/migration.sql +23 -0
- package/package.json +7 -7
- package/src/__tests__/cli-parity.test.js +11 -1
- package/src/__tests__/cli-parity.test.js.map +1 -1
- package/src/__tests__/cli-parity.test.ts +17 -1
- package/src/__tests__/human-output.test.js +11 -1
- package/src/__tests__/human-output.test.js.map +1 -1
- package/src/__tests__/human-output.test.ts +18 -1
- package/src/__tests__/injection-chain.test.js +3 -2
- package/src/__tests__/injection-chain.test.js.map +1 -1
- package/src/__tests__/injection-mvi-tiers.test.d.ts +2 -2
- package/src/__tests__/injection-mvi-tiers.test.js +15 -15
- package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
- package/src/__tests__/lafs-conformance.test.d.ts +1 -1
- package/src/__tests__/lafs-conformance.test.js +2 -2
- package/src/__tests__/sharing.test.js +19 -0
- package/src/__tests__/sharing.test.js.map +1 -1
- package/src/agents/__tests__/agent-registry.test.d.ts +12 -0
- package/src/agents/__tests__/agent-registry.test.d.ts.map +1 -0
- package/src/agents/__tests__/agent-registry.test.js +262 -0
- package/src/agents/__tests__/agent-registry.test.js.map +1 -0
- package/src/agents/__tests__/execution-learning.test.d.ts +14 -0
- package/src/agents/__tests__/execution-learning.test.d.ts.map +1 -0
- package/src/agents/__tests__/execution-learning.test.js +533 -0
- package/src/agents/__tests__/execution-learning.test.js.map +1 -0
- package/src/agents/__tests__/health-monitor.test.d.ts +10 -0
- package/src/agents/__tests__/health-monitor.test.d.ts.map +1 -0
- package/src/agents/__tests__/health-monitor.test.js +259 -0
- package/src/agents/__tests__/health-monitor.test.js.map +1 -0
- package/src/agents/__tests__/registry.test.js +27 -2
- package/src/agents/__tests__/registry.test.js.map +1 -1
- package/src/cant/__tests__/cant-agent-parse.test.ts +94 -0
- package/src/cant/approval.ts +218 -0
- package/src/cant/context-builder.ts +135 -0
- package/src/cant/discretion.ts +149 -0
- package/src/cant/index.ts +58 -0
- package/src/cant/parallel-runner.ts +205 -0
- package/src/cant/types.ts +158 -0
- package/src/cant/workflow-executor.ts +618 -0
- package/src/conduit/conduit-client.ts +114 -0
- package/src/conduit/factory.ts +45 -0
- package/src/conduit/http-transport.ts +140 -0
- package/src/conduit/index.ts +12 -0
- package/src/crypto/credentials.ts +166 -0
- package/src/engine-result.ts +1 -1
- package/src/error-catalog.ts +1 -1
- package/src/error-registry.ts +1 -1
- package/src/errors.ts +1 -1
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts +13 -0
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.d.ts.map +1 -0
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +501 -0
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +1 -0
- package/src/hooks/handlers/agent-hooks.ts +1 -30
- package/src/hooks/handlers/context-hooks.ts +1 -30
- package/src/hooks/handlers/error-hooks.ts +14 -5
- package/src/hooks/handlers/file-hooks.ts +1 -6
- package/src/hooks/handlers/handler-helpers.ts +62 -0
- package/src/hooks/handlers/mcp-hooks.ts +2 -14
- package/src/hooks/handlers/session-hooks.ts +1 -6
- package/src/hooks/handlers/task-hooks.ts +1 -6
- package/src/hooks/handlers/work-capture-hooks.ts +1 -10
- package/src/index.ts +11 -1
- package/src/init.ts +12 -0
- package/src/intelligence/__tests__/adaptive-validation.test.d.ts +11 -0
- package/src/intelligence/__tests__/adaptive-validation.test.d.ts.map +1 -0
- package/src/intelligence/__tests__/adaptive-validation.test.js +517 -0
- package/src/intelligence/__tests__/adaptive-validation.test.js.map +1 -0
- package/src/intelligence/__tests__/impact.test.d.ts +1 -0
- package/src/intelligence/__tests__/impact.test.d.ts.map +1 -1
- package/src/intelligence/__tests__/impact.test.js +132 -1
- package/src/intelligence/__tests__/impact.test.js.map +1 -1
- package/src/internal.ts +17 -0
- package/src/lib/__tests__/retry.test.d.ts +7 -0
- package/src/lib/__tests__/retry.test.d.ts.map +1 -0
- package/src/lib/__tests__/retry.test.js +225 -0
- package/src/lib/__tests__/retry.test.js.map +1 -0
- package/src/lifecycle/__tests__/chain-store.test.js +6 -0
- package/src/lifecycle/__tests__/chain-store.test.js.map +1 -1
- package/src/lifecycle/__tests__/tessera-engine.test.js +52 -0
- package/src/lifecycle/__tests__/tessera-engine.test.js.map +1 -1
- package/src/memory/__tests__/brain-automation.test.d.ts +11 -0
- package/src/memory/__tests__/brain-automation.test.d.ts.map +1 -0
- package/src/memory/__tests__/brain-automation.test.js +730 -0
- package/src/memory/__tests__/brain-automation.test.js.map +1 -0
- package/src/memory/brain-retrieval.ts +9 -0
- package/src/mvi-helpers.ts +81 -0
- package/src/nexus/workspace.ts +19 -7
- package/src/output.ts +43 -10
- package/src/pagination.ts +1 -1
- package/src/sessions/__tests__/session-edge-cases.test.js +20 -1
- package/src/sessions/__tests__/session-edge-cases.test.js.map +1 -1
- package/src/sessions/__tests__/session-find.test.js +1 -1
- package/src/sessions/__tests__/session-find.test.js.map +1 -1
- package/src/sessions/__tests__/session-find.test.ts +1 -1
- package/src/sessions/find.ts +6 -1
- package/src/sessions/index.ts +9 -0
- package/src/store/__tests__/migration-safety.test.js +3 -0
- package/src/store/__tests__/migration-safety.test.js.map +1 -1
- package/src/store/__tests__/session-store.test.js +128 -1
- package/src/store/__tests__/session-store.test.js.map +1 -1
- package/src/store/__tests__/task-store.test.js +18 -1
- package/src/store/__tests__/task-store.test.js.map +1 -1
- package/src/store/__tests__/test-db-helper.d.ts.map +1 -1
- package/src/store/__tests__/test-db-helper.js +12 -0
- package/src/store/__tests__/test-db-helper.js.map +1 -1
- package/src/store/agent-registry-accessor.ts +199 -0
- package/src/store/converters.ts +2 -0
- package/src/store/db-helpers.ts +1 -0
- package/src/store/safety-data-accessor.ts +23 -0
- package/src/store/signaldock-sqlite.ts +227 -0
- package/src/store/sqlite-data-accessor.ts +69 -0
- package/src/store/sqlite.ts +4 -1
- package/src/store/task-store.ts +1 -0
- package/src/store/tasks-schema.ts +42 -0
- package/src/system/health.ts +33 -0
- package/src/task-work/index.ts +5 -0
- package/src/tasks/__tests__/add.test.js +19 -1
- package/src/tasks/__tests__/add.test.js.map +1 -1
- package/src/tasks/__tests__/assignee.test.d.ts +14 -0
- package/src/tasks/__tests__/assignee.test.d.ts.map +1 -0
- package/src/tasks/__tests__/assignee.test.js +125 -0
- package/src/tasks/__tests__/assignee.test.js.map +1 -0
- package/src/tasks/__tests__/assignee.test.ts +162 -0
- package/src/tasks/__tests__/complete-unblocks.test.js +13 -1
- package/src/tasks/__tests__/complete-unblocks.test.js.map +1 -1
- package/src/tasks/__tests__/complete.test.js +28 -7
- package/src/tasks/__tests__/complete.test.js.map +1 -1
- package/src/tasks/__tests__/epic-enforcement.test.d.ts +15 -0
- package/src/tasks/__tests__/epic-enforcement.test.d.ts.map +1 -0
- package/src/tasks/__tests__/epic-enforcement.test.js +669 -0
- package/src/tasks/__tests__/epic-enforcement.test.js.map +1 -0
- package/src/tasks/__tests__/hierarchy-policy.test.js +5 -0
- package/src/tasks/__tests__/hierarchy-policy.test.js.map +1 -1
- package/src/tasks/__tests__/minimal-test.test.d.ts +2 -0
- package/src/tasks/__tests__/minimal-test.test.d.ts.map +1 -0
- package/src/tasks/__tests__/minimal-test.test.js +25 -0
- package/src/tasks/__tests__/minimal-test.test.js.map +1 -0
- package/src/tasks/__tests__/pipeline-stage.test.d.ts +14 -0
- package/src/tasks/__tests__/pipeline-stage.test.d.ts.map +1 -0
- package/src/tasks/__tests__/pipeline-stage.test.js +277 -0
- package/src/tasks/__tests__/pipeline-stage.test.js.map +1 -0
- package/src/tasks/__tests__/update.test.js +43 -6
- package/src/tasks/__tests__/update.test.js.map +1 -1
- package/src/tasks/find.ts +11 -1
- package/src/tasks/list.ts +14 -3
- package/src/tasks/show.ts +6 -0
- package/src/upgrade.ts +16 -0
- package/dist/adapters/adapter-registry.js +0 -64
- package/dist/adapters/adapter-registry.js.map +0 -1
- package/dist/adapters/discovery.js +0 -83
- package/dist/adapters/discovery.js.map +0 -1
- package/dist/adapters/index.js +0 -9
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/manager.js +0 -260
- package/dist/adapters/manager.js.map +0 -1
- package/dist/admin/export-tasks.js +0 -171
- package/dist/admin/export-tasks.js.map +0 -1
- package/dist/admin/export.js +0 -103
- package/dist/admin/export.js.map +0 -1
- package/dist/admin/help.js +0 -106
- package/dist/admin/help.js.map +0 -1
- package/dist/admin/import-tasks.js +0 -182
- package/dist/admin/import-tasks.js.map +0 -1
- package/dist/admin/import.js +0 -129
- package/dist/admin/import.js.map +0 -1
- package/dist/admin/index.js +0 -13
- package/dist/admin/index.js.map +0 -1
- package/dist/adrs/find.js +0 -134
- package/dist/adrs/find.js.map +0 -1
- package/dist/adrs/index.js +0 -15
- package/dist/adrs/index.js.map +0 -1
- package/dist/adrs/link-pipeline.js +0 -160
- package/dist/adrs/link-pipeline.js.map +0 -1
- package/dist/adrs/list.js +0 -43
- package/dist/adrs/list.js.map +0 -1
- package/dist/adrs/parse.js +0 -51
- package/dist/adrs/parse.js.map +0 -1
- package/dist/adrs/show.js +0 -22
- package/dist/adrs/show.js.map +0 -1
- package/dist/adrs/sync.js +0 -188
- package/dist/adrs/sync.js.map +0 -1
- package/dist/adrs/types.js +0 -9
- package/dist/adrs/types.js.map +0 -1
- package/dist/adrs/validate.js +0 -57
- package/dist/adrs/validate.js.map +0 -1
- package/dist/agents/agent-registry.js +0 -288
- package/dist/agents/agent-registry.js.map +0 -1
- package/dist/agents/agent-schema.js +0 -85
- package/dist/agents/agent-schema.js.map +0 -1
- package/dist/agents/capacity.js +0 -116
- package/dist/agents/capacity.js.map +0 -1
- package/dist/agents/execution-learning.js +0 -474
- package/dist/agents/execution-learning.js.map +0 -1
- package/dist/agents/health-monitor.js +0 -217
- package/dist/agents/health-monitor.js.map +0 -1
- package/dist/agents/index.js +0 -29
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/registry.js +0 -314
- package/dist/agents/registry.js.map +0 -1
- package/dist/agents/retry.js +0 -210
- package/dist/agents/retry.js.map +0 -1
- package/dist/audit-prune.js +0 -94
- package/dist/audit-prune.js.map +0 -1
- package/dist/audit.js +0 -68
- package/dist/audit.js.map +0 -1
- package/dist/backfill/index.js +0 -229
- package/dist/backfill/index.js.map +0 -1
- package/dist/bootstrap.js +0 -367
- package/dist/bootstrap.js.map +0 -1
- package/dist/caamp/adapter.js +0 -434
- package/dist/caamp/adapter.js.map +0 -1
- package/dist/caamp/capability-check.js +0 -38
- package/dist/caamp/capability-check.js.map +0 -1
- package/dist/caamp/index.js +0 -23
- package/dist/caamp/index.js.map +0 -1
- package/dist/caamp-init.js +0 -16
- package/dist/caamp-init.js.map +0 -1
- package/dist/cleo.js +0 -302
- package/dist/cleo.js.map +0 -1
- package/dist/codebase-map/analyzers/architecture.js +0 -130
- package/dist/codebase-map/analyzers/architecture.js.map +0 -1
- package/dist/codebase-map/analyzers/concerns.js +0 -122
- package/dist/codebase-map/analyzers/concerns.js.map +0 -1
- package/dist/codebase-map/analyzers/conventions.js +0 -149
- package/dist/codebase-map/analyzers/conventions.js.map +0 -1
- package/dist/codebase-map/analyzers/integrations.js +0 -108
- package/dist/codebase-map/analyzers/integrations.js.map +0 -1
- package/dist/codebase-map/analyzers/stack.js +0 -117
- package/dist/codebase-map/analyzers/stack.js.map +0 -1
- package/dist/codebase-map/analyzers/structure.js +0 -137
- package/dist/codebase-map/analyzers/structure.js.map +0 -1
- package/dist/codebase-map/analyzers/testing.js +0 -118
- package/dist/codebase-map/analyzers/testing.js.map +0 -1
- package/dist/codebase-map/index.js +0 -57
- package/dist/codebase-map/index.js.map +0 -1
- package/dist/codebase-map/store.js +0 -122
- package/dist/codebase-map/store.js.map +0 -1
- package/dist/codebase-map/summary.js +0 -152
- package/dist/codebase-map/summary.js.map +0 -1
- package/dist/compliance/index.js +0 -288
- package/dist/compliance/index.js.map +0 -1
- package/dist/compliance/protocol-enforcement.js +0 -332
- package/dist/compliance/protocol-enforcement.js.map +0 -1
- package/dist/compliance/protocol-rules.js +0 -786
- package/dist/compliance/protocol-rules.js.map +0 -1
- package/dist/compliance/protocol-types.js +0 -80
- package/dist/compliance/protocol-types.js.map +0 -1
- package/dist/compliance/store.js +0 -53
- package/dist/compliance/store.js.map +0 -1
- package/dist/config/build-config.js +0 -29
- package/dist/config/build-config.js.map +0 -1
- package/dist/config.js +0 -400
- package/dist/config.js.map +0 -1
- package/dist/constants.js +0 -18
- package/dist/constants.js.map +0 -1
- package/dist/context/index.js +0 -137
- package/dist/context/index.js.map +0 -1
- package/dist/engine-result.js +0 -12
- package/dist/engine-result.js.map +0 -1
- package/dist/error-catalog.js +0 -404
- package/dist/error-catalog.js.map +0 -1
- package/dist/error-registry.js +0 -393
- package/dist/error-registry.js.map +0 -1
- package/dist/errors.js +0 -167
- package/dist/errors.js.map +0 -1
- package/dist/hooks/handlers/error-hooks.js +0 -43
- package/dist/hooks/handlers/error-hooks.js.map +0 -1
- package/dist/hooks/handlers/file-hooks.js +0 -80
- package/dist/hooks/handlers/file-hooks.js.map +0 -1
- package/dist/hooks/handlers/index.js +0 -19
- package/dist/hooks/handlers/index.js.map +0 -1
- package/dist/hooks/handlers/mcp-hooks.js +0 -80
- package/dist/hooks/handlers/mcp-hooks.js.map +0 -1
- package/dist/hooks/handlers/memory-bridge-refresh.js +0 -42
- package/dist/hooks/handlers/memory-bridge-refresh.js.map +0 -1
- package/dist/hooks/handlers/session-hooks.js +0 -109
- package/dist/hooks/handlers/session-hooks.js.map +0 -1
- package/dist/hooks/handlers/task-hooks.js +0 -70
- package/dist/hooks/handlers/task-hooks.js.map +0 -1
- package/dist/hooks/index.js +0 -13
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/payload-schemas.js +0 -163
- package/dist/hooks/payload-schemas.js.map +0 -1
- package/dist/hooks/provider-hooks.js +0 -34
- package/dist/hooks/provider-hooks.js.map +0 -1
- package/dist/hooks/registry.js +0 -176
- package/dist/hooks/registry.js.map +0 -1
- package/dist/hooks/types.js +0 -62
- package/dist/hooks/types.js.map +0 -1
- package/dist/hooks.js +0 -136
- package/dist/hooks.js.map +0 -1
- package/dist/init.js +0 -711
- package/dist/init.js.map +0 -1
- package/dist/inject/index.js +0 -82
- package/dist/inject/index.js.map +0 -1
- package/dist/injection.js +0 -343
- package/dist/injection.js.map +0 -1
- package/dist/intelligence/adaptive-validation.js +0 -497
- package/dist/intelligence/adaptive-validation.js.map +0 -1
- package/dist/intelligence/impact.js +0 -675
- package/dist/intelligence/impact.js.map +0 -1
- package/dist/intelligence/index.js +0 -22
- package/dist/intelligence/index.js.map +0 -1
- package/dist/intelligence/patterns.js +0 -492
- package/dist/intelligence/patterns.js.map +0 -1
- package/dist/intelligence/prediction.js +0 -499
- package/dist/intelligence/prediction.js.map +0 -1
- package/dist/intelligence/types.js +0 -13
- package/dist/intelligence/types.js.map +0 -1
- package/dist/internal.js +0 -276
- package/dist/internal.js.map +0 -1
- package/dist/issue/create.js +0 -121
- package/dist/issue/create.js.map +0 -1
- package/dist/issue/diagnostics.js +0 -59
- package/dist/issue/diagnostics.js.map +0 -1
- package/dist/issue/index.js +0 -10
- package/dist/issue/index.js.map +0 -1
- package/dist/issue/template-parser.js +0 -267
- package/dist/issue/template-parser.js.map +0 -1
- package/dist/json-schema-validator.js +0 -76
- package/dist/json-schema-validator.js.map +0 -1
- package/dist/lib/index.js +0 -10
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/retry.js +0 -152
- package/dist/lib/retry.js.map +0 -1
- package/dist/lifecycle/chain-composition.js +0 -152
- package/dist/lifecycle/chain-composition.js.map +0 -1
- package/dist/lifecycle/chain-store.js +0 -246
- package/dist/lifecycle/chain-store.js.map +0 -1
- package/dist/lifecycle/consolidate-rcasd.js +0 -352
- package/dist/lifecycle/consolidate-rcasd.js.map +0 -1
- package/dist/lifecycle/default-chain.js +0 -167
- package/dist/lifecycle/default-chain.js.map +0 -1
- package/dist/lifecycle/evidence.js +0 -180
- package/dist/lifecycle/evidence.js.map +0 -1
- package/dist/lifecycle/frontmatter.js +0 -363
- package/dist/lifecycle/frontmatter.js.map +0 -1
- package/dist/lifecycle/index.js +0 -753
- package/dist/lifecycle/index.js.map +0 -1
- package/dist/lifecycle/pipeline.js +0 -656
- package/dist/lifecycle/pipeline.js.map +0 -1
- package/dist/lifecycle/rcasd-index.js +0 -326
- package/dist/lifecycle/rcasd-index.js.map +0 -1
- package/dist/lifecycle/rcasd-paths.js +0 -220
- package/dist/lifecycle/rcasd-paths.js.map +0 -1
- package/dist/lifecycle/resume.js +0 -864
- package/dist/lifecycle/resume.js.map +0 -1
- package/dist/lifecycle/stage-artifacts.js +0 -94
- package/dist/lifecycle/stage-artifacts.js.map +0 -1
- package/dist/lifecycle/stages.js +0 -534
- package/dist/lifecycle/stages.js.map +0 -1
- package/dist/lifecycle/state-machine.js +0 -516
- package/dist/lifecycle/state-machine.js.map +0 -1
- package/dist/lifecycle/tessera-engine.js +0 -249
- package/dist/lifecycle/tessera-engine.js.map +0 -1
- package/dist/logger.js +0 -140
- package/dist/logger.js.map +0 -1
- package/dist/mcp/index.js +0 -146
- package/dist/mcp/index.js.map +0 -1
- package/dist/memory/auto-extract.js +0 -177
- package/dist/memory/auto-extract.js.map +0 -1
- package/dist/memory/brain-embedding.js +0 -66
- package/dist/memory/brain-embedding.js.map +0 -1
- package/dist/memory/brain-lifecycle.js +0 -298
- package/dist/memory/brain-lifecycle.js.map +0 -1
- package/dist/memory/brain-links.js +0 -148
- package/dist/memory/brain-links.js.map +0 -1
- package/dist/memory/brain-maintenance.js +0 -98
- package/dist/memory/brain-maintenance.js.map +0 -1
- package/dist/memory/brain-migration.js +0 -149
- package/dist/memory/brain-migration.js.map +0 -1
- package/dist/memory/brain-reasoning.js +0 -215
- package/dist/memory/brain-reasoning.js.map +0 -1
- package/dist/memory/brain-retrieval.js +0 -521
- package/dist/memory/brain-retrieval.js.map +0 -1
- package/dist/memory/brain-row-types.js +0 -10
- package/dist/memory/brain-row-types.js.map +0 -1
- package/dist/memory/brain-search.js +0 -519
- package/dist/memory/brain-search.js.map +0 -1
- package/dist/memory/brain-similarity.js +0 -145
- package/dist/memory/brain-similarity.js.map +0 -1
- package/dist/memory/claude-mem-migration.js +0 -277
- package/dist/memory/claude-mem-migration.js.map +0 -1
- package/dist/memory/decisions.js +0 -148
- package/dist/memory/decisions.js.map +0 -1
- package/dist/memory/embedding-local.js +0 -97
- package/dist/memory/embedding-local.js.map +0 -1
- package/dist/memory/embedding-queue.js +0 -271
- package/dist/memory/embedding-queue.js.map +0 -1
- package/dist/memory/embedding-worker.js +0 -58
- package/dist/memory/embedding-worker.js.map +0 -1
- package/dist/memory/engine-compat.js +0 -1030
- package/dist/memory/engine-compat.js.map +0 -1
- package/dist/memory/index.js +0 -773
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/learnings.js +0 -121
- package/dist/memory/learnings.js.map +0 -1
- package/dist/memory/memory-bridge.js +0 -370
- package/dist/memory/memory-bridge.js.map +0 -1
- package/dist/memory/patterns.js +0 -122
- package/dist/memory/patterns.js.map +0 -1
- package/dist/memory/pipeline-manifest-sqlite.js +0 -975
- package/dist/memory/pipeline-manifest-sqlite.js.map +0 -1
- package/dist/memory/session-memory.js +0 -331
- package/dist/memory/session-memory.js.map +0 -1
- package/dist/metrics/ab-test.js +0 -260
- package/dist/metrics/ab-test.js.map +0 -1
- package/dist/metrics/aggregation.js +0 -363
- package/dist/metrics/aggregation.js.map +0 -1
- package/dist/metrics/common.js +0 -64
- package/dist/metrics/common.js.map +0 -1
- package/dist/metrics/enums.js +0 -78
- package/dist/metrics/enums.js.map +0 -1
- package/dist/metrics/index.js +0 -19
- package/dist/metrics/index.js.map +0 -1
- package/dist/metrics/model-provider-registry.js +0 -88
- package/dist/metrics/model-provider-registry.js.map +0 -1
- package/dist/metrics/otel-integration.js +0 -263
- package/dist/metrics/otel-integration.js.map +0 -1
- package/dist/metrics/provider-detection.js +0 -103
- package/dist/metrics/provider-detection.js.map +0 -1
- package/dist/metrics/token-estimation.js +0 -253
- package/dist/metrics/token-estimation.js.map +0 -1
- package/dist/metrics/token-service.js +0 -450
- package/dist/metrics/token-service.js.map +0 -1
- package/dist/migration/agent-outputs.js +0 -316
- package/dist/migration/agent-outputs.js.map +0 -1
- package/dist/migration/checksum.js +0 -92
- package/dist/migration/checksum.js.map +0 -1
- package/dist/migration/index.js +0 -282
- package/dist/migration/index.js.map +0 -1
- package/dist/migration/logger.js +0 -360
- package/dist/migration/logger.js.map +0 -1
- package/dist/migration/preflight.js +0 -9
- package/dist/migration/preflight.js.map +0 -1
- package/dist/migration/state.js +0 -421
- package/dist/migration/state.js.map +0 -1
- package/dist/migration/validate.js +0 -241
- package/dist/migration/validate.js.map +0 -1
- package/dist/nexus/deps.js +0 -375
- package/dist/nexus/deps.js.map +0 -1
- package/dist/nexus/discover.js +0 -288
- package/dist/nexus/discover.js.map +0 -1
- package/dist/nexus/hash.js +0 -10
- package/dist/nexus/hash.js.map +0 -1
- package/dist/nexus/index.js +0 -38
- package/dist/nexus/index.js.map +0 -1
- package/dist/nexus/migrate-json-to-sqlite.js +0 -115
- package/dist/nexus/migrate-json-to-sqlite.js.map +0 -1
- package/dist/nexus/permissions.js +0 -105
- package/dist/nexus/permissions.js.map +0 -1
- package/dist/nexus/query.js +0 -175
- package/dist/nexus/query.js.map +0 -1
- package/dist/nexus/registry.js +0 -584
- package/dist/nexus/registry.js.map +0 -1
- package/dist/nexus/sharing/index.js +0 -288
- package/dist/nexus/sharing/index.js.map +0 -1
- package/dist/nexus/transfer-types.js +0 -8
- package/dist/nexus/transfer-types.js.map +0 -1
- package/dist/nexus/transfer.js +0 -263
- package/dist/nexus/transfer.js.map +0 -1
- package/dist/observability/index.js +0 -103
- package/dist/observability/index.js.map +0 -1
- package/dist/observability/log-filter.js +0 -63
- package/dist/observability/log-filter.js.map +0 -1
- package/dist/observability/log-parser.js +0 -99
- package/dist/observability/log-parser.js.map +0 -1
- package/dist/observability/log-reader.js +0 -139
- package/dist/observability/log-reader.js.map +0 -1
- package/dist/observability/types.js +0 -19
- package/dist/observability/types.js.map +0 -1
- package/dist/orchestration/analyze.js +0 -107
- package/dist/orchestration/analyze.js.map +0 -1
- package/dist/orchestration/bootstrap.js +0 -132
- package/dist/orchestration/bootstrap.js.map +0 -1
- package/dist/orchestration/context.js +0 -56
- package/dist/orchestration/context.js.map +0 -1
- package/dist/orchestration/critical-path.js +0 -100
- package/dist/orchestration/critical-path.js.map +0 -1
- package/dist/orchestration/index.js +0 -286
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/parallel.js +0 -89
- package/dist/orchestration/parallel.js.map +0 -1
- package/dist/orchestration/protocol-validators.js +0 -524
- package/dist/orchestration/protocol-validators.js.map +0 -1
- package/dist/orchestration/skill-ops.js +0 -98
- package/dist/orchestration/skill-ops.js.map +0 -1
- package/dist/orchestration/status.js +0 -107
- package/dist/orchestration/status.js.map +0 -1
- package/dist/orchestration/unblock.js +0 -103
- package/dist/orchestration/unblock.js.map +0 -1
- package/dist/orchestration/validate-spawn.js +0 -67
- package/dist/orchestration/validate-spawn.js.map +0 -1
- package/dist/orchestration/waves.js +0 -86
- package/dist/orchestration/waves.js.map +0 -1
- package/dist/otel/index.js +0 -163
- package/dist/otel/index.js.map +0 -1
- package/dist/output.js +0 -132
- package/dist/output.js.map +0 -1
- package/dist/pagination.js +0 -64
- package/dist/pagination.js.map +0 -1
- package/dist/paths.js +0 -337
- package/dist/paths.js.map +0 -1
- package/dist/phases/deps.js +0 -372
- package/dist/phases/deps.js.map +0 -1
- package/dist/phases/index.js +0 -349
- package/dist/phases/index.js.map +0 -1
- package/dist/pipeline/index.js +0 -10
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/phase.js +0 -45
- package/dist/pipeline/phase.js.map +0 -1
- package/dist/platform.js +0 -211
- package/dist/platform.js.map +0 -1
- package/dist/project-info.js +0 -84
- package/dist/project-info.js.map +0 -1
- package/dist/reconciliation/index.js +0 -10
- package/dist/reconciliation/index.js.map +0 -1
- package/dist/reconciliation/link-store.js +0 -129
- package/dist/reconciliation/link-store.js.map +0 -1
- package/dist/reconciliation/reconciliation-engine.js +0 -298
- package/dist/reconciliation/reconciliation-engine.js.map +0 -1
- package/dist/release/artifacts.js +0 -427
- package/dist/release/artifacts.js.map +0 -1
- package/dist/release/changelog-writer.js +0 -151
- package/dist/release/changelog-writer.js.map +0 -1
- package/dist/release/channel.js +0 -144
- package/dist/release/channel.js.map +0 -1
- package/dist/release/ci.js +0 -166
- package/dist/release/ci.js.map +0 -1
- package/dist/release/github-pr.js +0 -225
- package/dist/release/github-pr.js.map +0 -1
- package/dist/release/guards.js +0 -116
- package/dist/release/guards.js.map +0 -1
- package/dist/release/index.js +0 -22
- package/dist/release/index.js.map +0 -1
- package/dist/release/release-config.js +0 -158
- package/dist/release/release-config.js.map +0 -1
- package/dist/release/release-manifest.js +0 -1019
- package/dist/release/release-manifest.js.map +0 -1
- package/dist/release/version-bump.js +0 -255
- package/dist/release/version-bump.js.map +0 -1
- package/dist/remote/index.js +0 -257
- package/dist/remote/index.js.map +0 -1
- package/dist/repair.js +0 -130
- package/dist/repair.js.map +0 -1
- package/dist/research/index.js +0 -2
- package/dist/research/index.js.map +0 -1
- package/dist/roadmap/index.js +0 -59
- package/dist/roadmap/index.js.map +0 -1
- package/dist/routing/capability-matrix.js +0 -1557
- package/dist/routing/capability-matrix.js.map +0 -1
- package/dist/routing/index.js +0 -9
- package/dist/routing/index.js.map +0 -1
- package/dist/scaffold.js +0 -1178
- package/dist/scaffold.js.map +0 -1
- package/dist/schema-management.js +0 -295
- package/dist/schema-management.js.map +0 -1
- package/dist/security/index.js +0 -9
- package/dist/security/index.js.map +0 -1
- package/dist/security/input-sanitization.js +0 -321
- package/dist/security/input-sanitization.js.map +0 -1
- package/dist/sequence/index.js +0 -295
- package/dist/sequence/index.js.map +0 -1
- package/dist/sessions/assumptions.js +0 -54
- package/dist/sessions/assumptions.js.map +0 -1
- package/dist/sessions/briefing.js +0 -377
- package/dist/sessions/briefing.js.map +0 -1
- package/dist/sessions/context-alert.js +0 -222
- package/dist/sessions/context-alert.js.map +0 -1
- package/dist/sessions/context-inject.js +0 -61
- package/dist/sessions/context-inject.js.map +0 -1
- package/dist/sessions/context-monitor.js +0 -98
- package/dist/sessions/context-monitor.js.map +0 -1
- package/dist/sessions/decisions.js +0 -65
- package/dist/sessions/decisions.js.map +0 -1
- package/dist/sessions/find.js +0 -63
- package/dist/sessions/find.js.map +0 -1
- package/dist/sessions/handoff.js +0 -328
- package/dist/sessions/handoff.js.map +0 -1
- package/dist/sessions/hitl-warnings.js +0 -254
- package/dist/sessions/hitl-warnings.js.map +0 -1
- package/dist/sessions/index.js +0 -314
- package/dist/sessions/index.js.map +0 -1
- package/dist/sessions/session-archive.js +0 -40
- package/dist/sessions/session-archive.js.map +0 -1
- package/dist/sessions/session-cleanup.js +0 -59
- package/dist/sessions/session-cleanup.js.map +0 -1
- package/dist/sessions/session-drift.js +0 -134
- package/dist/sessions/session-drift.js.map +0 -1
- package/dist/sessions/session-enforcement.js +0 -144
- package/dist/sessions/session-enforcement.js.map +0 -1
- package/dist/sessions/session-grade.js +0 -253
- package/dist/sessions/session-grade.js.map +0 -1
- package/dist/sessions/session-history.js +0 -42
- package/dist/sessions/session-history.js.map +0 -1
- package/dist/sessions/session-id.js +0 -81
- package/dist/sessions/session-id.js.map +0 -1
- package/dist/sessions/session-memory-bridge.js +0 -52
- package/dist/sessions/session-memory-bridge.js.map +0 -1
- package/dist/sessions/session-show.js +0 -24
- package/dist/sessions/session-show.js.map +0 -1
- package/dist/sessions/session-stats.js +0 -69
- package/dist/sessions/session-stats.js.map +0 -1
- package/dist/sessions/session-suspend.js +0 -39
- package/dist/sessions/session-suspend.js.map +0 -1
- package/dist/sessions/session-switch.js +0 -51
- package/dist/sessions/session-switch.js.map +0 -1
- package/dist/sessions/session-view.js +0 -76
- package/dist/sessions/session-view.js.map +0 -1
- package/dist/sessions/statusline-setup.js +0 -85
- package/dist/sessions/statusline-setup.js.map +0 -1
- package/dist/sessions/types.js +0 -8
- package/dist/sessions/types.js.map +0 -1
- package/dist/signaldock/claude-code-transport.d.ts +0 -34
- package/dist/signaldock/claude-code-transport.d.ts.map +0 -1
- package/dist/signaldock/claude-code-transport.js +0 -107
- package/dist/signaldock/claude-code-transport.js.map +0 -1
- package/dist/signaldock/factory.d.ts +0 -22
- package/dist/signaldock/factory.d.ts.map +0 -1
- package/dist/signaldock/factory.js +0 -25
- package/dist/signaldock/factory.js.map +0 -1
- package/dist/signaldock/index.d.ts +0 -13
- package/dist/signaldock/index.d.ts.map +0 -1
- package/dist/signaldock/index.js +0 -9
- package/dist/signaldock/index.js.map +0 -1
- package/dist/signaldock/signaldock-transport.d.ts +0 -45
- package/dist/signaldock/signaldock-transport.d.ts.map +0 -1
- package/dist/signaldock/signaldock-transport.js +0 -122
- package/dist/signaldock/signaldock-transport.js.map +0 -1
- package/dist/signaldock/transport.d.ts +0 -49
- package/dist/signaldock/transport.d.ts.map +0 -1
- package/dist/signaldock/transport.js +0 -11
- package/dist/signaldock/transport.js.map +0 -1
- package/dist/signaldock/types.d.ts +0 -88
- package/dist/signaldock/types.d.ts.map +0 -1
- package/dist/signaldock/types.js +0 -11
- package/dist/signaldock/types.js.map +0 -1
- package/dist/skills/agents/config.js +0 -94
- package/dist/skills/agents/config.js.map +0 -1
- package/dist/skills/agents/install.js +0 -116
- package/dist/skills/agents/install.js.map +0 -1
- package/dist/skills/agents/registry.js +0 -161
- package/dist/skills/agents/registry.js.map +0 -1
- package/dist/skills/discovery.js +0 -333
- package/dist/skills/discovery.js.map +0 -1
- package/dist/skills/dispatch.js +0 -347
- package/dist/skills/dispatch.js.map +0 -1
- package/dist/skills/dynamic-skill-generator.js +0 -100
- package/dist/skills/dynamic-skill-generator.js.map +0 -1
- package/dist/skills/index.js +0 -44
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/injection/subagent.js +0 -195
- package/dist/skills/injection/subagent.js.map +0 -1
- package/dist/skills/injection/token.js +0 -260
- package/dist/skills/injection/token.js.map +0 -1
- package/dist/skills/install.js +0 -40
- package/dist/skills/install.js.map +0 -1
- package/dist/skills/manifests/contribution.js +0 -175
- package/dist/skills/manifests/contribution.js.map +0 -1
- package/dist/skills/manifests/research.js +0 -281
- package/dist/skills/manifests/research.js.map +0 -1
- package/dist/skills/manifests/resolver.js +0 -146
- package/dist/skills/manifests/resolver.js.map +0 -1
- package/dist/skills/marketplace.js +0 -90
- package/dist/skills/marketplace.js.map +0 -1
- package/dist/skills/orchestrator/spawn.js +0 -178
- package/dist/skills/orchestrator/spawn.js.map +0 -1
- package/dist/skills/orchestrator/startup.js +0 -451
- package/dist/skills/orchestrator/startup.js.map +0 -1
- package/dist/skills/orchestrator/validator.js +0 -301
- package/dist/skills/orchestrator/validator.js.map +0 -1
- package/dist/skills/precedence-integration.js +0 -73
- package/dist/skills/precedence-integration.js.map +0 -1
- package/dist/skills/precedence-types.js +0 -16
- package/dist/skills/precedence-types.js.map +0 -1
- package/dist/skills/routing-table.js +0 -63
- package/dist/skills/routing-table.js.map +0 -1
- package/dist/skills/skill-paths.js +0 -220
- package/dist/skills/skill-paths.js.map +0 -1
- package/dist/skills/test-utility.js +0 -55
- package/dist/skills/test-utility.js.map +0 -1
- package/dist/skills/types.js +0 -118
- package/dist/skills/types.js.map +0 -1
- package/dist/skills/validation.js +0 -183
- package/dist/skills/validation.js.map +0 -1
- package/dist/skills/version.js +0 -57
- package/dist/skills/version.js.map +0 -1
- package/dist/snapshot/index.js +0 -188
- package/dist/snapshot/index.js.map +0 -1
- package/dist/spawn/adapter-registry.js +0 -246
- package/dist/spawn/adapter-registry.js.map +0 -1
- package/dist/spawn/index.js +0 -10
- package/dist/spawn/index.js.map +0 -1
- package/dist/stats/index.js +0 -343
- package/dist/stats/index.js.map +0 -1
- package/dist/stats/workflow-telemetry.js +0 -400
- package/dist/stats/workflow-telemetry.js.map +0 -1
- package/dist/sticky/archive.js +0 -47
- package/dist/sticky/archive.js.map +0 -1
- package/dist/sticky/convert.js +0 -235
- package/dist/sticky/convert.js.map +0 -1
- package/dist/sticky/create.js +0 -48
- package/dist/sticky/create.js.map +0 -1
- package/dist/sticky/id.js +0 -35
- package/dist/sticky/id.js.map +0 -1
- package/dist/sticky/index.js +0 -16
- package/dist/sticky/index.js.map +0 -1
- package/dist/sticky/list.js +0 -44
- package/dist/sticky/list.js.map +0 -1
- package/dist/sticky/purge.js +0 -45
- package/dist/sticky/purge.js.map +0 -1
- package/dist/sticky/show.js +0 -42
- package/dist/sticky/show.js.map +0 -1
- package/dist/sticky/types.js +0 -10
- package/dist/sticky/types.js.map +0 -1
- package/dist/store/atomic.js +0 -167
- package/dist/store/atomic.js.map +0 -1
- package/dist/store/backup.js +0 -94
- package/dist/store/backup.js.map +0 -1
- package/dist/store/brain-accessor.js +0 -397
- package/dist/store/brain-accessor.js.map +0 -1
- package/dist/store/brain-schema.js +0 -215
- package/dist/store/brain-schema.js.map +0 -1
- package/dist/store/brain-sqlite.js +0 -222
- package/dist/store/brain-sqlite.js.map +0 -1
- package/dist/store/cache.js +0 -168
- package/dist/store/cache.js.map +0 -1
- package/dist/store/chain-schema.js +0 -51
- package/dist/store/chain-schema.js.map +0 -1
- package/dist/store/converters.js +0 -122
- package/dist/store/converters.js.map +0 -1
- package/dist/store/cross-db-cleanup.js +0 -169
- package/dist/store/cross-db-cleanup.js.map +0 -1
- package/dist/store/data-accessor.js +0 -26
- package/dist/store/data-accessor.js.map +0 -1
- package/dist/store/data-safety-central.js +0 -269
- package/dist/store/data-safety-central.js.map +0 -1
- package/dist/store/data-safety.js +0 -274
- package/dist/store/data-safety.js.map +0 -1
- package/dist/store/db-helpers.js +0 -223
- package/dist/store/db-helpers.js.map +0 -1
- package/dist/store/export.js +0 -155
- package/dist/store/export.js.map +0 -1
- package/dist/store/file-utils.js +0 -270
- package/dist/store/file-utils.js.map +0 -1
- package/dist/store/git-checkpoint.js +0 -365
- package/dist/store/git-checkpoint.js.map +0 -1
- package/dist/store/import-logging.js +0 -139
- package/dist/store/import-logging.js.map +0 -1
- package/dist/store/import-remap.js +0 -145
- package/dist/store/import-remap.js.map +0 -1
- package/dist/store/import-sort.js +0 -121
- package/dist/store/import-sort.js.map +0 -1
- package/dist/store/index.js +0 -28
- package/dist/store/index.js.map +0 -1
- package/dist/store/json.js +0 -208
- package/dist/store/json.js.map +0 -1
- package/dist/store/lifecycle-store.js +0 -249
- package/dist/store/lifecycle-store.js.map +0 -1
- package/dist/store/lock.js +0 -70
- package/dist/store/lock.js.map +0 -1
- package/dist/store/migration-manager.js +0 -151
- package/dist/store/migration-manager.js.map +0 -1
- package/dist/store/migration-sqlite.js +0 -676
- package/dist/store/migration-sqlite.js.map +0 -1
- package/dist/store/nexus-schema.js +0 -62
- package/dist/store/nexus-schema.js.map +0 -1
- package/dist/store/nexus-sqlite.js +0 -217
- package/dist/store/nexus-sqlite.js.map +0 -1
- package/dist/store/nexus-validation-schemas.js +0 -40
- package/dist/store/nexus-validation-schemas.js.map +0 -1
- package/dist/store/parsers.js +0 -37
- package/dist/store/parsers.js.map +0 -1
- package/dist/store/project-detect.js +0 -457
- package/dist/store/project-detect.js.map +0 -1
- package/dist/store/provider.js +0 -101
- package/dist/store/provider.js.map +0 -1
- package/dist/store/safety-data-accessor.js +0 -243
- package/dist/store/safety-data-accessor.js.map +0 -1
- package/dist/store/schema.js +0 -7
- package/dist/store/schema.js.map +0 -1
- package/dist/store/session-store.js +0 -219
- package/dist/store/session-store.js.map +0 -1
- package/dist/store/sqlite-backup.js +0 -105
- package/dist/store/sqlite-backup.js.map +0 -1
- package/dist/store/sqlite-data-accessor.js +0 -734
- package/dist/store/sqlite-data-accessor.js.map +0 -1
- package/dist/store/sqlite.js +0 -436
- package/dist/store/sqlite.js.map +0 -1
- package/dist/store/status-registry.js +0 -8
- package/dist/store/status-registry.js.map +0 -1
- package/dist/store/task-store.js +0 -348
- package/dist/store/task-store.js.map +0 -1
- package/dist/store/tasks-schema.js +0 -604
- package/dist/store/tasks-schema.js.map +0 -1
- package/dist/store/typed-query.js +0 -15
- package/dist/store/typed-query.js.map +0 -1
- package/dist/store/validation-schemas.js +0 -278
- package/dist/store/validation-schemas.js.map +0 -1
- package/dist/system/archive-analytics.js +0 -277
- package/dist/system/archive-analytics.js.map +0 -1
- package/dist/system/archive-stats.js +0 -64
- package/dist/system/archive-stats.js.map +0 -1
- package/dist/system/audit.js +0 -145
- package/dist/system/audit.js.map +0 -1
- package/dist/system/backup.js +0 -141
- package/dist/system/backup.js.map +0 -1
- package/dist/system/cleanup.js +0 -134
- package/dist/system/cleanup.js.map +0 -1
- package/dist/system/health.js +0 -1054
- package/dist/system/health.js.map +0 -1
- package/dist/system/index.js +0 -18
- package/dist/system/index.js.map +0 -1
- package/dist/system/inject-generate.js +0 -122
- package/dist/system/inject-generate.js.map +0 -1
- package/dist/system/labels.js +0 -38
- package/dist/system/labels.js.map +0 -1
- package/dist/system/metrics.js +0 -61
- package/dist/system/metrics.js.map +0 -1
- package/dist/system/migrate.js +0 -43
- package/dist/system/migrate.js.map +0 -1
- package/dist/system/platform-paths.js +0 -80
- package/dist/system/platform-paths.js.map +0 -1
- package/dist/system/runtime.js +0 -161
- package/dist/system/runtime.js.map +0 -1
- package/dist/system/safestop.js +0 -99
- package/dist/system/safestop.js.map +0 -1
- package/dist/system/storage-preflight.js +0 -123
- package/dist/system/storage-preflight.js.map +0 -1
- package/dist/task-work/index.js +0 -155
- package/dist/task-work/index.js.map +0 -1
- package/dist/tasks/add.js +0 -661
- package/dist/tasks/add.js.map +0 -1
- package/dist/tasks/analyze.js +0 -85
- package/dist/tasks/analyze.js.map +0 -1
- package/dist/tasks/archive.js +0 -90
- package/dist/tasks/archive.js.map +0 -1
- package/dist/tasks/atomicity.js +0 -83
- package/dist/tasks/atomicity.js.map +0 -1
- package/dist/tasks/cancel-ops.js +0 -83
- package/dist/tasks/cancel-ops.js.map +0 -1
- package/dist/tasks/complete.js +0 -208
- package/dist/tasks/complete.js.map +0 -1
- package/dist/tasks/crossref-extract.js +0 -73
- package/dist/tasks/crossref-extract.js.map +0 -1
- package/dist/tasks/delete-preview.js +0 -192
- package/dist/tasks/delete-preview.js.map +0 -1
- package/dist/tasks/delete.js +0 -120
- package/dist/tasks/delete.js.map +0 -1
- package/dist/tasks/deletion-strategy.js +0 -200
- package/dist/tasks/deletion-strategy.js.map +0 -1
- package/dist/tasks/dependency-check.js +0 -278
- package/dist/tasks/dependency-check.js.map +0 -1
- package/dist/tasks/deps-ready.js +0 -32
- package/dist/tasks/deps-ready.js.map +0 -1
- package/dist/tasks/enforcement.js +0 -86
- package/dist/tasks/enforcement.js.map +0 -1
- package/dist/tasks/epic-enforcement.js +0 -294
- package/dist/tasks/epic-enforcement.js.map +0 -1
- package/dist/tasks/find.js +0 -148
- package/dist/tasks/find.js.map +0 -1
- package/dist/tasks/graph-cache.js +0 -127
- package/dist/tasks/graph-cache.js.map +0 -1
- package/dist/tasks/graph-ops.js +0 -171
- package/dist/tasks/graph-ops.js.map +0 -1
- package/dist/tasks/graph-rag.js +0 -328
- package/dist/tasks/graph-rag.js.map +0 -1
- package/dist/tasks/hierarchy-policy.js +0 -149
- package/dist/tasks/hierarchy-policy.js.map +0 -1
- package/dist/tasks/hierarchy.js +0 -185
- package/dist/tasks/hierarchy.js.map +0 -1
- package/dist/tasks/id-generator.js +0 -65
- package/dist/tasks/id-generator.js.map +0 -1
- package/dist/tasks/index.js +0 -14
- package/dist/tasks/index.js.map +0 -1
- package/dist/tasks/labels.js +0 -52
- package/dist/tasks/labels.js.map +0 -1
- package/dist/tasks/list.js +0 -68
- package/dist/tasks/list.js.map +0 -1
- package/dist/tasks/phase-tracking.js +0 -133
- package/dist/tasks/phase-tracking.js.map +0 -1
- package/dist/tasks/pipeline-stage.js +0 -248
- package/dist/tasks/pipeline-stage.js.map +0 -1
- package/dist/tasks/plan.js +0 -268
- package/dist/tasks/plan.js.map +0 -1
- package/dist/tasks/relates.js +0 -89
- package/dist/tasks/relates.js.map +0 -1
- package/dist/tasks/reparent.d.ts +0 -38
- package/dist/tasks/reparent.d.ts.map +0 -1
- package/dist/tasks/show.js +0 -78
- package/dist/tasks/show.js.map +0 -1
- package/dist/tasks/size-weighting.js +0 -86
- package/dist/tasks/size-weighting.js.map +0 -1
- package/dist/tasks/staleness.js +0 -86
- package/dist/tasks/staleness.js.map +0 -1
- package/dist/tasks/task-ops.js +0 -1340
- package/dist/tasks/task-ops.js.map +0 -1
- package/dist/tasks/update.js +0 -271
- package/dist/tasks/update.js.map +0 -1
- package/dist/templates/index.js +0 -10
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/parser.js +0 -254
- package/dist/templates/parser.js.map +0 -1
- package/dist/ui/aliases.js +0 -153
- package/dist/ui/aliases.js.map +0 -1
- package/dist/ui/changelog.js +0 -184
- package/dist/ui/changelog.js.map +0 -1
- package/dist/ui/command-registry.js +0 -168
- package/dist/ui/command-registry.js.map +0 -1
- package/dist/ui/flags.js +0 -94
- package/dist/ui/flags.js.map +0 -1
- package/dist/ui/index.js +0 -24
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/injection-legacy.d.ts +0 -26
- package/dist/ui/injection-legacy.d.ts.map +0 -1
- package/dist/ui/injection-legacy.js +0 -42
- package/dist/ui/injection-legacy.js.map +0 -1
- package/dist/upgrade.js +0 -1144
- package/dist/upgrade.js.map +0 -1
- package/dist/validation/chain-validation.js +0 -146
- package/dist/validation/chain-validation.js.map +0 -1
- package/dist/validation/compliance.js +0 -155
- package/dist/validation/compliance.js.map +0 -1
- package/dist/validation/docs-sync.js +0 -212
- package/dist/validation/docs-sync.js.map +0 -1
- package/dist/validation/doctor/checks.js +0 -1069
- package/dist/validation/doctor/checks.js.map +0 -1
- package/dist/validation/doctor/index.js +0 -9
- package/dist/validation/doctor/index.js.map +0 -1
- package/dist/validation/doctor/project-cache.js +0 -160
- package/dist/validation/doctor/project-cache.js.map +0 -1
- package/dist/validation/doctor/utils.js +0 -155
- package/dist/validation/doctor/utils.js.map +0 -1
- package/dist/validation/engine.js +0 -902
- package/dist/validation/engine.js.map +0 -1
- package/dist/validation/gap-check.js +0 -175
- package/dist/validation/gap-check.js.map +0 -1
- package/dist/validation/index.js +0 -40
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/manifest.js +0 -237
- package/dist/validation/manifest.js.map +0 -1
- package/dist/validation/operation-gate-validators.js +0 -724
- package/dist/validation/operation-gate-validators.js.map +0 -1
- package/dist/validation/operation-verification-gates.js +0 -532
- package/dist/validation/operation-verification-gates.js.map +0 -1
- package/dist/validation/param-utils.js +0 -139
- package/dist/validation/param-utils.js.map +0 -1
- package/dist/validation/protocol-common.js +0 -300
- package/dist/validation/protocol-common.js.map +0 -1
- package/dist/validation/protocols/consensus.js +0 -71
- package/dist/validation/protocols/consensus.js.map +0 -1
- package/dist/validation/protocols/contribution.js +0 -59
- package/dist/validation/protocols/contribution.js.map +0 -1
- package/dist/validation/protocols/decomposition.js +0 -59
- package/dist/validation/protocols/decomposition.js.map +0 -1
- package/dist/validation/protocols/implementation.js +0 -59
- package/dist/validation/protocols/implementation.js.map +0 -1
- package/dist/validation/protocols/release-protocol.js +0 -60
- package/dist/validation/protocols/release-protocol.js.map +0 -1
- package/dist/validation/protocols/research.js +0 -77
- package/dist/validation/protocols/research.js.map +0 -1
- package/dist/validation/protocols/specification.js +0 -84
- package/dist/validation/protocols/specification.js.map +0 -1
- package/dist/validation/protocols/testing-protocol.js +0 -70
- package/dist/validation/protocols/testing-protocol.js.map +0 -1
- package/dist/validation/protocols/validation-protocol.js +0 -70
- package/dist/validation/protocols/validation-protocol.js.map +0 -1
- package/dist/validation/schema-integrity.js +0 -170
- package/dist/validation/schema-integrity.js.map +0 -1
- package/dist/validation/schema-validator.js +0 -176
- package/dist/validation/schema-validator.js.map +0 -1
- package/dist/validation/validate-ops.js +0 -937
- package/dist/validation/validate-ops.js.map +0 -1
- package/dist/validation/validation-rules.js +0 -226
- package/dist/validation/validation-rules.js.map +0 -1
- package/dist/validation/verification.js +0 -321
- package/dist/validation/verification.js.map +0 -1
- package/src/signaldock/__tests__/claude-code-transport.test.d.ts +0 -7
- package/src/signaldock/__tests__/claude-code-transport.test.d.ts.map +0 -1
- package/src/signaldock/__tests__/claude-code-transport.test.js +0 -147
- package/src/signaldock/__tests__/claude-code-transport.test.js.map +0 -1
- package/src/signaldock/__tests__/claude-code-transport.test.ts +0 -180
- package/src/signaldock/__tests__/factory.test.d.ts +0 -7
- package/src/signaldock/__tests__/factory.test.d.ts.map +0 -1
- package/src/signaldock/__tests__/factory.test.js +0 -55
- package/src/signaldock/__tests__/factory.test.js.map +0 -1
- package/src/signaldock/__tests__/factory.test.ts +0 -61
- package/src/signaldock/__tests__/signaldock-transport.test.d.ts +0 -9
- package/src/signaldock/__tests__/signaldock-transport.test.d.ts.map +0 -1
- package/src/signaldock/__tests__/signaldock-transport.test.js +0 -321
- package/src/signaldock/__tests__/signaldock-transport.test.js.map +0 -1
- package/src/signaldock/__tests__/signaldock-transport.test.ts +0 -421
- package/src/signaldock/claude-code-transport.ts +0 -137
- package/src/signaldock/factory.ts +0 -39
- package/src/signaldock/index.ts +0 -28
- package/src/signaldock/signaldock-transport.ts +0 -194
- package/src/signaldock/transport.ts +0 -78
- package/src/signaldock/types.ts +0 -100
package/dist/index.js
CHANGED
|
@@ -516,6 +516,1207 @@ var init_status_registry = __esm({
|
|
|
516
516
|
}
|
|
517
517
|
});
|
|
518
518
|
|
|
519
|
+
// packages/contracts/src/wasm/lafs-core/lafs_core.js
|
|
520
|
+
var lafs_core_exports = {};
|
|
521
|
+
__export(lafs_core_exports, {
|
|
522
|
+
WasmLafsEnvelope: () => WasmLafsEnvelope,
|
|
523
|
+
WasmLafsMeta: () => WasmLafsMeta,
|
|
524
|
+
WasmLafsTransport: () => WasmLafsTransport,
|
|
525
|
+
create_transport: () => create_transport,
|
|
526
|
+
default: () => __wbg_init,
|
|
527
|
+
initSync: () => initSync
|
|
528
|
+
});
|
|
529
|
+
function create_transport(transport) {
|
|
530
|
+
const ptr0 = passStringToWasm0(transport, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
531
|
+
const len0 = WASM_VECTOR_LEN;
|
|
532
|
+
const ret = wasm.create_transport(ptr0, len0);
|
|
533
|
+
return WasmLafsTransport.__wrap(ret);
|
|
534
|
+
}
|
|
535
|
+
function __wbg_get_imports() {
|
|
536
|
+
const import0 = {
|
|
537
|
+
__proto__: null,
|
|
538
|
+
__wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
|
|
539
|
+
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
540
|
+
},
|
|
541
|
+
__wbg_getRandomValues_a1cf2e70b003a59d: function() {
|
|
542
|
+
return handleError(function(arg0, arg1) {
|
|
543
|
+
globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
|
|
544
|
+
}, arguments);
|
|
545
|
+
},
|
|
546
|
+
__wbg_getTime_1dad7b5386ddd2d9: function(arg0) {
|
|
547
|
+
const ret = arg0.getTime();
|
|
548
|
+
return ret;
|
|
549
|
+
},
|
|
550
|
+
__wbg_new_0_1dcafdf5e786e876: function() {
|
|
551
|
+
const ret = /* @__PURE__ */ new Date();
|
|
552
|
+
return ret;
|
|
553
|
+
},
|
|
554
|
+
__wbindgen_init_externref_table: function() {
|
|
555
|
+
const table = wasm.__wbindgen_externrefs;
|
|
556
|
+
const offset = table.grow(4);
|
|
557
|
+
table.set(0, void 0);
|
|
558
|
+
table.set(offset + 0, void 0);
|
|
559
|
+
table.set(offset + 1, null);
|
|
560
|
+
table.set(offset + 2, true);
|
|
561
|
+
table.set(offset + 3, false);
|
|
562
|
+
}
|
|
563
|
+
};
|
|
564
|
+
return {
|
|
565
|
+
__proto__: null,
|
|
566
|
+
"./lafs_core_bg.js": import0
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
function addToExternrefTable0(obj) {
|
|
570
|
+
const idx = wasm.__externref_table_alloc();
|
|
571
|
+
wasm.__wbindgen_externrefs.set(idx, obj);
|
|
572
|
+
return idx;
|
|
573
|
+
}
|
|
574
|
+
function _assertClass(instance, klass) {
|
|
575
|
+
if (!(instance instanceof klass)) {
|
|
576
|
+
throw new Error(`expected instance of ${klass.name}`);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
function getArrayU8FromWasm0(ptr, len) {
|
|
580
|
+
ptr = ptr >>> 0;
|
|
581
|
+
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
582
|
+
}
|
|
583
|
+
function getStringFromWasm0(ptr, len) {
|
|
584
|
+
ptr = ptr >>> 0;
|
|
585
|
+
return decodeText(ptr, len);
|
|
586
|
+
}
|
|
587
|
+
function getUint8ArrayMemory0() {
|
|
588
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
589
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
590
|
+
}
|
|
591
|
+
return cachedUint8ArrayMemory0;
|
|
592
|
+
}
|
|
593
|
+
function handleError(f, args) {
|
|
594
|
+
try {
|
|
595
|
+
return f.apply(this, args);
|
|
596
|
+
} catch (e) {
|
|
597
|
+
const idx = addToExternrefTable0(e);
|
|
598
|
+
wasm.__wbindgen_exn_store(idx);
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
function passStringToWasm0(arg, malloc, realloc) {
|
|
602
|
+
if (realloc === void 0) {
|
|
603
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
604
|
+
const ptr2 = malloc(buf.length, 1) >>> 0;
|
|
605
|
+
getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
|
|
606
|
+
WASM_VECTOR_LEN = buf.length;
|
|
607
|
+
return ptr2;
|
|
608
|
+
}
|
|
609
|
+
let len = arg.length;
|
|
610
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
611
|
+
const mem = getUint8ArrayMemory0();
|
|
612
|
+
let offset = 0;
|
|
613
|
+
for (; offset < len; offset++) {
|
|
614
|
+
const code = arg.charCodeAt(offset);
|
|
615
|
+
if (code > 127) break;
|
|
616
|
+
mem[ptr + offset] = code;
|
|
617
|
+
}
|
|
618
|
+
if (offset !== len) {
|
|
619
|
+
if (offset !== 0) {
|
|
620
|
+
arg = arg.slice(offset);
|
|
621
|
+
}
|
|
622
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
623
|
+
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
|
|
624
|
+
const ret = cachedTextEncoder.encodeInto(arg, view);
|
|
625
|
+
offset += ret.written;
|
|
626
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
627
|
+
}
|
|
628
|
+
WASM_VECTOR_LEN = offset;
|
|
629
|
+
return ptr;
|
|
630
|
+
}
|
|
631
|
+
function decodeText(ptr, len) {
|
|
632
|
+
numBytesDecoded += len;
|
|
633
|
+
if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
|
|
634
|
+
cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
635
|
+
cachedTextDecoder.decode();
|
|
636
|
+
numBytesDecoded = len;
|
|
637
|
+
}
|
|
638
|
+
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
639
|
+
}
|
|
640
|
+
function __wbg_finalize_init(instance, module) {
|
|
641
|
+
wasm = instance.exports;
|
|
642
|
+
wasmModule = module;
|
|
643
|
+
cachedUint8ArrayMemory0 = null;
|
|
644
|
+
wasm.__wbindgen_start();
|
|
645
|
+
return wasm;
|
|
646
|
+
}
|
|
647
|
+
async function __wbg_load(module, imports) {
|
|
648
|
+
if (typeof Response === "function" && module instanceof Response) {
|
|
649
|
+
if (typeof WebAssembly.instantiateStreaming === "function") {
|
|
650
|
+
try {
|
|
651
|
+
return await WebAssembly.instantiateStreaming(module, imports);
|
|
652
|
+
} catch (e) {
|
|
653
|
+
const validResponse = module.ok && expectedResponseType(module.type);
|
|
654
|
+
if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {
|
|
655
|
+
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
|
|
656
|
+
} else {
|
|
657
|
+
throw e;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
const bytes = await module.arrayBuffer();
|
|
662
|
+
return await WebAssembly.instantiate(bytes, imports);
|
|
663
|
+
} else {
|
|
664
|
+
const instance = await WebAssembly.instantiate(module, imports);
|
|
665
|
+
if (instance instanceof WebAssembly.Instance) {
|
|
666
|
+
return { instance, module };
|
|
667
|
+
} else {
|
|
668
|
+
return instance;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
function expectedResponseType(type) {
|
|
672
|
+
switch (type) {
|
|
673
|
+
case "basic":
|
|
674
|
+
case "cors":
|
|
675
|
+
case "default":
|
|
676
|
+
return true;
|
|
677
|
+
}
|
|
678
|
+
return false;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
function initSync(module) {
|
|
682
|
+
if (wasm !== void 0) return wasm;
|
|
683
|
+
if (module !== void 0) {
|
|
684
|
+
if (Object.getPrototypeOf(module) === Object.prototype) {
|
|
685
|
+
({ module } = module);
|
|
686
|
+
} else {
|
|
687
|
+
console.warn("using deprecated parameters for `initSync()`; pass a single object instead");
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
const imports = __wbg_get_imports();
|
|
691
|
+
if (!(module instanceof WebAssembly.Module)) {
|
|
692
|
+
module = new WebAssembly.Module(module);
|
|
693
|
+
}
|
|
694
|
+
const instance = new WebAssembly.Instance(module, imports);
|
|
695
|
+
return __wbg_finalize_init(instance, module);
|
|
696
|
+
}
|
|
697
|
+
async function __wbg_init(module_or_path) {
|
|
698
|
+
if (wasm !== void 0) return wasm;
|
|
699
|
+
if (module_or_path !== void 0) {
|
|
700
|
+
if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
|
|
701
|
+
({ module_or_path } = module_or_path);
|
|
702
|
+
} else {
|
|
703
|
+
console.warn("using deprecated parameters for the initialization function; pass a single object instead");
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
if (module_or_path === void 0) {
|
|
707
|
+
module_or_path = new URL("lafs_core_bg.wasm", import.meta.url);
|
|
708
|
+
}
|
|
709
|
+
const imports = __wbg_get_imports();
|
|
710
|
+
if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {
|
|
711
|
+
module_or_path = fetch(module_or_path);
|
|
712
|
+
}
|
|
713
|
+
const { instance, module } = await __wbg_load(await module_or_path, imports);
|
|
714
|
+
return __wbg_finalize_init(instance, module);
|
|
715
|
+
}
|
|
716
|
+
var WasmLafsEnvelope, WasmLafsMeta, WasmLafsTransport, WasmLafsEnvelopeFinalization, WasmLafsMetaFinalization, WasmLafsTransportFinalization, cachedUint8ArrayMemory0, cachedTextDecoder, MAX_SAFARI_DECODE_BYTES, numBytesDecoded, cachedTextEncoder, WASM_VECTOR_LEN, wasmModule, wasm;
|
|
717
|
+
var init_lafs_core = __esm({
|
|
718
|
+
"packages/contracts/src/wasm/lafs-core/lafs_core.js"() {
|
|
719
|
+
"use strict";
|
|
720
|
+
WasmLafsEnvelope = class _WasmLafsEnvelope {
|
|
721
|
+
static __wrap(ptr) {
|
|
722
|
+
ptr = ptr >>> 0;
|
|
723
|
+
const obj = Object.create(_WasmLafsEnvelope.prototype);
|
|
724
|
+
obj.__wbg_ptr = ptr;
|
|
725
|
+
WasmLafsEnvelopeFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
726
|
+
return obj;
|
|
727
|
+
}
|
|
728
|
+
__destroy_into_raw() {
|
|
729
|
+
const ptr = this.__wbg_ptr;
|
|
730
|
+
this.__wbg_ptr = 0;
|
|
731
|
+
WasmLafsEnvelopeFinalization.unregister(this);
|
|
732
|
+
return ptr;
|
|
733
|
+
}
|
|
734
|
+
free() {
|
|
735
|
+
const ptr = this.__destroy_into_raw();
|
|
736
|
+
wasm.__wbg_wasmlafsenvelope_free(ptr, 0);
|
|
737
|
+
}
|
|
738
|
+
/**
|
|
739
|
+
* Create an error envelope.
|
|
740
|
+
*
|
|
741
|
+
* # Arguments
|
|
742
|
+
* * `code` - Error code string
|
|
743
|
+
* * `message` - Error message
|
|
744
|
+
* * `meta` - LAFS metadata
|
|
745
|
+
* @param {string} code
|
|
746
|
+
* @param {string} message
|
|
747
|
+
* @param {WasmLafsMeta} meta
|
|
748
|
+
* @returns {WasmLafsEnvelope}
|
|
749
|
+
*/
|
|
750
|
+
static createError(code, message, meta) {
|
|
751
|
+
const ptr0 = passStringToWasm0(code, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
752
|
+
const len0 = WASM_VECTOR_LEN;
|
|
753
|
+
const ptr1 = passStringToWasm0(message, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
754
|
+
const len1 = WASM_VECTOR_LEN;
|
|
755
|
+
_assertClass(meta, WasmLafsMeta);
|
|
756
|
+
var ptr2 = meta.__destroy_into_raw();
|
|
757
|
+
const ret = wasm.wasmlafsenvelope_createError(ptr0, len0, ptr1, len1, ptr2);
|
|
758
|
+
return _WasmLafsEnvelope.__wrap(ret);
|
|
759
|
+
}
|
|
760
|
+
/**
|
|
761
|
+
* Create a success envelope.
|
|
762
|
+
*
|
|
763
|
+
* # Arguments
|
|
764
|
+
* * `data` - JSON string of the result data
|
|
765
|
+
* * `meta` - LAFS metadata
|
|
766
|
+
* @param {string} data
|
|
767
|
+
* @param {WasmLafsMeta} meta
|
|
768
|
+
* @returns {WasmLafsEnvelope}
|
|
769
|
+
*/
|
|
770
|
+
static createSuccess(data, meta) {
|
|
771
|
+
const ptr0 = passStringToWasm0(data, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
772
|
+
const len0 = WASM_VECTOR_LEN;
|
|
773
|
+
_assertClass(meta, WasmLafsMeta);
|
|
774
|
+
var ptr1 = meta.__destroy_into_raw();
|
|
775
|
+
const ret = wasm.wasmlafsenvelope_createSuccess(ptr0, len0, ptr1);
|
|
776
|
+
return _WasmLafsEnvelope.__wrap(ret);
|
|
777
|
+
}
|
|
778
|
+
/**
|
|
779
|
+
* Get the error as a JSON string.
|
|
780
|
+
* @returns {string}
|
|
781
|
+
*/
|
|
782
|
+
get error_json() {
|
|
783
|
+
let deferred1_0;
|
|
784
|
+
let deferred1_1;
|
|
785
|
+
try {
|
|
786
|
+
const ret = wasm.wasmlafsenvelope_error_json(this.__wbg_ptr);
|
|
787
|
+
deferred1_0 = ret[0];
|
|
788
|
+
deferred1_1 = ret[1];
|
|
789
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
790
|
+
} finally {
|
|
791
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
/**
|
|
795
|
+
* Get the metadata as a JSON string.
|
|
796
|
+
* @returns {string}
|
|
797
|
+
*/
|
|
798
|
+
get meta_json() {
|
|
799
|
+
let deferred1_0;
|
|
800
|
+
let deferred1_1;
|
|
801
|
+
try {
|
|
802
|
+
const ret = wasm.wasmlafsenvelope_meta_json(this.__wbg_ptr);
|
|
803
|
+
deferred1_0 = ret[0];
|
|
804
|
+
deferred1_1 = ret[1];
|
|
805
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
806
|
+
} finally {
|
|
807
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
/**
|
|
811
|
+
* Get the result as a JSON string.
|
|
812
|
+
* @returns {string}
|
|
813
|
+
*/
|
|
814
|
+
get result_json() {
|
|
815
|
+
let deferred1_0;
|
|
816
|
+
let deferred1_1;
|
|
817
|
+
try {
|
|
818
|
+
const ret = wasm.wasmlafsenvelope_result_json(this.__wbg_ptr);
|
|
819
|
+
deferred1_0 = ret[0];
|
|
820
|
+
deferred1_1 = ret[1];
|
|
821
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
822
|
+
} finally {
|
|
823
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
/**
|
|
827
|
+
* Check if the envelope represents success.
|
|
828
|
+
* @returns {boolean}
|
|
829
|
+
*/
|
|
830
|
+
get success() {
|
|
831
|
+
const ret = wasm.wasmlafsenvelope_success(this.__wbg_ptr);
|
|
832
|
+
return ret !== 0;
|
|
833
|
+
}
|
|
834
|
+
};
|
|
835
|
+
if (Symbol.dispose) WasmLafsEnvelope.prototype[Symbol.dispose] = WasmLafsEnvelope.prototype.free;
|
|
836
|
+
WasmLafsMeta = class {
|
|
837
|
+
__destroy_into_raw() {
|
|
838
|
+
const ptr = this.__wbg_ptr;
|
|
839
|
+
this.__wbg_ptr = 0;
|
|
840
|
+
WasmLafsMetaFinalization.unregister(this);
|
|
841
|
+
return ptr;
|
|
842
|
+
}
|
|
843
|
+
free() {
|
|
844
|
+
const ptr = this.__destroy_into_raw();
|
|
845
|
+
wasm.__wbg_wasmlafsmeta_free(ptr, 0);
|
|
846
|
+
}
|
|
847
|
+
/**
|
|
848
|
+
* Create new LAFS metadata.
|
|
849
|
+
*
|
|
850
|
+
* # Arguments
|
|
851
|
+
* * `operation` - The operation name (e.g., "tasks.list")
|
|
852
|
+
* * `transport` - Transport type string ("cli", "http", "grpc", "sdk")
|
|
853
|
+
* @param {string} operation
|
|
854
|
+
* @param {string} transport
|
|
855
|
+
*/
|
|
856
|
+
constructor(operation, transport) {
|
|
857
|
+
const ptr0 = passStringToWasm0(operation, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
858
|
+
const len0 = WASM_VECTOR_LEN;
|
|
859
|
+
const ptr1 = passStringToWasm0(transport, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
860
|
+
const len1 = WASM_VECTOR_LEN;
|
|
861
|
+
const ret = wasm.wasmlafsmeta_new(ptr0, len0, ptr1, len1);
|
|
862
|
+
this.__wbg_ptr = ret >>> 0;
|
|
863
|
+
WasmLafsMetaFinalization.register(this, this.__wbg_ptr, this);
|
|
864
|
+
return this;
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Get the operation name.
|
|
868
|
+
* @returns {string}
|
|
869
|
+
*/
|
|
870
|
+
get operation() {
|
|
871
|
+
let deferred1_0;
|
|
872
|
+
let deferred1_1;
|
|
873
|
+
try {
|
|
874
|
+
const ret = wasm.wasmlafsmeta_operation(this.__wbg_ptr);
|
|
875
|
+
deferred1_0 = ret[0];
|
|
876
|
+
deferred1_1 = ret[1];
|
|
877
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
878
|
+
} finally {
|
|
879
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
/**
|
|
883
|
+
* Get the schema version.
|
|
884
|
+
* @returns {string}
|
|
885
|
+
*/
|
|
886
|
+
get schema_version() {
|
|
887
|
+
let deferred1_0;
|
|
888
|
+
let deferred1_1;
|
|
889
|
+
try {
|
|
890
|
+
const ret = wasm.wasmlafsmeta_schema_version(this.__wbg_ptr);
|
|
891
|
+
deferred1_0 = ret[0];
|
|
892
|
+
deferred1_1 = ret[1];
|
|
893
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
894
|
+
} finally {
|
|
895
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Get the LAFS spec version.
|
|
900
|
+
* @returns {string}
|
|
901
|
+
*/
|
|
902
|
+
get spec_version() {
|
|
903
|
+
let deferred1_0;
|
|
904
|
+
let deferred1_1;
|
|
905
|
+
try {
|
|
906
|
+
const ret = wasm.wasmlafsmeta_spec_version(this.__wbg_ptr);
|
|
907
|
+
deferred1_0 = ret[0];
|
|
908
|
+
deferred1_1 = ret[1];
|
|
909
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
910
|
+
} finally {
|
|
911
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* Get the transport type as a string.
|
|
916
|
+
* @returns {string}
|
|
917
|
+
*/
|
|
918
|
+
get transport() {
|
|
919
|
+
let deferred1_0;
|
|
920
|
+
let deferred1_1;
|
|
921
|
+
try {
|
|
922
|
+
const ret = wasm.wasmlafsmeta_transport(this.__wbg_ptr);
|
|
923
|
+
deferred1_0 = ret[0];
|
|
924
|
+
deferred1_1 = ret[1];
|
|
925
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
926
|
+
} finally {
|
|
927
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
};
|
|
931
|
+
if (Symbol.dispose) WasmLafsMeta.prototype[Symbol.dispose] = WasmLafsMeta.prototype.free;
|
|
932
|
+
WasmLafsTransport = class _WasmLafsTransport {
|
|
933
|
+
static __wrap(ptr) {
|
|
934
|
+
ptr = ptr >>> 0;
|
|
935
|
+
const obj = Object.create(_WasmLafsTransport.prototype);
|
|
936
|
+
obj.__wbg_ptr = ptr;
|
|
937
|
+
WasmLafsTransportFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
938
|
+
return obj;
|
|
939
|
+
}
|
|
940
|
+
__destroy_into_raw() {
|
|
941
|
+
const ptr = this.__wbg_ptr;
|
|
942
|
+
this.__wbg_ptr = 0;
|
|
943
|
+
WasmLafsTransportFinalization.unregister(this);
|
|
944
|
+
return ptr;
|
|
945
|
+
}
|
|
946
|
+
free() {
|
|
947
|
+
const ptr = this.__destroy_into_raw();
|
|
948
|
+
wasm.__wbg_wasmlafstransport_free(ptr, 0);
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Create a CLI transport variant.
|
|
952
|
+
* @returns {WasmLafsTransport}
|
|
953
|
+
*/
|
|
954
|
+
static Cli() {
|
|
955
|
+
const ret = wasm.wasmlafstransport_Cli();
|
|
956
|
+
return _WasmLafsTransport.__wrap(ret);
|
|
957
|
+
}
|
|
958
|
+
/**
|
|
959
|
+
* Create a gRPC transport variant.
|
|
960
|
+
* @returns {WasmLafsTransport}
|
|
961
|
+
*/
|
|
962
|
+
static Grpc() {
|
|
963
|
+
const ret = wasm.wasmlafstransport_Grpc();
|
|
964
|
+
return _WasmLafsTransport.__wrap(ret);
|
|
965
|
+
}
|
|
966
|
+
/**
|
|
967
|
+
* Create an HTTP transport variant.
|
|
968
|
+
* @returns {WasmLafsTransport}
|
|
969
|
+
*/
|
|
970
|
+
static Http() {
|
|
971
|
+
const ret = wasm.wasmlafstransport_Http();
|
|
972
|
+
return _WasmLafsTransport.__wrap(ret);
|
|
973
|
+
}
|
|
974
|
+
/**
|
|
975
|
+
* Create an SDK transport variant.
|
|
976
|
+
* @returns {WasmLafsTransport}
|
|
977
|
+
*/
|
|
978
|
+
static Sdk() {
|
|
979
|
+
const ret = wasm.wasmlafstransport_Sdk();
|
|
980
|
+
return _WasmLafsTransport.__wrap(ret);
|
|
981
|
+
}
|
|
982
|
+
/**
|
|
983
|
+
* Get the transport as a string.
|
|
984
|
+
* @returns {string}
|
|
985
|
+
*/
|
|
986
|
+
get as_string() {
|
|
987
|
+
let deferred1_0;
|
|
988
|
+
let deferred1_1;
|
|
989
|
+
try {
|
|
990
|
+
const ret = wasm.wasmlafstransport_as_string(this.__wbg_ptr);
|
|
991
|
+
deferred1_0 = ret[0];
|
|
992
|
+
deferred1_1 = ret[1];
|
|
993
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
994
|
+
} finally {
|
|
995
|
+
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
};
|
|
999
|
+
if (Symbol.dispose) WasmLafsTransport.prototype[Symbol.dispose] = WasmLafsTransport.prototype.free;
|
|
1000
|
+
WasmLafsEnvelopeFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1001
|
+
}, unregister: () => {
|
|
1002
|
+
} } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmlafsenvelope_free(ptr >>> 0, 1));
|
|
1003
|
+
WasmLafsMetaFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1004
|
+
}, unregister: () => {
|
|
1005
|
+
} } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmlafsmeta_free(ptr >>> 0, 1));
|
|
1006
|
+
WasmLafsTransportFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1007
|
+
}, unregister: () => {
|
|
1008
|
+
} } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmlafstransport_free(ptr >>> 0, 1));
|
|
1009
|
+
cachedUint8ArrayMemory0 = null;
|
|
1010
|
+
cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
1011
|
+
cachedTextDecoder.decode();
|
|
1012
|
+
MAX_SAFARI_DECODE_BYTES = 2146435072;
|
|
1013
|
+
numBytesDecoded = 0;
|
|
1014
|
+
cachedTextEncoder = new TextEncoder();
|
|
1015
|
+
if (!("encodeInto" in cachedTextEncoder)) {
|
|
1016
|
+
cachedTextEncoder.encodeInto = function(arg, view) {
|
|
1017
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
1018
|
+
view.set(buf);
|
|
1019
|
+
return {
|
|
1020
|
+
read: arg.length,
|
|
1021
|
+
written: buf.length
|
|
1022
|
+
};
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
WASM_VECTOR_LEN = 0;
|
|
1026
|
+
}
|
|
1027
|
+
});
|
|
1028
|
+
|
|
1029
|
+
// packages/contracts/src/wasm/conduit-core/conduit_core.js
|
|
1030
|
+
var conduit_core_exports = {};
|
|
1031
|
+
__export(conduit_core_exports, {
|
|
1032
|
+
WasmCantMetadata: () => WasmCantMetadata,
|
|
1033
|
+
WasmConduitMessage: () => WasmConduitMessage,
|
|
1034
|
+
WasmConduitState: () => WasmConduitState,
|
|
1035
|
+
create_conduit_state: () => create_conduit_state,
|
|
1036
|
+
default: () => __wbg_init2,
|
|
1037
|
+
initSync: () => initSync2,
|
|
1038
|
+
parse_conduit_message: () => parse_conduit_message
|
|
1039
|
+
});
|
|
1040
|
+
function create_conduit_state(state) {
|
|
1041
|
+
const ptr0 = passStringToWasm02(state, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1042
|
+
const len0 = WASM_VECTOR_LEN2;
|
|
1043
|
+
const ret = wasm2.create_conduit_state(ptr0, len0);
|
|
1044
|
+
return WasmConduitState.__wrap(ret);
|
|
1045
|
+
}
|
|
1046
|
+
function parse_conduit_message(json3) {
|
|
1047
|
+
const ptr0 = passStringToWasm02(json3, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1048
|
+
const len0 = WASM_VECTOR_LEN2;
|
|
1049
|
+
const ret = wasm2.parse_conduit_message(ptr0, len0);
|
|
1050
|
+
return ret === 0 ? void 0 : WasmConduitMessage.__wrap(ret);
|
|
1051
|
+
}
|
|
1052
|
+
function __wbg_get_imports2() {
|
|
1053
|
+
const import0 = {
|
|
1054
|
+
__proto__: null,
|
|
1055
|
+
__wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
|
|
1056
|
+
throw new Error(getStringFromWasm02(arg0, arg1));
|
|
1057
|
+
},
|
|
1058
|
+
__wbindgen_init_externref_table: function() {
|
|
1059
|
+
const table = wasm2.__wbindgen_externrefs;
|
|
1060
|
+
const offset = table.grow(4);
|
|
1061
|
+
table.set(0, void 0);
|
|
1062
|
+
table.set(offset + 0, void 0);
|
|
1063
|
+
table.set(offset + 1, null);
|
|
1064
|
+
table.set(offset + 2, true);
|
|
1065
|
+
table.set(offset + 3, false);
|
|
1066
|
+
}
|
|
1067
|
+
};
|
|
1068
|
+
return {
|
|
1069
|
+
__proto__: null,
|
|
1070
|
+
"./conduit_core_bg.js": import0
|
|
1071
|
+
};
|
|
1072
|
+
}
|
|
1073
|
+
function getStringFromWasm02(ptr, len) {
|
|
1074
|
+
ptr = ptr >>> 0;
|
|
1075
|
+
return decodeText2(ptr, len);
|
|
1076
|
+
}
|
|
1077
|
+
function getUint8ArrayMemory02() {
|
|
1078
|
+
if (cachedUint8ArrayMemory02 === null || cachedUint8ArrayMemory02.byteLength === 0) {
|
|
1079
|
+
cachedUint8ArrayMemory02 = new Uint8Array(wasm2.memory.buffer);
|
|
1080
|
+
}
|
|
1081
|
+
return cachedUint8ArrayMemory02;
|
|
1082
|
+
}
|
|
1083
|
+
function passStringToWasm02(arg, malloc, realloc) {
|
|
1084
|
+
if (realloc === void 0) {
|
|
1085
|
+
const buf = cachedTextEncoder2.encode(arg);
|
|
1086
|
+
const ptr2 = malloc(buf.length, 1) >>> 0;
|
|
1087
|
+
getUint8ArrayMemory02().subarray(ptr2, ptr2 + buf.length).set(buf);
|
|
1088
|
+
WASM_VECTOR_LEN2 = buf.length;
|
|
1089
|
+
return ptr2;
|
|
1090
|
+
}
|
|
1091
|
+
let len = arg.length;
|
|
1092
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
1093
|
+
const mem = getUint8ArrayMemory02();
|
|
1094
|
+
let offset = 0;
|
|
1095
|
+
for (; offset < len; offset++) {
|
|
1096
|
+
const code = arg.charCodeAt(offset);
|
|
1097
|
+
if (code > 127) break;
|
|
1098
|
+
mem[ptr + offset] = code;
|
|
1099
|
+
}
|
|
1100
|
+
if (offset !== len) {
|
|
1101
|
+
if (offset !== 0) {
|
|
1102
|
+
arg = arg.slice(offset);
|
|
1103
|
+
}
|
|
1104
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
1105
|
+
const view = getUint8ArrayMemory02().subarray(ptr + offset, ptr + len);
|
|
1106
|
+
const ret = cachedTextEncoder2.encodeInto(arg, view);
|
|
1107
|
+
offset += ret.written;
|
|
1108
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
1109
|
+
}
|
|
1110
|
+
WASM_VECTOR_LEN2 = offset;
|
|
1111
|
+
return ptr;
|
|
1112
|
+
}
|
|
1113
|
+
function decodeText2(ptr, len) {
|
|
1114
|
+
numBytesDecoded2 += len;
|
|
1115
|
+
if (numBytesDecoded2 >= MAX_SAFARI_DECODE_BYTES2) {
|
|
1116
|
+
cachedTextDecoder2 = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
1117
|
+
cachedTextDecoder2.decode();
|
|
1118
|
+
numBytesDecoded2 = len;
|
|
1119
|
+
}
|
|
1120
|
+
return cachedTextDecoder2.decode(getUint8ArrayMemory02().subarray(ptr, ptr + len));
|
|
1121
|
+
}
|
|
1122
|
+
function __wbg_finalize_init2(instance, module) {
|
|
1123
|
+
wasm2 = instance.exports;
|
|
1124
|
+
wasmModule2 = module;
|
|
1125
|
+
cachedUint8ArrayMemory02 = null;
|
|
1126
|
+
wasm2.__wbindgen_start();
|
|
1127
|
+
return wasm2;
|
|
1128
|
+
}
|
|
1129
|
+
async function __wbg_load2(module, imports) {
|
|
1130
|
+
if (typeof Response === "function" && module instanceof Response) {
|
|
1131
|
+
if (typeof WebAssembly.instantiateStreaming === "function") {
|
|
1132
|
+
try {
|
|
1133
|
+
return await WebAssembly.instantiateStreaming(module, imports);
|
|
1134
|
+
} catch (e) {
|
|
1135
|
+
const validResponse = module.ok && expectedResponseType(module.type);
|
|
1136
|
+
if (validResponse && module.headers.get("Content-Type") !== "application/wasm") {
|
|
1137
|
+
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
|
|
1138
|
+
} else {
|
|
1139
|
+
throw e;
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
const bytes = await module.arrayBuffer();
|
|
1144
|
+
return await WebAssembly.instantiate(bytes, imports);
|
|
1145
|
+
} else {
|
|
1146
|
+
const instance = await WebAssembly.instantiate(module, imports);
|
|
1147
|
+
if (instance instanceof WebAssembly.Instance) {
|
|
1148
|
+
return { instance, module };
|
|
1149
|
+
} else {
|
|
1150
|
+
return instance;
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
function expectedResponseType(type) {
|
|
1154
|
+
switch (type) {
|
|
1155
|
+
case "basic":
|
|
1156
|
+
case "cors":
|
|
1157
|
+
case "default":
|
|
1158
|
+
return true;
|
|
1159
|
+
}
|
|
1160
|
+
return false;
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
function initSync2(module) {
|
|
1164
|
+
if (wasm2 !== void 0) return wasm2;
|
|
1165
|
+
if (module !== void 0) {
|
|
1166
|
+
if (Object.getPrototypeOf(module) === Object.prototype) {
|
|
1167
|
+
({ module } = module);
|
|
1168
|
+
} else {
|
|
1169
|
+
console.warn("using deprecated parameters for `initSync()`; pass a single object instead");
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
const imports = __wbg_get_imports2();
|
|
1173
|
+
if (!(module instanceof WebAssembly.Module)) {
|
|
1174
|
+
module = new WebAssembly.Module(module);
|
|
1175
|
+
}
|
|
1176
|
+
const instance = new WebAssembly.Instance(module, imports);
|
|
1177
|
+
return __wbg_finalize_init2(instance, module);
|
|
1178
|
+
}
|
|
1179
|
+
async function __wbg_init2(module_or_path) {
|
|
1180
|
+
if (wasm2 !== void 0) return wasm2;
|
|
1181
|
+
if (module_or_path !== void 0) {
|
|
1182
|
+
if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
|
|
1183
|
+
({ module_or_path } = module_or_path);
|
|
1184
|
+
} else {
|
|
1185
|
+
console.warn("using deprecated parameters for the initialization function; pass a single object instead");
|
|
1186
|
+
}
|
|
1187
|
+
}
|
|
1188
|
+
if (module_or_path === void 0) {
|
|
1189
|
+
module_or_path = new URL("conduit_core_bg.wasm", import.meta.url);
|
|
1190
|
+
}
|
|
1191
|
+
const imports = __wbg_get_imports2();
|
|
1192
|
+
if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) {
|
|
1193
|
+
module_or_path = fetch(module_or_path);
|
|
1194
|
+
}
|
|
1195
|
+
const { instance, module } = await __wbg_load2(await module_or_path, imports);
|
|
1196
|
+
return __wbg_finalize_init2(instance, module);
|
|
1197
|
+
}
|
|
1198
|
+
var WasmCantMetadata, WasmConduitMessage, WasmConduitState, WasmCantMetadataFinalization, WasmConduitMessageFinalization, WasmConduitStateFinalization, cachedUint8ArrayMemory02, cachedTextDecoder2, MAX_SAFARI_DECODE_BYTES2, numBytesDecoded2, cachedTextEncoder2, WASM_VECTOR_LEN2, wasmModule2, wasm2;
|
|
1199
|
+
var init_conduit_core = __esm({
|
|
1200
|
+
"packages/contracts/src/wasm/conduit-core/conduit_core.js"() {
|
|
1201
|
+
"use strict";
|
|
1202
|
+
WasmCantMetadata = class {
|
|
1203
|
+
__destroy_into_raw() {
|
|
1204
|
+
const ptr = this.__wbg_ptr;
|
|
1205
|
+
this.__wbg_ptr = 0;
|
|
1206
|
+
WasmCantMetadataFinalization.unregister(this);
|
|
1207
|
+
return ptr;
|
|
1208
|
+
}
|
|
1209
|
+
free() {
|
|
1210
|
+
const ptr = this.__destroy_into_raw();
|
|
1211
|
+
wasm2.__wbg_wasmcantmetadata_free(ptr, 0);
|
|
1212
|
+
}
|
|
1213
|
+
/**
|
|
1214
|
+
* Get addresses as JSON string.
|
|
1215
|
+
* @returns {string}
|
|
1216
|
+
*/
|
|
1217
|
+
get addresses_json() {
|
|
1218
|
+
let deferred1_0;
|
|
1219
|
+
let deferred1_1;
|
|
1220
|
+
try {
|
|
1221
|
+
const ret = wasm2.wasmcantmetadata_addresses_json(this.__wbg_ptr);
|
|
1222
|
+
deferred1_0 = ret[0];
|
|
1223
|
+
deferred1_1 = ret[1];
|
|
1224
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1225
|
+
} finally {
|
|
1226
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
/**
|
|
1230
|
+
* Get the directive type.
|
|
1231
|
+
* @returns {string}
|
|
1232
|
+
*/
|
|
1233
|
+
get directive_type() {
|
|
1234
|
+
let deferred1_0;
|
|
1235
|
+
let deferred1_1;
|
|
1236
|
+
try {
|
|
1237
|
+
const ret = wasm2.wasmcantmetadata_directive_type(this.__wbg_ptr);
|
|
1238
|
+
deferred1_0 = ret[0];
|
|
1239
|
+
deferred1_1 = ret[1];
|
|
1240
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1241
|
+
} finally {
|
|
1242
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
1245
|
+
/**
|
|
1246
|
+
* Create new CANT metadata.
|
|
1247
|
+
*
|
|
1248
|
+
* # Arguments
|
|
1249
|
+
* * `directive_type` - "actionable", "routing", or "informational"
|
|
1250
|
+
* * `addresses` - JSON array of addresses
|
|
1251
|
+
* * `task_refs` - JSON array of task refs
|
|
1252
|
+
* * `tags` - JSON array of tags
|
|
1253
|
+
* @param {string} directive_type
|
|
1254
|
+
* @param {string} addresses
|
|
1255
|
+
* @param {string} task_refs
|
|
1256
|
+
* @param {string} tags
|
|
1257
|
+
*/
|
|
1258
|
+
constructor(directive_type, addresses, task_refs, tags) {
|
|
1259
|
+
const ptr0 = passStringToWasm02(directive_type, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1260
|
+
const len0 = WASM_VECTOR_LEN2;
|
|
1261
|
+
const ptr1 = passStringToWasm02(addresses, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1262
|
+
const len1 = WASM_VECTOR_LEN2;
|
|
1263
|
+
const ptr2 = passStringToWasm02(task_refs, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1264
|
+
const len2 = WASM_VECTOR_LEN2;
|
|
1265
|
+
const ptr3 = passStringToWasm02(tags, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1266
|
+
const len3 = WASM_VECTOR_LEN2;
|
|
1267
|
+
const ret = wasm2.wasmcantmetadata_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
1268
|
+
this.__wbg_ptr = ret >>> 0;
|
|
1269
|
+
WasmCantMetadataFinalization.register(this, this.__wbg_ptr, this);
|
|
1270
|
+
return this;
|
|
1271
|
+
}
|
|
1272
|
+
/**
|
|
1273
|
+
* Get tags as JSON string.
|
|
1274
|
+
* @returns {string}
|
|
1275
|
+
*/
|
|
1276
|
+
get tags_json() {
|
|
1277
|
+
let deferred1_0;
|
|
1278
|
+
let deferred1_1;
|
|
1279
|
+
try {
|
|
1280
|
+
const ret = wasm2.wasmcantmetadata_tags_json(this.__wbg_ptr);
|
|
1281
|
+
deferred1_0 = ret[0];
|
|
1282
|
+
deferred1_1 = ret[1];
|
|
1283
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1284
|
+
} finally {
|
|
1285
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
/**
|
|
1289
|
+
* Get task refs as JSON string.
|
|
1290
|
+
* @returns {string}
|
|
1291
|
+
*/
|
|
1292
|
+
get task_refs_json() {
|
|
1293
|
+
let deferred1_0;
|
|
1294
|
+
let deferred1_1;
|
|
1295
|
+
try {
|
|
1296
|
+
const ret = wasm2.wasmcantmetadata_task_refs_json(this.__wbg_ptr);
|
|
1297
|
+
deferred1_0 = ret[0];
|
|
1298
|
+
deferred1_1 = ret[1];
|
|
1299
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1300
|
+
} finally {
|
|
1301
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
/**
|
|
1305
|
+
* Convert to JSON string.
|
|
1306
|
+
* @returns {string}
|
|
1307
|
+
*/
|
|
1308
|
+
toJson() {
|
|
1309
|
+
let deferred1_0;
|
|
1310
|
+
let deferred1_1;
|
|
1311
|
+
try {
|
|
1312
|
+
const ret = wasm2.wasmcantmetadata_toJson(this.__wbg_ptr);
|
|
1313
|
+
deferred1_0 = ret[0];
|
|
1314
|
+
deferred1_1 = ret[1];
|
|
1315
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1316
|
+
} finally {
|
|
1317
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
};
|
|
1321
|
+
if (Symbol.dispose) WasmCantMetadata.prototype[Symbol.dispose] = WasmCantMetadata.prototype.free;
|
|
1322
|
+
WasmConduitMessage = class _WasmConduitMessage {
|
|
1323
|
+
static __wrap(ptr) {
|
|
1324
|
+
ptr = ptr >>> 0;
|
|
1325
|
+
const obj = Object.create(_WasmConduitMessage.prototype);
|
|
1326
|
+
obj.__wbg_ptr = ptr;
|
|
1327
|
+
WasmConduitMessageFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
1328
|
+
return obj;
|
|
1329
|
+
}
|
|
1330
|
+
__destroy_into_raw() {
|
|
1331
|
+
const ptr = this.__wbg_ptr;
|
|
1332
|
+
this.__wbg_ptr = 0;
|
|
1333
|
+
WasmConduitMessageFinalization.unregister(this);
|
|
1334
|
+
return ptr;
|
|
1335
|
+
}
|
|
1336
|
+
free() {
|
|
1337
|
+
const ptr = this.__destroy_into_raw();
|
|
1338
|
+
wasm2.__wbg_wasmconduitmessage_free(ptr, 0);
|
|
1339
|
+
}
|
|
1340
|
+
/**
|
|
1341
|
+
* Get the message content.
|
|
1342
|
+
* @returns {string}
|
|
1343
|
+
*/
|
|
1344
|
+
get content() {
|
|
1345
|
+
let deferred1_0;
|
|
1346
|
+
let deferred1_1;
|
|
1347
|
+
try {
|
|
1348
|
+
const ret = wasm2.wasmconduitmessage_content(this.__wbg_ptr);
|
|
1349
|
+
deferred1_0 = ret[0];
|
|
1350
|
+
deferred1_1 = ret[1];
|
|
1351
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1352
|
+
} finally {
|
|
1353
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
/**
|
|
1357
|
+
* Get the sender agent ID.
|
|
1358
|
+
* @returns {string}
|
|
1359
|
+
*/
|
|
1360
|
+
get from() {
|
|
1361
|
+
let deferred1_0;
|
|
1362
|
+
let deferred1_1;
|
|
1363
|
+
try {
|
|
1364
|
+
const ret = wasm2.wasmconduitmessage_from(this.__wbg_ptr);
|
|
1365
|
+
deferred1_0 = ret[0];
|
|
1366
|
+
deferred1_1 = ret[1];
|
|
1367
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1368
|
+
} finally {
|
|
1369
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
/**
|
|
1373
|
+
* Parse from JSON string.
|
|
1374
|
+
* @param {string} json
|
|
1375
|
+
* @returns {WasmConduitMessage | undefined}
|
|
1376
|
+
*/
|
|
1377
|
+
static fromJson(json3) {
|
|
1378
|
+
const ptr0 = passStringToWasm02(json3, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1379
|
+
const len0 = WASM_VECTOR_LEN2;
|
|
1380
|
+
const ret = wasm2.wasmconduitmessage_fromJson(ptr0, len0);
|
|
1381
|
+
return ret === 0 ? void 0 : _WasmConduitMessage.__wrap(ret);
|
|
1382
|
+
}
|
|
1383
|
+
/**
|
|
1384
|
+
* Get the message ID.
|
|
1385
|
+
* @returns {string}
|
|
1386
|
+
*/
|
|
1387
|
+
get id() {
|
|
1388
|
+
let deferred1_0;
|
|
1389
|
+
let deferred1_1;
|
|
1390
|
+
try {
|
|
1391
|
+
const ret = wasm2.wasmconduitmessage_id(this.__wbg_ptr);
|
|
1392
|
+
deferred1_0 = ret[0];
|
|
1393
|
+
deferred1_1 = ret[1];
|
|
1394
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1395
|
+
} finally {
|
|
1396
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
/**
|
|
1400
|
+
* Get metadata as JSON string.
|
|
1401
|
+
* @returns {string}
|
|
1402
|
+
*/
|
|
1403
|
+
get metadata_json() {
|
|
1404
|
+
let deferred1_0;
|
|
1405
|
+
let deferred1_1;
|
|
1406
|
+
try {
|
|
1407
|
+
const ret = wasm2.wasmconduitmessage_metadata_json(this.__wbg_ptr);
|
|
1408
|
+
deferred1_0 = ret[0];
|
|
1409
|
+
deferred1_1 = ret[1];
|
|
1410
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1411
|
+
} finally {
|
|
1412
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1413
|
+
}
|
|
1414
|
+
}
|
|
1415
|
+
/**
|
|
1416
|
+
* Create a new Conduit message.
|
|
1417
|
+
*
|
|
1418
|
+
* # Arguments
|
|
1419
|
+
* * `id` - Unique message ID
|
|
1420
|
+
* * `from` - Sender agent ID
|
|
1421
|
+
* * `content` - Message content
|
|
1422
|
+
* * `timestamp` - ISO 8601 timestamp
|
|
1423
|
+
* @param {string} id
|
|
1424
|
+
* @param {string} from
|
|
1425
|
+
* @param {string} content
|
|
1426
|
+
* @param {string} timestamp
|
|
1427
|
+
*/
|
|
1428
|
+
constructor(id, from, content, timestamp2) {
|
|
1429
|
+
const ptr0 = passStringToWasm02(id, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1430
|
+
const len0 = WASM_VECTOR_LEN2;
|
|
1431
|
+
const ptr1 = passStringToWasm02(from, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1432
|
+
const len1 = WASM_VECTOR_LEN2;
|
|
1433
|
+
const ptr2 = passStringToWasm02(content, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1434
|
+
const len2 = WASM_VECTOR_LEN2;
|
|
1435
|
+
const ptr3 = passStringToWasm02(timestamp2, wasm2.__wbindgen_malloc, wasm2.__wbindgen_realloc);
|
|
1436
|
+
const len3 = WASM_VECTOR_LEN2;
|
|
1437
|
+
const ret = wasm2.wasmconduitmessage_new(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
1438
|
+
this.__wbg_ptr = ret >>> 0;
|
|
1439
|
+
WasmConduitMessageFinalization.register(this, this.__wbg_ptr, this);
|
|
1440
|
+
return this;
|
|
1441
|
+
}
|
|
1442
|
+
/**
|
|
1443
|
+
* Get tags as JSON string.
|
|
1444
|
+
* @returns {string}
|
|
1445
|
+
*/
|
|
1446
|
+
get tags_json() {
|
|
1447
|
+
let deferred1_0;
|
|
1448
|
+
let deferred1_1;
|
|
1449
|
+
try {
|
|
1450
|
+
const ret = wasm2.wasmconduitmessage_tags_json(this.__wbg_ptr);
|
|
1451
|
+
deferred1_0 = ret[0];
|
|
1452
|
+
deferred1_1 = ret[1];
|
|
1453
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1454
|
+
} finally {
|
|
1455
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1456
|
+
}
|
|
1457
|
+
}
|
|
1458
|
+
/**
|
|
1459
|
+
* Get the timestamp.
|
|
1460
|
+
* @returns {string}
|
|
1461
|
+
*/
|
|
1462
|
+
get timestamp() {
|
|
1463
|
+
let deferred1_0;
|
|
1464
|
+
let deferred1_1;
|
|
1465
|
+
try {
|
|
1466
|
+
const ret = wasm2.wasmconduitmessage_timestamp(this.__wbg_ptr);
|
|
1467
|
+
deferred1_0 = ret[0];
|
|
1468
|
+
deferred1_1 = ret[1];
|
|
1469
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1470
|
+
} finally {
|
|
1471
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
/**
|
|
1475
|
+
* Convert to JSON string.
|
|
1476
|
+
* @returns {string}
|
|
1477
|
+
*/
|
|
1478
|
+
toJson() {
|
|
1479
|
+
let deferred1_0;
|
|
1480
|
+
let deferred1_1;
|
|
1481
|
+
try {
|
|
1482
|
+
const ret = wasm2.wasmconduitmessage_toJson(this.__wbg_ptr);
|
|
1483
|
+
deferred1_0 = ret[0];
|
|
1484
|
+
deferred1_1 = ret[1];
|
|
1485
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1486
|
+
} finally {
|
|
1487
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
};
|
|
1491
|
+
if (Symbol.dispose) WasmConduitMessage.prototype[Symbol.dispose] = WasmConduitMessage.prototype.free;
|
|
1492
|
+
WasmConduitState = class _WasmConduitState {
|
|
1493
|
+
static __wrap(ptr) {
|
|
1494
|
+
ptr = ptr >>> 0;
|
|
1495
|
+
const obj = Object.create(_WasmConduitState.prototype);
|
|
1496
|
+
obj.__wbg_ptr = ptr;
|
|
1497
|
+
WasmConduitStateFinalization.register(obj, obj.__wbg_ptr, obj);
|
|
1498
|
+
return obj;
|
|
1499
|
+
}
|
|
1500
|
+
__destroy_into_raw() {
|
|
1501
|
+
const ptr = this.__wbg_ptr;
|
|
1502
|
+
this.__wbg_ptr = 0;
|
|
1503
|
+
WasmConduitStateFinalization.unregister(this);
|
|
1504
|
+
return ptr;
|
|
1505
|
+
}
|
|
1506
|
+
free() {
|
|
1507
|
+
const ptr = this.__destroy_into_raw();
|
|
1508
|
+
wasm2.__wbg_wasmconduitstate_free(ptr, 0);
|
|
1509
|
+
}
|
|
1510
|
+
/**
|
|
1511
|
+
* Create connected state.
|
|
1512
|
+
* @returns {WasmConduitState}
|
|
1513
|
+
*/
|
|
1514
|
+
static Connected() {
|
|
1515
|
+
const ret = wasm2.wasmconduitstate_Connected();
|
|
1516
|
+
return _WasmConduitState.__wrap(ret);
|
|
1517
|
+
}
|
|
1518
|
+
/**
|
|
1519
|
+
* Create connecting state.
|
|
1520
|
+
* @returns {WasmConduitState}
|
|
1521
|
+
*/
|
|
1522
|
+
static Connecting() {
|
|
1523
|
+
const ret = wasm2.wasmconduitstate_Connecting();
|
|
1524
|
+
return _WasmConduitState.__wrap(ret);
|
|
1525
|
+
}
|
|
1526
|
+
/**
|
|
1527
|
+
* Create disconnected state.
|
|
1528
|
+
* @returns {WasmConduitState}
|
|
1529
|
+
*/
|
|
1530
|
+
static Disconnected() {
|
|
1531
|
+
const ret = wasm2.wasmconduitstate_Disconnected();
|
|
1532
|
+
return _WasmConduitState.__wrap(ret);
|
|
1533
|
+
}
|
|
1534
|
+
/**
|
|
1535
|
+
* Create error state.
|
|
1536
|
+
* @returns {WasmConduitState}
|
|
1537
|
+
*/
|
|
1538
|
+
static Error() {
|
|
1539
|
+
const ret = wasm2.wasmconduitstate_Error();
|
|
1540
|
+
return _WasmConduitState.__wrap(ret);
|
|
1541
|
+
}
|
|
1542
|
+
/**
|
|
1543
|
+
* Create reconnecting state.
|
|
1544
|
+
* @returns {WasmConduitState}
|
|
1545
|
+
*/
|
|
1546
|
+
static Reconnecting() {
|
|
1547
|
+
const ret = wasm2.wasmconduitstate_Reconnecting();
|
|
1548
|
+
return _WasmConduitState.__wrap(ret);
|
|
1549
|
+
}
|
|
1550
|
+
/**
|
|
1551
|
+
* Get state as string.
|
|
1552
|
+
* @returns {string}
|
|
1553
|
+
*/
|
|
1554
|
+
get as_string() {
|
|
1555
|
+
let deferred1_0;
|
|
1556
|
+
let deferred1_1;
|
|
1557
|
+
try {
|
|
1558
|
+
const ret = wasm2.wasmconduitstate_as_string(this.__wbg_ptr);
|
|
1559
|
+
deferred1_0 = ret[0];
|
|
1560
|
+
deferred1_1 = ret[1];
|
|
1561
|
+
return getStringFromWasm02(ret[0], ret[1]);
|
|
1562
|
+
} finally {
|
|
1563
|
+
wasm2.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
};
|
|
1567
|
+
if (Symbol.dispose) WasmConduitState.prototype[Symbol.dispose] = WasmConduitState.prototype.free;
|
|
1568
|
+
WasmCantMetadataFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1569
|
+
}, unregister: () => {
|
|
1570
|
+
} } : new FinalizationRegistry((ptr) => wasm2.__wbg_wasmcantmetadata_free(ptr >>> 0, 1));
|
|
1571
|
+
WasmConduitMessageFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1572
|
+
}, unregister: () => {
|
|
1573
|
+
} } : new FinalizationRegistry((ptr) => wasm2.__wbg_wasmconduitmessage_free(ptr >>> 0, 1));
|
|
1574
|
+
WasmConduitStateFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
|
1575
|
+
}, unregister: () => {
|
|
1576
|
+
} } : new FinalizationRegistry((ptr) => wasm2.__wbg_wasmconduitstate_free(ptr >>> 0, 1));
|
|
1577
|
+
cachedUint8ArrayMemory02 = null;
|
|
1578
|
+
cachedTextDecoder2 = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
|
|
1579
|
+
cachedTextDecoder2.decode();
|
|
1580
|
+
MAX_SAFARI_DECODE_BYTES2 = 2146435072;
|
|
1581
|
+
numBytesDecoded2 = 0;
|
|
1582
|
+
cachedTextEncoder2 = new TextEncoder();
|
|
1583
|
+
if (!("encodeInto" in cachedTextEncoder2)) {
|
|
1584
|
+
cachedTextEncoder2.encodeInto = function(arg, view) {
|
|
1585
|
+
const buf = cachedTextEncoder2.encode(arg);
|
|
1586
|
+
view.set(buf);
|
|
1587
|
+
return {
|
|
1588
|
+
read: arg.length,
|
|
1589
|
+
written: buf.length
|
|
1590
|
+
};
|
|
1591
|
+
};
|
|
1592
|
+
}
|
|
1593
|
+
WASM_VECTOR_LEN2 = 0;
|
|
1594
|
+
}
|
|
1595
|
+
});
|
|
1596
|
+
|
|
1597
|
+
// packages/contracts/src/wasm/index.ts
|
|
1598
|
+
var wasm_exports = {};
|
|
1599
|
+
__export(wasm_exports, {
|
|
1600
|
+
conduit: () => conduit,
|
|
1601
|
+
initWasm: () => initWasm,
|
|
1602
|
+
isWasmReady: () => isWasmReady,
|
|
1603
|
+
lafs: () => lafs
|
|
1604
|
+
});
|
|
1605
|
+
async function initWasm() {
|
|
1606
|
+
if (isInitialized) return;
|
|
1607
|
+
if (isInitializing) {
|
|
1608
|
+
return initPromise;
|
|
1609
|
+
}
|
|
1610
|
+
isInitializing = true;
|
|
1611
|
+
initPromise = (async () => {
|
|
1612
|
+
try {
|
|
1613
|
+
const [lafs2, conduit2] = await Promise.all([
|
|
1614
|
+
Promise.resolve().then(() => (init_lafs_core(), lafs_core_exports)),
|
|
1615
|
+
Promise.resolve().then(() => (init_conduit_core(), conduit_core_exports))
|
|
1616
|
+
]);
|
|
1617
|
+
await Promise.all([lafs2.default(), conduit2.default()]);
|
|
1618
|
+
lafsModule = lafs2;
|
|
1619
|
+
conduitModule = conduit2;
|
|
1620
|
+
isInitialized = true;
|
|
1621
|
+
} catch (_error) {
|
|
1622
|
+
throw new Error("WASM initialization failed. Ensure WASM files are present.");
|
|
1623
|
+
}
|
|
1624
|
+
})();
|
|
1625
|
+
await initPromise;
|
|
1626
|
+
isInitializing = false;
|
|
1627
|
+
}
|
|
1628
|
+
function isWasmReady() {
|
|
1629
|
+
return isInitialized;
|
|
1630
|
+
}
|
|
1631
|
+
var lafsModule, conduitModule, isInitialized, isInitializing, initPromise, lafs, conduit;
|
|
1632
|
+
var init_wasm = __esm({
|
|
1633
|
+
"packages/contracts/src/wasm/index.ts"() {
|
|
1634
|
+
"use strict";
|
|
1635
|
+
lafsModule = null;
|
|
1636
|
+
conduitModule = null;
|
|
1637
|
+
isInitialized = false;
|
|
1638
|
+
isInitializing = false;
|
|
1639
|
+
initPromise = null;
|
|
1640
|
+
lafs = {
|
|
1641
|
+
/**
|
|
1642
|
+
* LAFS Transport enum
|
|
1643
|
+
* Use WasmLafsTransport.cli(), .http(), .grpc(), or .sdk()
|
|
1644
|
+
*/
|
|
1645
|
+
get WasmLafsTransport() {
|
|
1646
|
+
if (!lafsModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1647
|
+
return lafsModule.WasmLafsTransport;
|
|
1648
|
+
},
|
|
1649
|
+
/**
|
|
1650
|
+
* LAFS Metadata constructor
|
|
1651
|
+
* new WasmLafsMeta(operation: string, transport: string)
|
|
1652
|
+
*/
|
|
1653
|
+
get WasmLafsMeta() {
|
|
1654
|
+
if (!lafsModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1655
|
+
return lafsModule.WasmLafsMeta;
|
|
1656
|
+
},
|
|
1657
|
+
/**
|
|
1658
|
+
* LAFS Envelope class
|
|
1659
|
+
* Use WasmLafsEnvelope.createSuccess() or .createError()
|
|
1660
|
+
*/
|
|
1661
|
+
get WasmLafsEnvelope() {
|
|
1662
|
+
if (!lafsModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1663
|
+
return lafsModule.WasmLafsEnvelope;
|
|
1664
|
+
},
|
|
1665
|
+
/**
|
|
1666
|
+
* Helper function to create transport from string
|
|
1667
|
+
* @param transport - "cli", "http", "grpc", or "sdk"
|
|
1668
|
+
*/
|
|
1669
|
+
get createTransport() {
|
|
1670
|
+
if (!lafsModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1671
|
+
return lafsModule.create_transport;
|
|
1672
|
+
}
|
|
1673
|
+
};
|
|
1674
|
+
conduit = {
|
|
1675
|
+
/**
|
|
1676
|
+
* Conduit Message constructor
|
|
1677
|
+
* new WasmConduitMessage(id, from, content, timestamp)
|
|
1678
|
+
*/
|
|
1679
|
+
get WasmConduitMessage() {
|
|
1680
|
+
if (!conduitModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1681
|
+
return conduitModule.WasmConduitMessage;
|
|
1682
|
+
},
|
|
1683
|
+
/**
|
|
1684
|
+
* Conduit State enum
|
|
1685
|
+
* Use WasmConduitState.disconnected(), .connecting(), .connected(), etc.
|
|
1686
|
+
*/
|
|
1687
|
+
get WasmConduitState() {
|
|
1688
|
+
if (!conduitModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1689
|
+
return conduitModule.WasmConduitState;
|
|
1690
|
+
},
|
|
1691
|
+
/**
|
|
1692
|
+
* CANT Metadata constructor
|
|
1693
|
+
* new WasmCantMetadata(directiveType, addressesJson, taskRefsJson, tagsJson)
|
|
1694
|
+
*/
|
|
1695
|
+
get WasmCantMetadata() {
|
|
1696
|
+
if (!conduitModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1697
|
+
return conduitModule.WasmCantMetadata;
|
|
1698
|
+
},
|
|
1699
|
+
/**
|
|
1700
|
+
* Parse a ConduitMessage from JSON string
|
|
1701
|
+
* @param json - JSON string
|
|
1702
|
+
* @returns WasmConduitMessage or undefined
|
|
1703
|
+
*/
|
|
1704
|
+
get parseConduitMessage() {
|
|
1705
|
+
if (!conduitModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1706
|
+
return conduitModule.parse_conduit_message;
|
|
1707
|
+
},
|
|
1708
|
+
/**
|
|
1709
|
+
* Create a ConduitState from string
|
|
1710
|
+
* @param state - "disconnected", "connecting", "connected", "reconnecting", "error"
|
|
1711
|
+
*/
|
|
1712
|
+
get createConduitState() {
|
|
1713
|
+
if (!conduitModule) throw new Error("WASM not initialized. Call initWasm() first.");
|
|
1714
|
+
return conduitModule.create_conduit_state;
|
|
1715
|
+
}
|
|
1716
|
+
};
|
|
1717
|
+
}
|
|
1718
|
+
});
|
|
1719
|
+
|
|
519
1720
|
// packages/contracts/src/index.ts
|
|
520
1721
|
var init_src = __esm({
|
|
521
1722
|
"packages/contracts/src/index.ts"() {
|
|
@@ -526,6 +1727,7 @@ var init_src = __esm({
|
|
|
526
1727
|
init_operations();
|
|
527
1728
|
init_session2();
|
|
528
1729
|
init_status_registry();
|
|
1730
|
+
init_wasm();
|
|
529
1731
|
}
|
|
530
1732
|
});
|
|
531
1733
|
|
|
@@ -1253,7 +2455,8 @@ function rowToTask(row) {
|
|
|
1253
2455
|
modifiedBy: row.modifiedBy ?? null,
|
|
1254
2456
|
sessionId: row.sessionId ?? null
|
|
1255
2457
|
} : void 0,
|
|
1256
|
-
pipelineStage: row.pipelineStage ?? void 0
|
|
2458
|
+
pipelineStage: row.pipelineStage ?? void 0,
|
|
2459
|
+
assignee: row.assignee ?? void 0
|
|
1257
2460
|
};
|
|
1258
2461
|
}
|
|
1259
2462
|
function taskToRow(task) {
|
|
@@ -1286,7 +2489,8 @@ function taskToRow(task) {
|
|
|
1286
2489
|
createdBy: task.provenance?.createdBy ?? null,
|
|
1287
2490
|
modifiedBy: task.provenance?.modifiedBy ?? null,
|
|
1288
2491
|
sessionId: task.provenance?.sessionId ?? null,
|
|
1289
|
-
pipelineStage: task.pipelineStage ?? null
|
|
2492
|
+
pipelineStage: task.pipelineStage ?? null,
|
|
2493
|
+
assignee: task.assignee ?? null
|
|
1290
2494
|
};
|
|
1291
2495
|
}
|
|
1292
2496
|
function archivedTaskToRow(task) {
|
|
@@ -1880,7 +3084,7 @@ var init_sql = __esm({
|
|
|
1880
3084
|
return new SQL([new StringChunk(str)]);
|
|
1881
3085
|
}
|
|
1882
3086
|
_sql.raw = raw;
|
|
1883
|
-
function
|
|
3087
|
+
function join106(chunks, separator) {
|
|
1884
3088
|
const result = [];
|
|
1885
3089
|
for (const [i, chunk] of chunks.entries()) {
|
|
1886
3090
|
if (i > 0 && separator !== void 0) result.push(separator);
|
|
@@ -1888,7 +3092,7 @@ var init_sql = __esm({
|
|
|
1888
3092
|
}
|
|
1889
3093
|
return new SQL(result);
|
|
1890
3094
|
}
|
|
1891
|
-
_sql.join =
|
|
3095
|
+
_sql.join = join106;
|
|
1892
3096
|
function identifier(value) {
|
|
1893
3097
|
return new Name(value);
|
|
1894
3098
|
}
|
|
@@ -6662,7 +7866,7 @@ var init_select2 = __esm({
|
|
|
6662
7866
|
const baseTableName = this.tableName;
|
|
6663
7867
|
const tableName = getTableLikeName(table);
|
|
6664
7868
|
for (const item of extractUsedTable(table)) this.usedTables.add(item);
|
|
6665
|
-
if (typeof tableName === "string" && this.config.joins?.some((
|
|
7869
|
+
if (typeof tableName === "string" && this.config.joins?.some((join106) => join106.alias === tableName)) throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
6666
7870
|
if (!this.isPartialSelect) {
|
|
6667
7871
|
if (Object.keys(this.joinsNotNullableMap).length === 1 && typeof baseTableName === "string") this.config.fields = { [baseTableName]: this.config.fields };
|
|
6668
7872
|
if (typeof tableName === "string" && !is(table, SQL)) {
|
|
@@ -7947,7 +9151,7 @@ var init_dialect = __esm({
|
|
|
7947
9151
|
if (!joins2) return;
|
|
7948
9152
|
const withEntries = Object.entries(joins2).filter(([_, v]) => v);
|
|
7949
9153
|
if (!withEntries.length) return;
|
|
7950
|
-
return sql.join(withEntries.map(([k,
|
|
9154
|
+
return sql.join(withEntries.map(([k, join106]) => {
|
|
7951
9155
|
const relation = tableConfig.relations[k];
|
|
7952
9156
|
const isSingle2 = is(relation, One3);
|
|
7953
9157
|
const targetTable = aliasedTable(relation.targetTable, `d${currentDepth + 1}`);
|
|
@@ -7958,7 +9162,7 @@ var init_dialect = __esm({
|
|
|
7958
9162
|
table: targetTable,
|
|
7959
9163
|
mode: isSingle2 ? "first" : "many",
|
|
7960
9164
|
schema,
|
|
7961
|
-
queryConfig:
|
|
9165
|
+
queryConfig: join106,
|
|
7962
9166
|
tableConfig: schema[relation.targetTableName],
|
|
7963
9167
|
relationWhere: filter,
|
|
7964
9168
|
isNested: true,
|
|
@@ -7972,7 +9176,7 @@ var init_dialect = __esm({
|
|
|
7972
9176
|
key: k,
|
|
7973
9177
|
selection: innerQuery.selection,
|
|
7974
9178
|
isArray: !isSingle2,
|
|
7975
|
-
isOptional: (relation.optional ?? false) ||
|
|
9179
|
+
isOptional: (relation.optional ?? false) || join106 !== true && !!join106.where
|
|
7976
9180
|
});
|
|
7977
9181
|
const jsonColumns = sql.join(innerQuery.selection.map((s) => {
|
|
7978
9182
|
return sql`${sql.raw(this.escapeString(s.key))}, ${s.selection ? sql`${jsonb2}(${sql.identifier(s.key)})` : sql.identifier(s.key)}`;
|
|
@@ -8371,7 +9575,7 @@ var init_update = __esm({
|
|
|
8371
9575
|
createJoin(joinType) {
|
|
8372
9576
|
return ((table, on) => {
|
|
8373
9577
|
const tableName = getTableLikeName(table);
|
|
8374
|
-
if (typeof tableName === "string" && this.config.joins.some((
|
|
9578
|
+
if (typeof tableName === "string" && this.config.joins.some((join106) => join106.alias === tableName)) throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
8375
9579
|
if (typeof on === "function") {
|
|
8376
9580
|
const from = this.config.from ? is(table, SQLiteTable) ? table[Table.Symbol.Columns] : is(table, Subquery) ? table._.selectedFields : is(table, SQLiteViewBase) ? table[ViewBaseConfig].selectedFields : void 0 : void 0;
|
|
8377
9581
|
on = on(new Proxy(this.config.table[Table.Symbol.Columns], new SelectionProxyHandler({
|
|
@@ -9159,6 +10363,7 @@ __export(tasks_schema_exports, {
|
|
|
9159
10363
|
TOKEN_USAGE_TRANSPORTS: () => TOKEN_USAGE_TRANSPORTS,
|
|
9160
10364
|
adrRelations: () => adrRelations,
|
|
9161
10365
|
adrTaskLinks: () => adrTaskLinks,
|
|
10366
|
+
agentCredentials: () => agentCredentials,
|
|
9162
10367
|
agentErrorLog: () => agentErrorLog,
|
|
9163
10368
|
agentInstances: () => agentInstances,
|
|
9164
10369
|
architectureDecisions: () => architectureDecisions,
|
|
@@ -9185,7 +10390,7 @@ __export(tasks_schema_exports, {
|
|
|
9185
10390
|
warpChains: () => warpChains
|
|
9186
10391
|
});
|
|
9187
10392
|
import { sql as sql4 } from "drizzle-orm";
|
|
9188
|
-
var TASK_PRIORITIES, TASK_TYPES, TASK_SIZES, LIFECYCLE_STAGE_NAMES, LIFECYCLE_GATE_RESULTS, LIFECYCLE_EVIDENCE_TYPES, TOKEN_USAGE_METHODS, TOKEN_USAGE_CONFIDENCE, TOKEN_USAGE_TRANSPORTS, TASK_RELATION_TYPES, LIFECYCLE_TRANSITION_TYPES, EXTERNAL_LINK_TYPES, SYNC_DIRECTIONS, tasks, taskDependencies, taskRelations, sessions, taskWorkHistory, lifecyclePipelines, lifecycleStages, lifecycleGateResults, lifecycleEvidence, lifecycleTransitions, manifestEntries, pipelineManifest, releaseManifests, schemaMeta, auditLog, tokenUsage, architectureDecisions, adrTaskLinks, adrRelations, externalTaskLinks, statusRegistryTable;
|
|
10393
|
+
var TASK_PRIORITIES, TASK_TYPES, TASK_SIZES, LIFECYCLE_STAGE_NAMES, LIFECYCLE_GATE_RESULTS, LIFECYCLE_EVIDENCE_TYPES, TOKEN_USAGE_METHODS, TOKEN_USAGE_CONFIDENCE, TOKEN_USAGE_TRANSPORTS, TASK_RELATION_TYPES, LIFECYCLE_TRANSITION_TYPES, EXTERNAL_LINK_TYPES, SYNC_DIRECTIONS, tasks, taskDependencies, taskRelations, sessions, taskWorkHistory, lifecyclePipelines, lifecycleStages, lifecycleGateResults, lifecycleEvidence, lifecycleTransitions, manifestEntries, pipelineManifest, releaseManifests, schemaMeta, auditLog, tokenUsage, architectureDecisions, adrTaskLinks, adrRelations, externalTaskLinks, statusRegistryTable, agentCredentials;
|
|
9189
10394
|
var init_tasks_schema = __esm({
|
|
9190
10395
|
"packages/core/src/store/tasks-schema.ts"() {
|
|
9191
10396
|
"use strict";
|
|
@@ -9277,7 +10482,9 @@ var init_tasks_schema = __esm({
|
|
|
9277
10482
|
// T060: pipeline stage name (RCASD-IVTR+C). Stored as a plain stage name string.
|
|
9278
10483
|
// Not referencing lifecycle_stages.id so that stage binding works without
|
|
9279
10484
|
// requiring a lifecycle pipeline record for every task.
|
|
9280
|
-
pipelineStage: text("pipeline_stage")
|
|
10485
|
+
pipelineStage: text("pipeline_stage"),
|
|
10486
|
+
/** Agent ID that has claimed/is assigned to this task. */
|
|
10487
|
+
assignee: text("assignee")
|
|
9281
10488
|
},
|
|
9282
10489
|
(table) => [
|
|
9283
10490
|
index("idx_tasks_status").on(table.status),
|
|
@@ -9287,6 +10494,7 @@ var init_tasks_schema = __esm({
|
|
|
9287
10494
|
index("idx_tasks_priority").on(table.priority),
|
|
9288
10495
|
index("idx_tasks_session_id").on(table.sessionId),
|
|
9289
10496
|
index("idx_tasks_pipeline_stage").on(table.pipelineStage),
|
|
10497
|
+
index("idx_tasks_assignee").on(table.assignee),
|
|
9290
10498
|
// T033 composite indexes
|
|
9291
10499
|
index("idx_tasks_parent_status").on(table.parentId, table.status),
|
|
9292
10500
|
index("idx_tasks_status_priority").on(table.status, table.priority),
|
|
@@ -9756,6 +10964,32 @@ var init_tasks_schema = __esm({
|
|
|
9756
10964
|
index("idx_status_registry_namespace").on(table.namespace)
|
|
9757
10965
|
]
|
|
9758
10966
|
);
|
|
10967
|
+
agentCredentials = sqliteTable(
|
|
10968
|
+
"agent_credentials",
|
|
10969
|
+
{
|
|
10970
|
+
agentId: text("agent_id").primaryKey(),
|
|
10971
|
+
displayName: text("display_name").notNull(),
|
|
10972
|
+
/** API key encrypted at rest using AES-256-GCM with machine-bound key. */
|
|
10973
|
+
apiKeyEncrypted: text("api_key_encrypted").notNull(),
|
|
10974
|
+
apiBaseUrl: text("api_base_url").notNull().default("https://api.signaldock.io"),
|
|
10975
|
+
classification: text("classification"),
|
|
10976
|
+
privacyTier: text("privacy_tier").notNull().default("public"),
|
|
10977
|
+
/** JSON array of capability slugs. */
|
|
10978
|
+
capabilities: text("capabilities").notNull().default("[]"),
|
|
10979
|
+
/** JSON array of skill slugs. */
|
|
10980
|
+
skills: text("skills").notNull().default("[]"),
|
|
10981
|
+
/** JSON object with transport-specific settings. */
|
|
10982
|
+
transportConfig: text("transport_config").notNull().default("{}"),
|
|
10983
|
+
isActive: integer("is_active", { mode: "boolean" }).notNull().default(true),
|
|
10984
|
+
lastUsedAt: integer("last_used_at"),
|
|
10985
|
+
createdAt: integer("created_at").notNull(),
|
|
10986
|
+
updatedAt: integer("updated_at").notNull()
|
|
10987
|
+
},
|
|
10988
|
+
(table) => [
|
|
10989
|
+
index("idx_agent_credentials_active").on(table.isActive),
|
|
10990
|
+
index("idx_agent_credentials_last_used").on(table.lastUsedAt)
|
|
10991
|
+
]
|
|
10992
|
+
);
|
|
9759
10993
|
}
|
|
9760
10994
|
});
|
|
9761
10995
|
|
|
@@ -9799,6 +11033,7 @@ async function upsertTask(db, row, archiveFields) {
|
|
|
9799
11033
|
sessionId: row.sessionId,
|
|
9800
11034
|
// T060: pipeline stage name (RCASD-IVTR+C)
|
|
9801
11035
|
pipelineStage: row.pipelineStage ?? null,
|
|
11036
|
+
assignee: row.assignee ?? null,
|
|
9802
11037
|
// Always include archive metadata so unarchive clears stale values (T5034)
|
|
9803
11038
|
archivedAt: archiveFields?.archivedAt ?? null,
|
|
9804
11039
|
archiveReason: archiveFields?.archiveReason ?? null,
|
|
@@ -11430,7 +12665,10 @@ var init_sqlite2 = __esm({
|
|
|
11430
12665
|
_initPromise2 = null;
|
|
11431
12666
|
_gitTrackingChecked = false;
|
|
11432
12667
|
MIN_BACKUP_TASK_COUNT = 10;
|
|
11433
|
-
REQUIRED_TASK_COLUMNS = [
|
|
12668
|
+
REQUIRED_TASK_COLUMNS = [
|
|
12669
|
+
{ name: "pipeline_stage", ddl: "text" },
|
|
12670
|
+
{ name: "assignee", ddl: "text" }
|
|
12671
|
+
];
|
|
11434
12672
|
REQUIRED_SESSION_COLUMNS = [
|
|
11435
12673
|
{ name: "provider_id", ddl: "text" },
|
|
11436
12674
|
{ name: "stats_json", ddl: "text" },
|
|
@@ -11440,13 +12678,253 @@ var init_sqlite2 = __esm({
|
|
|
11440
12678
|
}
|
|
11441
12679
|
});
|
|
11442
12680
|
|
|
12681
|
+
// packages/core/src/agents/registry.ts
|
|
12682
|
+
var registry_exports2 = {};
|
|
12683
|
+
__export(registry_exports2, {
|
|
12684
|
+
checkAgentHealth: () => checkAgentHealth,
|
|
12685
|
+
classifyError: () => classifyError,
|
|
12686
|
+
deregisterAgent: () => deregisterAgent,
|
|
12687
|
+
generateAgentId: () => generateAgentId,
|
|
12688
|
+
getAgentErrorHistory: () => getAgentErrorHistory,
|
|
12689
|
+
getAgentInstance: () => getAgentInstance,
|
|
12690
|
+
getHealthReport: () => getHealthReport,
|
|
12691
|
+
heartbeat: () => heartbeat,
|
|
12692
|
+
incrementTasksCompleted: () => incrementTasksCompleted,
|
|
12693
|
+
listAgentInstances: () => listAgentInstances,
|
|
12694
|
+
markCrashed: () => markCrashed,
|
|
12695
|
+
registerAgent: () => registerAgent,
|
|
12696
|
+
updateAgentStatus: () => updateAgentStatus
|
|
12697
|
+
});
|
|
12698
|
+
import { randomBytes } from "node:crypto";
|
|
12699
|
+
import { and as and2, eq as eq4, inArray as inArray3, lt as lt2, sql as sql7 } from "drizzle-orm";
|
|
12700
|
+
function generateAgentId() {
|
|
12701
|
+
const now = /* @__PURE__ */ new Date();
|
|
12702
|
+
const ts = now.toISOString().replace(/[-:T]/g, "").substring(0, 14);
|
|
12703
|
+
const hex = randomBytes(3).toString("hex");
|
|
12704
|
+
return `agt_${ts}_${hex}`;
|
|
12705
|
+
}
|
|
12706
|
+
async function registerAgent(opts, cwd) {
|
|
12707
|
+
const db = await getDb(cwd);
|
|
12708
|
+
const id = generateAgentId();
|
|
12709
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
12710
|
+
const row = {
|
|
12711
|
+
id,
|
|
12712
|
+
agentType: opts.agentType,
|
|
12713
|
+
status: "starting",
|
|
12714
|
+
sessionId: opts.sessionId ?? null,
|
|
12715
|
+
taskId: opts.taskId ?? null,
|
|
12716
|
+
startedAt: now,
|
|
12717
|
+
lastHeartbeat: now,
|
|
12718
|
+
stoppedAt: null,
|
|
12719
|
+
errorCount: 0,
|
|
12720
|
+
totalTasksCompleted: 0,
|
|
12721
|
+
capacity: "1.0",
|
|
12722
|
+
metadataJson: opts.metadata ? JSON.stringify(opts.metadata) : "{}",
|
|
12723
|
+
parentAgentId: opts.parentAgentId ?? null
|
|
12724
|
+
};
|
|
12725
|
+
await db.insert(agentInstances).values(row);
|
|
12726
|
+
return row;
|
|
12727
|
+
}
|
|
12728
|
+
async function deregisterAgent(id, cwd) {
|
|
12729
|
+
const db = await getDb(cwd);
|
|
12730
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
12731
|
+
const existing = await db.select().from(agentInstances).where(eq4(agentInstances.id, id)).get();
|
|
12732
|
+
if (!existing) return null;
|
|
12733
|
+
if (existing.status === "stopped") return existing;
|
|
12734
|
+
await db.update(agentInstances).set({ status: "stopped", stoppedAt: now }).where(eq4(agentInstances.id, id));
|
|
12735
|
+
return { ...existing, status: "stopped", stoppedAt: now };
|
|
12736
|
+
}
|
|
12737
|
+
async function heartbeat(id, cwd) {
|
|
12738
|
+
const db = await getDb(cwd);
|
|
12739
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
12740
|
+
const existing = await db.select().from(agentInstances).where(eq4(agentInstances.id, id)).get();
|
|
12741
|
+
if (!existing) return null;
|
|
12742
|
+
if (existing.status === "stopped" || existing.status === "crashed") {
|
|
12743
|
+
return existing.status;
|
|
12744
|
+
}
|
|
12745
|
+
await db.update(agentInstances).set({ lastHeartbeat: now }).where(eq4(agentInstances.id, id));
|
|
12746
|
+
return existing.status;
|
|
12747
|
+
}
|
|
12748
|
+
async function updateAgentStatus(id, opts, cwd) {
|
|
12749
|
+
const db = await getDb(cwd);
|
|
12750
|
+
const existing = await db.select().from(agentInstances).where(eq4(agentInstances.id, id)).get();
|
|
12751
|
+
if (!existing) return null;
|
|
12752
|
+
const updates = {
|
|
12753
|
+
status: opts.status
|
|
12754
|
+
};
|
|
12755
|
+
if (opts.taskId !== void 0) {
|
|
12756
|
+
updates.taskId = opts.taskId;
|
|
12757
|
+
}
|
|
12758
|
+
if (opts.status === "active") {
|
|
12759
|
+
updates.lastHeartbeat = (/* @__PURE__ */ new Date()).toISOString();
|
|
12760
|
+
}
|
|
12761
|
+
if (opts.status === "error" || opts.status === "crashed") {
|
|
12762
|
+
updates.errorCount = existing.errorCount + 1;
|
|
12763
|
+
if (opts.error) {
|
|
12764
|
+
const errorType = classifyError(new Error(opts.error));
|
|
12765
|
+
await db.insert(agentErrorLog).values({
|
|
12766
|
+
agentId: id,
|
|
12767
|
+
errorType,
|
|
12768
|
+
message: opts.error,
|
|
12769
|
+
occurredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
12770
|
+
});
|
|
12771
|
+
}
|
|
12772
|
+
}
|
|
12773
|
+
if (opts.status === "stopped") {
|
|
12774
|
+
updates.stoppedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
12775
|
+
}
|
|
12776
|
+
await db.update(agentInstances).set(updates).where(eq4(agentInstances.id, id));
|
|
12777
|
+
return { ...existing, ...updates };
|
|
12778
|
+
}
|
|
12779
|
+
async function incrementTasksCompleted(id, cwd) {
|
|
12780
|
+
const db = await getDb(cwd);
|
|
12781
|
+
await db.update(agentInstances).set({ totalTasksCompleted: sql7`${agentInstances.totalTasksCompleted} + 1` }).where(eq4(agentInstances.id, id));
|
|
12782
|
+
}
|
|
12783
|
+
async function listAgentInstances(filters, cwd) {
|
|
12784
|
+
const db = await getDb(cwd);
|
|
12785
|
+
const conditions = [];
|
|
12786
|
+
if (filters?.status) {
|
|
12787
|
+
const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
|
|
12788
|
+
conditions.push(inArray3(agentInstances.status, statuses));
|
|
12789
|
+
}
|
|
12790
|
+
if (filters?.agentType) {
|
|
12791
|
+
const types = Array.isArray(filters.agentType) ? filters.agentType : [filters.agentType];
|
|
12792
|
+
conditions.push(inArray3(agentInstances.agentType, types));
|
|
12793
|
+
}
|
|
12794
|
+
if (filters?.sessionId) {
|
|
12795
|
+
conditions.push(eq4(agentInstances.sessionId, filters.sessionId));
|
|
12796
|
+
}
|
|
12797
|
+
if (filters?.parentAgentId) {
|
|
12798
|
+
conditions.push(eq4(agentInstances.parentAgentId, filters.parentAgentId));
|
|
12799
|
+
}
|
|
12800
|
+
if (conditions.length === 0) {
|
|
12801
|
+
return db.select().from(agentInstances).all();
|
|
12802
|
+
}
|
|
12803
|
+
return db.select().from(agentInstances).where(and2(...conditions)).all();
|
|
12804
|
+
}
|
|
12805
|
+
async function getAgentInstance(id, cwd) {
|
|
12806
|
+
const db = await getDb(cwd);
|
|
12807
|
+
const row = await db.select().from(agentInstances).where(eq4(agentInstances.id, id)).get();
|
|
12808
|
+
return row ?? null;
|
|
12809
|
+
}
|
|
12810
|
+
function classifyError(error40) {
|
|
12811
|
+
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
12812
|
+
for (const pattern of RETRIABLE_PATTERNS) {
|
|
12813
|
+
if (pattern.test(message)) return "retriable";
|
|
12814
|
+
}
|
|
12815
|
+
for (const pattern of PERMANENT_PATTERNS) {
|
|
12816
|
+
if (pattern.test(message)) return "permanent";
|
|
12817
|
+
}
|
|
12818
|
+
return "unknown";
|
|
12819
|
+
}
|
|
12820
|
+
async function getAgentErrorHistory(agentId, cwd) {
|
|
12821
|
+
const db = await getDb(cwd);
|
|
12822
|
+
return db.select().from(agentErrorLog).where(eq4(agentErrorLog.agentId, agentId)).all();
|
|
12823
|
+
}
|
|
12824
|
+
async function checkAgentHealth(thresholdMs = 3e4, cwd) {
|
|
12825
|
+
const db = await getDb(cwd);
|
|
12826
|
+
const cutoff = new Date(Date.now() - thresholdMs).toISOString();
|
|
12827
|
+
return db.select().from(agentInstances).where(
|
|
12828
|
+
and2(
|
|
12829
|
+
inArray3(agentInstances.status, ["active", "idle", "starting"]),
|
|
12830
|
+
lt2(agentInstances.lastHeartbeat, cutoff)
|
|
12831
|
+
)
|
|
12832
|
+
).all();
|
|
12833
|
+
}
|
|
12834
|
+
async function markCrashed(id, reason, cwd) {
|
|
12835
|
+
return updateAgentStatus(
|
|
12836
|
+
id,
|
|
12837
|
+
{ status: "crashed", error: reason ?? "Heartbeat timeout \u2014 agent presumed crashed" },
|
|
12838
|
+
cwd
|
|
12839
|
+
);
|
|
12840
|
+
}
|
|
12841
|
+
async function getHealthReport(thresholdMs = 3e4, cwd) {
|
|
12842
|
+
const allAgents = await listAgentInstances(void 0, cwd);
|
|
12843
|
+
const staleAgents = await checkAgentHealth(thresholdMs, cwd);
|
|
12844
|
+
const report = {
|
|
12845
|
+
total: allAgents.length,
|
|
12846
|
+
active: 0,
|
|
12847
|
+
idle: 0,
|
|
12848
|
+
starting: 0,
|
|
12849
|
+
error: 0,
|
|
12850
|
+
crashed: 0,
|
|
12851
|
+
stopped: 0,
|
|
12852
|
+
totalErrors: 0,
|
|
12853
|
+
staleAgents
|
|
12854
|
+
};
|
|
12855
|
+
for (const agent of allAgents) {
|
|
12856
|
+
switch (agent.status) {
|
|
12857
|
+
case "active":
|
|
12858
|
+
report.active++;
|
|
12859
|
+
break;
|
|
12860
|
+
case "idle":
|
|
12861
|
+
report.idle++;
|
|
12862
|
+
break;
|
|
12863
|
+
case "starting":
|
|
12864
|
+
report.starting++;
|
|
12865
|
+
break;
|
|
12866
|
+
case "error":
|
|
12867
|
+
report.error++;
|
|
12868
|
+
break;
|
|
12869
|
+
case "crashed":
|
|
12870
|
+
report.crashed++;
|
|
12871
|
+
break;
|
|
12872
|
+
case "stopped":
|
|
12873
|
+
report.stopped++;
|
|
12874
|
+
break;
|
|
12875
|
+
}
|
|
12876
|
+
report.totalErrors += agent.errorCount;
|
|
12877
|
+
}
|
|
12878
|
+
return report;
|
|
12879
|
+
}
|
|
12880
|
+
var RETRIABLE_PATTERNS, PERMANENT_PATTERNS;
|
|
12881
|
+
var init_registry2 = __esm({
|
|
12882
|
+
"packages/core/src/agents/registry.ts"() {
|
|
12883
|
+
"use strict";
|
|
12884
|
+
init_sqlite2();
|
|
12885
|
+
init_agent_schema();
|
|
12886
|
+
RETRIABLE_PATTERNS = [
|
|
12887
|
+
/timeout/i,
|
|
12888
|
+
/ECONNREFUSED/,
|
|
12889
|
+
/ECONNRESET/,
|
|
12890
|
+
/EPIPE/,
|
|
12891
|
+
/ETIMEDOUT/,
|
|
12892
|
+
/rate.?limit/i,
|
|
12893
|
+
/429/,
|
|
12894
|
+
/503/,
|
|
12895
|
+
/502/,
|
|
12896
|
+
/SQLITE_BUSY/i,
|
|
12897
|
+
/database is locked/i,
|
|
12898
|
+
/temporarily unavailable/i,
|
|
12899
|
+
/too many requests/i,
|
|
12900
|
+
/network/i,
|
|
12901
|
+
/socket hang up/i
|
|
12902
|
+
];
|
|
12903
|
+
PERMANENT_PATTERNS = [
|
|
12904
|
+
/permission denied/i,
|
|
12905
|
+
/EACCES/,
|
|
12906
|
+
/authentication/i,
|
|
12907
|
+
/unauthorized/i,
|
|
12908
|
+
/401/,
|
|
12909
|
+
/403/,
|
|
12910
|
+
/404/,
|
|
12911
|
+
/not found/i,
|
|
12912
|
+
/invalid.*token/i,
|
|
12913
|
+
/SQLITE_CONSTRAINT/i,
|
|
12914
|
+
/syntax error/i,
|
|
12915
|
+
/type error/i,
|
|
12916
|
+
/reference error/i
|
|
12917
|
+
];
|
|
12918
|
+
}
|
|
12919
|
+
});
|
|
12920
|
+
|
|
11443
12921
|
// packages/core/src/store/sqlite-data-accessor.ts
|
|
11444
12922
|
var sqlite_data_accessor_exports = {};
|
|
11445
12923
|
__export(sqlite_data_accessor_exports, {
|
|
11446
12924
|
createSqliteDataAccessor: () => createSqliteDataAccessor,
|
|
11447
12925
|
setMetaValue: () => setMetaValue
|
|
11448
12926
|
});
|
|
11449
|
-
import { and as
|
|
12927
|
+
import { and as and3, eq as eq5, inArray as inArray4, isNull as isNull2, like as like2, ne as ne2, notInArray as notInArray2, or as or2, sql as sql8 } from "drizzle-orm";
|
|
11450
12928
|
function generateAuditLogId() {
|
|
11451
12929
|
const epoch = Math.floor(Date.now() / 1e3);
|
|
11452
12930
|
const rand = Math.random().toString(36).slice(2, 8);
|
|
@@ -11454,7 +12932,7 @@ function generateAuditLogId() {
|
|
|
11454
12932
|
}
|
|
11455
12933
|
async function getMetaValue(cwd, key) {
|
|
11456
12934
|
const db = await getDb(cwd);
|
|
11457
|
-
const rows = await db.select().from(schemaMeta).where(
|
|
12935
|
+
const rows = await db.select().from(schemaMeta).where(eq5(schemaMeta.key, key)).all();
|
|
11458
12936
|
if (rows.length === 0 || !rows[0]) return null;
|
|
11459
12937
|
try {
|
|
11460
12938
|
return JSON.parse(rows[0].value);
|
|
@@ -11482,7 +12960,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11482
12960
|
// ---- loadArchive ----
|
|
11483
12961
|
async loadArchive() {
|
|
11484
12962
|
const db = await getDb(cwd);
|
|
11485
|
-
const archivedRows = await db.select().from(tasks).where(
|
|
12963
|
+
const archivedRows = await db.select().from(tasks).where(eq5(tasks.status, "archived")).all();
|
|
11486
12964
|
if (archivedRows.length === 0) return null;
|
|
11487
12965
|
const archivedTasks = archivedRows.map((row) => {
|
|
11488
12966
|
const task = rowToTask(row);
|
|
@@ -11554,7 +13032,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11554
13032
|
const incomingIds = new Set(sessions2.map((s) => s.id));
|
|
11555
13033
|
for (const eid of existingIds) {
|
|
11556
13034
|
if (!incomingIds.has(eid)) {
|
|
11557
|
-
await db.delete(sessions).where(
|
|
13035
|
+
await db.delete(sessions).where(eq5(sessions.id, eid)).run();
|
|
11558
13036
|
}
|
|
11559
13037
|
}
|
|
11560
13038
|
for (const session of sessions2) {
|
|
@@ -11607,7 +13085,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11607
13085
|
},
|
|
11608
13086
|
async archiveSingleTask(taskId, fields) {
|
|
11609
13087
|
const db = await getDb(cwd);
|
|
11610
|
-
const rows = await db.select({ id: tasks.id }).from(tasks).where(
|
|
13088
|
+
const rows = await db.select({ id: tasks.id }).from(tasks).where(eq5(tasks.id, taskId)).all();
|
|
11611
13089
|
if (rows.length === 0) return;
|
|
11612
13090
|
await db.update(tasks).set({
|
|
11613
13091
|
status: "archived",
|
|
@@ -11615,17 +13093,17 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11615
13093
|
archiveReason: fields.archiveReason ?? "completed",
|
|
11616
13094
|
cycleTimeDays: fields.cycleTimeDays ?? null,
|
|
11617
13095
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
11618
|
-
}).where(
|
|
13096
|
+
}).where(eq5(tasks.id, taskId)).run();
|
|
11619
13097
|
},
|
|
11620
13098
|
async removeSingleTask(taskId) {
|
|
11621
13099
|
const db = await getDb(cwd);
|
|
11622
|
-
await db.delete(taskDependencies).where(
|
|
11623
|
-
await db.delete(taskDependencies).where(
|
|
11624
|
-
await db.delete(tasks).where(
|
|
13100
|
+
await db.delete(taskDependencies).where(eq5(taskDependencies.taskId, taskId)).run();
|
|
13101
|
+
await db.delete(taskDependencies).where(eq5(taskDependencies.dependsOn, taskId)).run();
|
|
13102
|
+
await db.delete(tasks).where(eq5(tasks.id, taskId)).run();
|
|
11625
13103
|
},
|
|
11626
13104
|
async loadSingleTask(taskId) {
|
|
11627
13105
|
const db = await getDb(cwd);
|
|
11628
|
-
const rows = await db.select().from(tasks).where(
|
|
13106
|
+
const rows = await db.select().from(tasks).where(eq5(tasks.id, taskId)).limit(1).all();
|
|
11629
13107
|
if (rows.length === 0 || !rows[0]) return null;
|
|
11630
13108
|
const task = rowToTask(rows[0]);
|
|
11631
13109
|
const allIdRows = await db.select({ id: tasks.id }).from(tasks).all();
|
|
@@ -11636,7 +13114,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11636
13114
|
},
|
|
11637
13115
|
async getActiveSession() {
|
|
11638
13116
|
const db = await getDb(cwd);
|
|
11639
|
-
const rows = await db.select().from(sessions).where(
|
|
13117
|
+
const rows = await db.select().from(sessions).where(eq5(sessions.status, "active")).orderBy(sql8`${sessions.startedAt} DESC`).limit(1).all();
|
|
11640
13118
|
if (rows.length === 0 || !rows[0]) return null;
|
|
11641
13119
|
return rowToSession(rows[0]);
|
|
11642
13120
|
},
|
|
@@ -11646,7 +13124,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11646
13124
|
},
|
|
11647
13125
|
async removeSingleSession(sessionId) {
|
|
11648
13126
|
const db = await getDb(cwd);
|
|
11649
|
-
await db.delete(sessions).where(
|
|
13127
|
+
await db.delete(sessions).where(eq5(sessions.id, sessionId)).run();
|
|
11650
13128
|
},
|
|
11651
13129
|
// ---- Targeted query methods (Phase 2 modernization) ----
|
|
11652
13130
|
async queryTasks(filters) {
|
|
@@ -11657,7 +13135,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11657
13135
|
if (!statuses.includes("archived")) {
|
|
11658
13136
|
conditions.push(ne2(tasks.status, "archived"));
|
|
11659
13137
|
}
|
|
11660
|
-
conditions.push(
|
|
13138
|
+
conditions.push(inArray4(tasks.status, statuses));
|
|
11661
13139
|
} else if (filters.excludeStatus) {
|
|
11662
13140
|
const excluded = Array.isArray(filters.excludeStatus) ? filters.excludeStatus : [filters.excludeStatus];
|
|
11663
13141
|
for (const s of excluded) {
|
|
@@ -11666,14 +13144,14 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11666
13144
|
} else {
|
|
11667
13145
|
conditions.push(ne2(tasks.status, "archived"));
|
|
11668
13146
|
}
|
|
11669
|
-
if (filters.priority) conditions.push(
|
|
11670
|
-
if (filters.type) conditions.push(
|
|
11671
|
-
if (filters.phase) conditions.push(
|
|
13147
|
+
if (filters.priority) conditions.push(eq5(tasks.priority, filters.priority));
|
|
13148
|
+
if (filters.type) conditions.push(eq5(tasks.type, filters.type));
|
|
13149
|
+
if (filters.phase) conditions.push(eq5(tasks.phase, filters.phase));
|
|
11672
13150
|
if (filters.parentId !== void 0) {
|
|
11673
13151
|
if (filters.parentId === null) {
|
|
11674
13152
|
conditions.push(isNull2(tasks.parentId));
|
|
11675
13153
|
} else {
|
|
11676
|
-
conditions.push(
|
|
13154
|
+
conditions.push(eq5(tasks.parentId, filters.parentId));
|
|
11677
13155
|
}
|
|
11678
13156
|
}
|
|
11679
13157
|
if (filters.search) {
|
|
@@ -11689,25 +13167,25 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11689
13167
|
if (filters.label) {
|
|
11690
13168
|
conditions.push(like2(tasks.labelsJson, `%${JSON.stringify(filters.label)}%`));
|
|
11691
13169
|
}
|
|
11692
|
-
const where = conditions.length > 0 ?
|
|
11693
|
-
const countResult = await db.select({ count:
|
|
13170
|
+
const where = conditions.length > 0 ? and3(...conditions) : void 0;
|
|
13171
|
+
const countResult = await db.select({ count: sql8`count(*)` }).from(tasks).where(where).get();
|
|
11694
13172
|
const total = countResult?.count ?? 0;
|
|
11695
13173
|
let orderClause;
|
|
11696
13174
|
switch (filters.orderBy) {
|
|
11697
13175
|
case "createdAt":
|
|
11698
|
-
orderClause =
|
|
13176
|
+
orderClause = sql8`${tasks.createdAt} ASC`;
|
|
11699
13177
|
break;
|
|
11700
13178
|
case "updatedAt":
|
|
11701
|
-
orderClause =
|
|
13179
|
+
orderClause = sql8`${tasks.updatedAt} DESC NULLS LAST`;
|
|
11702
13180
|
break;
|
|
11703
13181
|
case "priority": {
|
|
11704
|
-
orderClause =
|
|
13182
|
+
orderClause = sql8`CASE ${tasks.priority}
|
|
11705
13183
|
WHEN 'critical' THEN 0 WHEN 'high' THEN 1
|
|
11706
13184
|
WHEN 'medium' THEN 2 WHEN 'low' THEN 3 ELSE 4 END ASC`;
|
|
11707
13185
|
break;
|
|
11708
13186
|
}
|
|
11709
13187
|
default:
|
|
11710
|
-
orderClause =
|
|
13188
|
+
orderClause = sql8`${tasks.position} ASC, ${tasks.createdAt} ASC`;
|
|
11711
13189
|
}
|
|
11712
13190
|
let query = db.select().from(tasks).where(where).orderBy(orderClause);
|
|
11713
13191
|
if (filters.limit !== void 0) {
|
|
@@ -11730,20 +13208,20 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11730
13208
|
const conditions = [];
|
|
11731
13209
|
if (filters?.status) {
|
|
11732
13210
|
const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
|
|
11733
|
-
conditions.push(
|
|
13211
|
+
conditions.push(inArray4(tasks.status, statuses));
|
|
11734
13212
|
} else {
|
|
11735
13213
|
conditions.push(ne2(tasks.status, "archived"));
|
|
11736
13214
|
}
|
|
11737
13215
|
if (filters?.parentId) {
|
|
11738
|
-
conditions.push(
|
|
13216
|
+
conditions.push(eq5(tasks.parentId, filters.parentId));
|
|
11739
13217
|
}
|
|
11740
|
-
const where = conditions.length > 0 ?
|
|
11741
|
-
const result = await db.select({ count:
|
|
13218
|
+
const where = conditions.length > 0 ? and3(...conditions) : void 0;
|
|
13219
|
+
const result = await db.select({ count: sql8`count(*)` }).from(tasks).where(where).get();
|
|
11742
13220
|
return result?.count ?? 0;
|
|
11743
13221
|
},
|
|
11744
13222
|
async getChildren(parentId) {
|
|
11745
13223
|
const db = await getDb(cwd);
|
|
11746
|
-
const rows = await db.select().from(tasks).where(
|
|
13224
|
+
const rows = await db.select().from(tasks).where(and3(eq5(tasks.parentId, parentId), ne2(tasks.status, "archived"))).orderBy(sql8`${tasks.position} ASC, ${tasks.createdAt} ASC`).all();
|
|
11747
13225
|
const tasks2 = rows.map(rowToTask);
|
|
11748
13226
|
if (tasks2.length > 0) {
|
|
11749
13227
|
const allIds = await getAllTaskIds();
|
|
@@ -11754,14 +13232,14 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11754
13232
|
},
|
|
11755
13233
|
async countChildren(parentId) {
|
|
11756
13234
|
const db = await getDb(cwd);
|
|
11757
|
-
const result = await db.select({ count:
|
|
13235
|
+
const result = await db.select({ count: sql8`count(*)` }).from(tasks).where(and3(eq5(tasks.parentId, parentId), ne2(tasks.status, "archived"))).get();
|
|
11758
13236
|
return result?.count ?? 0;
|
|
11759
13237
|
},
|
|
11760
13238
|
async countActiveChildren(parentId) {
|
|
11761
13239
|
const db = await getDb(cwd);
|
|
11762
|
-
const result = await db.select({ count:
|
|
11763
|
-
|
|
11764
|
-
|
|
13240
|
+
const result = await db.select({ count: sql8`count(*)` }).from(tasks).where(
|
|
13241
|
+
and3(
|
|
13242
|
+
eq5(tasks.parentId, parentId),
|
|
11765
13243
|
notInArray2(tasks.status, [...TERMINAL_TASK_STATUSES])
|
|
11766
13244
|
)
|
|
11767
13245
|
).get();
|
|
@@ -11783,7 +13261,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11783
13261
|
if (idRows.length === 0) return [];
|
|
11784
13262
|
const db = await getDb(cwd);
|
|
11785
13263
|
const ids = idRows.map((r) => r.id);
|
|
11786
|
-
const taskRows = await db.select().from(tasks).where(
|
|
13264
|
+
const taskRows = await db.select().from(tasks).where(inArray4(tasks.id, ids)).all();
|
|
11787
13265
|
const tasks2 = taskRows.map(rowToTask);
|
|
11788
13266
|
if (tasks2.length > 0) {
|
|
11789
13267
|
const allIds = await getAllTaskIds();
|
|
@@ -11809,7 +13287,7 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11809
13287
|
if (idRows.length === 0) return [];
|
|
11810
13288
|
const db = await getDb(cwd);
|
|
11811
13289
|
const ids = idRows.map((r) => r.id);
|
|
11812
|
-
const rows = await db.select().from(tasks).where(
|
|
13290
|
+
const rows = await db.select().from(tasks).where(inArray4(tasks.id, ids)).all();
|
|
11813
13291
|
const tasks2 = rows.map(rowToTask);
|
|
11814
13292
|
if (tasks2.length > 0) {
|
|
11815
13293
|
const allIds = await getAllTaskIds();
|
|
@@ -11820,10 +13298,10 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11820
13298
|
},
|
|
11821
13299
|
async getDependents(taskId) {
|
|
11822
13300
|
const db = await getDb(cwd);
|
|
11823
|
-
const depRows = await db.select().from(taskDependencies).where(
|
|
13301
|
+
const depRows = await db.select().from(taskDependencies).where(eq5(taskDependencies.dependsOn, taskId)).all();
|
|
11824
13302
|
if (depRows.length === 0) return [];
|
|
11825
13303
|
const dependentIds = depRows.map((r) => r.taskId);
|
|
11826
|
-
const rows = await db.select().from(tasks).where(
|
|
13304
|
+
const rows = await db.select().from(tasks).where(inArray4(tasks.id, dependentIds)).all();
|
|
11827
13305
|
const tasks2 = rows.map(rowToTask);
|
|
11828
13306
|
if (tasks2.length > 0) {
|
|
11829
13307
|
const allIds = await getAllTaskIds();
|
|
@@ -11848,13 +13326,13 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11848
13326
|
},
|
|
11849
13327
|
async taskExists(taskId) {
|
|
11850
13328
|
const db = await getDb(cwd);
|
|
11851
|
-
const result = await db.select({ id: tasks.id }).from(tasks).where(
|
|
13329
|
+
const result = await db.select({ id: tasks.id }).from(tasks).where(eq5(tasks.id, taskId)).limit(1).get();
|
|
11852
13330
|
return !!result;
|
|
11853
13331
|
},
|
|
11854
13332
|
async loadTasks(taskIds) {
|
|
11855
13333
|
if (taskIds.length === 0) return [];
|
|
11856
13334
|
const db = await getDb(cwd);
|
|
11857
|
-
const rows = await db.select().from(tasks).where(
|
|
13335
|
+
const rows = await db.select().from(tasks).where(inArray4(tasks.id, taskIds)).all();
|
|
11858
13336
|
const tasks2 = rows.map(rowToTask);
|
|
11859
13337
|
if (tasks2.length > 0) {
|
|
11860
13338
|
const allIds = await getAllTaskIds();
|
|
@@ -11922,14 +13400,15 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11922
13400
|
["verificationJson", "verificationJson"],
|
|
11923
13401
|
["createdBy", "createdBy"],
|
|
11924
13402
|
["modifiedBy", "modifiedBy"],
|
|
11925
|
-
["sessionId", "sessionId"]
|
|
13403
|
+
["sessionId", "sessionId"],
|
|
13404
|
+
["assignee", "assignee"]
|
|
11926
13405
|
];
|
|
11927
13406
|
for (const [key, col] of fieldMap) {
|
|
11928
13407
|
if (fields[key] !== void 0) {
|
|
11929
13408
|
updateRow[col] = fields[key];
|
|
11930
13409
|
}
|
|
11931
13410
|
}
|
|
11932
|
-
await db.update(tasks).set(updateRow).where(
|
|
13411
|
+
await db.update(tasks).set(updateRow).where(eq5(tasks.id, taskId)).run();
|
|
11933
13412
|
},
|
|
11934
13413
|
async transaction(fn) {
|
|
11935
13414
|
const nativeDb = getNativeTasksDb();
|
|
@@ -11952,12 +13431,12 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11952
13431
|
archiveReason: fields.archiveReason ?? "completed",
|
|
11953
13432
|
cycleTimeDays: fields.cycleTimeDays ?? null,
|
|
11954
13433
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
11955
|
-
}).where(
|
|
13434
|
+
}).where(eq5(tasks.id, taskId)).run();
|
|
11956
13435
|
},
|
|
11957
13436
|
async removeSingleTask(taskId) {
|
|
11958
|
-
await db.delete(taskDependencies).where(
|
|
11959
|
-
await db.delete(taskDependencies).where(
|
|
11960
|
-
await db.delete(tasks).where(
|
|
13437
|
+
await db.delete(taskDependencies).where(eq5(taskDependencies.taskId, taskId)).run();
|
|
13438
|
+
await db.delete(taskDependencies).where(eq5(taskDependencies.dependsOn, taskId)).run();
|
|
13439
|
+
await db.delete(tasks).where(eq5(tasks.id, taskId)).run();
|
|
11961
13440
|
},
|
|
11962
13441
|
async setMetaValue(key, value) {
|
|
11963
13442
|
await setMetaValue(cwd, key, value);
|
|
@@ -11991,6 +13470,46 @@ async function createSqliteDataAccessor(cwd) {
|
|
|
11991
13470
|
async getSchemaVersion() {
|
|
11992
13471
|
const meta = await getMetaValue(cwd, "file_meta");
|
|
11993
13472
|
return meta?.schemaVersion ?? null;
|
|
13473
|
+
},
|
|
13474
|
+
// ---- Agent instances ----
|
|
13475
|
+
async listAgentInstances(filters) {
|
|
13476
|
+
const { listAgentInstances: listAgents2 } = await Promise.resolve().then(() => (init_registry2(), registry_exports2));
|
|
13477
|
+
return listAgents2(filters, cwd);
|
|
13478
|
+
},
|
|
13479
|
+
async getAgentInstance(agentId) {
|
|
13480
|
+
const { getAgentInstance: getAgent2 } = await Promise.resolve().then(() => (init_registry2(), registry_exports2));
|
|
13481
|
+
return getAgent2(agentId, cwd);
|
|
13482
|
+
},
|
|
13483
|
+
// ---- Agent task claiming ----
|
|
13484
|
+
async claimTask(taskId, agentId) {
|
|
13485
|
+
const nativeDb = getNativeTasksDb();
|
|
13486
|
+
if (!nativeDb) {
|
|
13487
|
+
throw new Error("Native database not initialized");
|
|
13488
|
+
}
|
|
13489
|
+
const existsRow = nativeDb.prepare("SELECT assignee FROM tasks WHERE id = ?").get(taskId);
|
|
13490
|
+
if (!existsRow) {
|
|
13491
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
13492
|
+
}
|
|
13493
|
+
const result = nativeDb.prepare(
|
|
13494
|
+
"UPDATE tasks SET assignee = ?, updated_at = ? WHERE id = ? AND (assignee IS NULL OR assignee = ?)"
|
|
13495
|
+
).run(agentId, (/* @__PURE__ */ new Date()).toISOString(), taskId, agentId);
|
|
13496
|
+
if (result.changes === 0) {
|
|
13497
|
+
const currentRow = nativeDb.prepare("SELECT assignee FROM tasks WHERE id = ?").get(taskId);
|
|
13498
|
+
throw new Error(
|
|
13499
|
+
`Task ${taskId} is already claimed by agent: ${currentRow?.assignee ?? "unknown"}`
|
|
13500
|
+
);
|
|
13501
|
+
}
|
|
13502
|
+
},
|
|
13503
|
+
async unclaimTask(taskId) {
|
|
13504
|
+
const nativeDb = getNativeTasksDb();
|
|
13505
|
+
if (!nativeDb) {
|
|
13506
|
+
throw new Error("Native database not initialized");
|
|
13507
|
+
}
|
|
13508
|
+
const existsRow = nativeDb.prepare("SELECT id FROM tasks WHERE id = ?").get(taskId);
|
|
13509
|
+
if (!existsRow) {
|
|
13510
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
13511
|
+
}
|
|
13512
|
+
nativeDb.prepare("UPDATE tasks SET assignee = NULL, updated_at = ? WHERE id = ?").run((/* @__PURE__ */ new Date()).toISOString(), taskId);
|
|
11994
13513
|
}
|
|
11995
13514
|
};
|
|
11996
13515
|
return accessor;
|
|
@@ -14215,6 +15734,20 @@ var init_safety_data_accessor = __esm({
|
|
|
14215
15734
|
async removeSingleSession(sessionId) {
|
|
14216
15735
|
return this.inner.removeSingleSession(sessionId);
|
|
14217
15736
|
}
|
|
15737
|
+
// ---- Agent instances ----
|
|
15738
|
+
async listAgentInstances(filters) {
|
|
15739
|
+
return this.inner.listAgentInstances(filters);
|
|
15740
|
+
}
|
|
15741
|
+
async getAgentInstance(agentId) {
|
|
15742
|
+
return this.inner.getAgentInstance(agentId);
|
|
15743
|
+
}
|
|
15744
|
+
// ---- Agent task claiming ----
|
|
15745
|
+
async claimTask(taskId, agentId) {
|
|
15746
|
+
return this.inner.claimTask(taskId, agentId);
|
|
15747
|
+
}
|
|
15748
|
+
async unclaimTask(taskId) {
|
|
15749
|
+
return this.inner.unclaimTask(taskId);
|
|
15750
|
+
}
|
|
14218
15751
|
// ---- Lifecycle ----
|
|
14219
15752
|
async close() {
|
|
14220
15753
|
this.logVerbose("Closing accessor");
|
|
@@ -14386,7 +15919,7 @@ var init_link_pipeline = __esm({
|
|
|
14386
15919
|
});
|
|
14387
15920
|
|
|
14388
15921
|
// packages/core/src/store/brain-accessor.ts
|
|
14389
|
-
import { and as
|
|
15922
|
+
import { and as and4, asc as asc2, desc as desc2, eq as eq6, gte as gte2, or as or3 } from "drizzle-orm";
|
|
14390
15923
|
async function getBrainAccessor(cwd) {
|
|
14391
15924
|
const db = await getBrainDb(cwd);
|
|
14392
15925
|
return new BrainDataAccessor(db);
|
|
@@ -14406,30 +15939,30 @@ var init_brain_accessor = __esm({
|
|
|
14406
15939
|
// =========================================================================
|
|
14407
15940
|
async addDecision(row) {
|
|
14408
15941
|
await this.db.insert(brainDecisions).values(row);
|
|
14409
|
-
const result = await this.db.select().from(brainDecisions).where(
|
|
15942
|
+
const result = await this.db.select().from(brainDecisions).where(eq6(brainDecisions.id, row.id));
|
|
14410
15943
|
return result[0];
|
|
14411
15944
|
}
|
|
14412
15945
|
async getDecision(id) {
|
|
14413
|
-
const result = await this.db.select().from(brainDecisions).where(
|
|
15946
|
+
const result = await this.db.select().from(brainDecisions).where(eq6(brainDecisions.id, id));
|
|
14414
15947
|
return result[0] ?? null;
|
|
14415
15948
|
}
|
|
14416
15949
|
async findDecisions(params = {}) {
|
|
14417
15950
|
const conditions = [];
|
|
14418
15951
|
if (params.type) {
|
|
14419
|
-
conditions.push(
|
|
15952
|
+
conditions.push(eq6(brainDecisions.type, params.type));
|
|
14420
15953
|
}
|
|
14421
15954
|
if (params.confidence) {
|
|
14422
|
-
conditions.push(
|
|
15955
|
+
conditions.push(eq6(brainDecisions.confidence, params.confidence));
|
|
14423
15956
|
}
|
|
14424
15957
|
if (params.outcome) {
|
|
14425
|
-
conditions.push(
|
|
15958
|
+
conditions.push(eq6(brainDecisions.outcome, params.outcome));
|
|
14426
15959
|
}
|
|
14427
15960
|
if (params.contextTaskId) {
|
|
14428
|
-
conditions.push(
|
|
15961
|
+
conditions.push(eq6(brainDecisions.contextTaskId, params.contextTaskId));
|
|
14429
15962
|
}
|
|
14430
15963
|
let query = this.db.select().from(brainDecisions).orderBy(desc2(brainDecisions.createdAt));
|
|
14431
15964
|
if (conditions.length > 0) {
|
|
14432
|
-
query = query.where(
|
|
15965
|
+
query = query.where(and4(...conditions));
|
|
14433
15966
|
}
|
|
14434
15967
|
if (params.limit) {
|
|
14435
15968
|
query = query.limit(params.limit);
|
|
@@ -14437,34 +15970,34 @@ var init_brain_accessor = __esm({
|
|
|
14437
15970
|
return query;
|
|
14438
15971
|
}
|
|
14439
15972
|
async updateDecision(id, updates) {
|
|
14440
|
-
await this.db.update(brainDecisions).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(
|
|
15973
|
+
await this.db.update(brainDecisions).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(eq6(brainDecisions.id, id));
|
|
14441
15974
|
}
|
|
14442
15975
|
// =========================================================================
|
|
14443
15976
|
// Patterns CRUD
|
|
14444
15977
|
// =========================================================================
|
|
14445
15978
|
async addPattern(row) {
|
|
14446
15979
|
await this.db.insert(brainPatterns).values(row);
|
|
14447
|
-
const result = await this.db.select().from(brainPatterns).where(
|
|
15980
|
+
const result = await this.db.select().from(brainPatterns).where(eq6(brainPatterns.id, row.id));
|
|
14448
15981
|
return result[0];
|
|
14449
15982
|
}
|
|
14450
15983
|
async getPattern(id) {
|
|
14451
|
-
const result = await this.db.select().from(brainPatterns).where(
|
|
15984
|
+
const result = await this.db.select().from(brainPatterns).where(eq6(brainPatterns.id, id));
|
|
14452
15985
|
return result[0] ?? null;
|
|
14453
15986
|
}
|
|
14454
15987
|
async findPatterns(params = {}) {
|
|
14455
15988
|
const conditions = [];
|
|
14456
15989
|
if (params.type) {
|
|
14457
|
-
conditions.push(
|
|
15990
|
+
conditions.push(eq6(brainPatterns.type, params.type));
|
|
14458
15991
|
}
|
|
14459
15992
|
if (params.impact) {
|
|
14460
|
-
conditions.push(
|
|
15993
|
+
conditions.push(eq6(brainPatterns.impact, params.impact));
|
|
14461
15994
|
}
|
|
14462
15995
|
if (params.minFrequency !== void 0) {
|
|
14463
15996
|
conditions.push(gte2(brainPatterns.frequency, params.minFrequency));
|
|
14464
15997
|
}
|
|
14465
15998
|
let query = this.db.select().from(brainPatterns).orderBy(desc2(brainPatterns.frequency));
|
|
14466
15999
|
if (conditions.length > 0) {
|
|
14467
|
-
query = query.where(
|
|
16000
|
+
query = query.where(and4(...conditions));
|
|
14468
16001
|
}
|
|
14469
16002
|
if (params.limit) {
|
|
14470
16003
|
query = query.limit(params.limit);
|
|
@@ -14472,18 +16005,18 @@ var init_brain_accessor = __esm({
|
|
|
14472
16005
|
return query;
|
|
14473
16006
|
}
|
|
14474
16007
|
async updatePattern(id, updates) {
|
|
14475
|
-
await this.db.update(brainPatterns).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(
|
|
16008
|
+
await this.db.update(brainPatterns).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(eq6(brainPatterns.id, id));
|
|
14476
16009
|
}
|
|
14477
16010
|
// =========================================================================
|
|
14478
16011
|
// Learnings CRUD
|
|
14479
16012
|
// =========================================================================
|
|
14480
16013
|
async addLearning(row) {
|
|
14481
16014
|
await this.db.insert(brainLearnings).values(row);
|
|
14482
|
-
const result = await this.db.select().from(brainLearnings).where(
|
|
16015
|
+
const result = await this.db.select().from(brainLearnings).where(eq6(brainLearnings.id, row.id));
|
|
14483
16016
|
return result[0];
|
|
14484
16017
|
}
|
|
14485
16018
|
async getLearning(id) {
|
|
14486
|
-
const result = await this.db.select().from(brainLearnings).where(
|
|
16019
|
+
const result = await this.db.select().from(brainLearnings).where(eq6(brainLearnings.id, id));
|
|
14487
16020
|
return result[0] ?? null;
|
|
14488
16021
|
}
|
|
14489
16022
|
async findLearnings(params = {}) {
|
|
@@ -14492,11 +16025,11 @@ var init_brain_accessor = __esm({
|
|
|
14492
16025
|
conditions.push(gte2(brainLearnings.confidence, params.minConfidence));
|
|
14493
16026
|
}
|
|
14494
16027
|
if (params.actionable !== void 0) {
|
|
14495
|
-
conditions.push(
|
|
16028
|
+
conditions.push(eq6(brainLearnings.actionable, params.actionable));
|
|
14496
16029
|
}
|
|
14497
16030
|
let query = this.db.select().from(brainLearnings).orderBy(desc2(brainLearnings.confidence));
|
|
14498
16031
|
if (conditions.length > 0) {
|
|
14499
|
-
query = query.where(
|
|
16032
|
+
query = query.where(and4(...conditions));
|
|
14500
16033
|
}
|
|
14501
16034
|
if (params.limit) {
|
|
14502
16035
|
query = query.limit(params.limit);
|
|
@@ -14504,37 +16037,37 @@ var init_brain_accessor = __esm({
|
|
|
14504
16037
|
return query;
|
|
14505
16038
|
}
|
|
14506
16039
|
async updateLearning(id, updates) {
|
|
14507
|
-
await this.db.update(brainLearnings).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(
|
|
16040
|
+
await this.db.update(brainLearnings).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(eq6(brainLearnings.id, id));
|
|
14508
16041
|
}
|
|
14509
16042
|
// =========================================================================
|
|
14510
16043
|
// Observations CRUD
|
|
14511
16044
|
// =========================================================================
|
|
14512
16045
|
async addObservation(row) {
|
|
14513
16046
|
await this.db.insert(brainObservations).values(row);
|
|
14514
|
-
const result = await this.db.select().from(brainObservations).where(
|
|
16047
|
+
const result = await this.db.select().from(brainObservations).where(eq6(brainObservations.id, row.id));
|
|
14515
16048
|
return result[0];
|
|
14516
16049
|
}
|
|
14517
16050
|
async getObservation(id) {
|
|
14518
|
-
const result = await this.db.select().from(brainObservations).where(
|
|
16051
|
+
const result = await this.db.select().from(brainObservations).where(eq6(brainObservations.id, id));
|
|
14519
16052
|
return result[0] ?? null;
|
|
14520
16053
|
}
|
|
14521
16054
|
async findObservations(params = {}) {
|
|
14522
16055
|
const conditions = [];
|
|
14523
16056
|
if (params.type) {
|
|
14524
|
-
conditions.push(
|
|
16057
|
+
conditions.push(eq6(brainObservations.type, params.type));
|
|
14525
16058
|
}
|
|
14526
16059
|
if (params.project) {
|
|
14527
|
-
conditions.push(
|
|
16060
|
+
conditions.push(eq6(brainObservations.project, params.project));
|
|
14528
16061
|
}
|
|
14529
16062
|
if (params.sourceType) {
|
|
14530
|
-
conditions.push(
|
|
16063
|
+
conditions.push(eq6(brainObservations.sourceType, params.sourceType));
|
|
14531
16064
|
}
|
|
14532
16065
|
if (params.sourceSessionId) {
|
|
14533
|
-
conditions.push(
|
|
16066
|
+
conditions.push(eq6(brainObservations.sourceSessionId, params.sourceSessionId));
|
|
14534
16067
|
}
|
|
14535
16068
|
let query = this.db.select().from(brainObservations).orderBy(desc2(brainObservations.createdAt));
|
|
14536
16069
|
if (conditions.length > 0) {
|
|
14537
|
-
query = query.where(
|
|
16070
|
+
query = query.where(and4(...conditions));
|
|
14538
16071
|
}
|
|
14539
16072
|
if (params.limit) {
|
|
14540
16073
|
query = query.limit(params.limit);
|
|
@@ -14542,7 +16075,7 @@ var init_brain_accessor = __esm({
|
|
|
14542
16075
|
return query;
|
|
14543
16076
|
}
|
|
14544
16077
|
async updateObservation(id, updates) {
|
|
14545
|
-
await this.db.update(brainObservations).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(
|
|
16078
|
+
await this.db.update(brainObservations).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(eq6(brainObservations.id, id));
|
|
14546
16079
|
}
|
|
14547
16080
|
// =========================================================================
|
|
14548
16081
|
// Memory Links CRUD
|
|
@@ -14552,22 +16085,22 @@ var init_brain_accessor = __esm({
|
|
|
14552
16085
|
}
|
|
14553
16086
|
async getLinksForMemory(memoryType, memoryId) {
|
|
14554
16087
|
return this.db.select().from(brainMemoryLinks).where(
|
|
14555
|
-
|
|
14556
|
-
|
|
14557
|
-
|
|
16088
|
+
and4(
|
|
16089
|
+
eq6(brainMemoryLinks.memoryType, memoryType),
|
|
16090
|
+
eq6(brainMemoryLinks.memoryId, memoryId)
|
|
14558
16091
|
)
|
|
14559
16092
|
).orderBy(asc2(brainMemoryLinks.createdAt));
|
|
14560
16093
|
}
|
|
14561
16094
|
async getLinksForTask(taskId) {
|
|
14562
|
-
return this.db.select().from(brainMemoryLinks).where(
|
|
16095
|
+
return this.db.select().from(brainMemoryLinks).where(eq6(brainMemoryLinks.taskId, taskId)).orderBy(asc2(brainMemoryLinks.createdAt));
|
|
14563
16096
|
}
|
|
14564
16097
|
async removeLink(memoryType, memoryId, taskId, linkType) {
|
|
14565
16098
|
await this.db.delete(brainMemoryLinks).where(
|
|
14566
|
-
|
|
14567
|
-
|
|
14568
|
-
|
|
14569
|
-
|
|
14570
|
-
|
|
16099
|
+
and4(
|
|
16100
|
+
eq6(brainMemoryLinks.memoryType, memoryType),
|
|
16101
|
+
eq6(brainMemoryLinks.memoryId, memoryId),
|
|
16102
|
+
eq6(brainMemoryLinks.taskId, taskId),
|
|
16103
|
+
eq6(brainMemoryLinks.linkType, linkType)
|
|
14571
16104
|
)
|
|
14572
16105
|
);
|
|
14573
16106
|
}
|
|
@@ -14576,27 +16109,27 @@ var init_brain_accessor = __esm({
|
|
|
14576
16109
|
// =========================================================================
|
|
14577
16110
|
async addStickyNote(row) {
|
|
14578
16111
|
await this.db.insert(brainStickyNotes).values(row);
|
|
14579
|
-
const result = await this.db.select().from(brainStickyNotes).where(
|
|
16112
|
+
const result = await this.db.select().from(brainStickyNotes).where(eq6(brainStickyNotes.id, row.id));
|
|
14580
16113
|
return result[0];
|
|
14581
16114
|
}
|
|
14582
16115
|
async getStickyNote(id) {
|
|
14583
|
-
const result = await this.db.select().from(brainStickyNotes).where(
|
|
16116
|
+
const result = await this.db.select().from(brainStickyNotes).where(eq6(brainStickyNotes.id, id));
|
|
14584
16117
|
return result[0] ?? null;
|
|
14585
16118
|
}
|
|
14586
16119
|
async findStickyNotes(params = {}) {
|
|
14587
16120
|
const conditions = [];
|
|
14588
16121
|
if (params.status) {
|
|
14589
|
-
conditions.push(
|
|
16122
|
+
conditions.push(eq6(brainStickyNotes.status, params.status));
|
|
14590
16123
|
}
|
|
14591
16124
|
if (params.color) {
|
|
14592
|
-
conditions.push(
|
|
16125
|
+
conditions.push(eq6(brainStickyNotes.color, params.color));
|
|
14593
16126
|
}
|
|
14594
16127
|
if (params.priority) {
|
|
14595
|
-
conditions.push(
|
|
16128
|
+
conditions.push(eq6(brainStickyNotes.priority, params.priority));
|
|
14596
16129
|
}
|
|
14597
16130
|
let query = this.db.select().from(brainStickyNotes).orderBy(desc2(brainStickyNotes.createdAt));
|
|
14598
16131
|
if (conditions.length > 0) {
|
|
14599
|
-
query = query.where(
|
|
16132
|
+
query = query.where(and4(...conditions));
|
|
14600
16133
|
}
|
|
14601
16134
|
if (params.limit) {
|
|
14602
16135
|
query = query.limit(params.limit);
|
|
@@ -14604,31 +16137,31 @@ var init_brain_accessor = __esm({
|
|
|
14604
16137
|
return query;
|
|
14605
16138
|
}
|
|
14606
16139
|
async updateStickyNote(id, updates) {
|
|
14607
|
-
await this.db.update(brainStickyNotes).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(
|
|
16140
|
+
await this.db.update(brainStickyNotes).set({ ...updates, updatedAt: (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19) }).where(eq6(brainStickyNotes.id, id));
|
|
14608
16141
|
}
|
|
14609
16142
|
async deleteStickyNote(id) {
|
|
14610
|
-
await this.db.delete(brainStickyNotes).where(
|
|
16143
|
+
await this.db.delete(brainStickyNotes).where(eq6(brainStickyNotes.id, id));
|
|
14611
16144
|
}
|
|
14612
16145
|
// =========================================================================
|
|
14613
16146
|
// PageIndex Node CRUD (T5383)
|
|
14614
16147
|
// =========================================================================
|
|
14615
16148
|
async addPageNode(node) {
|
|
14616
16149
|
await this.db.insert(brainPageNodes).values(node);
|
|
14617
|
-
const result = await this.db.select().from(brainPageNodes).where(
|
|
16150
|
+
const result = await this.db.select().from(brainPageNodes).where(eq6(brainPageNodes.id, node.id));
|
|
14618
16151
|
return result[0];
|
|
14619
16152
|
}
|
|
14620
16153
|
async getPageNode(id) {
|
|
14621
|
-
const result = await this.db.select().from(brainPageNodes).where(
|
|
16154
|
+
const result = await this.db.select().from(brainPageNodes).where(eq6(brainPageNodes.id, id));
|
|
14622
16155
|
return result[0] ?? null;
|
|
14623
16156
|
}
|
|
14624
16157
|
async findPageNodes(params = {}) {
|
|
14625
16158
|
const conditions = [];
|
|
14626
16159
|
if (params.nodeType) {
|
|
14627
|
-
conditions.push(
|
|
16160
|
+
conditions.push(eq6(brainPageNodes.nodeType, params.nodeType));
|
|
14628
16161
|
}
|
|
14629
16162
|
let query = this.db.select().from(brainPageNodes).orderBy(desc2(brainPageNodes.createdAt));
|
|
14630
16163
|
if (conditions.length > 0) {
|
|
14631
|
-
query = query.where(
|
|
16164
|
+
query = query.where(and4(...conditions));
|
|
14632
16165
|
}
|
|
14633
16166
|
if (params.limit) {
|
|
14634
16167
|
query = query.limit(params.limit);
|
|
@@ -14637,9 +16170,9 @@ var init_brain_accessor = __esm({
|
|
|
14637
16170
|
}
|
|
14638
16171
|
async removePageNode(id) {
|
|
14639
16172
|
await this.db.delete(brainPageEdges).where(
|
|
14640
|
-
or3(
|
|
16173
|
+
or3(eq6(brainPageEdges.fromId, id), eq6(brainPageEdges.toId, id))
|
|
14641
16174
|
);
|
|
14642
|
-
await this.db.delete(brainPageNodes).where(
|
|
16175
|
+
await this.db.delete(brainPageNodes).where(eq6(brainPageNodes.id, id));
|
|
14643
16176
|
}
|
|
14644
16177
|
// =========================================================================
|
|
14645
16178
|
// PageIndex Edge CRUD (T5383)
|
|
@@ -14647,34 +16180,34 @@ var init_brain_accessor = __esm({
|
|
|
14647
16180
|
async addPageEdge(edge) {
|
|
14648
16181
|
await this.db.insert(brainPageEdges).values(edge);
|
|
14649
16182
|
const result = await this.db.select().from(brainPageEdges).where(
|
|
14650
|
-
|
|
14651
|
-
|
|
14652
|
-
|
|
14653
|
-
|
|
16183
|
+
and4(
|
|
16184
|
+
eq6(brainPageEdges.fromId, edge.fromId),
|
|
16185
|
+
eq6(brainPageEdges.toId, edge.toId),
|
|
16186
|
+
eq6(brainPageEdges.edgeType, edge.edgeType)
|
|
14654
16187
|
)
|
|
14655
16188
|
);
|
|
14656
16189
|
return result[0];
|
|
14657
16190
|
}
|
|
14658
16191
|
async getPageEdges(nodeId, direction = "both") {
|
|
14659
16192
|
if (direction === "out") {
|
|
14660
|
-
return this.db.select().from(brainPageEdges).where(
|
|
16193
|
+
return this.db.select().from(brainPageEdges).where(eq6(brainPageEdges.fromId, nodeId)).orderBy(asc2(brainPageEdges.createdAt));
|
|
14661
16194
|
}
|
|
14662
16195
|
if (direction === "in") {
|
|
14663
|
-
return this.db.select().from(brainPageEdges).where(
|
|
16196
|
+
return this.db.select().from(brainPageEdges).where(eq6(brainPageEdges.toId, nodeId)).orderBy(asc2(brainPageEdges.createdAt));
|
|
14664
16197
|
}
|
|
14665
16198
|
return this.db.select().from(brainPageEdges).where(
|
|
14666
16199
|
or3(
|
|
14667
|
-
|
|
14668
|
-
|
|
16200
|
+
eq6(brainPageEdges.fromId, nodeId),
|
|
16201
|
+
eq6(brainPageEdges.toId, nodeId)
|
|
14669
16202
|
)
|
|
14670
16203
|
).orderBy(asc2(brainPageEdges.createdAt));
|
|
14671
16204
|
}
|
|
14672
16205
|
async getNeighbors(nodeId, edgeType) {
|
|
14673
|
-
const conditions = [
|
|
16206
|
+
const conditions = [eq6(brainPageEdges.fromId, nodeId)];
|
|
14674
16207
|
if (edgeType) {
|
|
14675
|
-
conditions.push(
|
|
16208
|
+
conditions.push(eq6(brainPageEdges.edgeType, edgeType));
|
|
14676
16209
|
}
|
|
14677
|
-
const edges = await this.db.select().from(brainPageEdges).where(
|
|
16210
|
+
const edges = await this.db.select().from(brainPageEdges).where(and4(...conditions));
|
|
14678
16211
|
if (edges.length === 0) return [];
|
|
14679
16212
|
const neighborIds = edges.map((e) => e.toId);
|
|
14680
16213
|
const nodes = [];
|
|
@@ -14686,10 +16219,10 @@ var init_brain_accessor = __esm({
|
|
|
14686
16219
|
}
|
|
14687
16220
|
async removePageEdge(fromId, toId, edgeType) {
|
|
14688
16221
|
await this.db.delete(brainPageEdges).where(
|
|
14689
|
-
|
|
14690
|
-
|
|
14691
|
-
|
|
14692
|
-
|
|
16222
|
+
and4(
|
|
16223
|
+
eq6(brainPageEdges.fromId, fromId),
|
|
16224
|
+
eq6(brainPageEdges.toId, toId),
|
|
16225
|
+
eq6(brainPageEdges.edgeType, edgeType)
|
|
14693
16226
|
)
|
|
14694
16227
|
);
|
|
14695
16228
|
}
|
|
@@ -14697,246 +16230,6 @@ var init_brain_accessor = __esm({
|
|
|
14697
16230
|
}
|
|
14698
16231
|
});
|
|
14699
16232
|
|
|
14700
|
-
// packages/core/src/agents/registry.ts
|
|
14701
|
-
var registry_exports2 = {};
|
|
14702
|
-
__export(registry_exports2, {
|
|
14703
|
-
checkAgentHealth: () => checkAgentHealth,
|
|
14704
|
-
classifyError: () => classifyError,
|
|
14705
|
-
deregisterAgent: () => deregisterAgent,
|
|
14706
|
-
generateAgentId: () => generateAgentId,
|
|
14707
|
-
getAgentErrorHistory: () => getAgentErrorHistory,
|
|
14708
|
-
getAgentInstance: () => getAgentInstance,
|
|
14709
|
-
getHealthReport: () => getHealthReport,
|
|
14710
|
-
heartbeat: () => heartbeat,
|
|
14711
|
-
incrementTasksCompleted: () => incrementTasksCompleted,
|
|
14712
|
-
listAgentInstances: () => listAgentInstances,
|
|
14713
|
-
markCrashed: () => markCrashed,
|
|
14714
|
-
registerAgent: () => registerAgent,
|
|
14715
|
-
updateAgentStatus: () => updateAgentStatus
|
|
14716
|
-
});
|
|
14717
|
-
import { randomBytes as randomBytes2 } from "node:crypto";
|
|
14718
|
-
import { and as and4, eq as eq6, inArray as inArray4, lt as lt2, sql as sql8 } from "drizzle-orm";
|
|
14719
|
-
function generateAgentId() {
|
|
14720
|
-
const now = /* @__PURE__ */ new Date();
|
|
14721
|
-
const ts = now.toISOString().replace(/[-:T]/g, "").substring(0, 14);
|
|
14722
|
-
const hex = randomBytes2(3).toString("hex");
|
|
14723
|
-
return `agt_${ts}_${hex}`;
|
|
14724
|
-
}
|
|
14725
|
-
async function registerAgent(opts, cwd) {
|
|
14726
|
-
const db = await getDb(cwd);
|
|
14727
|
-
const id = generateAgentId();
|
|
14728
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
14729
|
-
const row = {
|
|
14730
|
-
id,
|
|
14731
|
-
agentType: opts.agentType,
|
|
14732
|
-
status: "starting",
|
|
14733
|
-
sessionId: opts.sessionId ?? null,
|
|
14734
|
-
taskId: opts.taskId ?? null,
|
|
14735
|
-
startedAt: now,
|
|
14736
|
-
lastHeartbeat: now,
|
|
14737
|
-
stoppedAt: null,
|
|
14738
|
-
errorCount: 0,
|
|
14739
|
-
totalTasksCompleted: 0,
|
|
14740
|
-
capacity: "1.0",
|
|
14741
|
-
metadataJson: opts.metadata ? JSON.stringify(opts.metadata) : "{}",
|
|
14742
|
-
parentAgentId: opts.parentAgentId ?? null
|
|
14743
|
-
};
|
|
14744
|
-
await db.insert(agentInstances).values(row);
|
|
14745
|
-
return row;
|
|
14746
|
-
}
|
|
14747
|
-
async function deregisterAgent(id, cwd) {
|
|
14748
|
-
const db = await getDb(cwd);
|
|
14749
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
14750
|
-
const existing = await db.select().from(agentInstances).where(eq6(agentInstances.id, id)).get();
|
|
14751
|
-
if (!existing) return null;
|
|
14752
|
-
if (existing.status === "stopped") return existing;
|
|
14753
|
-
await db.update(agentInstances).set({ status: "stopped", stoppedAt: now }).where(eq6(agentInstances.id, id));
|
|
14754
|
-
return { ...existing, status: "stopped", stoppedAt: now };
|
|
14755
|
-
}
|
|
14756
|
-
async function heartbeat(id, cwd) {
|
|
14757
|
-
const db = await getDb(cwd);
|
|
14758
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
14759
|
-
const existing = await db.select().from(agentInstances).where(eq6(agentInstances.id, id)).get();
|
|
14760
|
-
if (!existing) return null;
|
|
14761
|
-
if (existing.status === "stopped" || existing.status === "crashed") {
|
|
14762
|
-
return existing.status;
|
|
14763
|
-
}
|
|
14764
|
-
await db.update(agentInstances).set({ lastHeartbeat: now }).where(eq6(agentInstances.id, id));
|
|
14765
|
-
return existing.status;
|
|
14766
|
-
}
|
|
14767
|
-
async function updateAgentStatus(id, opts, cwd) {
|
|
14768
|
-
const db = await getDb(cwd);
|
|
14769
|
-
const existing = await db.select().from(agentInstances).where(eq6(agentInstances.id, id)).get();
|
|
14770
|
-
if (!existing) return null;
|
|
14771
|
-
const updates = {
|
|
14772
|
-
status: opts.status
|
|
14773
|
-
};
|
|
14774
|
-
if (opts.taskId !== void 0) {
|
|
14775
|
-
updates.taskId = opts.taskId;
|
|
14776
|
-
}
|
|
14777
|
-
if (opts.status === "active") {
|
|
14778
|
-
updates.lastHeartbeat = (/* @__PURE__ */ new Date()).toISOString();
|
|
14779
|
-
}
|
|
14780
|
-
if (opts.status === "error" || opts.status === "crashed") {
|
|
14781
|
-
updates.errorCount = existing.errorCount + 1;
|
|
14782
|
-
if (opts.error) {
|
|
14783
|
-
const errorType = classifyError(new Error(opts.error));
|
|
14784
|
-
await db.insert(agentErrorLog).values({
|
|
14785
|
-
agentId: id,
|
|
14786
|
-
errorType,
|
|
14787
|
-
message: opts.error,
|
|
14788
|
-
occurredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
14789
|
-
});
|
|
14790
|
-
}
|
|
14791
|
-
}
|
|
14792
|
-
if (opts.status === "stopped") {
|
|
14793
|
-
updates.stoppedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
14794
|
-
}
|
|
14795
|
-
await db.update(agentInstances).set(updates).where(eq6(agentInstances.id, id));
|
|
14796
|
-
return { ...existing, ...updates };
|
|
14797
|
-
}
|
|
14798
|
-
async function incrementTasksCompleted(id, cwd) {
|
|
14799
|
-
const db = await getDb(cwd);
|
|
14800
|
-
await db.update(agentInstances).set({ totalTasksCompleted: sql8`${agentInstances.totalTasksCompleted} + 1` }).where(eq6(agentInstances.id, id));
|
|
14801
|
-
}
|
|
14802
|
-
async function listAgentInstances(filters, cwd) {
|
|
14803
|
-
const db = await getDb(cwd);
|
|
14804
|
-
const conditions = [];
|
|
14805
|
-
if (filters?.status) {
|
|
14806
|
-
const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
|
|
14807
|
-
conditions.push(inArray4(agentInstances.status, statuses));
|
|
14808
|
-
}
|
|
14809
|
-
if (filters?.agentType) {
|
|
14810
|
-
const types = Array.isArray(filters.agentType) ? filters.agentType : [filters.agentType];
|
|
14811
|
-
conditions.push(inArray4(agentInstances.agentType, types));
|
|
14812
|
-
}
|
|
14813
|
-
if (filters?.sessionId) {
|
|
14814
|
-
conditions.push(eq6(agentInstances.sessionId, filters.sessionId));
|
|
14815
|
-
}
|
|
14816
|
-
if (filters?.parentAgentId) {
|
|
14817
|
-
conditions.push(eq6(agentInstances.parentAgentId, filters.parentAgentId));
|
|
14818
|
-
}
|
|
14819
|
-
if (conditions.length === 0) {
|
|
14820
|
-
return db.select().from(agentInstances).all();
|
|
14821
|
-
}
|
|
14822
|
-
return db.select().from(agentInstances).where(and4(...conditions)).all();
|
|
14823
|
-
}
|
|
14824
|
-
async function getAgentInstance(id, cwd) {
|
|
14825
|
-
const db = await getDb(cwd);
|
|
14826
|
-
const row = await db.select().from(agentInstances).where(eq6(agentInstances.id, id)).get();
|
|
14827
|
-
return row ?? null;
|
|
14828
|
-
}
|
|
14829
|
-
function classifyError(error40) {
|
|
14830
|
-
const message = error40 instanceof Error ? error40.message : String(error40);
|
|
14831
|
-
for (const pattern of RETRIABLE_PATTERNS) {
|
|
14832
|
-
if (pattern.test(message)) return "retriable";
|
|
14833
|
-
}
|
|
14834
|
-
for (const pattern of PERMANENT_PATTERNS) {
|
|
14835
|
-
if (pattern.test(message)) return "permanent";
|
|
14836
|
-
}
|
|
14837
|
-
return "unknown";
|
|
14838
|
-
}
|
|
14839
|
-
async function getAgentErrorHistory(agentId, cwd) {
|
|
14840
|
-
const db = await getDb(cwd);
|
|
14841
|
-
return db.select().from(agentErrorLog).where(eq6(agentErrorLog.agentId, agentId)).all();
|
|
14842
|
-
}
|
|
14843
|
-
async function checkAgentHealth(thresholdMs = 3e4, cwd) {
|
|
14844
|
-
const db = await getDb(cwd);
|
|
14845
|
-
const cutoff = new Date(Date.now() - thresholdMs).toISOString();
|
|
14846
|
-
return db.select().from(agentInstances).where(
|
|
14847
|
-
and4(
|
|
14848
|
-
inArray4(agentInstances.status, ["active", "idle", "starting"]),
|
|
14849
|
-
lt2(agentInstances.lastHeartbeat, cutoff)
|
|
14850
|
-
)
|
|
14851
|
-
).all();
|
|
14852
|
-
}
|
|
14853
|
-
async function markCrashed(id, reason, cwd) {
|
|
14854
|
-
return updateAgentStatus(
|
|
14855
|
-
id,
|
|
14856
|
-
{ status: "crashed", error: reason ?? "Heartbeat timeout \u2014 agent presumed crashed" },
|
|
14857
|
-
cwd
|
|
14858
|
-
);
|
|
14859
|
-
}
|
|
14860
|
-
async function getHealthReport(thresholdMs = 3e4, cwd) {
|
|
14861
|
-
const allAgents = await listAgentInstances(void 0, cwd);
|
|
14862
|
-
const staleAgents = await checkAgentHealth(thresholdMs, cwd);
|
|
14863
|
-
const report = {
|
|
14864
|
-
total: allAgents.length,
|
|
14865
|
-
active: 0,
|
|
14866
|
-
idle: 0,
|
|
14867
|
-
starting: 0,
|
|
14868
|
-
error: 0,
|
|
14869
|
-
crashed: 0,
|
|
14870
|
-
stopped: 0,
|
|
14871
|
-
totalErrors: 0,
|
|
14872
|
-
staleAgents
|
|
14873
|
-
};
|
|
14874
|
-
for (const agent of allAgents) {
|
|
14875
|
-
switch (agent.status) {
|
|
14876
|
-
case "active":
|
|
14877
|
-
report.active++;
|
|
14878
|
-
break;
|
|
14879
|
-
case "idle":
|
|
14880
|
-
report.idle++;
|
|
14881
|
-
break;
|
|
14882
|
-
case "starting":
|
|
14883
|
-
report.starting++;
|
|
14884
|
-
break;
|
|
14885
|
-
case "error":
|
|
14886
|
-
report.error++;
|
|
14887
|
-
break;
|
|
14888
|
-
case "crashed":
|
|
14889
|
-
report.crashed++;
|
|
14890
|
-
break;
|
|
14891
|
-
case "stopped":
|
|
14892
|
-
report.stopped++;
|
|
14893
|
-
break;
|
|
14894
|
-
}
|
|
14895
|
-
report.totalErrors += agent.errorCount;
|
|
14896
|
-
}
|
|
14897
|
-
return report;
|
|
14898
|
-
}
|
|
14899
|
-
var RETRIABLE_PATTERNS, PERMANENT_PATTERNS;
|
|
14900
|
-
var init_registry2 = __esm({
|
|
14901
|
-
"packages/core/src/agents/registry.ts"() {
|
|
14902
|
-
"use strict";
|
|
14903
|
-
init_sqlite2();
|
|
14904
|
-
init_agent_schema();
|
|
14905
|
-
RETRIABLE_PATTERNS = [
|
|
14906
|
-
/timeout/i,
|
|
14907
|
-
/ECONNREFUSED/,
|
|
14908
|
-
/ECONNRESET/,
|
|
14909
|
-
/EPIPE/,
|
|
14910
|
-
/ETIMEDOUT/,
|
|
14911
|
-
/rate.?limit/i,
|
|
14912
|
-
/429/,
|
|
14913
|
-
/503/,
|
|
14914
|
-
/502/,
|
|
14915
|
-
/SQLITE_BUSY/i,
|
|
14916
|
-
/database is locked/i,
|
|
14917
|
-
/temporarily unavailable/i,
|
|
14918
|
-
/too many requests/i,
|
|
14919
|
-
/network/i,
|
|
14920
|
-
/socket hang up/i
|
|
14921
|
-
];
|
|
14922
|
-
PERMANENT_PATTERNS = [
|
|
14923
|
-
/permission denied/i,
|
|
14924
|
-
/EACCES/,
|
|
14925
|
-
/authentication/i,
|
|
14926
|
-
/unauthorized/i,
|
|
14927
|
-
/401/,
|
|
14928
|
-
/403/,
|
|
14929
|
-
/404/,
|
|
14930
|
-
/not found/i,
|
|
14931
|
-
/invalid.*token/i,
|
|
14932
|
-
/SQLITE_CONSTRAINT/i,
|
|
14933
|
-
/syntax error/i,
|
|
14934
|
-
/type error/i,
|
|
14935
|
-
/reference error/i
|
|
14936
|
-
];
|
|
14937
|
-
}
|
|
14938
|
-
});
|
|
14939
|
-
|
|
14940
16233
|
// packages/core/src/store/project-detect.ts
|
|
14941
16234
|
var project_detect_exports = {};
|
|
14942
16235
|
__export(project_detect_exports, {
|
|
@@ -16261,6 +17554,42 @@ var init_learnings = __esm({
|
|
|
16261
17554
|
}
|
|
16262
17555
|
});
|
|
16263
17556
|
|
|
17557
|
+
// packages/core/src/mvi-helpers.ts
|
|
17558
|
+
function taskShowNext(taskId) {
|
|
17559
|
+
return {
|
|
17560
|
+
full: `cleo show ${taskId} --mvi full`,
|
|
17561
|
+
children: `cleo find --parent ${taskId}`,
|
|
17562
|
+
deps: `cleo deps ${taskId}`
|
|
17563
|
+
};
|
|
17564
|
+
}
|
|
17565
|
+
function taskListItemNext(taskId) {
|
|
17566
|
+
return {
|
|
17567
|
+
show: `cleo show ${taskId}`
|
|
17568
|
+
};
|
|
17569
|
+
}
|
|
17570
|
+
function sessionListItemNext(sessionId) {
|
|
17571
|
+
return {
|
|
17572
|
+
show: `cleo session show ${sessionId}`,
|
|
17573
|
+
serialize: `cleo session serialize ${sessionId}`
|
|
17574
|
+
};
|
|
17575
|
+
}
|
|
17576
|
+
function sessionStartNext() {
|
|
17577
|
+
return {
|
|
17578
|
+
current: "cleo current",
|
|
17579
|
+
stop: "cleo session end"
|
|
17580
|
+
};
|
|
17581
|
+
}
|
|
17582
|
+
function memoryFindHitNext(entryId) {
|
|
17583
|
+
return {
|
|
17584
|
+
fetch: `cleo memory fetch ${entryId}`
|
|
17585
|
+
};
|
|
17586
|
+
}
|
|
17587
|
+
var init_mvi_helpers = __esm({
|
|
17588
|
+
"packages/core/src/mvi-helpers.ts"() {
|
|
17589
|
+
"use strict";
|
|
17590
|
+
}
|
|
17591
|
+
});
|
|
17592
|
+
|
|
16264
17593
|
// packages/core/src/store/typed-query.ts
|
|
16265
17594
|
function typedAll(stmt, ...params) {
|
|
16266
17595
|
return stmt.all(...params);
|
|
@@ -17813,6 +19142,27 @@ var init_memory_bridge = __esm({
|
|
|
17813
19142
|
}
|
|
17814
19143
|
});
|
|
17815
19144
|
|
|
19145
|
+
// packages/core/src/hooks/handlers/handler-helpers.ts
|
|
19146
|
+
function isMissingBrainSchemaError(err) {
|
|
19147
|
+
if (!(err instanceof Error)) return false;
|
|
19148
|
+
const message = String(err.message || "").toLowerCase();
|
|
19149
|
+
return message.includes("no such table") && message.includes("brain_");
|
|
19150
|
+
}
|
|
19151
|
+
async function isAutoCaptureEnabled(projectRoot) {
|
|
19152
|
+
try {
|
|
19153
|
+
const { loadConfig: loadConfig3 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
19154
|
+
const config2 = await loadConfig3(projectRoot);
|
|
19155
|
+
return config2.brain?.autoCapture ?? false;
|
|
19156
|
+
} catch {
|
|
19157
|
+
return false;
|
|
19158
|
+
}
|
|
19159
|
+
}
|
|
19160
|
+
var init_handler_helpers = __esm({
|
|
19161
|
+
"packages/core/src/hooks/handlers/handler-helpers.ts"() {
|
|
19162
|
+
"use strict";
|
|
19163
|
+
}
|
|
19164
|
+
});
|
|
19165
|
+
|
|
17816
19166
|
// packages/core/src/hooks/handlers/memory-bridge-refresh.ts
|
|
17817
19167
|
async function maybeRefreshMemoryBridge(projectRoot) {
|
|
17818
19168
|
try {
|
|
@@ -18371,11 +19721,6 @@ var init_auto_extract = __esm({
|
|
|
18371
19721
|
});
|
|
18372
19722
|
|
|
18373
19723
|
// packages/core/src/hooks/handlers/session-hooks.ts
|
|
18374
|
-
function isMissingBrainSchemaError(err) {
|
|
18375
|
-
if (!(err instanceof Error)) return false;
|
|
18376
|
-
const message = String(err.message || "").toLowerCase();
|
|
18377
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18378
|
-
}
|
|
18379
19724
|
async function handleSessionStart(projectRoot, payload) {
|
|
18380
19725
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18381
19726
|
try {
|
|
@@ -18437,6 +19782,7 @@ var init_session_hooks = __esm({
|
|
|
18437
19782
|
"packages/core/src/hooks/handlers/session-hooks.ts"() {
|
|
18438
19783
|
"use strict";
|
|
18439
19784
|
init_registry();
|
|
19785
|
+
init_handler_helpers();
|
|
18440
19786
|
init_memory_bridge_refresh();
|
|
18441
19787
|
hooks.register({
|
|
18442
19788
|
id: "brain-session-start",
|
|
@@ -18454,11 +19800,6 @@ var init_session_hooks = __esm({
|
|
|
18454
19800
|
});
|
|
18455
19801
|
|
|
18456
19802
|
// packages/core/src/hooks/handlers/task-hooks.ts
|
|
18457
|
-
function isMissingBrainSchemaError2(err) {
|
|
18458
|
-
if (!(err instanceof Error)) return false;
|
|
18459
|
-
const message = String(err.message || "").toLowerCase();
|
|
18460
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18461
|
-
}
|
|
18462
19803
|
async function handleToolStart(projectRoot, payload) {
|
|
18463
19804
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18464
19805
|
try {
|
|
@@ -18469,7 +19810,7 @@ async function handleToolStart(projectRoot, payload) {
|
|
|
18469
19810
|
sourceType: "agent"
|
|
18470
19811
|
});
|
|
18471
19812
|
} catch (err) {
|
|
18472
|
-
if (!
|
|
19813
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18473
19814
|
}
|
|
18474
19815
|
}
|
|
18475
19816
|
async function handleToolComplete(projectRoot, payload) {
|
|
@@ -18482,7 +19823,7 @@ async function handleToolComplete(projectRoot, payload) {
|
|
|
18482
19823
|
sourceType: "agent"
|
|
18483
19824
|
});
|
|
18484
19825
|
} catch (err) {
|
|
18485
|
-
if (!
|
|
19826
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18486
19827
|
}
|
|
18487
19828
|
await maybeRefreshMemoryBridge(projectRoot);
|
|
18488
19829
|
}
|
|
@@ -18490,6 +19831,7 @@ var init_task_hooks = __esm({
|
|
|
18490
19831
|
"packages/core/src/hooks/handlers/task-hooks.ts"() {
|
|
18491
19832
|
"use strict";
|
|
18492
19833
|
init_registry();
|
|
19834
|
+
init_handler_helpers();
|
|
18493
19835
|
init_memory_bridge_refresh();
|
|
18494
19836
|
hooks.register({
|
|
18495
19837
|
id: "brain-tool-start",
|
|
@@ -18507,7 +19849,7 @@ var init_task_hooks = __esm({
|
|
|
18507
19849
|
});
|
|
18508
19850
|
|
|
18509
19851
|
// packages/core/src/hooks/handlers/error-hooks.ts
|
|
18510
|
-
async function
|
|
19852
|
+
async function handleError2(projectRoot, payload) {
|
|
18511
19853
|
if (payload.metadata?.["_fromHook"]) return;
|
|
18512
19854
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18513
19855
|
const domainOp = payload.domain && payload.operation ? `${payload.domain}.${payload.operation}` : "unknown";
|
|
@@ -18530,7 +19872,7 @@ var init_error_hooks = __esm({
|
|
|
18530
19872
|
hooks.register({
|
|
18531
19873
|
id: "brain-error",
|
|
18532
19874
|
event: "PostToolUseFailure",
|
|
18533
|
-
handler:
|
|
19875
|
+
handler: handleError2,
|
|
18534
19876
|
priority: 100
|
|
18535
19877
|
});
|
|
18536
19878
|
}
|
|
@@ -18538,11 +19880,6 @@ var init_error_hooks = __esm({
|
|
|
18538
19880
|
|
|
18539
19881
|
// packages/core/src/hooks/handlers/file-hooks.ts
|
|
18540
19882
|
import { isAbsolute, relative } from "node:path";
|
|
18541
|
-
function isMissingBrainSchemaError3(err) {
|
|
18542
|
-
if (!(err instanceof Error)) return false;
|
|
18543
|
-
const message = String(err.message || "").toLowerCase();
|
|
18544
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18545
|
-
}
|
|
18546
19883
|
function shouldSkipPath(relativePath) {
|
|
18547
19884
|
return SKIP_PATTERNS.some((pattern) => pattern.test(relativePath));
|
|
18548
19885
|
}
|
|
@@ -18577,7 +19914,7 @@ async function handleFileChange(projectRoot, payload) {
|
|
|
18577
19914
|
sourceType: "agent"
|
|
18578
19915
|
});
|
|
18579
19916
|
} catch (err) {
|
|
18580
|
-
if (!
|
|
19917
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18581
19918
|
}
|
|
18582
19919
|
}
|
|
18583
19920
|
var recentWrites, DEDUP_INTERVAL_MS, SKIP_PATTERNS;
|
|
@@ -18585,6 +19922,7 @@ var init_file_hooks = __esm({
|
|
|
18585
19922
|
"packages/core/src/hooks/handlers/file-hooks.ts"() {
|
|
18586
19923
|
"use strict";
|
|
18587
19924
|
init_registry();
|
|
19925
|
+
init_handler_helpers();
|
|
18588
19926
|
recentWrites = /* @__PURE__ */ new Map();
|
|
18589
19927
|
DEDUP_INTERVAL_MS = 5e3;
|
|
18590
19928
|
SKIP_PATTERNS = [
|
|
@@ -18615,11 +19953,6 @@ var init_file_hooks = __esm({
|
|
|
18615
19953
|
});
|
|
18616
19954
|
|
|
18617
19955
|
// packages/core/src/hooks/handlers/mcp-hooks.ts
|
|
18618
|
-
function isMissingBrainSchemaError4(err) {
|
|
18619
|
-
if (!(err instanceof Error)) return false;
|
|
18620
|
-
const message = String(err.message || "").toLowerCase();
|
|
18621
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18622
|
-
}
|
|
18623
19956
|
async function isBrainCaptureEnabled(projectRoot) {
|
|
18624
19957
|
const envOverride = process.env["CLEO_BRAIN_CAPTURE_MCP"];
|
|
18625
19958
|
if (envOverride !== void 0) {
|
|
@@ -18644,7 +19977,7 @@ async function handlePromptSubmit(projectRoot, payload) {
|
|
|
18644
19977
|
sourceType: "agent"
|
|
18645
19978
|
});
|
|
18646
19979
|
} catch (err) {
|
|
18647
|
-
if (!
|
|
19980
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18648
19981
|
}
|
|
18649
19982
|
}
|
|
18650
19983
|
async function handleResponseComplete(projectRoot, payload) {
|
|
@@ -18658,19 +19991,13 @@ async function handleResponseComplete(projectRoot, payload) {
|
|
|
18658
19991
|
sourceType: "agent"
|
|
18659
19992
|
});
|
|
18660
19993
|
} catch (err) {
|
|
18661
|
-
if (!
|
|
19994
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18662
19995
|
}
|
|
18663
19996
|
}
|
|
18664
19997
|
async function handleSystemNotification(projectRoot, payload) {
|
|
18665
19998
|
if (payload.filePath || payload.changeType) return;
|
|
18666
19999
|
if (!payload.message) return;
|
|
18667
|
-
|
|
18668
|
-
const { loadConfig: loadConfig3 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
18669
|
-
const config2 = await loadConfig3(projectRoot);
|
|
18670
|
-
if (!config2.brain?.autoCapture) return;
|
|
18671
|
-
} catch {
|
|
18672
|
-
return;
|
|
18673
|
-
}
|
|
20000
|
+
if (!await isAutoCaptureEnabled(projectRoot)) return;
|
|
18674
20001
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18675
20002
|
try {
|
|
18676
20003
|
await observeBrain2(projectRoot, {
|
|
@@ -18681,13 +20008,14 @@ async function handleSystemNotification(projectRoot, payload) {
|
|
|
18681
20008
|
sourceType: "agent"
|
|
18682
20009
|
});
|
|
18683
20010
|
} catch (err) {
|
|
18684
|
-
if (!
|
|
20011
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18685
20012
|
}
|
|
18686
20013
|
}
|
|
18687
20014
|
var init_mcp_hooks = __esm({
|
|
18688
20015
|
"packages/core/src/hooks/handlers/mcp-hooks.ts"() {
|
|
18689
20016
|
"use strict";
|
|
18690
20017
|
init_registry();
|
|
20018
|
+
init_handler_helpers();
|
|
18691
20019
|
hooks.register({
|
|
18692
20020
|
id: "brain-prompt-submit",
|
|
18693
20021
|
event: "PromptSubmit",
|
|
@@ -18710,11 +20038,6 @@ var init_mcp_hooks = __esm({
|
|
|
18710
20038
|
});
|
|
18711
20039
|
|
|
18712
20040
|
// packages/core/src/hooks/handlers/work-capture-hooks.ts
|
|
18713
|
-
function isMissingBrainSchemaError5(err) {
|
|
18714
|
-
if (!(err instanceof Error)) return false;
|
|
18715
|
-
const message = String(err.message || "").toLowerCase();
|
|
18716
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18717
|
-
}
|
|
18718
20041
|
async function isWorkCaptureEnabled(projectRoot) {
|
|
18719
20042
|
const envOverride = process.env["CLEO_BRAIN_CAPTURE_WORK"];
|
|
18720
20043
|
if (envOverride !== void 0) {
|
|
@@ -18745,7 +20068,7 @@ async function handleWorkPromptSubmit(projectRoot, payload) {
|
|
|
18745
20068
|
sourceType: "agent"
|
|
18746
20069
|
});
|
|
18747
20070
|
} catch (err) {
|
|
18748
|
-
if (!
|
|
20071
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18749
20072
|
}
|
|
18750
20073
|
}
|
|
18751
20074
|
async function handleWorkResponseComplete(projectRoot, payload) {
|
|
@@ -18762,7 +20085,7 @@ async function handleWorkResponseComplete(projectRoot, payload) {
|
|
|
18762
20085
|
sourceType: "agent"
|
|
18763
20086
|
});
|
|
18764
20087
|
} catch (err) {
|
|
18765
|
-
if (!
|
|
20088
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18766
20089
|
}
|
|
18767
20090
|
}
|
|
18768
20091
|
var CAPTURE_OPERATIONS;
|
|
@@ -18770,6 +20093,7 @@ var init_work_capture_hooks = __esm({
|
|
|
18770
20093
|
"packages/core/src/hooks/handlers/work-capture-hooks.ts"() {
|
|
18771
20094
|
"use strict";
|
|
18772
20095
|
init_registry();
|
|
20096
|
+
init_handler_helpers();
|
|
18773
20097
|
CAPTURE_OPERATIONS = /* @__PURE__ */ new Set([
|
|
18774
20098
|
"tasks.add",
|
|
18775
20099
|
"tasks.update",
|
|
@@ -18796,20 +20120,6 @@ var init_work_capture_hooks = __esm({
|
|
|
18796
20120
|
});
|
|
18797
20121
|
|
|
18798
20122
|
// packages/core/src/hooks/handlers/agent-hooks.ts
|
|
18799
|
-
function isMissingBrainSchemaError6(err) {
|
|
18800
|
-
if (!(err instanceof Error)) return false;
|
|
18801
|
-
const message = String(err.message || "").toLowerCase();
|
|
18802
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18803
|
-
}
|
|
18804
|
-
async function isAutoCaptureEnabled(projectRoot) {
|
|
18805
|
-
try {
|
|
18806
|
-
const { loadConfig: loadConfig3 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
18807
|
-
const config2 = await loadConfig3(projectRoot);
|
|
18808
|
-
return config2.brain?.autoCapture ?? false;
|
|
18809
|
-
} catch {
|
|
18810
|
-
return false;
|
|
18811
|
-
}
|
|
18812
|
-
}
|
|
18813
20123
|
async function handleSubagentStart(projectRoot, payload) {
|
|
18814
20124
|
if (!await isAutoCaptureEnabled(projectRoot)) return;
|
|
18815
20125
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
@@ -18824,7 +20134,7 @@ async function handleSubagentStart(projectRoot, payload) {
|
|
|
18824
20134
|
sourceType: "agent"
|
|
18825
20135
|
});
|
|
18826
20136
|
} catch (err) {
|
|
18827
|
-
if (!
|
|
20137
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18828
20138
|
}
|
|
18829
20139
|
}
|
|
18830
20140
|
async function handleSubagentStop(projectRoot, payload) {
|
|
@@ -18843,13 +20153,14 @@ Summary: ${payload.summary}` : "";
|
|
|
18843
20153
|
sourceType: "agent"
|
|
18844
20154
|
});
|
|
18845
20155
|
} catch (err) {
|
|
18846
|
-
if (!
|
|
20156
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18847
20157
|
}
|
|
18848
20158
|
}
|
|
18849
20159
|
var init_agent_hooks = __esm({
|
|
18850
20160
|
"packages/core/src/hooks/handlers/agent-hooks.ts"() {
|
|
18851
20161
|
"use strict";
|
|
18852
20162
|
init_registry();
|
|
20163
|
+
init_handler_helpers();
|
|
18853
20164
|
hooks.register({
|
|
18854
20165
|
id: "brain-subagent-start",
|
|
18855
20166
|
event: "SubagentStart",
|
|
@@ -18866,22 +20177,8 @@ var init_agent_hooks = __esm({
|
|
|
18866
20177
|
});
|
|
18867
20178
|
|
|
18868
20179
|
// packages/core/src/hooks/handlers/context-hooks.ts
|
|
18869
|
-
function isMissingBrainSchemaError7(err) {
|
|
18870
|
-
if (!(err instanceof Error)) return false;
|
|
18871
|
-
const message = String(err.message || "").toLowerCase();
|
|
18872
|
-
return message.includes("no such table") && message.includes("brain_");
|
|
18873
|
-
}
|
|
18874
|
-
async function isAutoCaptureEnabled2(projectRoot) {
|
|
18875
|
-
try {
|
|
18876
|
-
const { loadConfig: loadConfig3 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
18877
|
-
const config2 = await loadConfig3(projectRoot);
|
|
18878
|
-
return config2.brain?.autoCapture ?? false;
|
|
18879
|
-
} catch {
|
|
18880
|
-
return false;
|
|
18881
|
-
}
|
|
18882
|
-
}
|
|
18883
20180
|
async function handlePreCompact(projectRoot, payload) {
|
|
18884
|
-
if (!await
|
|
20181
|
+
if (!await isAutoCaptureEnabled(projectRoot)) return;
|
|
18885
20182
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18886
20183
|
const tokensPart = payload.tokensBefore != null ? ` (~${payload.tokensBefore.toLocaleString()} tokens)` : "";
|
|
18887
20184
|
const reasonPart = payload.reason ? ` Reason: ${payload.reason}` : "";
|
|
@@ -18894,11 +20191,11 @@ async function handlePreCompact(projectRoot, payload) {
|
|
|
18894
20191
|
sourceType: "agent"
|
|
18895
20192
|
});
|
|
18896
20193
|
} catch (err) {
|
|
18897
|
-
if (!
|
|
20194
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18898
20195
|
}
|
|
18899
20196
|
}
|
|
18900
20197
|
async function handlePostCompact(projectRoot, payload) {
|
|
18901
|
-
if (!await
|
|
20198
|
+
if (!await isAutoCaptureEnabled(projectRoot)) return;
|
|
18902
20199
|
const { observeBrain: observeBrain2 } = await Promise.resolve().then(() => (init_brain_retrieval(), brain_retrieval_exports));
|
|
18903
20200
|
const statusPart = payload.success ? "succeeded" : "failed";
|
|
18904
20201
|
const beforePart = payload.tokensBefore != null ? ` before=${payload.tokensBefore.toLocaleString()}` : "";
|
|
@@ -18912,13 +20209,14 @@ async function handlePostCompact(projectRoot, payload) {
|
|
|
18912
20209
|
sourceType: "agent"
|
|
18913
20210
|
});
|
|
18914
20211
|
} catch (err) {
|
|
18915
|
-
if (!
|
|
20212
|
+
if (!isMissingBrainSchemaError(err)) throw err;
|
|
18916
20213
|
}
|
|
18917
20214
|
}
|
|
18918
20215
|
var init_context_hooks = __esm({
|
|
18919
20216
|
"packages/core/src/hooks/handlers/context-hooks.ts"() {
|
|
18920
20217
|
"use strict";
|
|
18921
20218
|
init_registry();
|
|
20219
|
+
init_handler_helpers();
|
|
18922
20220
|
hooks.register({
|
|
18923
20221
|
id: "brain-pre-compact",
|
|
18924
20222
|
event: "PreCompact",
|
|
@@ -20068,12 +21366,14 @@ function toMinimal(s) {
|
|
|
20068
21366
|
name: s.name,
|
|
20069
21367
|
status: s.status,
|
|
20070
21368
|
startedAt: s.startedAt,
|
|
20071
|
-
scope: s.scope
|
|
21369
|
+
scope: s.scope,
|
|
21370
|
+
_next: sessionListItemNext(s.id)
|
|
20072
21371
|
};
|
|
20073
21372
|
}
|
|
20074
21373
|
var init_find = __esm({
|
|
20075
21374
|
"packages/core/src/sessions/find.ts"() {
|
|
20076
21375
|
"use strict";
|
|
21376
|
+
init_mvi_helpers();
|
|
20077
21377
|
}
|
|
20078
21378
|
});
|
|
20079
21379
|
|
|
@@ -20807,6 +22107,7 @@ async function startSession(options, cwd, accessor) {
|
|
|
20807
22107
|
providerId: session.providerId ?? void 0
|
|
20808
22108
|
}).catch(() => {
|
|
20809
22109
|
});
|
|
22110
|
+
Object.assign(session, { _next: sessionStartNext() });
|
|
20810
22111
|
return session;
|
|
20811
22112
|
}
|
|
20812
22113
|
async function endSession(options = {}, cwd, accessor) {
|
|
@@ -20899,6 +22200,9 @@ async function listSessions(options = {}, cwd, accessor) {
|
|
|
20899
22200
|
if (options.limit) {
|
|
20900
22201
|
sessions2 = sessions2.slice(0, options.limit);
|
|
20901
22202
|
}
|
|
22203
|
+
for (const s of sessions2) {
|
|
22204
|
+
Object.assign(s, { _next: sessionListItemNext(s.id) });
|
|
22205
|
+
}
|
|
20902
22206
|
return sessions2;
|
|
20903
22207
|
}
|
|
20904
22208
|
async function gcSessions(maxAgeHours = 24, cwd, accessor) {
|
|
@@ -20943,6 +22247,7 @@ var init_sessions = __esm({
|
|
|
20943
22247
|
"use strict";
|
|
20944
22248
|
init_src();
|
|
20945
22249
|
init_errors3();
|
|
22250
|
+
init_mvi_helpers();
|
|
20946
22251
|
init_data_accessor();
|
|
20947
22252
|
init_handlers();
|
|
20948
22253
|
init_assumptions();
|
|
@@ -21025,6 +22330,9 @@ async function searchBrainCompact(projectRoot, params) {
|
|
|
21025
22330
|
if (dateEnd) {
|
|
21026
22331
|
results = results.filter((r) => r.date <= dateEnd);
|
|
21027
22332
|
}
|
|
22333
|
+
for (const hit of results) {
|
|
22334
|
+
hit._next = memoryFindHitNext(hit.id);
|
|
22335
|
+
}
|
|
21028
22336
|
return {
|
|
21029
22337
|
results,
|
|
21030
22338
|
total: results.length,
|
|
@@ -21349,6 +22657,7 @@ var TYPE_KEYWORDS, observeSeq;
|
|
|
21349
22657
|
var init_brain_retrieval = __esm({
|
|
21350
22658
|
"packages/core/src/memory/brain-retrieval.ts"() {
|
|
21351
22659
|
"use strict";
|
|
22660
|
+
init_mvi_helpers();
|
|
21352
22661
|
init_brain_accessor();
|
|
21353
22662
|
init_typed_query();
|
|
21354
22663
|
init_brain_embedding();
|
|
@@ -24702,10 +26011,10 @@ async function readProjectMeta(projectPath) {
|
|
|
24702
26011
|
}
|
|
24703
26012
|
async function readProjectId(projectPath) {
|
|
24704
26013
|
try {
|
|
24705
|
-
const { readFileSync:
|
|
26014
|
+
const { readFileSync: readFileSync79, existsSync: existsSync105 } = await import("node:fs");
|
|
24706
26015
|
const infoPath = join59(projectPath, ".cleo", "project-info.json");
|
|
24707
|
-
if (!
|
|
24708
|
-
const data = JSON.parse(
|
|
26016
|
+
if (!existsSync105(infoPath)) return "";
|
|
26017
|
+
const data = JSON.parse(readFileSync79(infoPath, "utf-8"));
|
|
24709
26018
|
return typeof data.projectId === "string" ? data.projectId : "";
|
|
24710
26019
|
} catch {
|
|
24711
26020
|
return "";
|
|
@@ -25067,6 +26376,9 @@ async function startTask(taskId, cwd, accessor) {
|
|
|
25067
26376
|
}
|
|
25068
26377
|
focus.sessionNotes.push(noteEntry);
|
|
25069
26378
|
await acc.setMetaValue("focus_state", focus);
|
|
26379
|
+
if (!task.assignee) {
|
|
26380
|
+
await acc.updateTaskFields(taskId, { assignee: process.env["CLEO_AGENT_ID"] ?? "local" });
|
|
26381
|
+
}
|
|
25070
26382
|
await logOperation(
|
|
25071
26383
|
"task_start",
|
|
25072
26384
|
taskId,
|
|
@@ -25747,6 +27059,153 @@ var init_hooks = __esm({
|
|
|
25747
27059
|
}
|
|
25748
27060
|
});
|
|
25749
27061
|
|
|
27062
|
+
// packages/core/src/store/signaldock-sqlite.ts
|
|
27063
|
+
var signaldock_sqlite_exports = {};
|
|
27064
|
+
__export(signaldock_sqlite_exports, {
|
|
27065
|
+
SIGNALDOCK_SCHEMA_VERSION: () => SIGNALDOCK_SCHEMA_VERSION,
|
|
27066
|
+
checkSignaldockDbHealth: () => checkSignaldockDbHealth,
|
|
27067
|
+
ensureSignaldockDb: () => ensureSignaldockDb,
|
|
27068
|
+
getSignaldockDbPath: () => getSignaldockDbPath
|
|
27069
|
+
});
|
|
27070
|
+
import { existsSync as existsSync100, mkdirSync as mkdirSync22, readFileSync as readFileSync74 } from "node:fs";
|
|
27071
|
+
import { createRequire as createRequire5 } from "node:module";
|
|
27072
|
+
import { dirname as dirname19, join as join101 } from "node:path";
|
|
27073
|
+
import { fileURLToPath as fileURLToPath5 } from "node:url";
|
|
27074
|
+
function getSignaldockDbPath(cwd) {
|
|
27075
|
+
const cleoDir = cwd ? join101(cwd, ".cleo") : getCleoDirAbsolute();
|
|
27076
|
+
return join101(cleoDir, DB_FILENAME4);
|
|
27077
|
+
}
|
|
27078
|
+
function resolveMigrationSql(cwd) {
|
|
27079
|
+
const projectRoot = cwd ?? process.cwd();
|
|
27080
|
+
const monorepoPath = join101(
|
|
27081
|
+
projectRoot,
|
|
27082
|
+
"crates",
|
|
27083
|
+
"signaldock-storage",
|
|
27084
|
+
"migrations",
|
|
27085
|
+
"2026-03-28-000000_initial",
|
|
27086
|
+
"up.sql"
|
|
27087
|
+
);
|
|
27088
|
+
if (existsSync100(monorepoPath)) return monorepoPath;
|
|
27089
|
+
const thisDir = dirname19(fileURLToPath5(import.meta.url));
|
|
27090
|
+
const installedPath = join101(
|
|
27091
|
+
thisDir,
|
|
27092
|
+
"..",
|
|
27093
|
+
"..",
|
|
27094
|
+
"..",
|
|
27095
|
+
"..",
|
|
27096
|
+
"crates",
|
|
27097
|
+
"signaldock-storage",
|
|
27098
|
+
"migrations",
|
|
27099
|
+
"2026-03-28-000000_initial",
|
|
27100
|
+
"up.sql"
|
|
27101
|
+
);
|
|
27102
|
+
if (existsSync100(installedPath)) return installedPath;
|
|
27103
|
+
return null;
|
|
27104
|
+
}
|
|
27105
|
+
async function ensureSignaldockDb(cwd) {
|
|
27106
|
+
const dbPath = getSignaldockDbPath(cwd);
|
|
27107
|
+
const alreadyExists = existsSync100(dbPath);
|
|
27108
|
+
mkdirSync22(dirname19(dbPath), { recursive: true });
|
|
27109
|
+
const db = new DatabaseSyncClass(dbPath);
|
|
27110
|
+
try {
|
|
27111
|
+
db.exec("PRAGMA journal_mode = WAL");
|
|
27112
|
+
db.exec("PRAGMA busy_timeout = 5000");
|
|
27113
|
+
db.exec("PRAGMA synchronous = NORMAL");
|
|
27114
|
+
db.exec("PRAGMA foreign_keys = ON");
|
|
27115
|
+
db.exec("PRAGMA cache_size = -64000");
|
|
27116
|
+
const hasSchema = (() => {
|
|
27117
|
+
try {
|
|
27118
|
+
const result = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").get();
|
|
27119
|
+
return !!result;
|
|
27120
|
+
} catch {
|
|
27121
|
+
return false;
|
|
27122
|
+
}
|
|
27123
|
+
})();
|
|
27124
|
+
if (!hasSchema) {
|
|
27125
|
+
const migrationPath = resolveMigrationSql(cwd);
|
|
27126
|
+
if (!migrationPath) {
|
|
27127
|
+
throw new Error(
|
|
27128
|
+
"signaldock-storage migration SQL not found. Ensure crates/signaldock-storage/ exists."
|
|
27129
|
+
);
|
|
27130
|
+
}
|
|
27131
|
+
const migrationSql = readFileSync74(migrationPath, "utf-8");
|
|
27132
|
+
db.exec("BEGIN TRANSACTION");
|
|
27133
|
+
try {
|
|
27134
|
+
db.exec(migrationSql);
|
|
27135
|
+
db.exec("COMMIT");
|
|
27136
|
+
} catch (err) {
|
|
27137
|
+
db.exec("ROLLBACK");
|
|
27138
|
+
throw err;
|
|
27139
|
+
}
|
|
27140
|
+
}
|
|
27141
|
+
db.exec(`
|
|
27142
|
+
CREATE TABLE IF NOT EXISTS _signaldock_meta (
|
|
27143
|
+
key TEXT PRIMARY KEY,
|
|
27144
|
+
value TEXT NOT NULL,
|
|
27145
|
+
updated_at INTEGER NOT NULL DEFAULT (strftime('%s', 'now'))
|
|
27146
|
+
)
|
|
27147
|
+
`);
|
|
27148
|
+
db.exec(`
|
|
27149
|
+
INSERT OR REPLACE INTO _signaldock_meta (key, value, updated_at)
|
|
27150
|
+
VALUES ('schema_version', '${SIGNALDOCK_SCHEMA_VERSION}', strftime('%s', 'now'))
|
|
27151
|
+
`);
|
|
27152
|
+
return {
|
|
27153
|
+
action: alreadyExists && hasSchema ? "exists" : "created",
|
|
27154
|
+
path: dbPath
|
|
27155
|
+
};
|
|
27156
|
+
} finally {
|
|
27157
|
+
db.close();
|
|
27158
|
+
}
|
|
27159
|
+
}
|
|
27160
|
+
async function checkSignaldockDbHealth(cwd) {
|
|
27161
|
+
const dbPath = getSignaldockDbPath(cwd);
|
|
27162
|
+
if (!existsSync100(dbPath)) {
|
|
27163
|
+
return {
|
|
27164
|
+
exists: false,
|
|
27165
|
+
path: dbPath,
|
|
27166
|
+
tableCount: 0,
|
|
27167
|
+
walMode: false,
|
|
27168
|
+
schemaVersion: null,
|
|
27169
|
+
foreignKeysEnabled: false
|
|
27170
|
+
};
|
|
27171
|
+
}
|
|
27172
|
+
const db = new DatabaseSyncClass(dbPath);
|
|
27173
|
+
try {
|
|
27174
|
+
const tables = db.prepare(
|
|
27175
|
+
"SELECT COUNT(*) as count FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%'"
|
|
27176
|
+
).get();
|
|
27177
|
+
const journalMode = db.prepare("PRAGMA journal_mode").get();
|
|
27178
|
+
const fkEnabled = db.prepare("PRAGMA foreign_keys").get();
|
|
27179
|
+
let schemaVersion = null;
|
|
27180
|
+
try {
|
|
27181
|
+
const meta = db.prepare("SELECT value FROM _signaldock_meta WHERE key = 'schema_version'").get();
|
|
27182
|
+
schemaVersion = meta?.value ?? null;
|
|
27183
|
+
} catch {
|
|
27184
|
+
}
|
|
27185
|
+
return {
|
|
27186
|
+
exists: true,
|
|
27187
|
+
path: dbPath,
|
|
27188
|
+
tableCount: tables.count,
|
|
27189
|
+
walMode: journalMode.journal_mode === "wal",
|
|
27190
|
+
schemaVersion,
|
|
27191
|
+
foreignKeysEnabled: fkEnabled.foreign_keys === 1
|
|
27192
|
+
};
|
|
27193
|
+
} finally {
|
|
27194
|
+
db.close();
|
|
27195
|
+
}
|
|
27196
|
+
}
|
|
27197
|
+
var _require5, DatabaseSyncClass, DB_FILENAME4, SIGNALDOCK_SCHEMA_VERSION;
|
|
27198
|
+
var init_signaldock_sqlite = __esm({
|
|
27199
|
+
"packages/core/src/store/signaldock-sqlite.ts"() {
|
|
27200
|
+
"use strict";
|
|
27201
|
+
init_paths();
|
|
27202
|
+
_require5 = createRequire5(import.meta.url);
|
|
27203
|
+
({ DatabaseSync: DatabaseSyncClass } = _require5("node:sqlite"));
|
|
27204
|
+
DB_FILENAME4 = "signaldock.db";
|
|
27205
|
+
SIGNALDOCK_SCHEMA_VERSION = "2026.3.76";
|
|
27206
|
+
}
|
|
27207
|
+
});
|
|
27208
|
+
|
|
25750
27209
|
// packages/core/src/init.ts
|
|
25751
27210
|
var init_exports = {};
|
|
25752
27211
|
__export(init_exports, {
|
|
@@ -25761,27 +27220,27 @@ __export(init_exports, {
|
|
|
25761
27220
|
isAutoInitEnabled: () => isAutoInitEnabled,
|
|
25762
27221
|
updateDocs: () => updateDocs
|
|
25763
27222
|
});
|
|
25764
|
-
import { existsSync as
|
|
27223
|
+
import { existsSync as existsSync101, readdirSync as readdirSync34, readFileSync as readFileSync75 } from "node:fs";
|
|
25765
27224
|
import { copyFile as copyFile3, lstat, mkdir as mkdir16, readFile as readFile17, symlink, unlink as unlink4, writeFile as writeFile11 } from "node:fs/promises";
|
|
25766
27225
|
import { platform as platform4 } from "node:os";
|
|
25767
|
-
import { basename as basename17, dirname as
|
|
27226
|
+
import { basename as basename17, dirname as dirname20, join as join102 } from "node:path";
|
|
25768
27227
|
async function initAgentDefinition(created, warnings) {
|
|
25769
27228
|
let agentSourceDir = null;
|
|
25770
27229
|
try {
|
|
25771
|
-
const { createRequire:
|
|
25772
|
-
const req =
|
|
27230
|
+
const { createRequire: createRequire6 } = await import("node:module");
|
|
27231
|
+
const req = createRequire6(import.meta.url);
|
|
25773
27232
|
const agentsPkgMain = req.resolve("@cleocode/agents/package.json");
|
|
25774
|
-
const agentsPkgRoot =
|
|
25775
|
-
const candidate =
|
|
25776
|
-
if (
|
|
27233
|
+
const agentsPkgRoot = dirname20(agentsPkgMain);
|
|
27234
|
+
const candidate = join102(agentsPkgRoot, "cleo-subagent");
|
|
27235
|
+
if (existsSync101(candidate)) {
|
|
25777
27236
|
agentSourceDir = candidate;
|
|
25778
27237
|
}
|
|
25779
27238
|
} catch {
|
|
25780
27239
|
}
|
|
25781
27240
|
if (!agentSourceDir) {
|
|
25782
27241
|
const packageRoot = getPackageRoot();
|
|
25783
|
-
const bundled =
|
|
25784
|
-
if (
|
|
27242
|
+
const bundled = join102(packageRoot, "agents", "cleo-subagent");
|
|
27243
|
+
if (existsSync101(bundled)) {
|
|
25785
27244
|
agentSourceDir = bundled;
|
|
25786
27245
|
}
|
|
25787
27246
|
}
|
|
@@ -25789,8 +27248,8 @@ async function initAgentDefinition(created, warnings) {
|
|
|
25789
27248
|
warnings.push("agents/cleo-subagent/ not found in package, skipping agent definition install");
|
|
25790
27249
|
return;
|
|
25791
27250
|
}
|
|
25792
|
-
const globalAgentsDir =
|
|
25793
|
-
await mkdir16(
|
|
27251
|
+
const globalAgentsDir = join102(getAgentsHome(), "agents", "cleo-subagent");
|
|
27252
|
+
await mkdir16(dirname20(globalAgentsDir), { recursive: true });
|
|
25794
27253
|
try {
|
|
25795
27254
|
try {
|
|
25796
27255
|
const stat2 = await lstat(globalAgentsDir);
|
|
@@ -25813,7 +27272,7 @@ async function initAgentDefinition(created, warnings) {
|
|
|
25813
27272
|
await mkdir16(globalAgentsDir, { recursive: true });
|
|
25814
27273
|
const files = readdirSync34(agentSourceDir);
|
|
25815
27274
|
for (const file2 of files) {
|
|
25816
|
-
await copyFile3(
|
|
27275
|
+
await copyFile3(join102(agentSourceDir, file2), join102(globalAgentsDir, file2));
|
|
25817
27276
|
}
|
|
25818
27277
|
created.push("agent: cleo-subagent (copied)");
|
|
25819
27278
|
} catch (copyErr) {
|
|
@@ -25865,23 +27324,23 @@ async function initCoreSkills(created, warnings) {
|
|
|
25865
27324
|
const packageRoot = getPackageRoot();
|
|
25866
27325
|
let ctSkillsRoot = null;
|
|
25867
27326
|
try {
|
|
25868
|
-
const { createRequire:
|
|
25869
|
-
const req =
|
|
27327
|
+
const { createRequire: createRequire6 } = await import("node:module");
|
|
27328
|
+
const req = createRequire6(import.meta.url);
|
|
25870
27329
|
const skillsPkgMain = req.resolve("@cleocode/skills/package.json");
|
|
25871
|
-
const skillsPkgRoot =
|
|
25872
|
-
if (
|
|
27330
|
+
const skillsPkgRoot = dirname20(skillsPkgMain);
|
|
27331
|
+
if (existsSync101(join102(skillsPkgRoot, "skills.json"))) {
|
|
25873
27332
|
ctSkillsRoot = skillsPkgRoot;
|
|
25874
27333
|
}
|
|
25875
27334
|
} catch {
|
|
25876
27335
|
}
|
|
25877
27336
|
if (!ctSkillsRoot) {
|
|
25878
27337
|
try {
|
|
25879
|
-
const bundledPath =
|
|
25880
|
-
if (
|
|
27338
|
+
const bundledPath = join102(packageRoot, "packages", "skills");
|
|
27339
|
+
if (existsSync101(join102(bundledPath, "skills.json"))) {
|
|
25881
27340
|
ctSkillsRoot = bundledPath;
|
|
25882
27341
|
} else {
|
|
25883
|
-
const ctSkillsPath =
|
|
25884
|
-
if (
|
|
27342
|
+
const ctSkillsPath = join102(packageRoot, "node_modules", "@cleocode", "skills");
|
|
27343
|
+
if (existsSync101(join102(ctSkillsPath, "skills.json"))) {
|
|
25885
27344
|
ctSkillsRoot = ctSkillsPath;
|
|
25886
27345
|
}
|
|
25887
27346
|
}
|
|
@@ -25897,14 +27356,14 @@ async function initCoreSkills(created, warnings) {
|
|
|
25897
27356
|
} catch {
|
|
25898
27357
|
warnings.push("Failed to register skill library with CAAMP");
|
|
25899
27358
|
}
|
|
25900
|
-
const catalogPath =
|
|
25901
|
-
const catalog3 = JSON.parse(
|
|
27359
|
+
const catalogPath = join102(ctSkillsRoot, "skills.json");
|
|
27360
|
+
const catalog3 = JSON.parse(readFileSync75(catalogPath, "utf-8"));
|
|
25902
27361
|
const skills = catalog3.skills ?? [];
|
|
25903
27362
|
const coreSkills = skills.filter((s) => s.tier <= 2);
|
|
25904
27363
|
const installed = [];
|
|
25905
27364
|
for (const skill of coreSkills) {
|
|
25906
|
-
const skillSourceDir =
|
|
25907
|
-
if (!
|
|
27365
|
+
const skillSourceDir = dirname20(join102(ctSkillsRoot, skill.path));
|
|
27366
|
+
if (!existsSync101(skillSourceDir)) {
|
|
25908
27367
|
continue;
|
|
25909
27368
|
}
|
|
25910
27369
|
try {
|
|
@@ -25947,38 +27406,38 @@ async function initNexusRegistration(projectRoot, created, warnings) {
|
|
|
25947
27406
|
}
|
|
25948
27407
|
}
|
|
25949
27408
|
async function installGitHubTemplates(projectRoot, created, skipped) {
|
|
25950
|
-
if (!
|
|
27409
|
+
if (!existsSync101(join102(projectRoot, ".git"))) {
|
|
25951
27410
|
return;
|
|
25952
27411
|
}
|
|
25953
|
-
const githubDir =
|
|
25954
|
-
const issueTemplateDir =
|
|
27412
|
+
const githubDir = join102(projectRoot, ".github");
|
|
27413
|
+
const issueTemplateDir = join102(githubDir, "ISSUE_TEMPLATE");
|
|
25955
27414
|
const packageRoot = getPackageRoot();
|
|
25956
|
-
const templateSrcDir =
|
|
25957
|
-
if (!
|
|
27415
|
+
const templateSrcDir = join102(packageRoot, "templates", "github");
|
|
27416
|
+
if (!existsSync101(templateSrcDir)) {
|
|
25958
27417
|
return;
|
|
25959
27418
|
}
|
|
25960
27419
|
await mkdir16(issueTemplateDir, { recursive: true });
|
|
25961
|
-
const issueSrcDir =
|
|
25962
|
-
if (
|
|
27420
|
+
const issueSrcDir = join102(templateSrcDir, "ISSUE_TEMPLATE");
|
|
27421
|
+
if (existsSync101(issueSrcDir)) {
|
|
25963
27422
|
const issueFiles = readdirSync34(issueSrcDir);
|
|
25964
27423
|
for (const file2 of issueFiles) {
|
|
25965
|
-
const dest =
|
|
25966
|
-
if (
|
|
27424
|
+
const dest = join102(issueTemplateDir, file2);
|
|
27425
|
+
if (existsSync101(dest)) {
|
|
25967
27426
|
skipped.push(`.github/ISSUE_TEMPLATE/${file2}`);
|
|
25968
27427
|
continue;
|
|
25969
27428
|
}
|
|
25970
|
-
const content =
|
|
27429
|
+
const content = readFileSync75(join102(issueSrcDir, file2), "utf-8");
|
|
25971
27430
|
await writeFile11(dest, content, "utf-8");
|
|
25972
27431
|
created.push(`.github/ISSUE_TEMPLATE/${file2}`);
|
|
25973
27432
|
}
|
|
25974
27433
|
}
|
|
25975
|
-
const prTemplateSrc =
|
|
25976
|
-
const prTemplateDest =
|
|
25977
|
-
if (
|
|
25978
|
-
if (
|
|
27434
|
+
const prTemplateSrc = join102(templateSrcDir, "pull_request_template.md");
|
|
27435
|
+
const prTemplateDest = join102(githubDir, "pull_request_template.md");
|
|
27436
|
+
if (existsSync101(prTemplateSrc)) {
|
|
27437
|
+
if (existsSync101(prTemplateDest)) {
|
|
25979
27438
|
skipped.push(".github/pull_request_template.md");
|
|
25980
27439
|
} else {
|
|
25981
|
-
const content =
|
|
27440
|
+
const content = readFileSync75(prTemplateSrc, "utf-8");
|
|
25982
27441
|
await writeFile11(prTemplateDest, content, "utf-8");
|
|
25983
27442
|
created.push(".github/pull_request_template.md");
|
|
25984
27443
|
}
|
|
@@ -26009,7 +27468,7 @@ async function updateDocs() {
|
|
|
26009
27468
|
async function initProject(opts = {}) {
|
|
26010
27469
|
const cleoDir = getCleoDirAbsolute();
|
|
26011
27470
|
const projRoot = getProjectRoot();
|
|
26012
|
-
const alreadyInitialized =
|
|
27471
|
+
const alreadyInitialized = existsSync101(cleoDir) && (existsSync101(join102(cleoDir, "tasks.db")) || existsSync101(join102(cleoDir, "config.json")));
|
|
26013
27472
|
if (alreadyInitialized && !opts.force) {
|
|
26014
27473
|
throw new CleoError(
|
|
26015
27474
|
1 /* GENERAL_ERROR */,
|
|
@@ -26033,7 +27492,7 @@ async function initProject(opts = {}) {
|
|
|
26033
27492
|
}
|
|
26034
27493
|
try {
|
|
26035
27494
|
const { getDb: getDb3 } = await Promise.resolve().then(() => (init_sqlite2(), sqlite_exports));
|
|
26036
|
-
await getDb3(
|
|
27495
|
+
await getDb3(join102(cleoDir, ".."));
|
|
26037
27496
|
created.push("tasks.db");
|
|
26038
27497
|
} catch (err) {
|
|
26039
27498
|
created.push(`tasks.db (deferred: ${err instanceof Error ? err.message : String(err)})`);
|
|
@@ -26046,6 +27505,15 @@ async function initProject(opts = {}) {
|
|
|
26046
27505
|
} catch (err) {
|
|
26047
27506
|
created.push(`brain.db (deferred: ${err instanceof Error ? err.message : String(err)})`);
|
|
26048
27507
|
}
|
|
27508
|
+
try {
|
|
27509
|
+
const { ensureSignaldockDb: ensureSignaldockDb2 } = await Promise.resolve().then(() => (init_signaldock_sqlite(), signaldock_sqlite_exports));
|
|
27510
|
+
const sdResult = await ensureSignaldockDb2(projRoot);
|
|
27511
|
+
if (sdResult.action === "created") {
|
|
27512
|
+
created.push("signaldock.db");
|
|
27513
|
+
}
|
|
27514
|
+
} catch (err) {
|
|
27515
|
+
created.push(`signaldock.db (deferred: ${err instanceof Error ? err.message : String(err)})`);
|
|
27516
|
+
}
|
|
26049
27517
|
if (force) {
|
|
26050
27518
|
const gitignoreResult = await ensureGitignore(projRoot);
|
|
26051
27519
|
if (gitignoreResult.action === "skipped") {
|
|
@@ -26054,8 +27522,8 @@ async function initProject(opts = {}) {
|
|
|
26054
27522
|
created.push(".gitignore");
|
|
26055
27523
|
}
|
|
26056
27524
|
} else {
|
|
26057
|
-
const gitignorePath =
|
|
26058
|
-
if (
|
|
27525
|
+
const gitignorePath = join102(cleoDir, ".gitignore");
|
|
27526
|
+
if (existsSync101(gitignorePath)) {
|
|
26059
27527
|
skipped.push(".gitignore");
|
|
26060
27528
|
} else {
|
|
26061
27529
|
const gitignoreResult = await ensureGitignore(projRoot);
|
|
@@ -26066,12 +27534,12 @@ async function initProject(opts = {}) {
|
|
|
26066
27534
|
}
|
|
26067
27535
|
}
|
|
26068
27536
|
}
|
|
26069
|
-
const legacySequencePath =
|
|
27537
|
+
const legacySequencePath = join102(cleoDir, ".sequence");
|
|
26070
27538
|
try {
|
|
26071
27539
|
await unlink4(legacySequencePath);
|
|
26072
27540
|
} catch {
|
|
26073
27541
|
}
|
|
26074
|
-
const legacySequenceJsonPath =
|
|
27542
|
+
const legacySequenceJsonPath = join102(cleoDir, ".sequence.json");
|
|
26075
27543
|
try {
|
|
26076
27544
|
await unlink4(legacySequenceJsonPath);
|
|
26077
27545
|
} catch {
|
|
@@ -26232,8 +27700,8 @@ function isAutoInitEnabled() {
|
|
|
26232
27700
|
}
|
|
26233
27701
|
async function ensureInitialized(projectRoot) {
|
|
26234
27702
|
const root = projectRoot ?? getProjectRoot();
|
|
26235
|
-
const cleoDir =
|
|
26236
|
-
const isInit =
|
|
27703
|
+
const cleoDir = join102(root, ".cleo");
|
|
27704
|
+
const isInit = existsSync101(cleoDir) && (existsSync101(join102(cleoDir, "tasks.db")) || existsSync101(join102(cleoDir, "config.json")));
|
|
26237
27705
|
if (isInit) {
|
|
26238
27706
|
return { initialized: true };
|
|
26239
27707
|
}
|
|
@@ -26245,7 +27713,7 @@ async function ensureInitialized(projectRoot) {
|
|
|
26245
27713
|
}
|
|
26246
27714
|
async function getVersion2(projectRoot) {
|
|
26247
27715
|
const root = projectRoot ?? getProjectRoot();
|
|
26248
|
-
const versionPaths = [
|
|
27716
|
+
const versionPaths = [join102(root, "VERSION"), join102(root, "..", "VERSION")];
|
|
26249
27717
|
for (const versionPath of versionPaths) {
|
|
26250
27718
|
try {
|
|
26251
27719
|
const content = await readFile17(versionPath, "utf-8");
|
|
@@ -26256,7 +27724,7 @@ async function getVersion2(projectRoot) {
|
|
|
26256
27724
|
} catch {
|
|
26257
27725
|
}
|
|
26258
27726
|
}
|
|
26259
|
-
const pkg = await readJson(
|
|
27727
|
+
const pkg = await readJson(join102(root, "package.json"));
|
|
26260
27728
|
if (pkg?.version) {
|
|
26261
27729
|
return { version: pkg.version };
|
|
26262
27730
|
}
|
|
@@ -27511,15 +28979,15 @@ import { and as and5, eq as eq7, inArray as inArray5 } from "drizzle-orm";
|
|
|
27511
28979
|
|
|
27512
28980
|
// packages/core/src/agents/execution-learning.ts
|
|
27513
28981
|
init_brain_accessor();
|
|
27514
|
-
import { randomBytes } from "node:crypto";
|
|
28982
|
+
import { randomBytes as randomBytes2 } from "node:crypto";
|
|
27515
28983
|
function generateDecisionId() {
|
|
27516
|
-
return `AGT-${
|
|
28984
|
+
return `AGT-${randomBytes2(5).toString("hex")}`;
|
|
27517
28985
|
}
|
|
27518
28986
|
function generatePatternId() {
|
|
27519
|
-
return `P-agt-${
|
|
28987
|
+
return `P-agt-${randomBytes2(4).toString("hex")}`;
|
|
27520
28988
|
}
|
|
27521
28989
|
function generateObservationId() {
|
|
27522
|
-
return `O-agt-${
|
|
28990
|
+
return `O-agt-${randomBytes2(4).toString("hex")}`;
|
|
27523
28991
|
}
|
|
27524
28992
|
function nowSql() {
|
|
27525
28993
|
return (/* @__PURE__ */ new Date()).toISOString().replace("T", " ").slice(0, 19);
|
|
@@ -28782,6 +30250,195 @@ async function getValueMetrics(days = 7, cwd) {
|
|
|
28782
30250
|
};
|
|
28783
30251
|
}
|
|
28784
30252
|
|
|
30253
|
+
// packages/core/src/conduit/index.ts
|
|
30254
|
+
var conduit_exports = {};
|
|
30255
|
+
__export(conduit_exports, {
|
|
30256
|
+
ConduitClient: () => ConduitClient,
|
|
30257
|
+
HttpTransport: () => HttpTransport,
|
|
30258
|
+
createConduit: () => createConduit
|
|
30259
|
+
});
|
|
30260
|
+
|
|
30261
|
+
// packages/core/src/conduit/conduit-client.ts
|
|
30262
|
+
var ConduitClient = class {
|
|
30263
|
+
transport;
|
|
30264
|
+
credential;
|
|
30265
|
+
state = "disconnected";
|
|
30266
|
+
constructor(transport, credential) {
|
|
30267
|
+
this.transport = transport;
|
|
30268
|
+
this.credential = credential;
|
|
30269
|
+
}
|
|
30270
|
+
get agentId() {
|
|
30271
|
+
return this.credential.agentId;
|
|
30272
|
+
}
|
|
30273
|
+
getState() {
|
|
30274
|
+
return this.state;
|
|
30275
|
+
}
|
|
30276
|
+
async connect() {
|
|
30277
|
+
this.state = "connecting";
|
|
30278
|
+
try {
|
|
30279
|
+
await this.transport.connect({
|
|
30280
|
+
agentId: this.credential.agentId,
|
|
30281
|
+
apiKey: this.credential.apiKey,
|
|
30282
|
+
apiBaseUrl: this.credential.apiBaseUrl,
|
|
30283
|
+
...this.credential.transportConfig
|
|
30284
|
+
});
|
|
30285
|
+
this.state = "connected";
|
|
30286
|
+
} catch (err) {
|
|
30287
|
+
this.state = "error";
|
|
30288
|
+
throw err;
|
|
30289
|
+
}
|
|
30290
|
+
}
|
|
30291
|
+
async send(to, content, options) {
|
|
30292
|
+
const result = await this.transport.push(to, content, {
|
|
30293
|
+
conversationId: options?.threadId
|
|
30294
|
+
});
|
|
30295
|
+
return {
|
|
30296
|
+
messageId: result.messageId,
|
|
30297
|
+
deliveredAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
30298
|
+
};
|
|
30299
|
+
}
|
|
30300
|
+
onMessage(handler) {
|
|
30301
|
+
if (this.transport.subscribe) {
|
|
30302
|
+
return this.transport.subscribe(handler);
|
|
30303
|
+
}
|
|
30304
|
+
const interval2 = setInterval(async () => {
|
|
30305
|
+
const messages = await this.transport.poll();
|
|
30306
|
+
for (const msg of messages) handler(msg);
|
|
30307
|
+
if (messages.length > 0) {
|
|
30308
|
+
await this.transport.ack(messages.map((m) => m.id));
|
|
30309
|
+
}
|
|
30310
|
+
}, this.credential.transportConfig.pollIntervalMs ?? 5e3);
|
|
30311
|
+
return () => clearInterval(interval2);
|
|
30312
|
+
}
|
|
30313
|
+
async heartbeat() {
|
|
30314
|
+
await this.transport.push(this.credential.agentId, "", {});
|
|
30315
|
+
}
|
|
30316
|
+
async isOnline(agentId) {
|
|
30317
|
+
try {
|
|
30318
|
+
const response = await fetch(`${this.credential.apiBaseUrl}/agents/${agentId}`, {
|
|
30319
|
+
headers: {
|
|
30320
|
+
Authorization: `Bearer ${this.credential.apiKey}`,
|
|
30321
|
+
"X-Agent-Id": this.credential.agentId
|
|
30322
|
+
}
|
|
30323
|
+
});
|
|
30324
|
+
if (!response.ok) return false;
|
|
30325
|
+
const data = await response.json();
|
|
30326
|
+
return data.data?.agent?.status === "online";
|
|
30327
|
+
} catch {
|
|
30328
|
+
return false;
|
|
30329
|
+
}
|
|
30330
|
+
}
|
|
30331
|
+
async disconnect() {
|
|
30332
|
+
await this.transport.disconnect();
|
|
30333
|
+
this.state = "disconnected";
|
|
30334
|
+
}
|
|
30335
|
+
};
|
|
30336
|
+
|
|
30337
|
+
// packages/core/src/conduit/http-transport.ts
|
|
30338
|
+
var HttpTransport = class {
|
|
30339
|
+
name = "http";
|
|
30340
|
+
state = null;
|
|
30341
|
+
async connect(config2) {
|
|
30342
|
+
this.state = {
|
|
30343
|
+
agentId: config2.agentId,
|
|
30344
|
+
apiKey: config2.apiKey,
|
|
30345
|
+
apiBaseUrl: config2.apiBaseUrl,
|
|
30346
|
+
connected: true
|
|
30347
|
+
};
|
|
30348
|
+
}
|
|
30349
|
+
async disconnect() {
|
|
30350
|
+
this.state = null;
|
|
30351
|
+
}
|
|
30352
|
+
async push(to, content, options) {
|
|
30353
|
+
this.ensureConnected();
|
|
30354
|
+
const body = { content };
|
|
30355
|
+
let url2;
|
|
30356
|
+
if (options?.conversationId) {
|
|
30357
|
+
url2 = `${this.state.apiBaseUrl}/conversations/${options.conversationId}/messages`;
|
|
30358
|
+
if (options.replyTo) {
|
|
30359
|
+
body["replyTo"] = options.replyTo;
|
|
30360
|
+
}
|
|
30361
|
+
} else {
|
|
30362
|
+
url2 = `${this.state.apiBaseUrl}/messages`;
|
|
30363
|
+
body["toAgentId"] = to;
|
|
30364
|
+
}
|
|
30365
|
+
const response = await fetch(url2, {
|
|
30366
|
+
method: "POST",
|
|
30367
|
+
headers: this.headers(),
|
|
30368
|
+
body: JSON.stringify(body)
|
|
30369
|
+
});
|
|
30370
|
+
if (!response.ok) {
|
|
30371
|
+
const text3 = await response.text().catch(() => "");
|
|
30372
|
+
throw new Error(`HttpTransport push failed: ${response.status} ${text3}`);
|
|
30373
|
+
}
|
|
30374
|
+
const data = await response.json();
|
|
30375
|
+
const messageId = data.data?.message?.id ?? data.data?.id ?? "unknown";
|
|
30376
|
+
return { messageId };
|
|
30377
|
+
}
|
|
30378
|
+
async poll(options) {
|
|
30379
|
+
this.ensureConnected();
|
|
30380
|
+
const params = new URLSearchParams();
|
|
30381
|
+
params.set("mentioned", this.state.agentId);
|
|
30382
|
+
if (options?.limit) params.set("limit", String(options.limit));
|
|
30383
|
+
if (options?.since) params.set("since", options.since);
|
|
30384
|
+
const url2 = `${this.state.apiBaseUrl}/messages/peek?${params}`;
|
|
30385
|
+
const response = await fetch(url2, {
|
|
30386
|
+
method: "GET",
|
|
30387
|
+
headers: this.headers()
|
|
30388
|
+
});
|
|
30389
|
+
if (!response.ok) return [];
|
|
30390
|
+
const data = await response.json();
|
|
30391
|
+
return (data.data?.messages ?? []).map((m) => ({
|
|
30392
|
+
id: m.id,
|
|
30393
|
+
from: m.fromAgentId ?? "unknown",
|
|
30394
|
+
content: m.content ?? "",
|
|
30395
|
+
threadId: m.conversationId,
|
|
30396
|
+
timestamp: m.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
30397
|
+
}));
|
|
30398
|
+
}
|
|
30399
|
+
async ack(messageIds) {
|
|
30400
|
+
this.ensureConnected();
|
|
30401
|
+
await fetch(`${this.state.apiBaseUrl}/messages/ack`, {
|
|
30402
|
+
method: "POST",
|
|
30403
|
+
headers: this.headers(),
|
|
30404
|
+
body: JSON.stringify({ messageIds })
|
|
30405
|
+
});
|
|
30406
|
+
}
|
|
30407
|
+
headers() {
|
|
30408
|
+
return {
|
|
30409
|
+
"Content-Type": "application/json",
|
|
30410
|
+
Authorization: `Bearer ${this.state.apiKey}`,
|
|
30411
|
+
"X-Agent-Id": this.state.agentId
|
|
30412
|
+
};
|
|
30413
|
+
}
|
|
30414
|
+
ensureConnected() {
|
|
30415
|
+
if (!this.state?.connected) {
|
|
30416
|
+
throw new Error("HttpTransport not connected. Call connect() first.");
|
|
30417
|
+
}
|
|
30418
|
+
}
|
|
30419
|
+
};
|
|
30420
|
+
|
|
30421
|
+
// packages/core/src/conduit/factory.ts
|
|
30422
|
+
function resolveTransport(credential) {
|
|
30423
|
+
if (credential.transportConfig.wsUrl) {
|
|
30424
|
+
}
|
|
30425
|
+
if (credential.transportConfig.sseEndpoint) {
|
|
30426
|
+
}
|
|
30427
|
+
return new HttpTransport();
|
|
30428
|
+
}
|
|
30429
|
+
async function createConduit(registry2, agentId) {
|
|
30430
|
+
const credential = agentId ? await registry2.get(agentId) : await registry2.getActive();
|
|
30431
|
+
if (!credential) {
|
|
30432
|
+
throw new Error(
|
|
30433
|
+
"No agent credential found. Run: cleo agent register --id <id> --api-key <key>"
|
|
30434
|
+
);
|
|
30435
|
+
}
|
|
30436
|
+
const transport = resolveTransport(credential);
|
|
30437
|
+
const conduit2 = new ConduitClient(transport, credential);
|
|
30438
|
+
await conduit2.connect();
|
|
30439
|
+
return conduit2;
|
|
30440
|
+
}
|
|
30441
|
+
|
|
28785
30442
|
// packages/core/src/context/index.ts
|
|
28786
30443
|
var context_exports = {};
|
|
28787
30444
|
__export(context_exports, {
|
|
@@ -28925,7 +30582,7 @@ __export(hooks_exports, {
|
|
|
28925
30582
|
OnToolCompletePayloadSchema: () => OnToolCompletePayloadSchema,
|
|
28926
30583
|
OnToolStartPayloadSchema: () => OnToolStartPayloadSchema,
|
|
28927
30584
|
OnWorkAvailablePayloadSchema: () => OnWorkAvailablePayloadSchema,
|
|
28928
|
-
handleError: () =>
|
|
30585
|
+
handleError: () => handleError2,
|
|
28929
30586
|
handleFileChange: () => handleFileChange,
|
|
28930
30587
|
handlePostCompact: () => handlePostCompact,
|
|
28931
30588
|
handlePreCompact: () => handlePreCompact,
|
|
@@ -48208,7 +49865,7 @@ function checkRateLimit(agentId) {
|
|
|
48208
49865
|
);
|
|
48209
49866
|
}
|
|
48210
49867
|
}
|
|
48211
|
-
var DEFAULT_ACL = { authorizedAgents: [
|
|
49868
|
+
var DEFAULT_ACL = { authorizedAgents: [] };
|
|
48212
49869
|
async function loadProjectACL(projectPath) {
|
|
48213
49870
|
try {
|
|
48214
49871
|
const { loadConfig: loadConfig3 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
@@ -48218,9 +49875,18 @@ async function loadProjectACL(projectPath) {
|
|
|
48218
49875
|
return { authorizedAgents: agents };
|
|
48219
49876
|
}
|
|
48220
49877
|
} catch {
|
|
49878
|
+
await logAclFailure(projectPath);
|
|
48221
49879
|
}
|
|
48222
49880
|
return DEFAULT_ACL;
|
|
48223
49881
|
}
|
|
49882
|
+
async function logAclFailure(projectPath) {
|
|
49883
|
+
try {
|
|
49884
|
+
const { getLogger: getLogger2 } = await Promise.resolve().then(() => (init_logger(), logger_exports));
|
|
49885
|
+
const log9 = getLogger2("nexus.acl");
|
|
49886
|
+
log9.warn({ projectPath }, "Failed to load ACL configuration, defaulting to deny-all");
|
|
49887
|
+
} catch {
|
|
49888
|
+
}
|
|
49889
|
+
}
|
|
48224
49890
|
function isAuthorized(acl, agentId) {
|
|
48225
49891
|
if (acl.authorizedAgents.includes("*")) return true;
|
|
48226
49892
|
return acl.authorizedAgents.includes(agentId);
|
|
@@ -48304,10 +49970,11 @@ async function routeSingleTask(taskId, directive, operation, projects) {
|
|
|
48304
49970
|
}
|
|
48305
49971
|
const acl = await loadProjectACL(targetProject.path);
|
|
48306
49972
|
if (!isAuthorized(acl, directive.agentId)) {
|
|
49973
|
+
await logRouteAudit(directive, targetProject.name, taskId, operation, false);
|
|
48307
49974
|
return {
|
|
48308
49975
|
success: false,
|
|
48309
49976
|
project: targetProject.name,
|
|
48310
|
-
projectPath:
|
|
49977
|
+
projectPath: "",
|
|
48311
49978
|
taskId,
|
|
48312
49979
|
operation,
|
|
48313
49980
|
error: `Agent '${directive.agentId}' not authorized to mutate project '${targetProject.name}'`
|
|
@@ -48436,8 +50103,8 @@ async function workspaceAgents() {
|
|
|
48436
50103
|
const agents = [];
|
|
48437
50104
|
for (const project of projects) {
|
|
48438
50105
|
try {
|
|
48439
|
-
const
|
|
48440
|
-
const instances = await
|
|
50106
|
+
const acc = await getAccessor(project.path);
|
|
50107
|
+
const instances = await acc.listAgentInstances();
|
|
48441
50108
|
for (const inst of instances) {
|
|
48442
50109
|
agents.push({
|
|
48443
50110
|
agentId: inst.id,
|
|
@@ -54349,222 +56016,6 @@ function sanitizeParams(params, projectRoot, context) {
|
|
|
54349
56016
|
init_sequence();
|
|
54350
56017
|
init_sessions();
|
|
54351
56018
|
|
|
54352
|
-
// packages/core/src/signaldock/index.ts
|
|
54353
|
-
var signaldock_exports = {};
|
|
54354
|
-
__export(signaldock_exports, {
|
|
54355
|
-
ClaudeCodeTransport: () => ClaudeCodeTransport,
|
|
54356
|
-
SignalDockTransport: () => SignalDockTransport,
|
|
54357
|
-
createTransport: () => createTransport
|
|
54358
|
-
});
|
|
54359
|
-
|
|
54360
|
-
// packages/core/src/signaldock/claude-code-transport.ts
|
|
54361
|
-
var ClaudeCodeTransport = class {
|
|
54362
|
-
name = "claude-code";
|
|
54363
|
-
agents = /* @__PURE__ */ new Map();
|
|
54364
|
-
conversations = /* @__PURE__ */ new Map();
|
|
54365
|
-
messages = [];
|
|
54366
|
-
async register(name2, agentClass, privacyTier) {
|
|
54367
|
-
const registration = {
|
|
54368
|
-
agentId: `cc-${name2}`,
|
|
54369
|
-
name: name2,
|
|
54370
|
-
agentClass,
|
|
54371
|
-
privacyTier
|
|
54372
|
-
};
|
|
54373
|
-
this.agents.set(registration.agentId, registration);
|
|
54374
|
-
return registration;
|
|
54375
|
-
}
|
|
54376
|
-
async deregister(agentId) {
|
|
54377
|
-
this.agents.delete(agentId);
|
|
54378
|
-
}
|
|
54379
|
-
async send(fromAgentId, toAgentId, content, conversationId) {
|
|
54380
|
-
const resolvedConversationId = conversationId ?? `cc-conv-${fromAgentId}-${toAgentId}`;
|
|
54381
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
54382
|
-
const messageId = `cc-msg-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
54383
|
-
const message = {
|
|
54384
|
-
id: messageId,
|
|
54385
|
-
conversationId: resolvedConversationId,
|
|
54386
|
-
fromAgentId,
|
|
54387
|
-
toAgentId,
|
|
54388
|
-
content,
|
|
54389
|
-
contentType: "text",
|
|
54390
|
-
status: "delivered",
|
|
54391
|
-
createdAt: now,
|
|
54392
|
-
deliveredAt: now
|
|
54393
|
-
};
|
|
54394
|
-
this.messages.push(message);
|
|
54395
|
-
return {
|
|
54396
|
-
messageId,
|
|
54397
|
-
conversationId: resolvedConversationId,
|
|
54398
|
-
status: "delivered"
|
|
54399
|
-
};
|
|
54400
|
-
}
|
|
54401
|
-
async poll(agentId, since) {
|
|
54402
|
-
return this.messages.filter((m) => {
|
|
54403
|
-
if (m.toAgentId !== agentId) return false;
|
|
54404
|
-
if (since && m.createdAt <= since) return false;
|
|
54405
|
-
return true;
|
|
54406
|
-
});
|
|
54407
|
-
}
|
|
54408
|
-
async heartbeat(agentId) {
|
|
54409
|
-
const agent = this.agents.get(agentId);
|
|
54410
|
-
if (agent) {
|
|
54411
|
-
this.agents.set(agentId, { ...agent });
|
|
54412
|
-
}
|
|
54413
|
-
}
|
|
54414
|
-
async createConversation(participants, visibility) {
|
|
54415
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
54416
|
-
const id = `cc-conv-${participants.sort().join("-")}`;
|
|
54417
|
-
const existing = this.conversations.get(id);
|
|
54418
|
-
if (existing) return existing;
|
|
54419
|
-
const conversation = {
|
|
54420
|
-
id,
|
|
54421
|
-
participants,
|
|
54422
|
-
visibility: visibility ?? "private",
|
|
54423
|
-
messageCount: 0,
|
|
54424
|
-
createdAt: now,
|
|
54425
|
-
updatedAt: now
|
|
54426
|
-
};
|
|
54427
|
-
this.conversations.set(id, conversation);
|
|
54428
|
-
return conversation;
|
|
54429
|
-
}
|
|
54430
|
-
async getAgent(agentId) {
|
|
54431
|
-
const registration = this.agents.get(agentId);
|
|
54432
|
-
if (!registration) return null;
|
|
54433
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
54434
|
-
return {
|
|
54435
|
-
id: registration.agentId,
|
|
54436
|
-
name: registration.name,
|
|
54437
|
-
agentClass: registration.agentClass,
|
|
54438
|
-
privacyTier: registration.privacyTier,
|
|
54439
|
-
status: "online",
|
|
54440
|
-
createdAt: now,
|
|
54441
|
-
updatedAt: now
|
|
54442
|
-
};
|
|
54443
|
-
}
|
|
54444
|
-
};
|
|
54445
|
-
|
|
54446
|
-
// packages/core/src/signaldock/signaldock-transport.ts
|
|
54447
|
-
var SignalDockTransport = class {
|
|
54448
|
-
name = "signaldock";
|
|
54449
|
-
config;
|
|
54450
|
-
constructor(config2) {
|
|
54451
|
-
this.config = config2;
|
|
54452
|
-
}
|
|
54453
|
-
async register(name2, agentClass, privacyTier) {
|
|
54454
|
-
const prefixedName = `${this.config.agentPrefix}${name2}`;
|
|
54455
|
-
const body = {
|
|
54456
|
-
name: prefixedName,
|
|
54457
|
-
agentClass,
|
|
54458
|
-
privacyTier
|
|
54459
|
-
};
|
|
54460
|
-
const response = await this.request("POST", "/agents", body);
|
|
54461
|
-
return {
|
|
54462
|
-
agentId: response.id,
|
|
54463
|
-
name: response.name,
|
|
54464
|
-
agentClass: response.agentClass,
|
|
54465
|
-
privacyTier: response.privacyTier
|
|
54466
|
-
};
|
|
54467
|
-
}
|
|
54468
|
-
async deregister(agentId) {
|
|
54469
|
-
await this.request("DELETE", `/agents/${encodeURIComponent(agentId)}`);
|
|
54470
|
-
}
|
|
54471
|
-
async send(fromAgentId, toAgentId, content, conversationId) {
|
|
54472
|
-
let convId = conversationId;
|
|
54473
|
-
if (!convId) {
|
|
54474
|
-
const conversation = await this.createConversation([fromAgentId, toAgentId], "private");
|
|
54475
|
-
convId = conversation.id;
|
|
54476
|
-
}
|
|
54477
|
-
const body = {
|
|
54478
|
-
conversationId: convId,
|
|
54479
|
-
fromAgentId,
|
|
54480
|
-
toAgentId,
|
|
54481
|
-
content,
|
|
54482
|
-
contentType: "text"
|
|
54483
|
-
};
|
|
54484
|
-
const message = await this.request("POST", "/messages", body, fromAgentId);
|
|
54485
|
-
return {
|
|
54486
|
-
messageId: message.id,
|
|
54487
|
-
conversationId: message.conversationId,
|
|
54488
|
-
status: message.status === "delivered" ? "delivered" : "pending"
|
|
54489
|
-
};
|
|
54490
|
-
}
|
|
54491
|
-
async poll(agentId, since) {
|
|
54492
|
-
const path2 = since ? `/messages/poll/new?since=${encodeURIComponent(since)}` : "/messages/poll/new";
|
|
54493
|
-
const messages = await this.request("GET", path2, void 0, agentId);
|
|
54494
|
-
return messages;
|
|
54495
|
-
}
|
|
54496
|
-
async heartbeat(agentId) {
|
|
54497
|
-
await this.request(
|
|
54498
|
-
"POST",
|
|
54499
|
-
`/agents/${encodeURIComponent(agentId)}/heartbeat`,
|
|
54500
|
-
void 0,
|
|
54501
|
-
agentId
|
|
54502
|
-
);
|
|
54503
|
-
}
|
|
54504
|
-
async createConversation(participants, visibility = "private") {
|
|
54505
|
-
const body = {
|
|
54506
|
-
participants: [...participants].sort(),
|
|
54507
|
-
visibility
|
|
54508
|
-
};
|
|
54509
|
-
return this.request("POST", "/conversations", body);
|
|
54510
|
-
}
|
|
54511
|
-
async getAgent(agentId) {
|
|
54512
|
-
try {
|
|
54513
|
-
return await this.request("GET", `/agents/${encodeURIComponent(agentId)}`);
|
|
54514
|
-
} catch {
|
|
54515
|
-
return null;
|
|
54516
|
-
}
|
|
54517
|
-
}
|
|
54518
|
-
/**
|
|
54519
|
-
* Make an HTTP request to the SignalDock API.
|
|
54520
|
-
*/
|
|
54521
|
-
async request(method, path2, body, agentId) {
|
|
54522
|
-
const url2 = `${this.config.endpoint}${path2}`;
|
|
54523
|
-
const headers = {
|
|
54524
|
-
"Content-Type": "application/json",
|
|
54525
|
-
Accept: "application/json"
|
|
54526
|
-
};
|
|
54527
|
-
if (agentId) {
|
|
54528
|
-
headers["X-Agent-Id"] = agentId;
|
|
54529
|
-
}
|
|
54530
|
-
const init = {
|
|
54531
|
-
method,
|
|
54532
|
-
headers
|
|
54533
|
-
};
|
|
54534
|
-
if (body !== void 0) {
|
|
54535
|
-
init.body = JSON.stringify(body);
|
|
54536
|
-
}
|
|
54537
|
-
const response = await fetch(url2, init);
|
|
54538
|
-
if (!response.ok) {
|
|
54539
|
-
const text3 = await response.text().catch(() => "");
|
|
54540
|
-
throw new Error(
|
|
54541
|
-
`SignalDock API error: ${method} ${path2} returned ${response.status}: ${text3}`
|
|
54542
|
-
);
|
|
54543
|
-
}
|
|
54544
|
-
if (response.status === 204) {
|
|
54545
|
-
return void 0;
|
|
54546
|
-
}
|
|
54547
|
-
const envelope = await response.json();
|
|
54548
|
-
if (!envelope.success && envelope.error) {
|
|
54549
|
-
throw new Error(`SignalDock error [${envelope.error.code}]: ${envelope.error.message}`);
|
|
54550
|
-
}
|
|
54551
|
-
return envelope.data;
|
|
54552
|
-
}
|
|
54553
|
-
};
|
|
54554
|
-
|
|
54555
|
-
// packages/core/src/signaldock/factory.ts
|
|
54556
|
-
function createTransport(config2) {
|
|
54557
|
-
if (!config2?.enabled) {
|
|
54558
|
-
return new ClaudeCodeTransport();
|
|
54559
|
-
}
|
|
54560
|
-
const sdConfig = {
|
|
54561
|
-
endpoint: config2.endpoint,
|
|
54562
|
-
agentPrefix: config2.agentPrefix,
|
|
54563
|
-
privacyTier: config2.privacyTier
|
|
54564
|
-
};
|
|
54565
|
-
return new SignalDockTransport(sdConfig);
|
|
54566
|
-
}
|
|
54567
|
-
|
|
54568
56019
|
// packages/core/src/skills/index.ts
|
|
54569
56020
|
var skills_exports = {};
|
|
54570
56021
|
__export(skills_exports, {
|
|
@@ -57601,8 +59052,8 @@ async function initializeSpawnAdapters(manifests) {
|
|
|
57601
59052
|
if (!manifest.capabilities?.supportsSpawn) continue;
|
|
57602
59053
|
if (spawnRegistry.hasAdapterForProvider(manifest.provider)) continue;
|
|
57603
59054
|
try {
|
|
57604
|
-
const { join:
|
|
57605
|
-
const modulePath =
|
|
59055
|
+
const { join: join106 } = await import("node:path");
|
|
59056
|
+
const modulePath = join106(manifest.packagePath, manifest.entryPoint);
|
|
57606
59057
|
const adapterModule = await import(modulePath);
|
|
57607
59058
|
let SpawnProviderClass;
|
|
57608
59059
|
for (const [exportName, exportValue] of Object.entries(adapterModule)) {
|
|
@@ -60359,6 +61810,37 @@ function getSystemHealth(projectRoot, opts) {
|
|
|
60359
61810
|
if (existsSync86(dbPath)) {
|
|
60360
61811
|
checks.push(checkAuditLogAvailability(dbPath));
|
|
60361
61812
|
}
|
|
61813
|
+
const sdDbPath = join90(cleoDir, "signaldock.db");
|
|
61814
|
+
if (existsSync86(sdDbPath)) {
|
|
61815
|
+
try {
|
|
61816
|
+
const sdSize = statSync19(sdDbPath).size;
|
|
61817
|
+
if (sdSize > 0) {
|
|
61818
|
+
checks.push({
|
|
61819
|
+
name: "signaldock_db",
|
|
61820
|
+
status: "pass",
|
|
61821
|
+
message: `signaldock.db: ${sdSize} bytes`
|
|
61822
|
+
});
|
|
61823
|
+
} else {
|
|
61824
|
+
checks.push({
|
|
61825
|
+
name: "signaldock_db",
|
|
61826
|
+
status: "warn",
|
|
61827
|
+
message: "signaldock.db exists but is empty"
|
|
61828
|
+
});
|
|
61829
|
+
}
|
|
61830
|
+
} catch {
|
|
61831
|
+
checks.push({
|
|
61832
|
+
name: "signaldock_db",
|
|
61833
|
+
status: "fail",
|
|
61834
|
+
message: "signaldock.db exists but is not readable"
|
|
61835
|
+
});
|
|
61836
|
+
}
|
|
61837
|
+
} else {
|
|
61838
|
+
checks.push({
|
|
61839
|
+
name: "signaldock_db",
|
|
61840
|
+
status: "warn",
|
|
61841
|
+
message: "signaldock.db not found. Run: cleo init"
|
|
61842
|
+
});
|
|
61843
|
+
}
|
|
60362
61844
|
const configPath = join90(cleoDir, "config.json");
|
|
60363
61845
|
if (existsSync86(configPath)) {
|
|
60364
61846
|
try {
|
|
@@ -61478,6 +62960,7 @@ async function deleteTask(options, cwd, accessor) {
|
|
|
61478
62960
|
// packages/core/src/tasks/find.ts
|
|
61479
62961
|
init_src();
|
|
61480
62962
|
init_errors3();
|
|
62963
|
+
init_mvi_helpers();
|
|
61481
62964
|
init_data_accessor();
|
|
61482
62965
|
function fuzzyScore(query, text3) {
|
|
61483
62966
|
const q = query.toLowerCase();
|
|
@@ -61583,8 +63066,12 @@ async function findTasks(options, cwd, accessor) {
|
|
|
61583
63066
|
const limit = options.limit ?? 20;
|
|
61584
63067
|
const offset = options.offset ?? 0;
|
|
61585
63068
|
results = results.slice(offset, offset + limit);
|
|
63069
|
+
const enrichedResults = results.map((r) => ({
|
|
63070
|
+
...r,
|
|
63071
|
+
_next: taskListItemNext(r.id)
|
|
63072
|
+
}));
|
|
61586
63073
|
return {
|
|
61587
|
-
results,
|
|
63074
|
+
results: enrichedResults,
|
|
61588
63075
|
total,
|
|
61589
63076
|
query: queryStr,
|
|
61590
63077
|
searchType
|
|
@@ -61592,6 +63079,7 @@ async function findTasks(options, cwd, accessor) {
|
|
|
61592
63079
|
}
|
|
61593
63080
|
|
|
61594
63081
|
// packages/core/src/tasks/list.ts
|
|
63082
|
+
init_mvi_helpers();
|
|
61595
63083
|
var TASK_LIST_DEFAULT_LIMIT = 10;
|
|
61596
63084
|
async function listTasks(options = {}, cwd, accessor) {
|
|
61597
63085
|
const dataAccessor = accessor ?? await (await Promise.resolve().then(() => (init_data_accessor(), data_accessor_exports))).getAccessor(cwd);
|
|
@@ -61616,8 +63104,12 @@ async function listTasks(options = {}, cwd, accessor) {
|
|
|
61616
63104
|
offset: page.offset,
|
|
61617
63105
|
hasMore: page.hasMore
|
|
61618
63106
|
} : void 0;
|
|
63107
|
+
const enrichedTasks = tasks2.map((t) => ({
|
|
63108
|
+
...t,
|
|
63109
|
+
_next: taskListItemNext(t.id)
|
|
63110
|
+
}));
|
|
61619
63111
|
return {
|
|
61620
|
-
tasks:
|
|
63112
|
+
tasks: enrichedTasks,
|
|
61621
63113
|
total,
|
|
61622
63114
|
filtered: filteredCount,
|
|
61623
63115
|
page,
|
|
@@ -61628,6 +63120,7 @@ async function listTasks(options = {}, cwd, accessor) {
|
|
|
61628
63120
|
// packages/core/src/tasks/show.ts
|
|
61629
63121
|
init_src();
|
|
61630
63122
|
init_errors3();
|
|
63123
|
+
init_mvi_helpers();
|
|
61631
63124
|
init_data_accessor();
|
|
61632
63125
|
async function showTask(taskId, cwd, accessor) {
|
|
61633
63126
|
if (!taskId) {
|
|
@@ -61686,6 +63179,7 @@ async function showTask(taskId, cwd, accessor) {
|
|
|
61686
63179
|
detail.hierarchyPath = [...ancestors.map((t) => t.id), taskId];
|
|
61687
63180
|
}
|
|
61688
63181
|
}
|
|
63182
|
+
detail._next = taskShowNext(taskId);
|
|
61689
63183
|
return detail;
|
|
61690
63184
|
}
|
|
61691
63185
|
|
|
@@ -65369,13 +66863,13 @@ import { randomUUID as randomUUID6 } from "node:crypto";
|
|
|
65369
66863
|
|
|
65370
66864
|
// packages/core/src/sessions/context-alert.ts
|
|
65371
66865
|
init_paths();
|
|
65372
|
-
import { existsSync as
|
|
65373
|
-
import { join as
|
|
66866
|
+
import { existsSync as existsSync102, readFileSync as readFileSync76, writeFileSync as writeFileSync18 } from "node:fs";
|
|
66867
|
+
import { join as join103 } from "node:path";
|
|
65374
66868
|
function getCurrentSessionId(cwd) {
|
|
65375
66869
|
if (process.env.CLEO_SESSION) return process.env.CLEO_SESSION;
|
|
65376
|
-
const sessionFile =
|
|
65377
|
-
if (
|
|
65378
|
-
return
|
|
66870
|
+
const sessionFile = join103(getCleoDir(cwd), ".current-session");
|
|
66871
|
+
if (existsSync102(sessionFile)) {
|
|
66872
|
+
return readFileSync76(sessionFile, "utf-8").trim() || null;
|
|
65379
66873
|
}
|
|
65380
66874
|
return null;
|
|
65381
66875
|
}
|
|
@@ -65391,7 +66885,7 @@ function drainWarnings() {
|
|
|
65391
66885
|
pendingWarnings.length = 0;
|
|
65392
66886
|
return drained;
|
|
65393
66887
|
}
|
|
65394
|
-
function createCliMeta(operation, mvi = "
|
|
66888
|
+
function createCliMeta(operation, mvi = "minimal") {
|
|
65395
66889
|
const warnings = drainWarnings();
|
|
65396
66890
|
const meta = {
|
|
65397
66891
|
specVersion: "1.2.3",
|
|
@@ -65413,20 +66907,37 @@ function createCliMeta(operation, mvi = "standard") {
|
|
|
65413
66907
|
}
|
|
65414
66908
|
function formatSuccess(data, message, operationOrOpts) {
|
|
65415
66909
|
const opts = typeof operationOrOpts === "string" ? { operation: operationOrOpts } : operationOrOpts ?? {};
|
|
65416
|
-
const
|
|
66910
|
+
const mviLevel = opts.mvi ?? "minimal";
|
|
66911
|
+
const meta = createCliMeta(opts.operation ?? "cli.output", mviLevel);
|
|
66912
|
+
const fullEnvelope = {
|
|
65417
66913
|
$schema: "https://lafs.dev/schemas/v1/envelope.schema.json",
|
|
65418
|
-
_meta:
|
|
66914
|
+
_meta: meta,
|
|
65419
66915
|
success: true,
|
|
65420
66916
|
result: data,
|
|
65421
|
-
...message && { message }
|
|
66917
|
+
...message && { message },
|
|
66918
|
+
...opts.page && { page: opts.page },
|
|
66919
|
+
...opts.extensions && Object.keys(opts.extensions).length > 0 && { _extensions: opts.extensions }
|
|
65422
66920
|
};
|
|
65423
|
-
if (
|
|
65424
|
-
|
|
66921
|
+
if (mviLevel === "full") {
|
|
66922
|
+
return JSON.stringify(fullEnvelope);
|
|
65425
66923
|
}
|
|
65426
|
-
if (
|
|
65427
|
-
|
|
66924
|
+
if (mviLevel === "minimal") {
|
|
66925
|
+
const minimalMeta = {
|
|
66926
|
+
op: meta.operation,
|
|
66927
|
+
rid: meta.requestId
|
|
66928
|
+
};
|
|
66929
|
+
if (meta.sessionId) minimalMeta.sid = meta.sessionId;
|
|
66930
|
+
if (meta.warnings?.length) minimalMeta.w = meta.warnings;
|
|
66931
|
+
const minimal = {
|
|
66932
|
+
ok: true,
|
|
66933
|
+
r: data,
|
|
66934
|
+
_m: minimalMeta
|
|
66935
|
+
};
|
|
66936
|
+
if (message) minimal.msg = message;
|
|
66937
|
+
if (opts.page) minimal.p = opts.page;
|
|
66938
|
+
return JSON.stringify(minimal);
|
|
65428
66939
|
}
|
|
65429
|
-
return JSON.stringify(
|
|
66940
|
+
return JSON.stringify(fullEnvelope);
|
|
65430
66941
|
}
|
|
65431
66942
|
function formatError3(error40, operation) {
|
|
65432
66943
|
const envelope = {
|
|
@@ -65450,13 +66961,13 @@ init_paths();
|
|
|
65450
66961
|
|
|
65451
66962
|
// packages/core/src/project-info.ts
|
|
65452
66963
|
init_paths();
|
|
65453
|
-
import { existsSync as
|
|
66964
|
+
import { existsSync as existsSync103, readFileSync as readFileSync77, writeFileSync as writeFileSync19 } from "node:fs";
|
|
65454
66965
|
import { readFile as readFile18 } from "node:fs/promises";
|
|
65455
|
-
import { join as
|
|
66966
|
+
import { join as join104 } from "node:path";
|
|
65456
66967
|
async function getProjectInfo(cwd) {
|
|
65457
66968
|
const projectRoot = cwd ?? process.cwd();
|
|
65458
66969
|
const cleoDir = getCleoDirAbsolute(projectRoot);
|
|
65459
|
-
const infoPath =
|
|
66970
|
+
const infoPath = join104(cleoDir, "project-info.json");
|
|
65460
66971
|
const raw = await readFile18(infoPath, "utf-8");
|
|
65461
66972
|
const data = JSON.parse(raw);
|
|
65462
66973
|
if (typeof data.projectHash !== "string" || data.projectHash.length === 0) {
|
|
@@ -65474,10 +66985,10 @@ async function getProjectInfo(cwd) {
|
|
|
65474
66985
|
function getProjectInfoSync(cwd) {
|
|
65475
66986
|
const projectRoot = cwd ?? process.cwd();
|
|
65476
66987
|
const cleoDir = getCleoDirAbsolute(projectRoot);
|
|
65477
|
-
const infoPath =
|
|
65478
|
-
if (!
|
|
66988
|
+
const infoPath = join104(cleoDir, "project-info.json");
|
|
66989
|
+
if (!existsSync103(infoPath)) return null;
|
|
65479
66990
|
try {
|
|
65480
|
-
const raw =
|
|
66991
|
+
const raw = readFileSync77(infoPath, "utf-8");
|
|
65481
66992
|
const data = JSON.parse(raw);
|
|
65482
66993
|
if (typeof data.projectHash !== "string" || data.projectHash.length === 0) {
|
|
65483
66994
|
return null;
|
|
@@ -65496,9 +67007,9 @@ function getProjectInfoSync(cwd) {
|
|
|
65496
67007
|
}
|
|
65497
67008
|
function updateProjectName(cwd, name2) {
|
|
65498
67009
|
const cleoDir = getCleoDirAbsolute(cwd);
|
|
65499
|
-
const infoPath =
|
|
65500
|
-
if (!
|
|
65501
|
-
const data = JSON.parse(
|
|
67010
|
+
const infoPath = join104(cleoDir, "project-info.json");
|
|
67011
|
+
if (!existsSync103(infoPath)) return;
|
|
67012
|
+
const data = JSON.parse(readFileSync77(infoPath, "utf-8"));
|
|
65502
67013
|
data.projectName = name2;
|
|
65503
67014
|
data.lastUpdated = (/* @__PURE__ */ new Date()).toISOString();
|
|
65504
67015
|
writeFileSync19(infoPath, `${JSON.stringify(data, null, 2)}
|
|
@@ -65512,10 +67023,10 @@ init_adapters();
|
|
|
65512
67023
|
// packages/core/src/bootstrap.ts
|
|
65513
67024
|
init_paths();
|
|
65514
67025
|
init_scaffold();
|
|
65515
|
-
import { existsSync as
|
|
67026
|
+
import { existsSync as existsSync104, readFileSync as readFileSync78 } from "node:fs";
|
|
65516
67027
|
import { mkdir as mkdir17, readFile as readFile19, writeFile as writeFile12 } from "node:fs/promises";
|
|
65517
67028
|
import { homedir as homedir6 } from "node:os";
|
|
65518
|
-
import { join as
|
|
67029
|
+
import { join as join105 } from "node:path";
|
|
65519
67030
|
async function bootstrapGlobalCleo(options) {
|
|
65520
67031
|
const ctx = {
|
|
65521
67032
|
created: [],
|
|
@@ -65537,8 +67048,8 @@ async function bootstrapGlobalCleo(options) {
|
|
|
65537
67048
|
}
|
|
65538
67049
|
async function writeTemplateTo(content, destPath, isDryRun) {
|
|
65539
67050
|
if (isDryRun) return false;
|
|
65540
|
-
const { dirname:
|
|
65541
|
-
await mkdir17(
|
|
67051
|
+
const { dirname: dirname21 } = await import("node:path");
|
|
67052
|
+
await mkdir17(dirname21(destPath), { recursive: true });
|
|
65542
67053
|
await writeFile12(destPath, content);
|
|
65543
67054
|
return true;
|
|
65544
67055
|
}
|
|
@@ -65550,9 +67061,9 @@ async function ensureGlobalTemplatesBootstrap(ctx, packageRootOverride) {
|
|
|
65550
67061
|
let templateContent = null;
|
|
65551
67062
|
try {
|
|
65552
67063
|
const pkgRoot = packageRootOverride ?? getPackageRoot();
|
|
65553
|
-
const templatePath =
|
|
65554
|
-
if (
|
|
65555
|
-
templateContent =
|
|
67064
|
+
const templatePath = join105(pkgRoot, "templates", "CLEO-INJECTION.md");
|
|
67065
|
+
if (existsSync104(templatePath)) {
|
|
67066
|
+
templateContent = readFileSync78(templatePath, "utf-8");
|
|
65556
67067
|
}
|
|
65557
67068
|
} catch {
|
|
65558
67069
|
}
|
|
@@ -65569,15 +67080,15 @@ async function ensureGlobalTemplatesBootstrap(ctx, packageRootOverride) {
|
|
|
65569
67080
|
ctx.warnings.push("Could not refresh CLEO-INJECTION.md template");
|
|
65570
67081
|
return;
|
|
65571
67082
|
}
|
|
65572
|
-
const xdgDest =
|
|
67083
|
+
const xdgDest = join105(globalTemplatesDir, "CLEO-INJECTION.md");
|
|
65573
67084
|
const xdgWritten = await writeTemplateTo(templateContent, xdgDest, ctx.isDryRun);
|
|
65574
67085
|
ctx.created.push(
|
|
65575
67086
|
`${getCleoTemplatesTildePath()}/CLEO-INJECTION.md (${xdgWritten ? "refreshed" : "would refresh"})`
|
|
65576
67087
|
);
|
|
65577
67088
|
const home = homedir6();
|
|
65578
|
-
const legacyTemplatesDir =
|
|
65579
|
-
if (legacyTemplatesDir !== globalTemplatesDir &&
|
|
65580
|
-
const legacyDest =
|
|
67089
|
+
const legacyTemplatesDir = join105(home, ".cleo", "templates");
|
|
67090
|
+
if (legacyTemplatesDir !== globalTemplatesDir && existsSync104(join105(home, ".cleo"))) {
|
|
67091
|
+
const legacyDest = join105(legacyTemplatesDir, "CLEO-INJECTION.md");
|
|
65581
67092
|
const legacyWritten = await writeTemplateTo(templateContent, legacyDest, ctx.isDryRun);
|
|
65582
67093
|
if (legacyWritten) {
|
|
65583
67094
|
ctx.created.push("~/.cleo/templates/CLEO-INJECTION.md (legacy sync)");
|
|
@@ -65596,12 +67107,12 @@ function sanitizeCaampFile(content) {
|
|
|
65596
67107
|
}
|
|
65597
67108
|
async function injectAgentsHub(ctx) {
|
|
65598
67109
|
const globalAgentsDir = getAgentsHome();
|
|
65599
|
-
const globalAgentsMd =
|
|
67110
|
+
const globalAgentsMd = join105(globalAgentsDir, "AGENTS.md");
|
|
65600
67111
|
try {
|
|
65601
67112
|
const { inject: inject2, getInstalledProviders: getInstalledProviders3, injectAll: injectAll2, buildInjectionContent } = await import("@cleocode/caamp");
|
|
65602
67113
|
if (!ctx.isDryRun) {
|
|
65603
67114
|
await mkdir17(globalAgentsDir, { recursive: true });
|
|
65604
|
-
if (
|
|
67115
|
+
if (existsSync104(globalAgentsMd)) {
|
|
65605
67116
|
const content = await readFile19(globalAgentsMd, "utf8");
|
|
65606
67117
|
const stripped = content.replace(
|
|
65607
67118
|
/\n?<!-- CLEO:START[^>]*-->[\s\S]*?<!-- CLEO:END -->\n?/g,
|
|
@@ -65636,8 +67147,8 @@ async function injectAgentsHub(ctx) {
|
|
|
65636
67147
|
});
|
|
65637
67148
|
if (!ctx.isDryRun) {
|
|
65638
67149
|
for (const provider of providers) {
|
|
65639
|
-
const instructFilePath =
|
|
65640
|
-
if (
|
|
67150
|
+
const instructFilePath = join105(provider.pathGlobal, provider.instructFile);
|
|
67151
|
+
if (existsSync104(instructFilePath)) {
|
|
65641
67152
|
const fileContent = await readFile19(instructFilePath, "utf8");
|
|
65642
67153
|
const stripped = fileContent.replace(
|
|
65643
67154
|
/\n?<!-- CLEO:START[^>]*-->[\s\S]*?<!-- CLEO:END -->\n?/g,
|
|
@@ -65655,7 +67166,7 @@ async function injectAgentsHub(ctx) {
|
|
|
65655
67166
|
}
|
|
65656
67167
|
} else {
|
|
65657
67168
|
for (const p of providers) {
|
|
65658
|
-
const displayPath =
|
|
67169
|
+
const displayPath = join105(p.pathGlobal, p.instructFile).replace(homedir6(), "~");
|
|
65659
67170
|
ctx.created.push(`${displayPath} (would update CAAMP block)`);
|
|
65660
67171
|
}
|
|
65661
67172
|
}
|
|
@@ -65760,17 +67271,17 @@ async function installProviderAdapters(ctx, packageRootOverride) {
|
|
|
65760
67271
|
async function verifyBootstrapHealth(ctx) {
|
|
65761
67272
|
if (ctx.isDryRun) return;
|
|
65762
67273
|
try {
|
|
65763
|
-
const xdgTemplatePath =
|
|
65764
|
-
const agentsMd =
|
|
65765
|
-
if (!
|
|
67274
|
+
const xdgTemplatePath = join105(getCleoTemplatesDir(), "CLEO-INJECTION.md");
|
|
67275
|
+
const agentsMd = join105(getAgentsHome(), "AGENTS.md");
|
|
67276
|
+
if (!existsSync104(xdgTemplatePath)) {
|
|
65766
67277
|
ctx.warnings.push("Health: XDG template missing after bootstrap");
|
|
65767
67278
|
return;
|
|
65768
67279
|
}
|
|
65769
67280
|
const xdgContent = await readFile19(xdgTemplatePath, "utf8");
|
|
65770
67281
|
const xdgVersion = xdgContent.match(/^Version:\s*(.+)$/m)?.[1]?.trim();
|
|
65771
67282
|
const home = homedir6();
|
|
65772
|
-
const legacyTemplatePath =
|
|
65773
|
-
if (
|
|
67283
|
+
const legacyTemplatePath = join105(home, ".cleo", "templates", "CLEO-INJECTION.md");
|
|
67284
|
+
if (existsSync104(legacyTemplatePath)) {
|
|
65774
67285
|
const legacyContent = await readFile19(legacyTemplatePath, "utf8");
|
|
65775
67286
|
const legacyVersion = legacyContent.match(/^Version:\s*(.+)$/m)?.[1]?.trim();
|
|
65776
67287
|
if (legacyVersion !== xdgVersion) {
|
|
@@ -65779,7 +67290,7 @@ async function verifyBootstrapHealth(ctx) {
|
|
|
65779
67290
|
);
|
|
65780
67291
|
}
|
|
65781
67292
|
}
|
|
65782
|
-
if (
|
|
67293
|
+
if (existsSync104(agentsMd)) {
|
|
65783
67294
|
const agentsContent = await readFile19(agentsMd, "utf8");
|
|
65784
67295
|
const expectedRef = `@${getCleoTemplatesTildePath()}/CLEO-INJECTION.md`;
|
|
65785
67296
|
if (!agentsContent.includes(expectedRef)) {
|
|
@@ -66248,6 +67759,7 @@ var Cleo = class _Cleo {
|
|
|
66248
67759
|
init_registry();
|
|
66249
67760
|
init_brain_retrieval();
|
|
66250
67761
|
init_brain_search();
|
|
67762
|
+
init_mvi_helpers();
|
|
66251
67763
|
init_sessions();
|
|
66252
67764
|
init_task_work();
|
|
66253
67765
|
init_add();
|
|
@@ -66316,6 +67828,7 @@ export {
|
|
|
66316
67828
|
compareSemver,
|
|
66317
67829
|
completeTask,
|
|
66318
67830
|
compliance_exports as compliance,
|
|
67831
|
+
conduit_exports as conduit,
|
|
66319
67832
|
context_exports as context,
|
|
66320
67833
|
hooks_exports as coreHooks,
|
|
66321
67834
|
mcp_exports as coreMcp,
|
|
@@ -66410,6 +67923,7 @@ export {
|
|
|
66410
67923
|
loadConfig,
|
|
66411
67924
|
manifestStatusSchema,
|
|
66412
67925
|
memory_exports as memory,
|
|
67926
|
+
memoryFindHitNext,
|
|
66413
67927
|
metrics_exports as metrics,
|
|
66414
67928
|
migration_exports as migration,
|
|
66415
67929
|
nexus_exports as nexus,
|
|
@@ -66452,13 +67966,14 @@ export {
|
|
|
66452
67966
|
selectTaskSchema,
|
|
66453
67967
|
sequence_exports as sequence,
|
|
66454
67968
|
serializeSession,
|
|
67969
|
+
sessionListItemNext,
|
|
67970
|
+
sessionStartNext,
|
|
66455
67971
|
sessionStatus,
|
|
66456
67972
|
sessionStatusSchema,
|
|
66457
67973
|
sessions_exports as sessions,
|
|
66458
67974
|
setConfigValue,
|
|
66459
67975
|
sha256,
|
|
66460
67976
|
showTask,
|
|
66461
|
-
signaldock_exports as signaldock,
|
|
66462
67977
|
skills_exports as skills,
|
|
66463
67978
|
snapshot_exports as snapshot,
|
|
66464
67979
|
spawn_exports as spawn,
|
|
@@ -66469,8 +67984,10 @@ export {
|
|
|
66469
67984
|
stopTask,
|
|
66470
67985
|
syncDirectionSchema,
|
|
66471
67986
|
system_exports as system,
|
|
67987
|
+
taskListItemNext,
|
|
66472
67988
|
taskPrioritySchema,
|
|
66473
67989
|
taskRelationTypeSchema,
|
|
67990
|
+
taskShowNext,
|
|
66474
67991
|
taskSizeSchema,
|
|
66475
67992
|
taskStatusSchema,
|
|
66476
67993
|
taskTypeSchema,
|
|
@@ -66485,6 +68002,7 @@ export {
|
|
|
66485
68002
|
updateProjectName,
|
|
66486
68003
|
updateTask,
|
|
66487
68004
|
validateAgainstSchema,
|
|
66488
|
-
validation_exports as validation
|
|
68005
|
+
validation_exports as validation,
|
|
68006
|
+
wasm_exports as wasm
|
|
66489
68007
|
};
|
|
66490
68008
|
//# sourceMappingURL=index.js.map
|