principles-disciple 1.126.0 → 1.128.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 -93
- 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
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
|
|
2
1
|
import * as fs from 'fs';
|
|
3
|
-
import type { PluginCommandContext, PluginCommandResult } from '../openclaw-sdk.js';
|
|
4
2
|
import { normalizeCommandArgs } from '../utils/io.js';
|
|
5
3
|
import { resolvePluginCommandWorkspaceDir } from '../utils/workspace-resolver.js';
|
|
6
4
|
import { WorkspaceContext } from '../core/workspace-context.js';
|
|
7
|
-
|
|
8
|
-
function getWorkspaceDir(ctx: PluginCommandContext): string {
|
|
5
|
+
function getWorkspaceDir(ctx) {
|
|
9
6
|
return resolvePluginCommandWorkspaceDir(ctx, 'thinking-os');
|
|
10
7
|
}
|
|
11
|
-
|
|
12
|
-
function getModels(wctx: WorkspaceContext): Record<string, string> {
|
|
8
|
+
function getModels(wctx) {
|
|
13
9
|
const modelsPath = wctx.resolve('THINKING_OS');
|
|
14
|
-
const models
|
|
15
|
-
if (!fs.existsSync(modelsPath))
|
|
16
|
-
|
|
10
|
+
const models = {};
|
|
11
|
+
if (!fs.existsSync(modelsPath))
|
|
12
|
+
return models;
|
|
17
13
|
try {
|
|
18
14
|
const content = fs.readFileSync(modelsPath, 'utf8');
|
|
19
15
|
const lines = content.split('\n');
|
|
@@ -23,61 +19,51 @@ function getModels(wctx: WorkspaceContext): Record<string, string> {
|
|
|
23
19
|
models[match[1]] = match[2].trim();
|
|
24
20
|
}
|
|
25
21
|
}
|
|
26
|
-
}
|
|
22
|
+
}
|
|
23
|
+
catch (e) {
|
|
27
24
|
console.debug('[PD] Failed to read THINKING_OS.md:', e);
|
|
28
25
|
}
|
|
29
26
|
return models;
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
function formatUsageReport(wctx: WorkspaceContext): string {
|
|
28
|
+
function formatUsageReport(wctx) {
|
|
33
29
|
const logPath = wctx.resolve('THINKING_OS_USAGE');
|
|
34
|
-
|
|
35
30
|
if (!fs.existsSync(logPath)) {
|
|
36
31
|
return '📊 No usage data yet. The Thinking OS has not been active long enough to collect statistics.';
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
try {
|
|
40
|
-
const usage
|
|
34
|
+
const usage = JSON.parse(fs.readFileSync(logPath, 'utf8'));
|
|
41
35
|
const totalTurns = usage._total_turns || 1;
|
|
42
36
|
const models = getModels(wctx);
|
|
43
|
-
|
|
44
37
|
let report = `# 🧠 Thinking OS — Usage Report\n\n`;
|
|
45
38
|
report += `Total turns tracked: **${totalTurns}**\n\n`;
|
|
46
39
|
report += `| Model | Name | Hits | Rate |\n|---|---|---|---|\n`;
|
|
47
|
-
|
|
48
40
|
for (const [id, name] of Object.entries(models)) {
|
|
49
41
|
const hits = usage[id] || 0;
|
|
50
42
|
const rate = totalTurns > 0 ? ((hits / totalTurns) * 100).toFixed(1) : '0.0';
|
|
51
43
|
const status = hits === 0 ? '⚠️' : (parseFloat(rate) < 5 ? '🔸' : '✅');
|
|
52
44
|
report += `| ${id} | ${name} | ${hits} | ${status} ${rate}% |\n`;
|
|
53
45
|
}
|
|
54
|
-
|
|
55
46
|
const dormant = Object.entries(models)
|
|
56
47
|
.filter(([id]) => (usage[id] || 0) === 0)
|
|
57
48
|
.map(([id, name]) => `- ${id}: ${name}`);
|
|
58
|
-
|
|
59
49
|
if (dormant.length > 0) {
|
|
60
50
|
report += `\n### ⚠️ Dormant Models (0 hits)\n${dormant.join('\n')}\n`;
|
|
61
51
|
report += `\nConsider: Are these models not applicable to current tasks, or is the agent ignoring them?\n`;
|
|
62
52
|
}
|
|
63
|
-
|
|
64
53
|
return report;
|
|
65
|
-
}
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
66
56
|
return `❌ Failed to read usage data: ${String(e)}`;
|
|
67
57
|
}
|
|
68
58
|
}
|
|
69
|
-
|
|
70
|
-
function handlePropose(wctx: WorkspaceContext, proposal: string): string {
|
|
59
|
+
function handlePropose(wctx, proposal) {
|
|
71
60
|
if (!proposal.trim()) {
|
|
72
61
|
return '❌ Usage: `/thinking-os propose <description of your proposed mental model>`';
|
|
73
62
|
}
|
|
74
|
-
|
|
75
63
|
if (!proposal.toLowerCase().includes('signal') && !proposal.includes('信号')) {
|
|
76
64
|
return '❌ Invalid proposal: A mental model must include a "Signal detection / 信号检测" section explaining how to detect its usage via regex.';
|
|
77
65
|
}
|
|
78
|
-
|
|
79
66
|
const candidatesPath = wctx.resolve('THINKING_OS_CANDIDATES');
|
|
80
|
-
|
|
81
67
|
if (fs.existsSync(candidatesPath)) {
|
|
82
68
|
try {
|
|
83
69
|
const content = fs.readFileSync(candidatesPath, 'utf8');
|
|
@@ -85,66 +71,60 @@ function handlePropose(wctx: WorkspaceContext, proposal: string): string {
|
|
|
85
71
|
if (content.includes(snippet)) {
|
|
86
72
|
return '❌ Duplicate proposal detected. A similar candidate already exists.';
|
|
87
73
|
}
|
|
88
|
-
}
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
89
76
|
console.debug('[PD] Error reading candidates file:', e);
|
|
90
77
|
}
|
|
91
78
|
}
|
|
92
|
-
|
|
93
79
|
const timestamp = new Date().toISOString();
|
|
94
80
|
const entry = `\n### Candidate (${timestamp})\n${proposal.trim()}\n- Status: PENDING\n- Validated in tasks: 0/3\n---\n`;
|
|
95
|
-
|
|
96
81
|
try {
|
|
97
82
|
fs.appendFileSync(candidatesPath, entry, 'utf8');
|
|
98
83
|
return `✅ Mental model proposal recorded in \`${candidatesPath.replace(wctx.workspaceDir, '')}\`.\nIt needs validation in ≥3 different task types and human approval before promotion.`;
|
|
99
|
-
}
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
100
86
|
return `❌ Failed to write proposal: ${String(e)}`;
|
|
101
87
|
}
|
|
102
88
|
}
|
|
103
|
-
|
|
104
|
-
function formatAuditReport(wctx: WorkspaceContext): string {
|
|
89
|
+
function formatAuditReport(wctx) {
|
|
105
90
|
const logPath = wctx.resolve('THINKING_OS_USAGE');
|
|
106
91
|
const thinkingOsPath = wctx.resolve('THINKING_OS');
|
|
107
|
-
|
|
108
92
|
let report = `# 🔍 Thinking OS — Audit Report\n\n`;
|
|
109
|
-
|
|
110
93
|
if (!fs.existsSync(thinkingOsPath)) {
|
|
111
94
|
report += `⚠️ **THINKING_OS.md not found.** The cognitive layer is not active.\n`;
|
|
112
95
|
return report;
|
|
113
96
|
}
|
|
114
|
-
|
|
115
97
|
const models = getModels(wctx);
|
|
116
98
|
const modelCount = Object.keys(models).length;
|
|
117
99
|
report += `**Active models**: ${modelCount}\n\n`;
|
|
118
|
-
|
|
119
100
|
if (!fs.existsSync(logPath)) {
|
|
120
101
|
report += `📊 No usage data collected yet. Run some tasks first.\n`;
|
|
121
102
|
return report;
|
|
122
103
|
}
|
|
123
|
-
|
|
124
104
|
try {
|
|
125
|
-
const usage
|
|
105
|
+
const usage = JSON.parse(fs.readFileSync(logPath, 'utf8'));
|
|
126
106
|
const totalTurns = usage._total_turns || 1;
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
const
|
|
130
|
-
const healthy: string[] = [];
|
|
131
|
-
|
|
107
|
+
const overused = [];
|
|
108
|
+
const underused = [];
|
|
109
|
+
const healthy = [];
|
|
132
110
|
for (const [id, name] of Object.entries(models)) {
|
|
133
111
|
const hits = usage[id] || 0;
|
|
134
112
|
const rate = (hits / totalTurns) * 100;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
else if (hits === 0 && totalTurns > 10)
|
|
138
|
-
|
|
113
|
+
if (rate > 50)
|
|
114
|
+
overused.push(`- ${id} (${name}): ${rate.toFixed(1)}% — possibly too broad a pattern?`);
|
|
115
|
+
else if (hits === 0 && totalTurns > 10)
|
|
116
|
+
underused.push(`- ${id} (${name}): 0 hits in ${totalTurns} turns — candidate for archival?`);
|
|
117
|
+
else
|
|
118
|
+
healthy.push(`- ${id} (${name}): ${rate.toFixed(1)}%`);
|
|
139
119
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (overused.length > 0)
|
|
120
|
+
if (healthy.length > 0)
|
|
121
|
+
report += `### ✅ Healthy\n${healthy.join('\n')}\n\n`;
|
|
122
|
+
if (overused.length > 0)
|
|
123
|
+
report += `### 🔸 Possibly Over-triggered\n${overused.join('\n')}\n\n`;
|
|
143
124
|
if (underused.length > 0) {
|
|
144
125
|
report += `### ⚠️ Candidate for Archival\n${underused.join('\n')}\n`;
|
|
145
126
|
report += `> 💡 Suggestion: Review these models. If they are obsolete, move them to the archive.\n\n`;
|
|
146
127
|
}
|
|
147
|
-
|
|
148
128
|
const candidatesPath = wctx.resolve('THINKING_OS_CANDIDATES');
|
|
149
129
|
if (fs.existsSync(candidatesPath)) {
|
|
150
130
|
const candidates = fs.readFileSync(candidatesPath, 'utf8');
|
|
@@ -153,20 +133,18 @@ function formatAuditReport(wctx: WorkspaceContext): string {
|
|
|
153
133
|
report += `### 📝 Pending Candidates: ${pendingCount}\nReview candidates to fill gaps.\n`;
|
|
154
134
|
}
|
|
155
135
|
}
|
|
156
|
-
|
|
157
136
|
return report;
|
|
158
|
-
}
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
159
139
|
return `❌ Failed to generate audit report: ${String(e)}`;
|
|
160
140
|
}
|
|
161
141
|
}
|
|
162
|
-
|
|
163
|
-
export function handleThinkingOs(ctx: PluginCommandContext): PluginCommandResult {
|
|
142
|
+
export function handleThinkingOs(ctx) {
|
|
164
143
|
const workspaceDir = getWorkspaceDir(ctx);
|
|
165
144
|
const wctx = WorkspaceContext.fromHookContext({ workspaceDir, ...ctx.config });
|
|
166
145
|
const args = normalizeCommandArgs(ctx.args).trim();
|
|
167
146
|
const subCommand = args.split(/\s+/)[0]?.toLowerCase();
|
|
168
147
|
const rest = args.slice(subCommand?.length || 0).trim();
|
|
169
|
-
|
|
170
148
|
switch (subCommand) {
|
|
171
149
|
case 'status':
|
|
172
150
|
return { text: formatUsageReport(wctx) };
|
|
@@ -176,8 +154,7 @@ export function handleThinkingOs(ctx: PluginCommandContext): PluginCommandResult
|
|
|
176
154
|
return { text: formatAuditReport(wctx) };
|
|
177
155
|
default:
|
|
178
156
|
return {
|
|
179
|
-
text:
|
|
180
|
-
`🧠 **Thinking OS — Governance Console**\n\n` +
|
|
157
|
+
text: `🧠 **Thinking OS — Governance Console**\n\n` +
|
|
181
158
|
`Usage:\n` +
|
|
182
159
|
`- \`/thinking-os status\` — View mental model usage statistics\n` +
|
|
183
160
|
`- \`/thinking-os propose <model description>\` — Propose a new mental model\n` +
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { WorkflowStore } from '../service/subagent-workflow/workflow-store.js';
|
|
2
|
-
import type { PluginCommandContext } from '../openclaw-sdk.js';
|
|
3
2
|
import { resolvePluginCommandWorkspaceDir } from '../utils/workspace-resolver.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
function formatTimestamp(ts) {
|
|
4
|
+
if (!ts)
|
|
5
|
+
return '--';
|
|
7
6
|
return new Date(ts).toISOString();
|
|
8
7
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const stateColors: Record<string, string> = {
|
|
8
|
+
function formatState(state) {
|
|
9
|
+
const stateColors = {
|
|
12
10
|
'active': '●',
|
|
13
11
|
'wait_result': '◐',
|
|
14
12
|
'finalizing': '◑',
|
|
@@ -20,15 +18,7 @@ function formatState(state: string): string {
|
|
|
20
18
|
const icon = stateColors[state] || '?';
|
|
21
19
|
return `${icon} ${state}`;
|
|
22
20
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function buildOutput(
|
|
27
|
-
workflowId: string,
|
|
28
|
-
summary: ReturnType<InstanceType<typeof WorkflowStore>['getWorkflow']>,
|
|
29
|
-
events: ReturnType<InstanceType<typeof WorkflowStore>['getEvents']>,
|
|
30
|
-
workspaceDir: string
|
|
31
|
-
): string {
|
|
21
|
+
function buildOutput(workflowId, summary, events, workspaceDir) {
|
|
32
22
|
if (!summary) {
|
|
33
23
|
return [
|
|
34
24
|
`Workflow Debug: ${workflowId}`,
|
|
@@ -39,11 +29,9 @@ function buildOutput(
|
|
|
39
29
|
`Workspace: ${workspaceDir}`,
|
|
40
30
|
].join('\n');
|
|
41
31
|
}
|
|
42
|
-
|
|
43
32
|
const metadata = JSON.parse(summary.metadata_json || '{}');
|
|
44
33
|
const recentEvents = events.slice(-10);
|
|
45
|
-
|
|
46
|
-
const lines: string[] = [
|
|
34
|
+
const lines = [
|
|
47
35
|
`Workflow Debug: ${workflowId}`,
|
|
48
36
|
'============================',
|
|
49
37
|
'',
|
|
@@ -66,32 +54,25 @@ function buildOutput(
|
|
|
66
54
|
'',
|
|
67
55
|
`Recent Events (${recentEvents.length})`,
|
|
68
56
|
];
|
|
69
|
-
|
|
70
57
|
if (recentEvents.length === 0) {
|
|
71
58
|
lines.push('- (no events)');
|
|
72
|
-
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
73
61
|
for (const event of recentEvents) {
|
|
74
62
|
const time = formatTimestamp(event.created_at);
|
|
75
63
|
const transition = event.from_state ? `${event.from_state} → ${event.to_state}` : `→ ${event.to_state}`;
|
|
76
64
|
lines.push(`- [${time}] ${event.event_type}: ${transition} (${event.reason})`);
|
|
77
65
|
}
|
|
78
66
|
}
|
|
79
|
-
|
|
80
67
|
lines.push('');
|
|
81
68
|
lines.push(`Workspace: ${workspaceDir}`);
|
|
82
|
-
|
|
83
69
|
return lines.join('\n');
|
|
84
70
|
}
|
|
85
|
-
|
|
86
|
-
export function handleWorkflowDebugCommand(
|
|
87
|
-
ctx: PluginCommandContext & { args?: string }
|
|
88
|
-
): { text: string } {
|
|
71
|
+
export function handleWorkflowDebugCommand(ctx) {
|
|
89
72
|
const workspaceDir = resolvePluginCommandWorkspaceDir(ctx, 'workflow-debug');
|
|
90
|
-
|
|
91
73
|
// Parse workflow ID from args
|
|
92
|
-
const args =
|
|
74
|
+
const args = ctx.args?.trim() || '';
|
|
93
75
|
const [workflowId] = args.split(/\s+/);
|
|
94
|
-
|
|
95
76
|
if (!workflowId) {
|
|
96
77
|
return {
|
|
97
78
|
text: [
|
|
@@ -108,15 +89,14 @@ export function handleWorkflowDebugCommand(
|
|
|
108
89
|
].join('\n'),
|
|
109
90
|
};
|
|
110
91
|
}
|
|
111
|
-
|
|
112
92
|
try {
|
|
113
93
|
const store = new WorkflowStore({ workspaceDir });
|
|
114
94
|
const workflow = store.getWorkflow(workflowId);
|
|
115
95
|
const events = store.getEvents(workflowId);
|
|
116
96
|
store.dispose();
|
|
117
|
-
|
|
118
97
|
return { text: buildOutput(workflowId, workflow, events, workspaceDir) };
|
|
119
|
-
}
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
120
100
|
return {
|
|
121
101
|
text: [
|
|
122
102
|
`Workflow Debug: ${workflowId}`,
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Runtime Defaults
|
|
3
|
+
*
|
|
4
|
+
* All runtime-related constants that were previously scattered across modules.
|
|
5
|
+
* Centralizing these makes it easier to tune behavior and understand limits.
|
|
6
|
+
*/
|
|
7
|
+
/** Milliseconds per second */
|
|
8
|
+
export declare const MS_PER_SECOND = 1000;
|
|
9
|
+
/** Seconds per minute */
|
|
10
|
+
export declare const SECONDS_PER_MINUTE = 60;
|
|
11
|
+
/** Minutes per hour */
|
|
12
|
+
export declare const MINUTES_PER_HOUR = 60;
|
|
13
|
+
/** Hours per day */
|
|
14
|
+
export declare const HOURS_PER_DAY = 24;
|
|
15
|
+
/** Days per week */
|
|
16
|
+
export declare const DAYS_PER_WEEK = 7;
|
|
17
|
+
/** One minute in milliseconds */
|
|
18
|
+
export declare const ONE_MINUTE_MS: number;
|
|
19
|
+
/** One hour in milliseconds */
|
|
20
|
+
export declare const ONE_HOUR_MS: number;
|
|
21
|
+
/** One day in milliseconds */
|
|
22
|
+
export declare const ONE_DAY_MS: number;
|
|
23
|
+
/** One week in milliseconds */
|
|
24
|
+
export declare const ONE_WEEK_MS: number;
|
|
25
|
+
/** Default TTL for helper workflows (5 minutes) */
|
|
26
|
+
export declare const WORKFLOW_TTL_MS: number;
|
|
27
|
+
/** Default workflow timeout (15 minutes) */
|
|
28
|
+
export declare const WORKFLOW_TIMEOUT_MS: number;
|
|
29
|
+
/** Default workflow sweep interval (30 minutes) */
|
|
30
|
+
export declare const WORKFLOW_SWEEP_MS: number;
|
|
31
|
+
/**
|
|
32
|
+
* Trajectory gate block retry settings
|
|
33
|
+
* Used when trajectory recording fails and needs to retry
|
|
34
|
+
*/
|
|
35
|
+
export declare const TRAJECTORY_GATE_BLOCK_RETRY_DELAY_MS = 250;
|
|
36
|
+
export declare const TRAJECTORY_GATE_BLOCK_MAX_RETRIES = 3;
|
|
37
|
+
export declare const THINKING_CHECKPOINT_WINDOW_MS: number;
|
|
38
|
+
export declare const THINKING_CHECKPOINT_DEFAULT_HIGH_RISK_TOOLS: readonly ["run_shell_command", "delete_file", "move_file"];
|
|
39
|
+
/** Large change threshold for GFI gate adjustments */
|
|
40
|
+
export declare const GFI_LARGE_CHANGE_LINES = 50;
|
|
41
|
+
/** Agent spawn GFI threshold (critically high = no spawn) */
|
|
42
|
+
export declare const AGENT_SPAWN_GFI_THRESHOLD = 90;
|
|
43
|
+
/** Evolution worker polling interval (15 minutes) */
|
|
44
|
+
export declare const EVOLUTION_WORKER_POLL_INTERVAL_MS: number;
|
|
45
|
+
/** Evolution queue batch size */
|
|
46
|
+
export declare const EVOLUTION_QUEUE_BATCH_SIZE = 10;
|
|
47
|
+
export declare const SESSION_TOKEN_WARNING_THRESHOLD = 8000;
|
|
48
|
+
export declare const SESSION_MAX_IDLE_MS: number;
|
|
49
|
+
export declare const EVENT_LOG_BUFFER_SIZE = 20;
|
|
50
|
+
export declare const EVENT_LOG_FLUSH_INTERVAL_MS: number;
|
|
51
|
+
/** Default busy timeout for SQLite operations (5 seconds) */
|
|
52
|
+
export declare const DEFAULT_BUSY_TIMEOUT_MS: number;
|
|
53
|
+
/** Max string length for trajectory/event logs */
|
|
54
|
+
export declare const MAX_STRING_LENGTH = 1000;
|
|
55
|
+
/** Default max file size (10MB) */
|
|
56
|
+
export declare const MAX_FILE_SIZE_BYTES: number;
|
|
57
|
+
/** Two hours in milliseconds */
|
|
58
|
+
export declare const TWO_HOURS_MS: number;
|
|
@@ -4,108 +4,71 @@
|
|
|
4
4
|
* All runtime-related constants that were previously scattered across modules.
|
|
5
5
|
* Centralizing these makes it easier to tune behavior and understand limits.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
7
|
// ── Time Constants ──────────────────────────────────────────────────────────────
|
|
9
|
-
|
|
10
8
|
/** Milliseconds per second */
|
|
11
9
|
export const MS_PER_SECOND = 1000;
|
|
12
|
-
|
|
13
10
|
/** Seconds per minute */
|
|
14
11
|
export const SECONDS_PER_MINUTE = 60;
|
|
15
|
-
|
|
16
12
|
/** Minutes per hour */
|
|
17
13
|
export const MINUTES_PER_HOUR = 60;
|
|
18
|
-
|
|
19
14
|
/** Hours per day */
|
|
20
15
|
export const HOURS_PER_DAY = 24;
|
|
21
|
-
|
|
22
16
|
/** Days per week */
|
|
23
17
|
export const DAYS_PER_WEEK = 7;
|
|
24
|
-
|
|
25
18
|
/** One minute in milliseconds */
|
|
26
19
|
export const ONE_MINUTE_MS = SECONDS_PER_MINUTE * MS_PER_SECOND;
|
|
27
|
-
|
|
28
20
|
/** One hour in milliseconds */
|
|
29
21
|
export const ONE_HOUR_MS = MINUTES_PER_HOUR * SECONDS_PER_MINUTE * MS_PER_SECOND;
|
|
30
|
-
|
|
31
22
|
/** One day in milliseconds */
|
|
32
23
|
export const ONE_DAY_MS = HOURS_PER_DAY * ONE_HOUR_MS;
|
|
33
|
-
|
|
34
24
|
/** One week in milliseconds */
|
|
35
25
|
export const ONE_WEEK_MS = DAYS_PER_WEEK * ONE_DAY_MS;
|
|
36
|
-
|
|
37
26
|
// ── Workflow TTL & Timeouts ────────────────────────────────────────────────────
|
|
38
|
-
|
|
39
27
|
/** Default TTL for helper workflows (5 minutes) */
|
|
40
28
|
export const WORKFLOW_TTL_MS = 5 * ONE_MINUTE_MS;
|
|
41
|
-
|
|
42
29
|
/** Default workflow timeout (15 minutes) */
|
|
43
30
|
export const WORKFLOW_TIMEOUT_MS = 15 * ONE_MINUTE_MS;
|
|
44
|
-
|
|
45
31
|
/** Default workflow sweep interval (30 minutes) */
|
|
46
32
|
export const WORKFLOW_SWEEP_MS = 30 * ONE_MINUTE_MS;
|
|
47
|
-
|
|
48
33
|
// ── Trajectory Gate Block Retry Settings ──────────────────────────────────────
|
|
49
|
-
|
|
50
34
|
/**
|
|
51
35
|
* Trajectory gate block retry settings
|
|
52
36
|
* Used when trajectory recording fails and needs to retry
|
|
53
37
|
*/
|
|
54
38
|
export const TRAJECTORY_GATE_BLOCK_RETRY_DELAY_MS = 250;
|
|
55
39
|
export const TRAJECTORY_GATE_BLOCK_MAX_RETRIES = 3;
|
|
56
|
-
|
|
57
40
|
// ── Thinking Checkpoint Defaults (P-10) ───────────────────────────────────────
|
|
58
|
-
|
|
59
41
|
export const THINKING_CHECKPOINT_WINDOW_MS = 5 * ONE_MINUTE_MS;
|
|
60
42
|
export const THINKING_CHECKPOINT_DEFAULT_HIGH_RISK_TOOLS = [
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
]
|
|
65
|
-
|
|
43
|
+
'run_shell_command',
|
|
44
|
+
'delete_file',
|
|
45
|
+
'move_file',
|
|
46
|
+
];
|
|
66
47
|
// ── GFI Gate Thresholds ───────────────────────────────────────────────────────
|
|
67
|
-
|
|
68
48
|
/** Large change threshold for GFI gate adjustments */
|
|
69
49
|
export const GFI_LARGE_CHANGE_LINES = 50;
|
|
70
|
-
|
|
71
50
|
/** Agent spawn GFI threshold (critically high = no spawn) */
|
|
72
51
|
export const AGENT_SPAWN_GFI_THRESHOLD = 90;
|
|
73
|
-
|
|
74
52
|
// ── Evolution Worker Settings ───────────────────────────────────────────────────
|
|
75
|
-
|
|
76
53
|
/** Evolution worker polling interval (15 minutes) */
|
|
77
54
|
export const EVOLUTION_WORKER_POLL_INTERVAL_MS = 15 * ONE_MINUTE_MS;
|
|
78
|
-
|
|
79
55
|
/** Evolution queue batch size */
|
|
80
56
|
export const EVOLUTION_QUEUE_BATCH_SIZE = 10;
|
|
81
|
-
|
|
82
57
|
// ── Session Tracker Settings ───────────────────────────────────────────────────
|
|
83
|
-
|
|
84
58
|
export const SESSION_TOKEN_WARNING_THRESHOLD = 8000;
|
|
85
59
|
export const SESSION_MAX_IDLE_MS = 30 * ONE_MINUTE_MS;
|
|
86
|
-
|
|
87
60
|
// ── Event Log Buffer Settings ───────────────────────────────────────────────────
|
|
88
|
-
|
|
89
61
|
export const EVENT_LOG_BUFFER_SIZE = 20;
|
|
90
62
|
export const EVENT_LOG_FLUSH_INTERVAL_MS = 30 * MS_PER_SECOND;
|
|
91
|
-
|
|
92
63
|
// ── Default Busy Timeout ───────────────────────────────────────────────────────
|
|
93
|
-
|
|
94
64
|
/** Default busy timeout for SQLite operations (5 seconds) */
|
|
95
65
|
export const DEFAULT_BUSY_TIMEOUT_MS = 5 * MS_PER_SECOND;
|
|
96
|
-
|
|
97
66
|
// ── String & Size Limits ────────────────────────────────────────────────────────
|
|
98
|
-
|
|
99
67
|
/** Max string length for trajectory/event logs */
|
|
100
68
|
export const MAX_STRING_LENGTH = 1000;
|
|
101
|
-
|
|
102
69
|
/** Default max file size (10MB) */
|
|
103
70
|
export const MAX_FILE_SIZE_BYTES = 10 * 1024 * 1024;
|
|
104
|
-
|
|
105
71
|
// ── Workflow TTL Settings ───────────────────────────────────────────────────────
|
|
106
|
-
|
|
107
|
-
|
|
108
72
|
// ── Time Window Constants ───────────────────────────────────────────────────────
|
|
109
|
-
|
|
110
73
|
/** Two hours in milliseconds */
|
|
111
74
|
export const TWO_HOURS_MS = 2 * ONE_HOUR_MS;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain-Specific Errors for Principles Disciple
|
|
3
|
+
*
|
|
4
|
+
* These errors provide semantic meaning to failure modes,
|
|
5
|
+
* making it easier to distinguish between:
|
|
6
|
+
* - Lock contention (resource busy)
|
|
7
|
+
* - Parse/validation failures
|
|
8
|
+
* - Derived state mismatches
|
|
9
|
+
* - Configuration issues
|
|
10
|
+
*/
|
|
11
|
+
import type { PDErrorCategory } from '@principles/core';
|
|
12
|
+
/**
|
|
13
|
+
* Base class for all Principles Disciple errors
|
|
14
|
+
*/
|
|
15
|
+
export declare class PdError extends Error {
|
|
16
|
+
readonly code: string;
|
|
17
|
+
readonly category: PDErrorCategory;
|
|
18
|
+
constructor(message: string, code: string, options?: {
|
|
19
|
+
cause?: unknown;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Thrown when a resource lock cannot be acquired
|
|
24
|
+
* (e.g., queue, trajectory, evolution file)
|
|
25
|
+
*/
|
|
26
|
+
export declare class LockUnavailableError extends PdError {
|
|
27
|
+
constructor(resource: string, scope: string, options?: {
|
|
28
|
+
cause?: unknown;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Thrown when a path key cannot be resolved
|
|
33
|
+
*/
|
|
34
|
+
export declare class PathResolutionError extends PdError {
|
|
35
|
+
constructor(key: string, options?: {
|
|
36
|
+
cause?: unknown;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Thrown when a workspace cannot be found
|
|
41
|
+
*/
|
|
42
|
+
export declare class WorkspaceNotFoundError extends PdError {
|
|
43
|
+
constructor(workspace: string, options?: {
|
|
44
|
+
cause?: unknown;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Thrown when a required sample cannot be found
|
|
49
|
+
*/
|
|
50
|
+
export declare class SampleNotFoundError extends PdError {
|
|
51
|
+
constructor(sampleId: string, options?: {
|
|
52
|
+
cause?: unknown;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Thrown when configuration is invalid or missing required fields
|
|
57
|
+
*/
|
|
58
|
+
export declare class ConfigurationError extends PdError {
|
|
59
|
+
constructor(message: string, options?: {
|
|
60
|
+
cause?: unknown;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Thrown when prompt/logger dependencies are unavailable
|
|
65
|
+
*/
|
|
66
|
+
export declare class DependencyError extends PdError {
|
|
67
|
+
constructor(component: string, message: string, options?: {
|
|
68
|
+
cause?: unknown;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Thrown when evolution worker encounters a processing error
|
|
73
|
+
*/
|
|
74
|
+
export declare class EvolutionProcessingError extends PdError {
|
|
75
|
+
constructor(message: string, options?: {
|
|
76
|
+
cause?: unknown;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Thrown when trajectory operations fail
|
|
81
|
+
*/
|
|
82
|
+
export declare class TrajectoryError extends PdError {
|
|
83
|
+
constructor(message: string, options?: {
|
|
84
|
+
cause?: unknown;
|
|
85
|
+
});
|
|
86
|
+
}
|