@principles/pd-cli 1.152.12 → 1.152.14

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.
Files changed (305) hide show
  1. package/dist/commands/candidate.d.ts.map +1 -1
  2. package/dist/commands/candidate.js +34 -7
  3. package/dist/commands/candidate.js.map +1 -1
  4. package/dist/commands/diagnose.d.ts.map +1 -1
  5. package/dist/commands/diagnose.js +23 -7
  6. package/dist/commands/diagnose.js.map +1 -1
  7. package/dist/commands/pain-retry.d.ts.map +1 -1
  8. package/dist/commands/pain-retry.js +21 -7
  9. package/dist/commands/pain-retry.js.map +1 -1
  10. package/package.json +13 -7
  11. package/CHANGELOG.md +0 -23
  12. package/dist/commands/__tests__/intent-flag-wiring.test.d.ts +0 -9
  13. package/dist/commands/__tests__/intent-flag-wiring.test.d.ts.map +0 -1
  14. package/dist/commands/__tests__/intent-flag-wiring.test.js +0 -237
  15. package/dist/commands/__tests__/intent-flag-wiring.test.js.map +0 -1
  16. package/dist/commands/__tests__/legacy-cleanup.test.d.ts +0 -18
  17. package/dist/commands/__tests__/legacy-cleanup.test.d.ts.map +0 -1
  18. package/dist/commands/__tests__/legacy-cleanup.test.js +0 -467
  19. package/dist/commands/__tests__/legacy-cleanup.test.js.map +0 -1
  20. package/dist/commands/__tests__/mvp-smoke.test.d.ts +0 -15
  21. package/dist/commands/__tests__/mvp-smoke.test.d.ts.map +0 -1
  22. package/dist/commands/__tests__/mvp-smoke.test.js +0 -262
  23. package/dist/commands/__tests__/mvp-smoke.test.js.map +0 -1
  24. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.d.ts +0 -2
  25. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.d.ts.map +0 -1
  26. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.js +0 -60
  27. package/dist/commands/__tests__/pain-retry-maxTokens-flag.test.js.map +0 -1
  28. package/dist/commands/__tests__/rulecode-flag-wiring.test.d.ts +0 -21
  29. package/dist/commands/__tests__/rulecode-flag-wiring.test.d.ts.map +0 -1
  30. package/dist/commands/__tests__/rulecode-flag-wiring.test.js +0 -186
  31. package/dist/commands/__tests__/rulecode-flag-wiring.test.js.map +0 -1
  32. package/dist/commands/__tests__/rulecode-handler.test.d.ts +0 -16
  33. package/dist/commands/__tests__/rulecode-handler.test.d.ts.map +0 -1
  34. package/dist/commands/__tests__/rulecode-handler.test.js +0 -285
  35. package/dist/commands/__tests__/rulecode-handler.test.js.map +0 -1
  36. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.d.ts +0 -24
  37. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.d.ts.map +0 -1
  38. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.js +0 -232
  39. package/dist/commands/__tests__/run-rulehost-flag-wiring.test.js.map +0 -1
  40. package/dist/commands/__tests__/runtime-activation-nextaction.test.d.ts +0 -15
  41. package/dist/commands/__tests__/runtime-activation-nextaction.test.d.ts.map +0 -1
  42. package/dist/commands/__tests__/runtime-activation-nextaction.test.js +0 -73
  43. package/dist/commands/__tests__/runtime-activation-nextaction.test.js.map +0 -1
  44. package/dist/commands/__tests__/runtime-probe-config.test.d.ts +0 -20
  45. package/dist/commands/__tests__/runtime-probe-config.test.d.ts.map +0 -1
  46. package/dist/commands/__tests__/runtime-probe-config.test.js +0 -389
  47. package/dist/commands/__tests__/runtime-probe-config.test.js.map +0 -1
  48. package/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts +0 -9
  49. package/dist/commands/__tests__/telemetry-flag-wiring.test.d.ts.map +0 -1
  50. package/dist/commands/__tests__/telemetry-flag-wiring.test.js +0 -76
  51. package/dist/commands/__tests__/telemetry-flag-wiring.test.js.map +0 -1
  52. package/dist/commands/__tests__/version.test.d.ts +0 -2
  53. package/dist/commands/__tests__/version.test.d.ts.map +0 -1
  54. package/dist/commands/__tests__/version.test.js +0 -238
  55. package/dist/commands/__tests__/version.test.js.map +0 -1
  56. package/dist/commands/runtime-uat.guard.test.d.ts +0 -2
  57. package/dist/commands/runtime-uat.guard.test.d.ts.map +0 -1
  58. package/dist/commands/runtime-uat.guard.test.js +0 -153
  59. package/dist/commands/runtime-uat.guard.test.js.map +0 -1
  60. package/dist/services/__tests__/cli-output.test.d.ts +0 -18
  61. package/dist/services/__tests__/cli-output.test.d.ts.map +0 -1
  62. package/dist/services/__tests__/cli-output.test.js +0 -103
  63. package/dist/services/__tests__/cli-output.test.js.map +0 -1
  64. package/dist/services/__tests__/evaluator-runner-deps.test.d.ts +0 -2
  65. package/dist/services/__tests__/evaluator-runner-deps.test.d.ts.map +0 -1
  66. package/dist/services/__tests__/evaluator-runner-deps.test.js +0 -343
  67. package/dist/services/__tests__/evaluator-runner-deps.test.js.map +0 -1
  68. package/dist/services/__tests__/rulehost-readiness.test.d.ts +0 -2
  69. package/dist/services/__tests__/rulehost-readiness.test.d.ts.map +0 -1
  70. package/dist/services/__tests__/rulehost-readiness.test.js +0 -311
  71. package/dist/services/__tests__/rulehost-readiness.test.js.map +0 -1
  72. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts +0 -18
  73. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts.map +0 -1
  74. package/dist/services/__tests__/runtime-adapter-resolver.test.js +0 -673
  75. package/dist/services/__tests__/runtime-adapter-resolver.test.js.map +0 -1
  76. package/dist/utils/production-workspace-guard.test.d.ts +0 -2
  77. package/dist/utils/production-workspace-guard.test.d.ts.map +0 -1
  78. package/dist/utils/production-workspace-guard.test.js +0 -137
  79. package/dist/utils/production-workspace-guard.test.js.map +0 -1
  80. package/scripts/llm-dogfood.ts +0 -456
  81. package/scripts/migrate-illegal-expected-decision.ts +0 -252
  82. package/src/commands/__tests__/intent-flag-wiring.test.ts +0 -282
  83. package/src/commands/__tests__/legacy-cleanup.test.ts +0 -602
  84. package/src/commands/__tests__/mvp-smoke.test.ts +0 -300
  85. package/src/commands/__tests__/pain-retry-maxTokens-flag.test.ts +0 -73
  86. package/src/commands/__tests__/rulecode-flag-wiring.test.ts +0 -237
  87. package/src/commands/__tests__/rulecode-handler.test.ts +0 -369
  88. package/src/commands/__tests__/run-rulehost-flag-wiring.test.ts +0 -292
  89. package/src/commands/__tests__/runtime-activation-nextaction.test.ts +0 -81
  90. package/src/commands/__tests__/runtime-probe-config.test.ts +0 -432
  91. package/src/commands/__tests__/telemetry-flag-wiring.test.ts +0 -84
  92. package/src/commands/__tests__/version.test.ts +0 -251
  93. package/src/commands/admission-gate.ts +0 -30
  94. package/src/commands/artifact.ts +0 -82
  95. package/src/commands/build-trajectory-evidence.ts +0 -298
  96. package/src/commands/candidate.ts +0 -1250
  97. package/src/commands/codex-ingest-catchup.ts +0 -114
  98. package/src/commands/codex-ingest-quarantine.ts +0 -127
  99. package/src/commands/codex-reconcile.ts +0 -84
  100. package/src/commands/codex-setup.ts +0 -476
  101. package/src/commands/codex-worker.ts +0 -185
  102. package/src/commands/command-helpers.ts +0 -24
  103. package/src/commands/config-doctor.ts +0 -193
  104. package/src/commands/console.ts +0 -797
  105. package/src/commands/context.ts +0 -72
  106. package/src/commands/demo-story-a.ts +0 -241
  107. package/src/commands/diagnose.ts +0 -756
  108. package/src/commands/errors-list.ts +0 -441
  109. package/src/commands/evolution-tasks-list.ts +0 -48
  110. package/src/commands/evolution-tasks-show.ts +0 -62
  111. package/src/commands/flow.ts +0 -60
  112. package/src/commands/health-codex.ts +0 -576
  113. package/src/commands/health.ts +0 -315
  114. package/src/commands/history.ts +0 -63
  115. package/src/commands/intent.ts +0 -457
  116. package/src/commands/legacy-cleanup.ts +0 -531
  117. package/src/commands/legacy-import.ts +0 -104
  118. package/src/commands/mvp-smoke.ts +0 -160
  119. package/src/commands/pain-evidence.ts +0 -226
  120. package/src/commands/pain-list.ts +0 -239
  121. package/src/commands/pain-record.ts +0 -612
  122. package/src/commands/pain-retry.ts +0 -916
  123. package/src/commands/principles-stats.ts +0 -700
  124. package/src/commands/proven-channel-baseline.ts +0 -115
  125. package/src/commands/quality-scorecard.ts +0 -272
  126. package/src/commands/remediation-output.ts +0 -66
  127. package/src/commands/rulecode.ts +0 -465
  128. package/src/commands/run.ts +0 -89
  129. package/src/commands/runtime-activation.ts +0 -1629
  130. package/src/commands/runtime-artifact-repair.ts +0 -524
  131. package/src/commands/runtime-canary.ts +0 -395
  132. package/src/commands/runtime-compatibility-scan.ts +0 -105
  133. package/src/commands/runtime-diagnostics-export.ts +0 -229
  134. package/src/commands/runtime-features.ts +0 -153
  135. package/src/commands/runtime-gfi-snapshot.ts +0 -135
  136. package/src/commands/runtime-health-snapshot.ts +0 -108
  137. package/src/commands/runtime-init.ts +0 -429
  138. package/src/commands/runtime-internalization-enqueue-successors.ts +0 -530
  139. package/src/commands/runtime-internalization-integrity-repair.ts +0 -79
  140. package/src/commands/runtime-internalization-integrity.ts +0 -107
  141. package/src/commands/runtime-internalization-queue.ts +0 -135
  142. package/src/commands/runtime-internalization-retry.ts +0 -191
  143. package/src/commands/runtime-internalization-run-once.ts +0 -791
  144. package/src/commands/runtime-internalization-run-rulehost.ts +0 -749
  145. package/src/commands/runtime-internalization-wake-once.ts +0 -87
  146. package/src/commands/runtime-pain-flood-simulation.ts +0 -121
  147. package/src/commands/runtime-pruning.ts +0 -438
  148. package/src/commands/runtime-recovery-failed-tasks.ts +0 -258
  149. package/src/commands/runtime-recovery.ts +0 -109
  150. package/src/commands/runtime-synthetic-baseline.ts +0 -70
  151. package/src/commands/runtime-uat.guard.test.ts +0 -175
  152. package/src/commands/runtime-uat.ts +0 -380
  153. package/src/commands/runtime.ts +0 -473
  154. package/src/commands/samples-list.ts +0 -39
  155. package/src/commands/samples-review.ts +0 -36
  156. package/src/commands/task.ts +0 -271
  157. package/src/commands/telemetry.ts +0 -349
  158. package/src/commands/trace.ts +0 -174
  159. package/src/commands/trajectory-db-unavailable.ts +0 -19
  160. package/src/commands/trajectory.ts +0 -64
  161. package/src/commands/version.ts +0 -49
  162. package/src/config-reader.ts +0 -122
  163. package/src/index.ts +0 -1276
  164. package/src/legacy/legacy-import.ts +0 -179
  165. package/src/legacy/session-history-import.ts +0 -203
  166. package/src/resolve-workspace.ts +0 -106
  167. package/src/services/__tests__/cli-output.test.ts +0 -130
  168. package/src/services/__tests__/evaluator-runner-deps.test.ts +0 -382
  169. package/src/services/__tests__/rulehost-readiness.test.ts +0 -363
  170. package/src/services/__tests__/runtime-adapter-resolver.test.ts +0 -793
  171. package/src/services/cli-output.ts +0 -95
  172. package/src/services/config-doctor.ts +0 -697
  173. package/src/services/console-launcher.ts +0 -537
  174. package/src/services/demo-rule-compiler.ts +0 -40
  175. package/src/services/demo-story-a-runner.ts +0 -471
  176. package/src/services/mainline-snapshot-assembler.ts +0 -579
  177. package/src/services/pain-flood-simulation-runner.ts +0 -462
  178. package/src/services/pd-config-loader.ts +0 -433
  179. package/src/services/proven-channel-baseline-runner.ts +0 -157
  180. package/src/services/quality-scorecard/data-extractor.ts +0 -150
  181. package/src/services/quality-scorecard/local-evaluator.ts +0 -142
  182. package/src/services/quality-scorecard/strong-model-gate.ts +0 -202
  183. package/src/services/resolve-runtime-from-pd-config.ts +0 -230
  184. package/src/services/rulehost-pipeline-runner.ts +0 -1214
  185. package/src/services/rulehost-readiness.ts +0 -326
  186. package/src/services/runtime-adapter-resolver.ts +0 -364
  187. package/src/services/synthetic-baseline-runner.ts +0 -400
  188. package/src/services/version-report.ts +0 -253
  189. package/src/services/workspace-tool-semantics.ts +0 -26
  190. package/src/utils/path-security.ts +0 -96
  191. package/src/utils/production-workspace-guard.test.ts +0 -157
  192. package/src/utils/production-workspace-guard.ts +0 -210
  193. package/tests/bdd/cli-contract.steps.ts +0 -346
  194. package/tests/bdd/principles-stats.steps.ts +0 -211
  195. package/tests/bdd/support/gherkin-loader.ts +0 -147
  196. package/tests/bdd/support/repo-root.ts +0 -62
  197. package/tests/bdd/support/vitest-bdd.ts +0 -179
  198. package/tests/commands/admission-gate-coverage.test.ts +0 -79
  199. package/tests/commands/build-trajectory-evidence.test.ts +0 -508
  200. package/tests/commands/candidate-audit-repair.test.ts +0 -421
  201. package/tests/commands/candidate-intake.test.ts +0 -732
  202. package/tests/commands/candidate-internalization-backfill.test.ts +0 -548
  203. package/tests/commands/candidate-internalize-lineage.test.ts +0 -628
  204. package/tests/commands/candidate-internalize.test.ts +0 -299
  205. package/tests/commands/candidate-route.test.ts +0 -329
  206. package/tests/commands/candidate-show.test.ts +0 -95
  207. package/tests/commands/cli-command-tree.test.ts +0 -144
  208. package/tests/commands/cli-help-snapshot.test.ts +0 -155
  209. package/tests/commands/cli-skill-contract.test.ts +0 -121
  210. package/tests/commands/codex-consent-reversibility.steps.test.ts +0 -299
  211. package/tests/commands/codex-ingest-quarantine.test.ts +0 -136
  212. package/tests/commands/codex-setup.test.ts +0 -297
  213. package/tests/commands/codex-worker-daemon.test.ts +0 -95
  214. package/tests/commands/codex-worker-registration.test.ts +0 -207
  215. package/tests/commands/config-doctor.test.ts +0 -336
  216. package/tests/commands/console-launcher-edge-cases.test.ts +0 -388
  217. package/tests/commands/console-open.test.ts +0 -1381
  218. package/tests/commands/context.test.ts +0 -114
  219. package/tests/commands/demo-story-a.test.ts +0 -318
  220. package/tests/commands/diagnose.test.ts +0 -1803
  221. package/tests/commands/errors-list.test.ts +0 -679
  222. package/tests/commands/evolution-tasks-list.test.ts +0 -41
  223. package/tests/commands/evolution-tasks-show.test.ts +0 -46
  224. package/tests/commands/health-codex.test.ts +0 -349
  225. package/tests/commands/health-host-wiring.test.ts +0 -76
  226. package/tests/commands/health-reliability.test.ts +0 -99
  227. package/tests/commands/health.test.ts +0 -413
  228. package/tests/commands/intent.test.ts +0 -321
  229. package/tests/commands/legacy-cleanup.test.ts +0 -148
  230. package/tests/commands/pain-evidence.test.ts +0 -518
  231. package/tests/commands/pain-list.test.ts +0 -219
  232. package/tests/commands/pain-record-async.test.ts +0 -335
  233. package/tests/commands/pain-record-session-parser.test.ts +0 -228
  234. package/tests/commands/pain-record.test.ts +0 -851
  235. package/tests/commands/pain-retry.test.ts +0 -1121
  236. package/tests/commands/plugin-config-resolution-cutover.test.ts +0 -229
  237. package/tests/commands/pri-393-runtime-config-unification.test.ts +0 -443
  238. package/tests/commands/principles-stats-wiring.test.ts +0 -135
  239. package/tests/commands/principles-stats.test.ts +0 -274
  240. package/tests/commands/product-path-regression.test.ts +0 -86
  241. package/tests/commands/proven-channel-baseline.test.ts +0 -441
  242. package/tests/commands/rulecode.test.ts +0 -177
  243. package/tests/commands/run-rulehost-handler.test.ts +0 -908
  244. package/tests/commands/runtime-activation-approve-flag-wiring.test.ts +0 -227
  245. package/tests/commands/runtime-activation-deactivate-flag-wiring.test.ts +0 -167
  246. package/tests/commands/runtime-activation-dispatch-flag-wiring.test.ts +0 -262
  247. package/tests/commands/runtime-activation-governance-audit.test.ts +0 -95
  248. package/tests/commands/runtime-activation-list-flag-wiring.test.ts +0 -193
  249. package/tests/commands/runtime-activation-promote-flag-wiring.test.ts +0 -248
  250. package/tests/commands/runtime-activation-shadow-telemetry.test.ts +0 -130
  251. package/tests/commands/runtime-activation.test.ts +0 -2052
  252. package/tests/commands/runtime-artifact-repair-registration.test.ts +0 -74
  253. package/tests/commands/runtime-artifact-repair.test.ts +0 -404
  254. package/tests/commands/runtime-canary.test.ts +0 -430
  255. package/tests/commands/runtime-compatibility-scan.test.ts +0 -146
  256. package/tests/commands/runtime-diagnostics-export.test.ts +0 -175
  257. package/tests/commands/runtime-features.test.ts +0 -249
  258. package/tests/commands/runtime-health-snapshot.test.ts +0 -358
  259. package/tests/commands/runtime-init-empty-workspace.test.ts +0 -252
  260. package/tests/commands/runtime-init.test.ts +0 -420
  261. package/tests/commands/runtime-internalization-enqueue-successors.test.ts +0 -782
  262. package/tests/commands/runtime-internalization-integrity-repair.test.ts +0 -239
  263. package/tests/commands/runtime-internalization-integrity.test.ts +0 -140
  264. package/tests/commands/runtime-internalization-queue.test.ts +0 -380
  265. package/tests/commands/runtime-internalization-retry-owner-authority.test.ts +0 -431
  266. package/tests/commands/runtime-internalization-run-once-evaluator-parity.test.ts +0 -269
  267. package/tests/commands/runtime-internalization-run-once-language.test.ts +0 -303
  268. package/tests/commands/runtime-internalization-run-once-real-config.test.ts +0 -237
  269. package/tests/commands/runtime-internalization-run-once-rollout-parity.test.ts +0 -706
  270. package/tests/commands/runtime-internalization-run-once.test.ts +0 -1791
  271. package/tests/commands/runtime-internalization-wake-once.test.ts +0 -171
  272. package/tests/commands/runtime-internalization.test.ts +0 -53
  273. package/tests/commands/runtime-pain-flood-simulation.test.ts +0 -418
  274. package/tests/commands/runtime-pruning.test.ts +0 -694
  275. package/tests/commands/runtime-recovery-failed-tasks.test.ts +0 -328
  276. package/tests/commands/runtime-recovery.test.ts +0 -120
  277. package/tests/commands/runtime-synthetic-baseline.test.ts +0 -249
  278. package/tests/commands/runtime-uat.test.ts +0 -397
  279. package/tests/commands/runtime.test.ts +0 -392
  280. package/tests/commands/samples-list.test.ts +0 -43
  281. package/tests/commands/samples-review.test.ts +0 -41
  282. package/tests/commands/task.test.ts +0 -153
  283. package/tests/commands/telemetry.test.ts +0 -190
  284. package/tests/commands/trace.test.ts +0 -316
  285. package/tests/config-reader.test.ts +0 -143
  286. package/tests/e2e/candidate-intake-e2e.test.ts +0 -338
  287. package/tests/e2e/cli-full-flow.test.ts +0 -233
  288. package/tests/e2e/cross-package-acceptance.test.ts +0 -635
  289. package/tests/helpers/pd-cli-path.ts +0 -5
  290. package/tests/pd-cli-smoke.test.ts +0 -13
  291. package/tests/resolve-workspace.test.ts +0 -196
  292. package/tests/services/config-doctor-signal-health.test.ts +0 -109
  293. package/tests/services/console-launcher.test.ts +0 -114
  294. package/tests/services/demo-rule-compiler.test.ts +0 -242
  295. package/tests/services/mainline-snapshot-assembler.test.ts +0 -572
  296. package/tests/services/pd-config-loader.test.ts +0 -505
  297. package/tests/services/proven-channel-baseline-runner.test.ts +0 -30
  298. package/tests/services/quality-scorecard/strong-model-gate.test.ts +0 -133
  299. package/tests/services/resolve-runtime-from-pd-config.test.ts +0 -485
  300. package/tests/services/rulehost-pipeline-e2e.test.ts +0 -538
  301. package/tests/services/rulehost-pipeline-runner.test.ts +0 -1242
  302. package/tests/services/workspace-tool-semantics.test.ts +0 -76
  303. package/tests/utils/path-security.test.ts +0 -180
  304. package/tsconfig.json +0 -26
  305. package/vitest.config.ts +0 -10
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-adapter-resolver.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/runtime-adapter-resolver.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=production-workspace-guard.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"production-workspace-guard.test.d.ts","sourceRoot":"","sources":["../../src/utils/production-workspace-guard.test.ts"],"names":[],"mappings":""}
@@ -1,137 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import * as path from 'path';
3
- import * as os from 'os';
4
- import { isProductionWorkspace, guardUatWorkspace, getSafeUatWorkspacePath, resolveWorkspacePath, formatGuardRefusal, } from './production-workspace-guard.js';
5
- // Use os.homedir()-derived paths so the tests work cross-platform
6
- // (previously hardcoded Windows paths like D:\.openclaw\workspace which on
7
- // Linux resolve to <cwd>/D:\.openclaw\workspace — meaningless).
8
- const HOMEDIR_WORKSPACE = path.join(os.homedir(), '.openclaw', 'workspace');
9
- const PRODUCTION_PATHS = [
10
- HOMEDIR_WORKSPACE,
11
- ];
12
- const SAFE_PATHS = [
13
- path.join(os.homedir(), '.openclaw', 'workspace-test'),
14
- path.join(os.homedir(), '.openclaw', 'workspace-backup'),
15
- path.join(os.tmpdir(), 'pd-uat-workspace'),
16
- path.join(os.tmpdir(), 'pd-test-any'),
17
- // A path that is clearly unrelated on every platform
18
- path.join(os.tmpdir(), 'completely-unrelated-work'),
19
- ];
20
- describe('isProductionWorkspace', () => {
21
- it.each(PRODUCTION_PATHS)('detects production: %s', (prodPath) => {
22
- expect(isProductionWorkspace(path.resolve(prodPath))).toBe(true);
23
- });
24
- it.each(SAFE_PATHS)('allows safe: %s', (safePath) => {
25
- expect(isProductionWorkspace(path.resolve(safePath))).toBe(false);
26
- });
27
- it('detects descendant', () => {
28
- const prodPath = path.resolve(HOMEDIR_WORKSPACE);
29
- const descendantPath = path.join(prodPath, 'sub', 'child');
30
- expect(isProductionWorkspace(descendantPath)).toBe(true);
31
- });
32
- it('rejects sibling workspace-test (ERR-030)', () => {
33
- expect(isProductionWorkspace(path.resolve(path.join(os.homedir(), '.openclaw', 'workspace-test')))).toBe(false);
34
- });
35
- it('rejects sibling workspace-backup (ERR-030)', () => {
36
- expect(isProductionWorkspace(path.resolve(path.join(os.homedir(), '.openclaw', 'workspace-backup')))).toBe(false);
37
- });
38
- });
39
- describe('guardUatWorkspace', () => {
40
- describe('refused', () => {
41
- it.each(PRODUCTION_PATHS)('refuses production: %s', (prodPath) => {
42
- const r = guardUatWorkspace(prodPath, 'test');
43
- expect(r.refused).toBe(true);
44
- if (r.refused) {
45
- expect(r.reason).toContain('UAT/runtime test commands are not allowed');
46
- expect(r.nextAction).toContain('temporary workspace');
47
- }
48
- });
49
- it('refuses descendant', () => {
50
- const prodPath = path.resolve(HOMEDIR_WORKSPACE);
51
- const descendantPath = path.join(prodPath, 'subdir');
52
- expect(guardUatWorkspace(descendantPath, 'test').refused).toBe(true);
53
- });
54
- });
55
- describe('allowed', () => {
56
- it.each(SAFE_PATHS)('allows safe: %s', (safePath) => {
57
- const r = guardUatWorkspace(safePath, 'test');
58
- expect(r.refused).toBe(false);
59
- });
60
- it.each([
61
- path.join(os.homedir(), '.openclaw', 'workspace-test'),
62
- path.join(os.homedir(), '.openclaw', 'workspace-backup'),
63
- ])('allows sibling: %s (ERR-030)', (p) => {
64
- expect(guardUatWorkspace(p, 'test').refused).toBe(false);
65
- });
66
- });
67
- });
68
- describe('JSON output (EP-04)', () => {
69
- it('outputs single object with reason and nextAction', () => {
70
- const r = guardUatWorkspace(HOMEDIR_WORKSPACE, 'test');
71
- const json = formatGuardRefusal(r, 'test', true);
72
- const parsed = JSON.parse(json);
73
- expect(parsed).toMatchObject({
74
- status: 'refused', reason: expect.any(String), nextAction: expect.any(String),
75
- workspace: expect.any(String), isProduction: true,
76
- });
77
- expect(Array.isArray(parsed)).toBe(false);
78
- });
79
- it('no console prefixes in JSON', () => {
80
- const r = guardUatWorkspace(HOMEDIR_WORKSPACE, 'test');
81
- const json = formatGuardRefusal(r, 'test', true);
82
- expect(json).not.toContain('[pd-cli]');
83
- expect(json).not.toContain('ERROR:');
84
- expect(json.trim().startsWith('{')).toBe(true);
85
- });
86
- });
87
- describe('text output (EP-03)', () => {
88
- it('includes reason and nextAction', () => {
89
- const r = guardUatWorkspace(HOMEDIR_WORKSPACE, 'test');
90
- const text = formatGuardRefusal(r, 'test', false);
91
- expect(text).toContain('Reason:');
92
- expect(text).toContain('Next Action:');
93
- });
94
- });
95
- describe('getSafeUatWorkspacePath', () => {
96
- it('returns deterministic temp path', () => {
97
- const p1 = getSafeUatWorkspacePath();
98
- const p2 = getSafeUatWorkspacePath();
99
- expect(p1).toBe(p2);
100
- expect(p1).toContain(os.tmpdir());
101
- expect(p1).toContain('pd-uat-workspace');
102
- });
103
- });
104
- describe('resolveWorkspacePath', () => {
105
- it('resolves an absolute path as-is', () => {
106
- const abs = path.resolve('/tmp/my-workspace');
107
- expect(resolveWorkspacePath(abs)).toBe(abs);
108
- });
109
- it('resolves a relative path against cwd', () => {
110
- const result = resolveWorkspacePath('relative/path');
111
- const expected = path.resolve(process.cwd(), 'relative/path');
112
- expect(result).toBe(expected);
113
- });
114
- it('defaults to cwd when no input is provided', () => {
115
- const result = resolveWorkspacePath(undefined);
116
- expect(result).toBe(path.resolve(process.cwd()));
117
- });
118
- });
119
- describe('PD_PRODUCTION_WORKSPACE env var (module-load-time)', () => {
120
- // NOTE: PRODUCTION_WORKSPACE_PATHS is built once at module load time from
121
- // process.env.PD_PRODUCTION_WORKSPACE. Setting the env var after the module
122
- // is loaded does NOT change behavior. These tests verify that the default
123
- // production path (HOMEDIR_WORKSPACE) is correctly protected, which is the
124
- // primary regression risk.
125
- it('guardUatWorkspace refuses the default production workspace', () => {
126
- const r = guardUatWorkspace(HOMEDIR_WORKSPACE, 'test');
127
- expect(r.refused).toBe(true);
128
- if (r.refused) {
129
- expect(r.isProduction).toBe(true);
130
- expect(r.workspace).toBe(path.resolve(HOMEDIR_WORKSPACE));
131
- }
132
- });
133
- it('isProductionWorkspace returns true for the default production path', () => {
134
- expect(isProductionWorkspace(path.resolve(HOMEDIR_WORKSPACE))).toBe(true);
135
- });
136
- });
137
- //# sourceMappingURL=production-workspace-guard.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"production-workspace-guard.test.js","sourceRoot":"","sources":["../../src/utils/production-workspace-guard.test.ts"],"names":[],"mappings":"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"}
@@ -1,456 +0,0 @@
1
- /**
2
- * LLM Dogfood Script — PRI-408 (P1/P2 fixes validation)
3
- *
4
- * Runs the RuleHost pipeline with a REAL LLM (qwen3.6-27b-mtp via LM Studio)
5
- * to validate the six-step value chain end-to-end:
6
- *
7
- * pain → dreamer → philosopher → scribe → artificer ↔ evaluator
8
- * → candidate → auto-enqueue → owner approve → activate
9
- * → before/after behavior comparison → deactivate → restore
10
- *
11
- * Usage:
12
- * npx tsx scripts/llm-dogfood.ts
13
- *
14
- * Prerequisites:
15
- * - LM Studio running on http://localhost:12341 with qwen3.6-27b-mtp loaded
16
- * - Set LMSTUDIO_API_KEY=lm-studio (or any non-empty string)
17
- *
18
- * Output:
19
- * - Console log with each stage's result
20
- * - dogfood-output.json with full structured results
21
- */
22
-
23
- import * as os from 'node:os';
24
- import * as path from 'node:path';
25
- import * as fs from 'node:fs';
26
- import {
27
- PiAiRuntimeAdapter,
28
- ArtificerL2Adapter,
29
- DefaultArtificerValidator,
30
- RuntimeStateManager,
31
- SqliteApprovalQueueStore,
32
- SqliteActivationStateStore,
33
- SqlitePIArtifactStore,
34
- ActivationDispatcher,
35
- ApprovalCompletionService,
36
- PromptWriter,
37
- DeferArchiveWriter,
38
- RuleHostWriter,
39
- createProductionGateDeps,
40
- makeIdempotencyKey,
41
- createPITaskDiagnosticJson,
42
- buildToolSemanticRegistry,
43
- } from '@principles/core/runtime-v2';
44
- import type { PIArtifactSnapshot, PIArtifactRecord } from '@principles/core/runtime-v2';
45
- import { runRuleHostPipeline } from '../src/services/rulehost-pipeline-runner.js';
46
- import { compileDemoRule } from '../src/services/demo-rule-compiler.js';
47
- import { resolveWorkspaceHostToolSemantics, saveHostToolDeclaration } from '@principles/host-runtime';
48
- import type { CodeRuleCapability } from '../src/services/rulehost-pipeline-runner.js';
49
-
50
- // ── Config ───────────────────────────────────────────────────────────────────
51
-
52
- const LM_STUDIO_BASE_URL = 'http://localhost:12341/v1';
53
- const MODEL_ID = 'qwen3.6-27b-mtp';
54
- const PROVIDER = 'lmstudio';
55
- const API_KEY_ENV = 'LMSTUDIO_API_KEY';
56
-
57
- // Ensure the API key env var is set (LM Studio doesn't require a real key,
58
- // but PiAiRuntimeAdapter checks process.env[apiKeyEnv] is non-empty)
59
- if (!process.env[API_KEY_ENV]) {
60
- process.env[API_KEY_ENV] = 'lm-studio';
61
- }
62
-
63
- // ── Dogfood pain scenario ────────────────────────────────────────────────────
64
-
65
- const DOGFOOD_PAIN = {
66
- painId: 'pain-dogfood-001',
67
- scenario: 'Agent attempted to write to /etc/passwd during a file operation',
68
- badDecision: 'Wrote directly to /etc/passwd without checking if it is a system path',
69
- betterDecision: 'Block writes to system paths (/etc, /boot, /sys, /proc)',
70
- context: 'File write operation targeting a system-critical path',
71
- };
72
-
73
- // ── Helpers ──────────────────────────────────────────────────────────────────
74
-
75
- function makeTmpDir(): string {
76
- const dir = path.join(os.tmpdir(), `pd-dogfood-${Date.now()}`);
77
- fs.mkdirSync(dir, { recursive: true });
78
- return dir;
79
- }
80
-
81
- function toSnapshot(record: PIArtifactRecord): PIArtifactSnapshot {
82
- return {
83
- artifactId: record.artifactId,
84
- artifactKind: record.artifactKind,
85
- sourceTaskId: record.sourceTaskId,
86
- sourcePrincipleId: record.sourcePrincipleId,
87
- sourceRuleId: record.sourceRuleId,
88
- lineageArtifactIds: record.lineageArtifactIds,
89
- validationStatus: record.validationStatus,
90
- contentJson: record.contentJson,
91
- createdAt: record.createdAt,
92
- updatedAt: record.updatedAt,
93
- };
94
- }
95
-
96
- async function seedPainSignal(sm: RuntimeStateManager, painId: string): Promise<void> {
97
- const baseMetadata = JSON.parse(createPITaskDiagnosticJson({
98
- dependencyTaskIds: [], channel: 'code_tool_hook', timeoutMs: 300_000, inputArtifactRefs: [], outputArtifactRefs: [],
99
- })) as Record<string, unknown>;
100
- const diagnosticJson = JSON.stringify({
101
- ...baseMetadata,
102
- sourcePainId: painId,
103
- painSummary: DOGFOOD_PAIN.scenario,
104
- badDecision: DOGFOOD_PAIN.badDecision,
105
- betterDecision: DOGFOOD_PAIN.betterDecision,
106
- });
107
- await sm.createTask({
108
- taskId: 'dreamer-dogfood-001',
109
- taskKind: 'dreamer',
110
- status: 'pending',
111
- attemptCount: 0,
112
- maxAttempts: 3,
113
- diagnosticJson,
114
- });
115
- }
116
-
117
- function log(stage: string, message: string, detail?: unknown): void {
118
- const timestamp = new Date().toISOString();
119
- console.log(`[${timestamp}] [${stage}] ${message}`);
120
- if (detail !== undefined) {
121
- console.log(JSON.stringify(detail, null, 2));
122
- }
123
- }
124
-
125
- // ── Main dogfood ─────────────────────────────────────────────────────────────
126
-
127
- async function main(): Promise<void> {
128
- const outputDir = path.resolve(process.cwd(), 'dogfood-output');
129
- fs.mkdirSync(outputDir, { recursive: true });
130
-
131
- const tmpDir = makeTmpDir();
132
- log('SETUP', `Workspace: ${tmpDir}`);
133
- log('SETUP', `LLM: ${MODEL_ID} @ ${LM_STUDIO_BASE_URL}`);
134
-
135
- // PRI-657: persist the dogfood tool declaration UP FRONT (it used to be
136
- // written only at Step 5, so the Step-2 L2 self-validation replay resolved
137
- // no host semantics) — both the artificer gate and the activation writer
138
- // then cross the same durable provenance path as a real workspace.
139
- const dogfoodMappings = [
140
- { rawToolName: 'write_file', canonicalKind: 'write' },
141
- { rawToolName: 'edit_file', canonicalKind: 'write' },
142
- { rawToolName: 'bash', canonicalKind: 'execute' },
143
- { rawToolName: 'shell', canonicalKind: 'execute' },
144
- ];
145
- const dogfoodRegistry = buildToolSemanticRegistry(dogfoodMappings);
146
- if (!dogfoodRegistry.ok) throw new Error(dogfoodRegistry.errors.join('; '));
147
- const declarationSave = saveHostToolDeclaration(tmpDir, {
148
- version: 1,
149
- hostKind: 'llm-dogfood',
150
- mappings: dogfoodMappings,
151
- declaredAt: new Date().toISOString(),
152
- });
153
- if (!declarationSave.ok) throw new Error(`saveHostToolDeclaration failed: ${declarationSave.reason}`);
154
-
155
- // ── Step 1: Seed pain signal ──────────────────────────────────────────────
156
- log('STEP-1', `Seeding pain: ${DOGFOOD_PAIN.scenario}`);
157
- const sm = new RuntimeStateManager({ workspaceDir: tmpDir });
158
- await sm.initialize();
159
- await seedPainSignal(sm, DOGFOOD_PAIN.painId);
160
- await sm.close();
161
-
162
- // ── Step 2: Run RuleHost pipeline with real LLM ──────────────────────────
163
- log('STEP-2', 'Starting RuleHost pipeline (dreamer → philosopher → scribe → artificer ↔ evaluator)');
164
-
165
- const adapter = new PiAiRuntimeAdapter({
166
- provider: PROVIDER,
167
- model: MODEL_ID,
168
- apiKeyEnv: API_KEY_ENV,
169
- baseUrl: LM_STUDIO_BASE_URL,
170
- maxRetries: 1,
171
- timeoutMs: 600_000,
172
- maxTokens: 8192,
173
- reasoning: false,
174
- workspace: tmpDir,
175
- });
176
-
177
- // Construct the ArtificerL2Adapter for the artificer stage (PRI-439 Phase 4).
178
- // This adapter uses runAgentLoop with 4 tools (read_rulecode_spec,
179
- // validate_rulecode, replay_rulecode, submit_rulecode) to generate and
180
- // verify RuleCode inside a multi-turn agent loop.
181
- // PRI-657: production-identical gate deps — resolve the workspace host
182
- // declaration through the same durable resolver run-rulehost uses, so the
183
- // self-validation replay crosses the same tool semantics as activation.
184
- const hostSemantics = resolveWorkspaceHostToolSemantics(tmpDir);
185
- if (!hostSemantics.ok) {
186
- log('STEP-2', `Artificer self-validation without host tool semantics (baseline gate): ${hostSemantics.reason} — ${hostSemantics.nextAction}`);
187
- }
188
- const artificerAdapter = new ArtificerL2Adapter({
189
- provider: PROVIDER,
190
- model: MODEL_ID,
191
- apiKeyEnv: API_KEY_ENV,
192
- baseUrl: LM_STUDIO_BASE_URL,
193
- gateDeps: hostSemantics.ok
194
- ? createProductionGateDeps({ toolSemantics: hostSemantics.registry, projectDir: tmpDir })
195
- : createProductionGateDeps(),
196
- validator: new DefaultArtificerValidator(),
197
- totalBudgetMs: 600_000,
198
- maxTokens: 8192,
199
- });
200
-
201
- const capability: CodeRuleCapability = { enabled: true, artificerAdapter };
202
-
203
- let pipelineResult;
204
- try {
205
- pipelineResult = await runRuleHostPipeline({
206
- workspaceDir: tmpDir,
207
- painId: DOGFOOD_PAIN.painId,
208
- runtimeAdapter: adapter,
209
- channel: 'code_tool_hook',
210
- pollIntervalMs: 200,
211
- timeoutMs: 600_000,
212
- maxRounds: 2,
213
- codeRuleCapability: capability,
214
- onProgress: (stage, status, detail) => {
215
- log('PIPELINE', `${stage}: ${status}${detail ? ' — ' + detail : ''}`);
216
- },
217
- });
218
- } catch (err) {
219
- log('STEP-2', 'Pipeline threw', { error: err instanceof Error ? err.message : String(err) });
220
- throw err;
221
- }
222
-
223
- log('STEP-2', `Pipeline decision: ${pipelineResult.decision}`, {
224
- ruleArtifactId: pipelineResult.ruleArtifactId,
225
- principleArtifactId: pipelineResult.principleArtifactId,
226
- approvalId: pipelineResult.approvalId,
227
- degradationReason: pipelineResult.degradationReason,
228
- });
229
-
230
- if (pipelineResult.decision !== 'candidate_ready_for_owner_review') {
231
- log('STEP-2', 'Pipeline did not produce a candidate — saving partial results and exiting');
232
- const partialOutput = {
233
- pain: DOGFOOD_PAIN,
234
- pipelineResult,
235
- timestamp: new Date().toISOString(),
236
- };
237
- fs.writeFileSync(path.join(outputDir, 'dogfood-partial.json'), JSON.stringify(partialOutput, null, 2));
238
- console.log(`\nPartial results saved to ${path.join(outputDir, 'dogfood-partial.json')}`);
239
- return;
240
- }
241
-
242
- // ── Step 3: Extract generated principle + RuleCode + evaluator judgment ──
243
- log('STEP-3', 'Extracting generated artifacts');
244
- const sm2 = new RuntimeStateManager({ workspaceDir: tmpDir });
245
- await sm2.initialize();
246
- const artifactStore = new SqlitePIArtifactStore(sm2.connection);
247
- const approvalStore = new SqliteApprovalQueueStore(sm2.connection);
248
- const stateStore = new SqliteActivationStateStore(sm2.connection);
249
-
250
- const ruleArtifact = await artifactStore.getArtifactById(pipelineResult.ruleArtifactId!);
251
- const principleArtifact = pipelineResult.principleArtifactId
252
- ? await artifactStore.getArtifactById(pipelineResult.principleArtifactId)
253
- : null;
254
-
255
- let generatedPrinciple: unknown = null;
256
- let ruleCode: string | null = null;
257
- let evaluatorJudgment: unknown = null;
258
-
259
- if (principleArtifact) {
260
- try {
261
- generatedPrinciple = JSON.parse(principleArtifact.contentJson);
262
- } catch {
263
- generatedPrinciple = principleArtifact.contentJson;
264
- }
265
- log('STEP-3', 'Generated principle extracted', { artifactId: principleArtifact.artifactId });
266
- }
267
-
268
- if (ruleArtifact) {
269
- try {
270
- const ruleContent = JSON.parse(ruleArtifact.contentJson) as Record<string, unknown>;
271
- ruleCode = typeof ruleContent.implementationCode === 'string' ? ruleContent.implementationCode : null;
272
- evaluatorJudgment = ruleContent.adversarialResult ?? null;
273
- log('STEP-3', 'RuleCode extracted', { artifactId: ruleArtifact.artifactId, codeLength: ruleCode?.length ?? 0 });
274
- log('STEP-3', 'Evaluator judgment', evaluatorJudgment);
275
- } catch {
276
- log('STEP-3', 'Failed to parse rule artifact contentJson');
277
- }
278
- }
279
-
280
- // ── Step 4: Owner approves the candidate ─────────────────────────────────
281
- log('STEP-4', 'Owner approving candidate');
282
- const approvalId = pipelineResult.approvalId;
283
- if (!approvalId) {
284
- log('STEP-4', 'No approvalId — candidate was not auto-enqueued', {
285
- degradationReason: pipelineResult.degradationReason,
286
- });
287
- const partialOutput = {
288
- pain: DOGFOOD_PAIN,
289
- pipelineResult,
290
- timestamp: new Date().toISOString(),
291
- error: 'auto_enqueue_failed',
292
- };
293
- fs.writeFileSync(path.join(outputDir, 'dogfood-partial.json'), JSON.stringify(partialOutput, null, 2));
294
- console.log(`\nPartial results saved (enqueue failed)`);
295
- await sm2.close();
296
- return;
297
- }
298
- const approveResult = await approvalStore.approve(approvalId, 'owner-dogfood', 'Dogfood approval');
299
- log('STEP-4', `Approval result: ok=${approveResult.ok}`);
300
-
301
- // ── Step 5: Dispatch activation ──────────────────────────────────────────
302
- log('STEP-5', 'Dispatching activation');
303
- const artifactReadModel = {
304
- getArtifactById: async (id: string): Promise<PIArtifactSnapshot | null> => {
305
- const rec = await artifactStore.getArtifactById(id);
306
- return rec ? toSnapshot(rec) : null;
307
- },
308
- };
309
-
310
- // PRI-657: the dogfood tool declaration was persisted at SETUP; Step 2
311
- // re-reads it through the durable resolver, and the activation writer below
312
- // builds its registry from the same dogfoodMappings constant — one source,
313
- // no drift between the two paths.
314
- const dispatcher = new ActivationDispatcher(
315
- artifactReadModel,
316
- stateStore,
317
- {
318
- writers: [
319
- new PromptWriter(),
320
- // PRI-634-F: dogfood replay normalizes against the dogfood workspace
321
- // root and validates tool existence against the declared registry.
322
- new RuleHostWriter({
323
- gateDeps: createProductionGateDeps({ projectDir: tmpDir, toolSemantics: dogfoodRegistry.registry }),
324
- projectDir: tmpDir,
325
- toolSemantics: dogfoodRegistry.registry,
326
- }),
327
- new DeferArchiveWriter(),
328
- ],
329
- approvalQueueStore: approvalStore,
330
- },
331
- );
332
-
333
- const completionService = new ApprovalCompletionService(
334
- approvalStore,
335
- dispatcher,
336
- stateStore,
337
- );
338
-
339
- const completionResult = await completionService.completeApproval({
340
- approvalId,
341
- actor: { kind: 'human', userId: 'owner-dogfood' },
342
- now: new Date().toISOString(),
343
- });
344
-
345
- log('STEP-5', `Activation result: ok=${completionResult.ok}`, completionResult);
346
-
347
- // ── Step 6: Before/after behavior comparison ─────────────────────────────
348
- log('STEP-6', 'Before/after behavior comparison');
349
-
350
- // Test the rule code against system-path and non-system-path inputs
351
- const testCases = [
352
- { name: 'system-path-write', input: { action: { paramsSummary: { path: '/etc/passwd' } } }, expected: 'block' },
353
- { name: 'system-path-write-boot', input: { action: { paramsSummary: { path: '/boot/grub.cfg' } } }, expected: 'block' },
354
- { name: 'normal-write', input: { action: { paramsSummary: { path: '/project/src/main.ts' } } }, expected: 'allow' },
355
- { name: 'normal-write-2', input: { action: { paramsSummary: { path: '/home/user/file.txt' } } }, expected: 'allow' },
356
- ];
357
-
358
- let behaviorResults: Array<{ name: string; expected: string; actual: string; passed: boolean }> = [];
359
- if (ruleCode) {
360
- // P1 #1 fix: use the production vm sandbox (compileDemoRule) instead of
361
- // `new Function` which bypasses the sandbox and has no timeout protection.
362
- // Also, `new Function('input', 'helpers', ruleCode)` would define `evaluate`
363
- // inside the function body but not call it, returning undefined — making
364
- // the behavior comparison unreliable.
365
- try {
366
- const evaluateFn = compileDemoRule(ruleCode, 'dogfood-behavior-test');
367
- behaviorResults = testCases.map((tc) => {
368
- try {
369
- const result = evaluateFn(tc.input as never, {} as never);
370
- const actual = typeof result === 'object' && result !== null && 'decision' in result
371
- ? String((result as Record<string, unknown>).decision)
372
- : 'unknown';
373
- return {
374
- name: tc.name,
375
- expected: tc.expected,
376
- actual,
377
- passed: actual === tc.expected,
378
- };
379
- } catch (err) {
380
- return {
381
- name: tc.name,
382
- expected: tc.expected,
383
- actual: `error: ${err instanceof Error ? err.message : String(err)}`,
384
- passed: false,
385
- };
386
- }
387
- });
388
- } catch (err) {
389
- log('STEP-6', 'Rule code compilation failed (vm sandbox)', { error: err instanceof Error ? err.message : String(err) });
390
- }
391
- }
392
-
393
- log('STEP-6', 'Behavior results', behaviorResults);
394
-
395
- // ── Step 7: Deactivate and verify restoration ────────────────────────────
396
- log('STEP-7', 'Deactivating rule');
397
- const idempotencyKey = makeIdempotencyKey(pipelineResult.ruleArtifactId!, 'code_tool_hook');
398
- const activationRecord = await stateStore.getActivationStatus(idempotencyKey);
399
- if (activationRecord) {
400
- const deactivateResult = await stateStore.deactivateActivation(activationRecord.activationId, new Date().toISOString());
401
- log('STEP-7', `Deactivation: ${deactivateResult ? 'success' : 'failed'}`);
402
-
403
- // Verify the record is deactivated
404
- const afterDeactivate = await stateStore.getActivationStatus(idempotencyKey);
405
- log('STEP-7', `After deactivate: deactivatedAt=${afterDeactivate?.deactivatedAt ?? 'null'}`);
406
- }
407
-
408
- // ── Save full output ─────────────────────────────────────────────────────
409
- const fullOutput = {
410
- timestamp: new Date().toISOString(),
411
- pain: DOGFOOD_PAIN,
412
- pipelineResult: {
413
- decision: pipelineResult.decision,
414
- ruleArtifactId: pipelineResult.ruleArtifactId,
415
- principleArtifactId: pipelineResult.principleArtifactId,
416
- approvalId: pipelineResult.approvalId,
417
- stages: pipelineResult.stages,
418
- degradationReason: pipelineResult.degradationReason,
419
- },
420
- generatedPrinciple,
421
- ruleCode,
422
- evaluatorJudgment,
423
- approval: { ok: approveResult.ok },
424
- activation: {
425
- ok: completionResult.ok,
426
- decision: completionResult.ok ? completionResult.decision : null,
427
- activationId: completionResult.ok ? completionResult.activationId : null,
428
- },
429
- behaviorResults,
430
- model: { provider: PROVIDER, model: MODEL_ID, baseUrl: LM_STUDIO_BASE_URL },
431
- };
432
-
433
- const outputPath = path.join(outputDir, 'dogfood-output.json');
434
- fs.writeFileSync(outputPath, JSON.stringify(fullOutput, null, 2));
435
-
436
- // Also save rule code separately for easy review
437
- if (ruleCode) {
438
- fs.writeFileSync(path.join(outputDir, 'generated-rule.js'), ruleCode);
439
- }
440
-
441
- log('DONE', `Results saved to ${outputDir}/`);
442
-
443
- await sm2.close();
444
-
445
- // Cleanup tmp dir
446
- try {
447
- fs.rmSync(tmpDir, { recursive: true, force: true });
448
- } catch {
449
- // ignore
450
- }
451
- }
452
-
453
- main().catch((err) => {
454
- console.error('Dogfood failed:', err);
455
- process.exit(1);
456
- });