principles-disciple 1.127.0 → 1.129.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/archive-impl.d.ts +18 -0
- package/dist/commands/archive-impl.js +105 -0
- package/dist/commands/capabilities.d.ts +3 -0
- package/dist/commands/capabilities.js +76 -0
- package/dist/commands/context.d.ts +5 -0
- package/{src/commands/context.ts → dist/commands/context.js} +34 -83
- package/dist/commands/disable-impl.d.ts +22 -0
- package/dist/commands/disable-impl.js +118 -0
- package/dist/commands/evolution-status.d.ts +4 -0
- package/dist/commands/evolution-status.js +187 -0
- package/dist/commands/export.d.ts +2 -0
- package/dist/commands/export.js +53 -0
- package/dist/commands/focus.d.ts +14 -0
- package/dist/commands/focus.js +443 -0
- package/dist/commands/pain.d.ts +6 -0
- package/{src/commands/pain.ts → dist/commands/pain.js} +137 -188
- package/dist/commands/principle-rollback.d.ts +4 -0
- package/dist/commands/principle-rollback.js +26 -0
- package/dist/commands/promote-impl.d.ts +22 -0
- package/dist/commands/promote-impl.js +194 -0
- package/dist/commands/rollback-impl.d.ts +32 -0
- package/dist/commands/rollback-impl.js +180 -0
- package/dist/commands/rollback.d.ts +19 -0
- package/{src/commands/rollback.ts → dist/commands/rollback.js} +10 -53
- package/dist/commands/samples.d.ts +2 -0
- package/dist/commands/samples.js +58 -0
- package/dist/commands/strategy.d.ts +2 -0
- package/dist/commands/strategy.js +16 -0
- package/dist/commands/thinking-os.d.ts +2 -0
- package/{src/commands/thinking-os.ts → dist/commands/thinking-os.js} +35 -58
- package/dist/commands/workflow-debug.d.ts +6 -0
- package/{src/commands/workflow-debug.ts → dist/commands/workflow-debug.js} +13 -33
- package/dist/config/defaults/runtime.d.ts +58 -0
- package/{src/config/defaults/runtime.ts → dist/config/defaults/runtime.js} +4 -41
- package/dist/config/errors.d.ts +86 -0
- package/dist/config/errors.js +107 -0
- package/{src/config/index.ts → dist/config/index.d.ts} +1 -2
- package/dist/config/index.js +7 -0
- package/dist/constants/diagnostician.d.ts +12 -0
- package/{src/constants/diagnostician.ts → dist/constants/diagnostician.js} +0 -1
- package/dist/constants/tools.d.ts +17 -0
- package/dist/constants/tools.js +53 -0
- package/dist/core/__tests__/focus-history.test.d.ts +1 -0
- package/dist/core/__tests__/focus-history.test.js +160 -0
- package/dist/core/bootstrap-rules.d.ts +50 -0
- package/dist/core/bootstrap-rules.js +187 -0
- package/dist/core/code-implementation-storage.d.ts +71 -0
- package/dist/core/code-implementation-storage.js +139 -0
- package/dist/core/config-health.d.ts +27 -0
- package/dist/core/config-health.js +60 -0
- package/dist/core/config-service.d.ts +15 -0
- package/{src/core/config-service.ts → dist/core/config-service.js} +4 -7
- package/dist/core/config.d.ts +111 -0
- package/{src/core/config.ts → dist/core/config.js} +46 -146
- package/dist/core/control-ui-db.d.ts +106 -0
- package/dist/core/control-ui-db.js +309 -0
- package/dist/core/correction-cue-learner.d.ts +33 -0
- package/dist/core/correction-cue-learner.js +184 -0
- package/dist/core/correction-types.d.ts +3 -0
- package/dist/core/correction-types.js +1 -0
- package/dist/core/detection-funnel.d.ts +33 -0
- package/{src/core/detection-funnel.ts → dist/core/detection-funnel.js} +17 -37
- package/dist/core/detection-service.d.ts +15 -0
- package/{src/core/detection-service.ts → dist/core/detection-service.js} +4 -7
- package/dist/core/dictionary-service.d.ts +15 -0
- package/{src/core/dictionary-service.ts → dist/core/dictionary-service.js} +4 -7
- package/dist/core/dictionary.d.ts +38 -0
- package/{src/core/dictionary.ts → dist/core/dictionary.js} +33 -59
- package/dist/core/empathy-keyword-matcher.d.ts +5 -0
- package/dist/core/empathy-keyword-matcher.js +40 -0
- package/dist/core/empathy-types.d.ts +2 -0
- package/dist/core/empathy-types.js +1 -0
- package/dist/core/event-log.d.ts +90 -0
- package/dist/core/event-log.js +702 -0
- package/dist/core/evolution-engine.d.ts +119 -0
- package/dist/core/evolution-engine.js +460 -0
- package/dist/core/evolution-logger.d.ts +137 -0
- package/dist/core/evolution-logger.js +261 -0
- package/dist/core/evolution-migration.d.ts +5 -0
- package/dist/core/evolution-migration.js +65 -0
- package/dist/core/evolution-reducer.d.ts +124 -0
- package/dist/core/evolution-reducer.js +730 -0
- package/dist/core/evolution-types.d.ts +50 -0
- package/dist/core/evolution-types.js +11 -0
- package/dist/core/external-training-contract.d.ts +276 -0
- package/dist/core/external-training-contract.js +269 -0
- package/dist/core/file-store.d.ts +41 -0
- package/dist/core/file-store.js +46 -0
- package/dist/core/focus-history.d.ts +50 -0
- package/dist/core/focus-history.js +574 -0
- package/dist/core/hygiene/tracker.d.ts +22 -0
- package/dist/core/hygiene/tracker.js +110 -0
- package/dist/core/init.d.ts +30 -0
- package/{src/core/init.ts → dist/core/init.js} +87 -118
- package/dist/core/local-worker-routing.d.ts +124 -0
- package/dist/core/local-worker-routing.js +216 -0
- package/dist/core/migration.d.ts +6 -0
- package/{src/core/migration.ts → dist/core/migration.js} +10 -18
- package/dist/core/model-deployment-registry.d.ts +218 -0
- package/dist/core/model-deployment-registry.js +502 -0
- package/dist/core/model-training-registry.d.ts +295 -0
- package/dist/core/model-training-registry.js +474 -0
- package/dist/core/observability.d.ts +40 -0
- package/dist/core/observability.js +164 -0
- package/dist/core/pain-diagnostic-gate.d.ts +36 -0
- package/dist/core/pain-diagnostic-gate.js +105 -0
- package/dist/core/pain.d.ts +87 -0
- package/dist/core/pain.js +223 -0
- package/dist/core/path-resolver.d.ts +60 -0
- package/{src/core/path-resolver.ts → dist/core/path-resolver.js} +41 -131
- package/dist/core/paths.d.ts +60 -0
- package/{src/core/paths.ts → dist/core/paths.js} +4 -13
- package/dist/core/pd-config-loader.d.ts +96 -0
- package/dist/core/pd-config-loader.js +307 -0
- package/dist/core/pd-task-reconciler.d.ts +89 -0
- package/dist/core/pd-task-reconciler.js +262 -0
- package/dist/core/pd-task-service.d.ts +2 -0
- package/dist/core/pd-task-service.js +32 -0
- package/dist/core/pd-task-store.d.ts +5 -0
- package/dist/core/pd-task-store.js +62 -0
- package/dist/core/pd-task-types.d.ts +8 -0
- package/dist/core/pd-task-types.js +2 -0
- package/dist/core/principle-compiler/__tests__/compiler-replay-gate.test.d.ts +1 -0
- package/dist/core/principle-compiler/__tests__/compiler-replay-gate.test.js +132 -0
- package/dist/core/principle-compiler/code-validator.d.ts +14 -0
- package/dist/core/principle-compiler/code-validator.js +86 -0
- package/dist/core/principle-compiler/compiler.d.ts +45 -0
- package/dist/core/principle-compiler/compiler.js +287 -0
- package/{src/core/principle-compiler/index.ts → dist/core/principle-compiler/index.d.ts} +0 -1
- package/dist/core/principle-compiler/index.js +10 -0
- package/dist/core/principle-compiler/ledger-registrar.d.ts +28 -0
- package/dist/core/principle-compiler/ledger-registrar.js +95 -0
- package/{src/core/principle-compiler/template-generator.ts → dist/core/principle-compiler/template-generator.d.ts} +0 -1
- package/dist/core/principle-compiler/template-generator.js +7 -0
- package/{src/core/principle-injection.ts → dist/core/principle-injection.d.ts} +1 -7
- package/dist/core/principle-injection.js +10 -0
- package/dist/core/principle-internalization/filesystem-lifecycle-datasource.d.ts +15 -0
- package/dist/core/principle-internalization/filesystem-lifecycle-datasource.js +34 -0
- package/dist/core/principle-internalization/lifecycle-read-model.d.ts +17 -0
- package/{src/core/principle-internalization/lifecycle-read-model.ts → dist/core/principle-internalization/lifecycle-read-model.js} +2 -21
- package/dist/core/principle-internalization/lifecycle-refresh.d.ts +2 -0
- package/dist/core/principle-internalization/lifecycle-refresh.js +4 -0
- package/dist/core/principle-internalization/principle-lifecycle-service.d.ts +28 -0
- package/dist/core/principle-internalization/principle-lifecycle-service.js +89 -0
- package/dist/core/principle-training-state.d.ts +47 -0
- package/dist/core/principle-training-state.js +113 -0
- package/dist/core/principle-tree-ledger-adapter.d.ts +32 -0
- package/dist/core/principle-tree-ledger-adapter.js +125 -0
- package/dist/core/principle-tree-ledger.d.ts +82 -0
- package/dist/core/principle-tree-ledger.js +527 -0
- package/dist/core/profile.d.ts +62 -0
- package/dist/core/profile.js +211 -0
- package/dist/core/promotion-gate.d.ts +243 -0
- package/dist/core/promotion-gate.js +554 -0
- package/dist/core/reflection/reflection-context.d.ts +31 -0
- package/dist/core/reflection/reflection-context.js +91 -0
- package/dist/core/replay-engine.d.ts +12 -0
- package/dist/core/replay-engine.js +82 -0
- package/dist/core/risk-calculator.d.ts +22 -0
- package/{src/core/risk-calculator.ts → dist/core/risk-calculator.js} +19 -49
- package/{src/core/rule-host-helpers.ts → dist/core/rule-host-helpers.d.ts} +0 -1
- package/dist/core/rule-host-helpers.js +7 -0
- package/{src/core/rule-host-types.ts → dist/core/rule-host-types.d.ts} +1 -8
- package/dist/core/rule-host-types.js +7 -0
- package/dist/core/rule-host.d.ts +86 -0
- package/dist/core/rule-host.js +311 -0
- package/dist/core/rule-implementation-runtime.d.ts +18 -0
- package/dist/core/rule-implementation-runtime.js +112 -0
- package/dist/core/runtime-v2-prompt-activation-reader.d.ts +22 -0
- package/dist/core/runtime-v2-prompt-activation-reader.js +99 -0
- package/{src/core/schema/db-types.ts → dist/core/schema/db-types.d.ts} +4 -9
- package/dist/core/schema/db-types.js +5 -0
- package/{src/core/schema/index.ts → dist/core/schema/index.d.ts} +1 -10
- package/dist/core/schema/index.js +15 -0
- package/dist/core/schema/migration-runner.d.ts +53 -0
- package/dist/core/schema/migration-runner.js +170 -0
- package/dist/core/schema/migrations/001-init-trajectory.d.ts +6 -0
- package/{src/core/schema/migrations/001-init-trajectory.ts → dist/core/schema/migrations/001-init-trajectory.js} +38 -56
- package/dist/core/schema/migrations/002-init-central.d.ts +5 -0
- package/{src/core/schema/migrations/002-init-central.ts → dist/core/schema/migrations/002-init-central.js} +27 -41
- package/dist/core/schema/migrations/003-init-workflow.d.ts +5 -0
- package/{src/core/schema/migrations/003-init-workflow.ts → dist/core/schema/migrations/003-init-workflow.js} +16 -21
- package/dist/core/schema/migrations/004-add-thinking-and-gfi.d.ts +8 -0
- package/{src/core/schema/migrations/004-add-thinking-and-gfi.ts → dist/core/schema/migrations/004-add-thinking-and-gfi.js} +19 -27
- package/{src/core/schema/migrations/index.ts → dist/core/schema/migrations/index.d.ts} +1 -16
- package/dist/core/schema/migrations/index.js +27 -0
- package/dist/core/schema/schema-definitions.d.ts +46 -0
- package/{src/core/schema/schema-definitions.ts → dist/core/schema/schema-definitions.js} +242 -291
- package/dist/core/session-tracker.d.ts +119 -0
- package/{src/core/session-tracker.ts → dist/core/session-tracker.js} +96 -239
- package/dist/core/shadow-observation-registry.d.ts +217 -0
- package/dist/core/shadow-observation-registry.js +280 -0
- package/dist/core/surface-guard.d.ts +31 -0
- package/dist/core/surface-guard.js +131 -0
- package/dist/core/system-logger.d.ts +8 -0
- package/{src/core/system-logger.ts → dist/core/system-logger.js} +20 -34
- package/dist/core/thinking-models.d.ts +70 -0
- package/dist/core/thinking-models.js +300 -0
- package/dist/core/thinking-os-parser.d.ts +35 -0
- package/dist/core/thinking-os-parser.js +123 -0
- package/dist/core/trajectory-types.d.ts +220 -0
- package/dist/core/trajectory-types.js +8 -0
- package/dist/core/trajectory.d.ts +242 -0
- package/dist/core/trajectory.js +1500 -0
- package/dist/core/workflow-funnel-loader.d.ts +72 -0
- package/dist/core/workflow-funnel-loader.js +135 -0
- package/dist/core/workspace-context.d.ts +111 -0
- package/{src/core/workspace-context.ts → dist/core/workspace-context.js} +50 -105
- package/dist/core/workspace-dir-validation.d.ts +11 -0
- package/dist/core/workspace-dir-validation.js +37 -0
- package/dist/core/workspace-guidance-migrator.d.ts +12 -0
- package/{src/core/workspace-guidance-migrator.ts → dist/core/workspace-guidance-migrator.js} +21 -59
- package/dist/hooks/after-tool-call-helpers.d.ts +89 -0
- package/dist/hooks/after-tool-call-helpers.js +475 -0
- package/dist/hooks/after-tool-call-types.d.ts +86 -0
- package/dist/hooks/after-tool-call-types.js +13 -0
- package/dist/hooks/gate-block-helper.d.ts +44 -0
- package/dist/hooks/gate-block-helper.js +209 -0
- package/dist/hooks/gate.d.ts +16 -0
- package/dist/hooks/gate.js +381 -0
- package/dist/hooks/lifecycle.d.ts +5 -0
- package/dist/hooks/lifecycle.js +287 -0
- package/dist/hooks/llm.d.ts +13 -0
- package/{src/hooks/llm.ts → dist/hooks/llm.js} +63 -117
- package/dist/hooks/message-sanitize.d.ts +24 -0
- package/dist/hooks/message-sanitize.js +77 -0
- package/dist/hooks/pain.d.ts +33 -0
- package/dist/hooks/pain.js +294 -0
- package/dist/hooks/prompt.d.ts +52 -0
- package/dist/hooks/prompt.js +930 -0
- package/dist/hooks/raw-observation-adapter.d.ts +57 -0
- package/dist/hooks/raw-observation-adapter.js +170 -0
- package/dist/hooks/raw-observation-types.d.ts +62 -0
- package/dist/hooks/raw-observation-types.js +15 -0
- package/dist/hooks/subagent.d.ts +9 -0
- package/{src/hooks/subagent.ts → dist/hooks/subagent.js} +20 -60
- package/dist/hooks/trajectory-collector.d.ts +25 -0
- package/dist/hooks/trajectory-collector.js +225 -0
- package/dist/hooks/trajectory-evidence.d.ts +11 -0
- package/dist/hooks/trajectory-evidence.js +88 -0
- package/dist/hooks/triage-adapter.d.ts +58 -0
- package/{src/hooks/triage-adapter.ts → dist/hooks/triage-adapter.js} +36 -68
- package/dist/hooks/trigger-cooldown-tracker.d.ts +30 -0
- package/dist/hooks/trigger-cooldown-tracker.js +55 -0
- package/dist/i18n/commands.d.ts +26 -0
- package/dist/i18n/commands.js +96 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +829 -0
- package/dist/openclaw-sdk.d.ts +293 -0
- package/dist/openclaw-sdk.js +4 -0
- package/dist/service/central-database.d.ts +138 -0
- package/dist/service/central-database.js +731 -0
- package/dist/service/central-sync-service.d.ts +8 -0
- package/dist/service/central-sync-service.js +71 -0
- package/dist/service/correction-observer-service.d.ts +19 -0
- package/{src/service/correction-observer-service.ts → dist/service/correction-observer-service.js} +36 -76
- package/dist/service/evolution-dedup.d.ts +27 -0
- package/{src/service/evolution-dedup.ts → dist/service/evolution-dedup.js} +11 -31
- package/{src/service/evolution-queue-migration.ts → dist/service/evolution-queue-migration.d.ts} +15 -62
- package/dist/service/evolution-queue-migration.js +53 -0
- package/dist/service/evolution-worker.d.ts +103 -0
- package/{src/service/evolution-worker.ts → dist/service/evolution-worker.js} +169 -331
- package/dist/service/internalization-auto-consumer-service.d.ts +8 -0
- package/dist/service/internalization-auto-consumer-service.js +322 -0
- package/dist/service/keyword-optimization-service.d.ts +44 -0
- package/dist/service/keyword-optimization-service.js +137 -0
- package/dist/service/phase3-input-filter.d.ts +73 -0
- package/dist/service/phase3-input-filter.js +172 -0
- package/dist/service/queue-io.d.ts +30 -0
- package/dist/service/queue-io.js +79 -0
- package/{src/service/queue-migration.ts → dist/service/queue-migration.d.ts} +6 -45
- package/dist/service/queue-migration.js +56 -0
- package/dist/service/runtime-summary-service.d.ts +158 -0
- package/dist/service/runtime-summary-service.js +636 -0
- package/dist/service/subagent-workflow/subagent-error-utils.d.ts +8 -0
- package/{src/service/subagent-workflow/subagent-error-utils.ts → dist/service/subagent-workflow/subagent-error-utils.js} +3 -6
- package/{src/service/subagent-workflow/types.ts → dist/service/subagent-workflow/types.d.ts} +17 -80
- package/dist/service/subagent-workflow/types.js +11 -0
- package/dist/service/subagent-workflow/workflow-store.d.ts +30 -0
- package/{src/service/subagent-workflow/workflow-store.ts → dist/service/subagent-workflow/workflow-store.js} +43 -108
- package/dist/service/trajectory-service.d.ts +2 -0
- package/dist/service/trajectory-service.js +16 -0
- package/dist/service/workflow-watchdog.d.ts +23 -0
- package/dist/service/workflow-watchdog.js +103 -0
- package/dist/types/event-types.d.ts +2 -0
- package/dist/types/event-types.js +1 -0
- package/dist/types/hygiene-types.d.ts +2 -0
- package/dist/types/hygiene-types.js +1 -0
- package/{src/types/principle-tree-schema.ts → dist/types/principle-tree-schema.d.ts} +2 -25
- package/dist/types/principle-tree-schema.js +24 -0
- package/dist/types/queue.d.ts +2 -0
- package/dist/types/queue.js +1 -0
- package/dist/types/runtime-summary.d.ts +1 -0
- package/dist/types/runtime-summary.js +1 -0
- package/dist/types.d.ts +33 -0
- package/dist/types.js +16 -0
- package/dist/utils/file-lock.d.ts +68 -0
- package/dist/utils/file-lock.js +310 -0
- package/dist/utils/hashing.d.ts +9 -0
- package/{src/utils/hashing.ts → dist/utils/hashing.js} +4 -6
- package/dist/utils/io.d.ts +11 -0
- package/dist/utils/io.js +174 -0
- package/dist/utils/node-vm-polyfill.d.ts +9 -0
- package/{src/utils/node-vm-polyfill.ts → dist/utils/node-vm-polyfill.js} +0 -2
- package/dist/utils/retry.d.ts +210 -0
- package/dist/utils/retry.js +375 -0
- package/dist/utils/session-key.d.ts +10 -0
- package/{src/utils/session-key.ts → dist/utils/session-key.js} +5 -4
- package/dist/utils/shadow-fingerprint.d.ts +16 -0
- package/dist/utils/shadow-fingerprint.js +34 -0
- package/dist/utils/workspace-resolver.d.ts +82 -0
- package/dist/utils/workspace-resolver.js +288 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +8 -2
- package/templates/workspace/.principles/DECISION_POLICY.json +44 -0
- package/templates/workspace/.principles/PRINCIPLES.md +20 -0
- package/templates/workspace/.principles/PROFILE.json +54 -0
- package/templates/workspace/.principles/PROFILE.schema.json +56 -0
- package/templates/workspace/.principles/THINKING_OS.md +65 -0
- package/templates/workspace/.principles/THINKING_OS_ARCHIVE.md +7 -0
- package/templates/workspace/.principles/THINKING_OS_CANDIDATES.md +9 -0
- package/templates/workspace/.principles/models/_INDEX.md +27 -0
- package/templates/workspace/.principles/models/first_principles.md +62 -0
- package/templates/workspace/.principles/models/marketing_4p.md +52 -0
- package/templates/workspace/.principles/models/porter_five.md +63 -0
- package/templates/workspace/.principles/models/swot.md +60 -0
- package/templates/workspace/.principles/models/user_story_map.md +63 -0
- package/templates/workspace/.state/WORKBOARD.json +4 -0
- package/.dependency-cruiser.json +0 -19
- package/ADVANCED_CONFIG_ZH.md +0 -93
- package/AGENT_INSTALL.md +0 -173
- package/AGENT_INSTALL_EN.md +0 -173
- package/CHANGELOG.md +0 -26
- package/INSTALL.md +0 -254
- package/SKILL.md +0 -63
- package/esbuild.config.js +0 -104
- package/src/commands/archive-impl.ts +0 -147
- package/src/commands/capabilities.ts +0 -89
- package/src/commands/disable-impl.ts +0 -159
- package/src/commands/evolution-status.ts +0 -247
- package/src/commands/export.ts +0 -59
- package/src/commands/focus.ts +0 -523
- package/src/commands/principle-rollback.ts +0 -32
- package/src/commands/promote-impl.ts +0 -254
- package/src/commands/rollback-impl.ts +0 -246
- package/src/commands/samples.ts +0 -65
- package/src/commands/strategy.ts +0 -21
- package/src/config/errors.ts +0 -180
- package/src/constants/tools.ts +0 -62
- package/src/core/AGENTS.md +0 -34
- package/src/core/__tests__/focus-history.test.ts +0 -210
- package/src/core/bootstrap-rules.ts +0 -216
- package/src/core/code-implementation-storage.ts +0 -213
- package/src/core/config-health.ts +0 -72
- package/src/core/control-ui-db.ts +0 -454
- package/src/core/correction-cue-learner.ts +0 -239
- package/src/core/correction-types.ts +0 -16
- package/src/core/empathy-keyword-matcher.ts +0 -64
- package/src/core/empathy-types.ts +0 -18
- package/src/core/event-log.ts +0 -787
- package/src/core/evolution-engine.ts +0 -613
- package/src/core/evolution-logger.ts +0 -357
- package/src/core/evolution-migration.ts +0 -77
- package/src/core/evolution-reducer.ts +0 -891
- package/src/core/evolution-types.ts +0 -110
- package/src/core/external-training-contract.ts +0 -530
- package/src/core/file-store.ts +0 -80
- package/src/core/focus-history.ts +0 -763
- package/src/core/hygiene/tracker.ts +0 -122
- package/src/core/local-worker-routing.ts +0 -337
- package/src/core/model-deployment-registry.ts +0 -724
- package/src/core/model-training-registry.ts +0 -815
- package/src/core/observability.ts +0 -242
- package/src/core/pain-diagnostic-gate.ts +0 -169
- package/src/core/pain.ts +0 -309
- package/src/core/pd-config-loader.ts +0 -400
- package/src/core/pd-task-reconciler.ts +0 -380
- package/src/core/pd-task-service.ts +0 -43
- package/src/core/pd-task-store.ts +0 -78
- package/src/core/pd-task-types.ts +0 -24
- package/src/core/principle-compiler/__tests__/compiler-replay-gate.test.ts +0 -174
- package/src/core/principle-compiler/code-validator.ts +0 -96
- package/src/core/principle-compiler/compiler.ts +0 -327
- package/src/core/principle-compiler/ledger-registrar.ts +0 -116
- package/src/core/principle-internalization/filesystem-lifecycle-datasource.ts +0 -42
- package/src/core/principle-internalization/lifecycle-refresh.ts +0 -11
- package/src/core/principle-internalization/principle-lifecycle-service.ts +0 -170
- package/src/core/principle-training-state.ts +0 -177
- package/src/core/principle-tree-ledger-adapter.ts +0 -145
- package/src/core/principle-tree-ledger.ts +0 -725
- package/src/core/profile.ts +0 -228
- package/src/core/promotion-gate.ts +0 -854
- package/src/core/reflection/reflection-context.ts +0 -133
- package/src/core/replay-engine.ts +0 -106
- package/src/core/rule-host.ts +0 -386
- package/src/core/rule-implementation-runtime.ts +0 -145
- package/src/core/runtime-v2-prompt-activation-reader.ts +0 -114
- package/src/core/schema/migration-runner.ts +0 -207
- package/src/core/shadow-observation-registry.ts +0 -508
- package/src/core/surface-guard.ts +0 -188
- package/src/core/thinking-models.ts +0 -377
- package/src/core/thinking-os-parser.ts +0 -165
- package/src/core/trajectory-types.ts +0 -247
- package/src/core/trajectory.ts +0 -1831
- package/src/core/workflow-funnel-loader.ts +0 -195
- package/src/core/workspace-dir-validation.ts +0 -52
- package/src/hooks/AGENTS.md +0 -31
- package/src/hooks/after-tool-call-helpers.ts +0 -601
- package/src/hooks/after-tool-call-types.ts +0 -99
- package/src/hooks/gate-block-helper.ts +0 -265
- package/src/hooks/gate.ts +0 -394
- package/src/hooks/lifecycle.ts +0 -334
- package/src/hooks/message-sanitize.ts +0 -102
- package/src/hooks/pain.ts +0 -358
- package/src/hooks/prompt.ts +0 -1102
- package/src/hooks/raw-observation-adapter.ts +0 -215
- package/src/hooks/raw-observation-types.ts +0 -77
- package/src/hooks/trajectory-collector.ts +0 -253
- package/src/hooks/trajectory-evidence.ts +0 -97
- package/src/hooks/trigger-cooldown-tracker.ts +0 -82
- package/src/i18n/commands.ts +0 -101
- package/src/index.ts +0 -939
- package/src/openclaw-sdk.ts +0 -312
- package/src/service/central-database.ts +0 -936
- package/src/service/central-sync-service.ts +0 -85
- package/src/service/internalization-auto-consumer-service.ts +0 -397
- package/src/service/keyword-optimization-service.ts +0 -169
- package/src/service/phase3-input-filter.ts +0 -237
- package/src/service/queue-io.ts +0 -108
- package/src/service/runtime-summary-service.ts +0 -990
- package/src/service/trajectory-service.ts +0 -16
- package/src/service/workflow-watchdog.ts +0 -125
- package/src/types/event-types.ts +0 -39
- package/src/types/hygiene-types.ts +0 -8
- package/src/types/queue.ts +0 -15
- package/src/types/runtime-summary.ts +0 -5
- package/src/types.ts +0 -53
- package/src/utils/file-lock.ts +0 -394
- package/src/utils/io.ts +0 -176
- package/src/utils/retry.ts +0 -573
- package/src/utils/shadow-fingerprint.ts +0 -42
- package/src/utils/workspace-resolver.ts +0 -393
- package/tests/README.md +0 -120
- package/tests/build-artifacts.test.ts +0 -55
- package/tests/commands/evolution-status.test.ts +0 -511
- package/tests/commands/export.test.ts +0 -78
- package/tests/commands/pain.test.ts +0 -287
- package/tests/commands/samples.test.ts +0 -65
- package/tests/commands/strategy.test.ts +0 -19
- package/tests/commands/thinking-os.test.ts +0 -88
- package/tests/core/bootstrap-rules.test.ts +0 -596
- package/tests/core/code-implementation-storage.test.ts +0 -300
- package/tests/core/code-validator.test.ts +0 -197
- package/tests/core/config-service.test.ts +0 -89
- package/tests/core/config.test.ts +0 -90
- package/tests/core/control-ui-db.test.ts +0 -75
- package/tests/core/core-principle-registry-drift.test.ts +0 -39
- package/tests/core/core-template-guidance.test.ts +0 -21
- package/tests/core/correction-cue-learner.test.ts +0 -345
- package/tests/core/detection-service.test.ts +0 -50
- package/tests/core/dictionary-service.test.ts +0 -116
- package/tests/core/dictionary.test.ts +0 -171
- package/tests/core/empathy-keyword-matcher.test.ts +0 -209
- package/tests/core/event-log.test.ts +0 -484
- package/tests/core/evolution-engine.test.ts +0 -610
- package/tests/core/evolution-logger.test.ts +0 -148
- package/tests/core/evolution-migration.test.ts +0 -374
- package/tests/core/evolution-paths.test.ts +0 -21
- package/tests/core/evolution-reducer.compilation-retry.test.ts +0 -189
- package/tests/core/evolution-reducer.detector-metadata.test.ts +0 -602
- package/tests/core/evolution-types-loop.test.ts +0 -48
- package/tests/core/external-training-contract.test.ts +0 -463
- package/tests/core/file-store.test.ts +0 -102
- package/tests/core/focus-history.test.ts +0 -874
- package/tests/core/init-flatten.test.ts +0 -69
- package/tests/core/init-refactor.test.ts +0 -87
- package/tests/core/init-v1.3.test.ts +0 -46
- package/tests/core/init.test.ts +0 -190
- package/tests/core/ledger-registrar.test.ts +0 -235
- package/tests/core/migration.test.ts +0 -84
- package/tests/core/model-deployment-registry.test.ts +0 -858
- package/tests/core/model-training-registry.test.ts +0 -908
- package/tests/core/observability.test.ts +0 -382
- package/tests/core/pain-diagnostic-gate.test.ts +0 -614
- package/tests/core/pain-score.property.test.ts +0 -19
- package/tests/core/pain.test.ts +0 -132
- package/tests/core/path-resolver.test.ts +0 -57
- package/tests/core/paths-refactor.test.ts +0 -20
- package/tests/core/pd-config-loader.test.ts +0 -407
- package/tests/core/pd-task-store.test.ts +0 -126
- package/tests/core/phase7-rollout-integration.test.ts +0 -477
- package/tests/core/principle-compiler.test.ts +0 -350
- package/tests/core/principle-injection.test.ts +0 -223
- package/tests/core/principle-internalization/deprecated-readiness.test.ts +0 -193
- package/tests/core/principle-internalization/lifecycle-metrics.test.ts +0 -350
- package/tests/core/principle-internalization/lifecycle-routing-policy.test.ts +0 -212
- package/tests/core/principle-internalization/lineage-source-retired.test.ts +0 -56
- package/tests/core/principle-internalization/principle-lifecycle-service.test.ts +0 -189
- package/tests/core/principle-training-state.test.ts +0 -939
- package/tests/core/principle-tree-ledger-adapter.test.ts +0 -253
- package/tests/core/principle-tree-ledger.test.ts +0 -423
- package/tests/core/profile.test.ts +0 -56
- package/tests/core/promotion-gate.test.ts +0 -561
- package/tests/core/queue-purge.test.ts +0 -337
- package/tests/core/reflection-context.test.ts +0 -342
- package/tests/core/regression-v1-9-1.test.ts +0 -266
- package/tests/core/replay-engine.test.ts +0 -165
- package/tests/core/risk-calculator.test.ts +0 -168
- package/tests/core/rule-host-adversarial-output.test.ts +0 -242
- package/tests/core/rule-host-autocorrect-vm.test.ts +0 -163
- package/tests/core/rule-host-helpers.test.ts +0 -120
- package/tests/core/rule-host-resource-bounds.test.ts +0 -231
- package/tests/core/rule-host-sqlite-source.test.ts +0 -720
- package/tests/core/rule-host-unhealthy-visibility.test.ts +0 -261
- package/tests/core/rule-host-validation.test.ts +0 -315
- package/tests/core/rule-implementation-runtime.test.ts +0 -49
- package/tests/core/session-tracker.test.ts +0 -191
- package/tests/core/surface-guard.test.ts +0 -338
- package/tests/core/template-generator.test.ts +0 -101
- package/tests/core/trajectory.test.ts +0 -427
- package/tests/core/workflow-funnel-loader.test.ts +0 -1028
- package/tests/core/workspace-context-factory.test.ts +0 -18
- package/tests/core/workspace-context.test.ts +0 -187
- package/tests/core/workspace-guidance-migrator.test.ts +0 -248
- package/tests/core-anti-growth.test.ts +0 -182
- package/tests/evolution-worker-quarantine.test.ts +0 -400
- package/tests/evolution-worker-slimming.test.ts +0 -380
- package/tests/fixtures/legacy-queue-v1.json +0 -74
- package/tests/fixtures/production-compatibility.test.ts +0 -147
- package/tests/fixtures/production-mock-generator.ts +0 -282
- package/tests/globalSetup.ts +0 -38
- package/tests/hook-workspace-nextaction-contract.test.ts +0 -50
- package/tests/hooks/confirm-first-removal.test.ts +0 -188
- package/tests/hooks/gate-auto-correct-shadow.test.ts +0 -309
- package/tests/hooks/gate-auto-correct.test.ts +0 -664
- package/tests/hooks/gate-block-helper-profile.test.ts +0 -186
- package/tests/hooks/gate-no-path-write-tool.test.ts +0 -171
- package/tests/hooks/gate-rule-host-pipeline.test.ts +0 -230
- package/tests/hooks/gate-rule-host-real-pipeline.test.ts +0 -190
- package/tests/hooks/lifecycle.test.ts +0 -248
- package/tests/hooks/message-sanitize.test.ts +0 -244
- package/tests/hooks/pain-emission-characterization.test.ts +0 -420
- package/tests/hooks/pain.test.ts +0 -795
- package/tests/hooks/prompt-characterization.test.ts +0 -476
- package/tests/hooks/prompt-diet.test.ts +0 -335
- package/tests/hooks/prompt-size-guard.test.ts +0 -319
- package/tests/hooks/raw-observation-adapter.test.ts +0 -312
- package/tests/hooks/runtime-v2-prompt-activation.test.ts +0 -895
- package/tests/hooks/single-gate-pain-admission.test.ts +0 -258
- package/tests/hooks/subagent.test.ts +0 -469
- package/tests/hooks/trajectory-collector.test.ts +0 -269
- package/tests/hooks/trajectory-evidence.test.ts +0 -280
- package/tests/hooks/triage-adapter.test.ts +0 -331
- package/tests/hygiene-tracker.test.ts +0 -77
- package/tests/index.test.ts +0 -142
- package/tests/integration/auto-entry-gate.test.ts +0 -256
- package/tests/integration/gate-real-io.e2e.test.ts +0 -248
- package/tests/integration/m8-legacy-paths.test.ts +0 -63
- package/tests/integration/mvp-surface-registry-guard.test.ts +0 -536
- package/tests/integration/pain-id-chain-e2e.test.ts +0 -313
- package/tests/integration/principle-compiler-e2e.test.ts +0 -403
- package/tests/integration/principle-lifecycle.e2e.test.ts +0 -198
- package/tests/integration/runtime-v2-pain-guard.test.ts +0 -125
- package/tests/integration/trajectory-lifecycle.e2e.test.ts +0 -523
- package/tests/internalization-auto-consumer-gate.test.ts +0 -158
- package/tests/internalization-auto-consumer-service.test.ts +0 -219
- package/tests/plugin-config-resolution-cutover.test.ts +0 -359
- package/tests/queue/async-lock.test.ts +0 -200
- package/tests/runtime-v2-discovery-guard.test.ts +0 -153
- package/tests/scripts/validate-live-path.test.ts +0 -286
- package/tests/service/central-database.test.ts +0 -457
- package/tests/service/correction-observer-service.test.ts +0 -505
- package/tests/service/evolution-worker.compilation-backfill.test.ts +0 -203
- package/tests/service/evolution-worker.correction-observer.test.ts +0 -50
- package/tests/service/evolution-worker.queue.test.ts +0 -296
- package/tests/service/evolution-worker.timeout.test.ts +0 -233
- package/tests/service/keyword-optimization-service.test.ts +0 -121
- package/tests/service/phase3-input-filter.test.ts +0 -289
- package/tests/service/queue-io.test.ts +0 -168
- package/tests/service/queue-migration.test.ts +0 -147
- package/tests/service/runtime-summary-service.test.ts +0 -1100
- package/tests/service/workflow-watchdog.test.ts +0 -281
- package/tests/task-compliance.test.ts +0 -166
- package/tests/test-utils.ts +0 -48
- package/tests/utils/file-lock.test.ts +0 -409
- package/tests/utils/hashing.test.ts +0 -32
- package/tests/utils/hook-workspace-resolver.test.ts +0 -524
- package/tests/utils/io.test.ts +0 -39
- package/tests/utils/retry.test.ts +0 -327
- package/tests/utils/session-key.test.ts +0 -52
- package/tsconfig.json +0 -16
- package/vitest.config.ts +0 -61
- package/vitest.unit.config.ts +0 -12
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration Runner — Executes and tracks schema migrations.
|
|
3
|
+
*
|
|
4
|
+
* Each migration is versioned. The runner reads the current version from
|
|
5
|
+
* the `schema_version` table and only executes migrations with higher IDs.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const runner = new MigrationRunner(db);
|
|
9
|
+
* runner.run(allMigrations.filter(m => m.db === 'trajectory.db'));
|
|
10
|
+
*/
|
|
11
|
+
import type { Migration } from './schema-definitions.js';
|
|
12
|
+
import { type DbType } from './schema-definitions.js';
|
|
13
|
+
import type { Db } from './db-types.js';
|
|
14
|
+
export declare class MigrationRunner {
|
|
15
|
+
private readonly db;
|
|
16
|
+
constructor(db: Db);
|
|
17
|
+
/**
|
|
18
|
+
* Run all pending migrations for a given database type.
|
|
19
|
+
* @returns Array of migration names that were applied
|
|
20
|
+
*/
|
|
21
|
+
runMigrations(migrations: Migration[], _dbType: DbType): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Apply all schema definitions (tables, indexes, views, FTS) for a database.
|
|
24
|
+
* This is a convenience method that creates everything from the schema catalog.
|
|
25
|
+
* Used for initial setup when no migrations exist yet.
|
|
26
|
+
*/
|
|
27
|
+
applySchemaCatalog(dbType: DbType): void;
|
|
28
|
+
/**
|
|
29
|
+
* Get the current migration version.
|
|
30
|
+
* Returns '000' if no version is set (fresh database).
|
|
31
|
+
*/
|
|
32
|
+
getCurrentVersion(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Get all available migration info for a database type.
|
|
35
|
+
*/
|
|
36
|
+
getMigrationInfo(migrations: Migration[], dbType: DbType): {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
applied: boolean;
|
|
40
|
+
}[];
|
|
41
|
+
/**
|
|
42
|
+
* Rollback the latest migration (if down migration is defined).
|
|
43
|
+
*/
|
|
44
|
+
rollback(migrations: Migration[], dbType: DbType): string | null;
|
|
45
|
+
private ensureVersionTable;
|
|
46
|
+
private setVersion;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Factory: create a MigrationRunner and apply schema catalog for a given database.
|
|
50
|
+
* This is the main entry point for database classes.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ensureDatabaseSchema(db: Db, dbType: DbType): void;
|
|
53
|
+
export type { Migration, DbType, TableDefinition, ViewDefinition, FtsDefinition, SchemaCatalog } from './schema-definitions.js';
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration Runner — Executes and tracks schema migrations.
|
|
3
|
+
*
|
|
4
|
+
* Each migration is versioned. The runner reads the current version from
|
|
5
|
+
* the `schema_version` table and only executes migrations with higher IDs.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const runner = new MigrationRunner(db);
|
|
9
|
+
* runner.run(allMigrations.filter(m => m.db === 'trajectory.db'));
|
|
10
|
+
*/
|
|
11
|
+
import { getCatalog } from './schema-definitions.js';
|
|
12
|
+
export class MigrationRunner {
|
|
13
|
+
db;
|
|
14
|
+
constructor(db) {
|
|
15
|
+
this.db = db;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Run all pending migrations for a given database type.
|
|
19
|
+
* @returns Array of migration names that were applied
|
|
20
|
+
*/
|
|
21
|
+
runMigrations(migrations, _dbType) {
|
|
22
|
+
// NOTE: _dbType is kept for API signature compatibility but migrations are pre-filtered by caller
|
|
23
|
+
void _dbType;
|
|
24
|
+
// Ensure schema_version table exists before anything else
|
|
25
|
+
this.ensureVersionTable();
|
|
26
|
+
const currentVersion = this.getCurrentVersion();
|
|
27
|
+
const applied = [];
|
|
28
|
+
// Filter to pending migrations (higher ID than current)
|
|
29
|
+
const pending = migrations
|
|
30
|
+
.filter(m => m.id > currentVersion)
|
|
31
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
32
|
+
for (const migration of pending) {
|
|
33
|
+
console.log(`[MigrationRunner] Applying ${migration.id}-${migration.name}...`);
|
|
34
|
+
try {
|
|
35
|
+
migration.up(this.db);
|
|
36
|
+
this.setVersion(migration.id);
|
|
37
|
+
applied.push(`${migration.id}-${migration.name}`);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
throw new Error(`Migration ${migration.id}-${migration.name} failed: ${String(err)}`, { cause: err });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (applied.length > 0) {
|
|
44
|
+
console.log(`[MigrationRunner] Applied ${applied.length} migration(s): ${applied.join(', ')}`);
|
|
45
|
+
}
|
|
46
|
+
return applied;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Apply all schema definitions (tables, indexes, views, FTS) for a database.
|
|
50
|
+
* This is a convenience method that creates everything from the schema catalog.
|
|
51
|
+
* Used for initial setup when no migrations exist yet.
|
|
52
|
+
*/
|
|
53
|
+
applySchemaCatalog(dbType) {
|
|
54
|
+
this.ensureVersionTable();
|
|
55
|
+
const catalog = getCatalog(dbType);
|
|
56
|
+
// Tables
|
|
57
|
+
for (const [key, table] of Object.entries(catalog.tables)) {
|
|
58
|
+
try {
|
|
59
|
+
this.db.exec(table.ddl);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
throw new Error(`Failed to create table ${key}: ${String(err)}`, { cause: err });
|
|
63
|
+
}
|
|
64
|
+
// Indexes
|
|
65
|
+
for (const indexDdl of table.indexes ?? []) {
|
|
66
|
+
try {
|
|
67
|
+
this.db.exec(indexDdl);
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
throw new Error(`Failed to create index for ${key}: ${String(err)}`, { cause: err });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Views
|
|
75
|
+
for (const [key, view] of Object.entries(catalog.views)) {
|
|
76
|
+
try {
|
|
77
|
+
this.db.exec(view.ddl);
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
throw new Error(`Failed to create view ${key}: ${String(err)}`, { cause: err });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// FTS5 virtual tables
|
|
84
|
+
for (const [key, fts] of Object.entries(catalog.fts)) {
|
|
85
|
+
try {
|
|
86
|
+
this.db.exec(fts.ddl);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
throw new Error(`Failed to create FTS table ${key}: ${String(err)}`, { cause: err });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the current migration version.
|
|
95
|
+
* Returns '000' if no version is set (fresh database).
|
|
96
|
+
*/
|
|
97
|
+
getCurrentVersion() {
|
|
98
|
+
try {
|
|
99
|
+
const row = this.db.get('SELECT version FROM schema_version ORDER BY version DESC LIMIT 1');
|
|
100
|
+
return row?.version ?? '000';
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return '000';
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get all available migration info for a database type.
|
|
108
|
+
*/
|
|
109
|
+
getMigrationInfo(migrations, dbType) {
|
|
110
|
+
const currentVersion = this.getCurrentVersion();
|
|
111
|
+
return migrations
|
|
112
|
+
.filter(m => m.db === dbType)
|
|
113
|
+
.sort((a, b) => a.id.localeCompare(b.id))
|
|
114
|
+
.map(m => ({
|
|
115
|
+
id: m.id,
|
|
116
|
+
name: m.name,
|
|
117
|
+
applied: m.id <= currentVersion,
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Rollback the latest migration (if down migration is defined).
|
|
122
|
+
*/
|
|
123
|
+
rollback(migrations, dbType) {
|
|
124
|
+
const currentVersion = this.getCurrentVersion();
|
|
125
|
+
if (currentVersion === '000')
|
|
126
|
+
return null;
|
|
127
|
+
const migration = migrations.find(m => m.db === dbType && m.id === currentVersion);
|
|
128
|
+
if (!migration)
|
|
129
|
+
return null;
|
|
130
|
+
if (!migration.down) {
|
|
131
|
+
throw new Error(`Migration ${migration.id}-${migration.name} has no down migration`);
|
|
132
|
+
}
|
|
133
|
+
console.log(`[MigrationRunner] Rolling back ${migration.id}-${migration.name}...`);
|
|
134
|
+
migration.down(this.db);
|
|
135
|
+
// Set version to previous migration
|
|
136
|
+
const previousMigrations = migrations
|
|
137
|
+
.filter(m => m.db === dbType && m.id < currentVersion)
|
|
138
|
+
.sort((a, b) => b.id.localeCompare(a.id));
|
|
139
|
+
const newVersion = previousMigrations[0]?.id ?? '000';
|
|
140
|
+
this.setVersion(newVersion);
|
|
141
|
+
console.log(`[MigrationRunner] Rolled back to ${newVersion}`);
|
|
142
|
+
return migration.id;
|
|
143
|
+
}
|
|
144
|
+
// -----------------------------------------------------------------------
|
|
145
|
+
// Private helpers
|
|
146
|
+
// -----------------------------------------------------------------------
|
|
147
|
+
ensureVersionTable() {
|
|
148
|
+
this.db.exec(`
|
|
149
|
+
CREATE TABLE IF NOT EXISTS schema_version (
|
|
150
|
+
version TEXT NOT NULL DEFAULT '000'
|
|
151
|
+
)
|
|
152
|
+
`);
|
|
153
|
+
// Ensure at least one row exists
|
|
154
|
+
const count = this.db.get('SELECT COUNT(*) as cnt FROM schema_version');
|
|
155
|
+
if (!count || count.cnt === 0) {
|
|
156
|
+
this.db.exec("INSERT INTO schema_version (version) VALUES ('000')");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
setVersion(version) {
|
|
160
|
+
this.db.exec(`UPDATE schema_version SET version = '${version}'`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Factory: create a MigrationRunner and apply schema catalog for a given database.
|
|
165
|
+
* This is the main entry point for database classes.
|
|
166
|
+
*/
|
|
167
|
+
export function ensureDatabaseSchema(db, dbType) {
|
|
168
|
+
const runner = new MigrationRunner(db);
|
|
169
|
+
runner.applySchemaCatalog(dbType);
|
|
170
|
+
}
|
|
@@ -2,22 +2,18 @@
|
|
|
2
2
|
* Migration: Initialize trajectory.db tables
|
|
3
3
|
* This creates all core event store tables.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
up(db) {
|
|
13
|
-
// Core tables
|
|
14
|
-
db.exec(`CREATE TABLE IF NOT EXISTS sessions (
|
|
5
|
+
export const migration = {
|
|
6
|
+
id: '001',
|
|
7
|
+
name: 'init-trajectory',
|
|
8
|
+
db: 'trajectory.db',
|
|
9
|
+
up(db) {
|
|
10
|
+
// Core tables
|
|
11
|
+
db.exec(`CREATE TABLE IF NOT EXISTS sessions (
|
|
15
12
|
session_id TEXT PRIMARY KEY,
|
|
16
13
|
started_at TEXT NOT NULL,
|
|
17
14
|
updated_at TEXT NOT NULL
|
|
18
15
|
)`);
|
|
19
|
-
|
|
20
|
-
db.exec(`CREATE TABLE IF NOT EXISTS assistant_turns (
|
|
16
|
+
db.exec(`CREATE TABLE IF NOT EXISTS assistant_turns (
|
|
21
17
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
22
18
|
session_id TEXT NOT NULL,
|
|
23
19
|
run_id TEXT NOT NULL,
|
|
@@ -31,10 +27,9 @@ export const migration: Migration = {
|
|
|
31
27
|
raw_excerpt TEXT,
|
|
32
28
|
created_at TEXT NOT NULL
|
|
33
29
|
)`);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
db.exec(`CREATE TABLE IF NOT EXISTS user_turns (
|
|
30
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_assistant_turns_session_id ON assistant_turns(session_id)`);
|
|
31
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_assistant_turns_created_at ON assistant_turns(created_at)`);
|
|
32
|
+
db.exec(`CREATE TABLE IF NOT EXISTS user_turns (
|
|
38
33
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
39
34
|
session_id TEXT NOT NULL,
|
|
40
35
|
turn_index INTEGER NOT NULL,
|
|
@@ -46,9 +41,8 @@ export const migration: Migration = {
|
|
|
46
41
|
references_assistant_turn_id INTEGER,
|
|
47
42
|
created_at TEXT NOT NULL
|
|
48
43
|
)`);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
db.exec(`CREATE TABLE IF NOT EXISTS tool_calls (
|
|
44
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_user_turns_session_id ON user_turns(session_id)`);
|
|
45
|
+
db.exec(`CREATE TABLE IF NOT EXISTS tool_calls (
|
|
52
46
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
53
47
|
session_id TEXT NOT NULL,
|
|
54
48
|
tool_name TEXT NOT NULL,
|
|
@@ -62,10 +56,9 @@ export const migration: Migration = {
|
|
|
62
56
|
params_json TEXT NOT NULL,
|
|
63
57
|
created_at TEXT NOT NULL
|
|
64
58
|
)`);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
db.exec(`CREATE TABLE IF NOT EXISTS pain_events (
|
|
59
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_tool_calls_session_id ON tool_calls(session_id)`);
|
|
60
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_tool_calls_created_at ON tool_calls(created_at)`);
|
|
61
|
+
db.exec(`CREATE TABLE IF NOT EXISTS pain_events (
|
|
69
62
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
70
63
|
session_id TEXT NOT NULL,
|
|
71
64
|
source TEXT NOT NULL,
|
|
@@ -77,17 +70,15 @@ export const migration: Migration = {
|
|
|
77
70
|
text TEXT,
|
|
78
71
|
created_at TEXT NOT NULL
|
|
79
72
|
)`);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
db.exec(`CREATE VIRTUAL TABLE IF NOT EXISTS pain_events_fts USING fts5(
|
|
73
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_pain_events_session_id ON pain_events(session_id)`);
|
|
74
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_pain_events_created_at ON pain_events(created_at)`);
|
|
75
|
+
// FTS5
|
|
76
|
+
db.exec(`CREATE VIRTUAL TABLE IF NOT EXISTS pain_events_fts USING fts5(
|
|
85
77
|
text,
|
|
86
78
|
pain_event_id UNINDEXED,
|
|
87
79
|
tokenize='porter unicode61'
|
|
88
80
|
)`);
|
|
89
|
-
|
|
90
|
-
db.exec(`CREATE TABLE IF NOT EXISTS gate_blocks (
|
|
81
|
+
db.exec(`CREATE TABLE IF NOT EXISTS gate_blocks (
|
|
91
82
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
92
83
|
session_id TEXT,
|
|
93
84
|
tool_name TEXT NOT NULL,
|
|
@@ -100,9 +91,8 @@ export const migration: Migration = {
|
|
|
100
91
|
gate_type TEXT,
|
|
101
92
|
created_at TEXT NOT NULL
|
|
102
93
|
)`);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
db.exec(`CREATE TABLE IF NOT EXISTS trust_changes (
|
|
94
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_gate_blocks_created_at ON gate_blocks(created_at)`);
|
|
95
|
+
db.exec(`CREATE TABLE IF NOT EXISTS trust_changes (
|
|
106
96
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
107
97
|
session_id TEXT,
|
|
108
98
|
previous_score REAL NOT NULL,
|
|
@@ -111,16 +101,14 @@ export const migration: Migration = {
|
|
|
111
101
|
reason TEXT NOT NULL,
|
|
112
102
|
created_at TEXT NOT NULL
|
|
113
103
|
)`);
|
|
114
|
-
|
|
115
|
-
db.exec(`CREATE TABLE IF NOT EXISTS principle_events (
|
|
104
|
+
db.exec(`CREATE TABLE IF NOT EXISTS principle_events (
|
|
116
105
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
117
106
|
principle_id TEXT,
|
|
118
107
|
event_type TEXT NOT NULL,
|
|
119
108
|
payload_json TEXT NOT NULL,
|
|
120
109
|
created_at TEXT NOT NULL
|
|
121
110
|
)`);
|
|
122
|
-
|
|
123
|
-
db.exec(`CREATE TABLE IF NOT EXISTS task_outcomes (
|
|
111
|
+
db.exec(`CREATE TABLE IF NOT EXISTS task_outcomes (
|
|
124
112
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
125
113
|
session_id TEXT NOT NULL,
|
|
126
114
|
task_id TEXT,
|
|
@@ -129,8 +117,7 @@ export const migration: Migration = {
|
|
|
129
117
|
principle_ids_json TEXT NOT NULL,
|
|
130
118
|
created_at TEXT NOT NULL
|
|
131
119
|
)`);
|
|
132
|
-
|
|
133
|
-
db.exec(`CREATE TABLE IF NOT EXISTS correction_samples (
|
|
120
|
+
db.exec(`CREATE TABLE IF NOT EXISTS correction_samples (
|
|
134
121
|
sample_id TEXT PRIMARY KEY,
|
|
135
122
|
session_id TEXT NOT NULL,
|
|
136
123
|
bad_assistant_turn_id INTEGER NOT NULL,
|
|
@@ -144,17 +131,15 @@ export const migration: Migration = {
|
|
|
144
131
|
created_at TEXT NOT NULL,
|
|
145
132
|
updated_at TEXT NOT NULL
|
|
146
133
|
)`);
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
db.exec(`CREATE TABLE IF NOT EXISTS sample_reviews (
|
|
134
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_correction_samples_review_status ON correction_samples(review_status)`);
|
|
135
|
+
db.exec(`CREATE TABLE IF NOT EXISTS sample_reviews (
|
|
150
136
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
151
137
|
sample_id TEXT NOT NULL,
|
|
152
138
|
review_status TEXT NOT NULL,
|
|
153
139
|
note TEXT,
|
|
154
140
|
created_at TEXT NOT NULL
|
|
155
141
|
)`);
|
|
156
|
-
|
|
157
|
-
db.exec(`CREATE TABLE IF NOT EXISTS exports_audit (
|
|
142
|
+
db.exec(`CREATE TABLE IF NOT EXISTS exports_audit (
|
|
158
143
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
159
144
|
export_kind TEXT NOT NULL,
|
|
160
145
|
mode TEXT NOT NULL,
|
|
@@ -163,8 +148,7 @@ export const migration: Migration = {
|
|
|
163
148
|
row_count INTEGER NOT NULL,
|
|
164
149
|
created_at TEXT NOT NULL
|
|
165
150
|
)`);
|
|
166
|
-
|
|
167
|
-
db.exec(`CREATE TABLE IF NOT EXISTS evolution_tasks (
|
|
151
|
+
db.exec(`CREATE TABLE IF NOT EXISTS evolution_tasks (
|
|
168
152
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
169
153
|
task_id TEXT UNIQUE NOT NULL,
|
|
170
154
|
trace_id TEXT NOT NULL,
|
|
@@ -185,11 +169,10 @@ export const migration: Migration = {
|
|
|
185
169
|
created_at TEXT NOT NULL,
|
|
186
170
|
updated_at TEXT NOT NULL
|
|
187
171
|
)`);
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
db.exec(`CREATE TABLE IF NOT EXISTS evolution_events (
|
|
172
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_evolution_tasks_trace_id ON evolution_tasks(trace_id)`);
|
|
173
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_evolution_tasks_status ON evolution_tasks(status)`);
|
|
174
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_evolution_tasks_created_at ON evolution_tasks(created_at)`);
|
|
175
|
+
db.exec(`CREATE TABLE IF NOT EXISTS evolution_events (
|
|
193
176
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
194
177
|
trace_id TEXT NOT NULL,
|
|
195
178
|
task_id TEXT,
|
|
@@ -200,12 +183,11 @@ export const migration: Migration = {
|
|
|
200
183
|
metadata_json TEXT,
|
|
201
184
|
created_at TEXT NOT NULL
|
|
202
185
|
)`);
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
db.exec(`CREATE TABLE IF NOT EXISTS ingest_checkpoint (
|
|
186
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_evolution_events_trace_id ON evolution_events(trace_id)`);
|
|
187
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_evolution_events_created_at ON evolution_events(created_at)`);
|
|
188
|
+
db.exec(`CREATE TABLE IF NOT EXISTS ingest_checkpoint (
|
|
207
189
|
source_key TEXT PRIMARY KEY,
|
|
208
190
|
imported_at TEXT NOT NULL
|
|
209
191
|
)`);
|
|
210
|
-
|
|
192
|
+
},
|
|
211
193
|
};
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Migration: Initialize central.db (aggregated multi-workspace) tables
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
db: 'central.db',
|
|
11
|
-
up(db) {
|
|
12
|
-
db.exec(`CREATE TABLE IF NOT EXISTS workspaces (
|
|
4
|
+
export const migration = {
|
|
5
|
+
id: '001',
|
|
6
|
+
name: 'init-central',
|
|
7
|
+
db: 'central.db',
|
|
8
|
+
up(db) {
|
|
9
|
+
db.exec(`CREATE TABLE IF NOT EXISTS workspaces (
|
|
13
10
|
name TEXT PRIMARY KEY,
|
|
14
11
|
path TEXT NOT NULL,
|
|
15
12
|
last_sync TEXT
|
|
16
13
|
)`);
|
|
17
|
-
|
|
18
|
-
db.exec(`CREATE TABLE IF NOT EXISTS workspace_config (
|
|
14
|
+
db.exec(`CREATE TABLE IF NOT EXISTS workspace_config (
|
|
19
15
|
workspace_name TEXT PRIMARY KEY,
|
|
20
16
|
enabled INTEGER NOT NULL DEFAULT 1,
|
|
21
17
|
display_name TEXT,
|
|
@@ -23,22 +19,19 @@ export const migration: Migration = {
|
|
|
23
19
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
24
20
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
25
21
|
)`);
|
|
26
|
-
|
|
27
|
-
db.exec(`CREATE TABLE IF NOT EXISTS global_config (
|
|
22
|
+
db.exec(`CREATE TABLE IF NOT EXISTS global_config (
|
|
28
23
|
key TEXT PRIMARY KEY,
|
|
29
24
|
value TEXT NOT NULL,
|
|
30
25
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
31
26
|
)`);
|
|
32
|
-
|
|
33
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_sessions (
|
|
27
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_sessions (
|
|
34
28
|
session_id TEXT PRIMARY KEY,
|
|
35
29
|
workspace TEXT NOT NULL,
|
|
36
30
|
started_at TEXT NOT NULL,
|
|
37
31
|
updated_at TEXT NOT NULL
|
|
38
32
|
)`);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_tool_calls (
|
|
33
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_sessions_workspace ON aggregated_sessions(workspace)`);
|
|
34
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_tool_calls (
|
|
42
35
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
43
36
|
workspace TEXT NOT NULL,
|
|
44
37
|
session_id TEXT NOT NULL,
|
|
@@ -49,11 +42,10 @@ export const migration: Migration = {
|
|
|
49
42
|
error_message TEXT,
|
|
50
43
|
created_at TEXT NOT NULL
|
|
51
44
|
)`);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_pain_events (
|
|
45
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_tool_calls_workspace ON aggregated_tool_calls(workspace)`);
|
|
46
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_tool_calls_outcome ON aggregated_tool_calls(outcome)`);
|
|
47
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_tool_calls_created ON aggregated_tool_calls(created_at)`);
|
|
48
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_pain_events (
|
|
57
49
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
58
50
|
workspace TEXT NOT NULL,
|
|
59
51
|
session_id TEXT NOT NULL,
|
|
@@ -62,26 +54,23 @@ export const migration: Migration = {
|
|
|
62
54
|
reason TEXT,
|
|
63
55
|
created_at TEXT NOT NULL
|
|
64
56
|
)`);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_user_corrections (
|
|
57
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_pain_workspace ON aggregated_pain_events(workspace)`);
|
|
58
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_pain_created ON aggregated_pain_events(created_at)`);
|
|
59
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_user_corrections (
|
|
69
60
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
70
61
|
workspace TEXT NOT NULL,
|
|
71
62
|
session_id TEXT NOT NULL,
|
|
72
63
|
correction_cue TEXT,
|
|
73
64
|
created_at TEXT NOT NULL
|
|
74
65
|
)`);
|
|
75
|
-
|
|
76
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_principle_events (
|
|
66
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_principle_events (
|
|
77
67
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
78
68
|
workspace TEXT NOT NULL,
|
|
79
69
|
principle_id TEXT,
|
|
80
70
|
event_type TEXT NOT NULL,
|
|
81
71
|
created_at TEXT NOT NULL
|
|
82
72
|
)`);
|
|
83
|
-
|
|
84
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_thinking_events (
|
|
73
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_thinking_events (
|
|
85
74
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
86
75
|
workspace TEXT NOT NULL,
|
|
87
76
|
session_id TEXT NOT NULL,
|
|
@@ -89,10 +78,9 @@ export const migration: Migration = {
|
|
|
89
78
|
matched_pattern TEXT NOT NULL,
|
|
90
79
|
created_at TEXT NOT NULL
|
|
91
80
|
)`);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_correction_samples (
|
|
81
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_thinking_workspace ON aggregated_thinking_events(workspace)`);
|
|
82
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_thinking_model ON aggregated_thinking_events(model_id)`);
|
|
83
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_correction_samples (
|
|
96
84
|
sample_id TEXT PRIMARY KEY,
|
|
97
85
|
workspace TEXT NOT NULL,
|
|
98
86
|
session_id TEXT NOT NULL,
|
|
@@ -101,9 +89,8 @@ export const migration: Migration = {
|
|
|
101
89
|
review_status TEXT,
|
|
102
90
|
created_at TEXT NOT NULL
|
|
103
91
|
)`);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_task_outcomes (
|
|
92
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_corrections_workspace ON aggregated_correction_samples(workspace)`);
|
|
93
|
+
db.exec(`CREATE TABLE IF NOT EXISTS aggregated_task_outcomes (
|
|
107
94
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
108
95
|
workspace TEXT NOT NULL,
|
|
109
96
|
session_id TEXT NOT NULL,
|
|
@@ -111,12 +98,11 @@ export const migration: Migration = {
|
|
|
111
98
|
outcome TEXT NOT NULL,
|
|
112
99
|
created_at TEXT NOT NULL
|
|
113
100
|
)`);
|
|
114
|
-
|
|
115
|
-
db.exec(`CREATE TABLE IF NOT EXISTS sync_log (
|
|
101
|
+
db.exec(`CREATE TABLE IF NOT EXISTS sync_log (
|
|
116
102
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
117
103
|
workspace TEXT NOT NULL,
|
|
118
104
|
synced_at TEXT NOT NULL,
|
|
119
105
|
records_synced INTEGER NOT NULL
|
|
120
106
|
)`);
|
|
121
|
-
|
|
107
|
+
},
|
|
122
108
|
};
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Migration: Initialize workflow.db (subagent workflow tracking) tables
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
db: 'workflow.db',
|
|
11
|
-
up(db) {
|
|
12
|
-
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflows (
|
|
4
|
+
export const migration = {
|
|
5
|
+
id: '001',
|
|
6
|
+
name: 'init-workflow',
|
|
7
|
+
db: 'workflow.db',
|
|
8
|
+
up(db) {
|
|
9
|
+
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflows (
|
|
13
10
|
workflow_id TEXT PRIMARY KEY,
|
|
14
11
|
workflow_type TEXT NOT NULL,
|
|
15
12
|
transport TEXT NOT NULL,
|
|
@@ -24,12 +21,11 @@ export const migration: Migration = {
|
|
|
24
21
|
duration_ms INTEGER,
|
|
25
22
|
metadata_json TEXT NOT NULL DEFAULT '{}'
|
|
26
23
|
)`);
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflow_events (
|
|
24
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_workflows_parent_session ON subagent_workflows(parent_session_id)`);
|
|
25
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_workflows_child_session ON subagent_workflows(child_session_key)`);
|
|
26
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_workflows_state ON subagent_workflows(state)`);
|
|
27
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_workflows_type ON subagent_workflows(workflow_type)`);
|
|
28
|
+
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflow_events (
|
|
33
29
|
workflow_id TEXT NOT NULL,
|
|
34
30
|
event_type TEXT NOT NULL,
|
|
35
31
|
from_state TEXT,
|
|
@@ -39,9 +35,8 @@ export const migration: Migration = {
|
|
|
39
35
|
created_at INTEGER NOT NULL,
|
|
40
36
|
FOREIGN KEY (workflow_id) REFERENCES subagent_workflows(workflow_id) ON DELETE CASCADE
|
|
41
37
|
)`);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflow_stage_outputs (
|
|
38
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_events_workflow ON subagent_workflow_events(workflow_id)`);
|
|
39
|
+
db.exec(`CREATE TABLE IF NOT EXISTS subagent_workflow_stage_outputs (
|
|
45
40
|
workflow_id TEXT NOT NULL,
|
|
46
41
|
stage TEXT NOT NULL CHECK (stage IN ('dreamer', 'philosopher')),
|
|
47
42
|
output_json TEXT NOT NULL,
|
|
@@ -49,7 +44,7 @@ export const migration: Migration = {
|
|
|
49
44
|
created_at INTEGER NOT NULL,
|
|
50
45
|
FOREIGN KEY (workflow_id) REFERENCES subagent_workflows(workflow_id) ON DELETE CASCADE
|
|
51
46
|
)`);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
db.exec(`CREATE INDEX IF NOT EXISTS idx_stage_outputs_workflow ON subagent_workflow_stage_outputs(workflow_id)`);
|
|
48
|
+
db.exec(`CREATE UNIQUE INDEX IF NOT EXISTS idx_stage_outputs_idempotency ON subagent_workflow_stage_outputs(idempotency_key)`);
|
|
49
|
+
},
|
|
55
50
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration: Add thinking_model_events and gfi_state tables to trajectory.db
|
|
3
|
+
*
|
|
4
|
+
* These tables were added by separate classes (ControlUiDatabase, HealthQueryService)
|
|
5
|
+
* after the initial trajectory schema. Consolidated here for unified management.
|
|
6
|
+
*/
|
|
7
|
+
import type { Migration } from '../migration-runner.js';
|
|
8
|
+
export declare const migration: Migration;
|