create-principles-disciple 1.95.0 → 1.97.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.
Files changed (263) hide show
  1. package/console/dist/server/config/pd-config-store.js +49 -12
  2. package/console/dist/server/index.js +4 -3
  3. package/console/dist/server/models/IntentPageModel.d.ts +36 -2
  4. package/console/dist/server/models/IntentPageModel.js +213 -11
  5. package/console/dist/server/routes/intent.d.ts +5 -1
  6. package/console/dist/server/routes/intent.js +200 -12
  7. package/console/dist/types.d.ts +1 -0
  8. package/console/dist/ui/App.js +0 -53
  9. package/console/dist/ui/api.d.ts +18 -4
  10. package/console/dist/ui/api.js +38 -5
  11. package/console/dist/ui/components/layout/app-sidebar.js +12 -12
  12. package/console/dist/ui/components/ui/badge.d.ts +1 -1
  13. package/console/dist/ui/i18n/en.json +142 -3
  14. package/console/dist/ui/i18n/zh-CN.json +142 -3
  15. package/console/dist/ui/pages/control-center/AgentCard.d.ts +31 -0
  16. package/console/dist/ui/pages/control-center/AgentCard.js +156 -0
  17. package/console/dist/ui/pages/control-center/AgentGroup.d.ts +26 -0
  18. package/console/dist/ui/pages/control-center/AgentGroup.js +38 -0
  19. package/console/dist/ui/pages/control-center/ControlCenterPage.js +77 -41
  20. package/console/dist/ui/pages/control-center/WorkflowDiagram.d.ts +17 -0
  21. package/console/dist/ui/pages/control-center/WorkflowDiagram.js +55 -0
  22. package/console/dist/ui/pages/intent/IntentOnboarding.d.ts +67 -0
  23. package/console/dist/ui/pages/intent/IntentOnboarding.js +289 -0
  24. package/console/dist/ui/pages/intent/IntentPage.js +117 -6
  25. package/console/dist/ui/utils/agent-metadata.d.ts +58 -0
  26. package/console/dist/ui/utils/agent-metadata.js +275 -0
  27. package/console/dist/ui/utils/control-center-helpers.d.ts +19 -0
  28. package/console/dist/ui/utils/control-center-helpers.js +37 -0
  29. package/console/dist/ui/utils/validators.d.ts +37 -0
  30. package/console/dist/ui/utils/validators.js +130 -0
  31. package/console/dist/web/assets/app.css +360 -3
  32. package/console/dist/web/assets/app.js +2952 -1143
  33. package/console/package.json +1 -1
  34. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js +27 -35
  35. package/core/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  36. package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js +85 -7
  37. package/core/dist/runtime-v2/__tests__/evaluator-runner-vslice-v2.test.js.map +1 -1
  38. package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js +70 -0
  39. package/core/dist/runtime-v2/__tests__/golden-trace-replay-validator.test.js.map +1 -1
  40. package/core/dist/runtime-v2/__tests__/golden-trace.test.js +136 -1
  41. package/core/dist/runtime-v2/__tests__/golden-trace.test.js.map +1 -1
  42. package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts +2 -0
  43. package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.d.ts.map +1 -0
  44. package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js +211 -0
  45. package/core/dist/runtime-v2/__tests__/v2-adversarial-cases.test.js.map +1 -0
  46. package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js +93 -0
  47. package/core/dist/runtime-v2/activation/writers/__tests__/rule-host-writer.test.js.map +1 -1
  48. package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts +11 -0
  49. package/core/dist/runtime-v2/activation/writers/rule-host-writer.d.ts.map +1 -1
  50. package/core/dist/runtime-v2/activation/writers/rule-host-writer.js +22 -0
  51. package/core/dist/runtime-v2/activation/writers/rule-host-writer.js.map +1 -1
  52. package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts +2 -0
  53. package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.d.ts.map +1 -0
  54. package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js +74 -0
  55. package/core/dist/runtime-v2/feature-flags/__tests__/rulecode-context-v2-flag.test.js.map +1 -0
  56. package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts +2 -0
  57. package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.d.ts.map +1 -0
  58. package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js +246 -0
  59. package/core/dist/runtime-v2/feature-flags/__tests__/surface-guard-policy.test.js.map +1 -0
  60. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  61. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js +7 -0
  62. package/core/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  63. package/core/dist/runtime-v2/feature-flags/index.d.ts +2 -0
  64. package/core/dist/runtime-v2/feature-flags/index.d.ts.map +1 -1
  65. package/core/dist/runtime-v2/feature-flags/index.js +2 -0
  66. package/core/dist/runtime-v2/feature-flags/index.js.map +1 -1
  67. package/{plugin/dist/core/surface-guard.d.ts → core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts} +15 -5
  68. package/core/dist/runtime-v2/feature-flags/surface-guard-policy.d.ts.map +1 -0
  69. package/{plugin/dist/core/surface-guard.js → core/dist/runtime-v2/feature-flags/surface-guard-policy.js} +14 -2
  70. package/core/dist/runtime-v2/feature-flags/surface-guard-policy.js.map +1 -0
  71. package/core/dist/runtime-v2/golden-trace-replay-validator.js +1 -1
  72. package/core/dist/runtime-v2/golden-trace-replay-validator.js.map +1 -1
  73. package/core/dist/runtime-v2/golden-trace.d.ts +19 -3
  74. package/core/dist/runtime-v2/golden-trace.d.ts.map +1 -1
  75. package/core/dist/runtime-v2/golden-trace.js +2 -0
  76. package/core/dist/runtime-v2/golden-trace.js.map +1 -1
  77. package/core/dist/runtime-v2/index.d.ts +15 -3
  78. package/core/dist/runtime-v2/index.d.ts.map +1 -1
  79. package/core/dist/runtime-v2/index.js +11 -2
  80. package/core/dist/runtime-v2/index.js.map +1 -1
  81. package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts +2 -0
  82. package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.d.ts.map +1 -0
  83. package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js +88 -0
  84. package/core/dist/runtime-v2/intent/__tests__/intent-doc-version.test.js.map +1 -0
  85. package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js +91 -1
  86. package/core/dist/runtime-v2/intent/__tests__/intent-doc.test.js.map +1 -1
  87. package/core/dist/runtime-v2/intent/index.d.ts +2 -0
  88. package/core/dist/runtime-v2/intent/index.d.ts.map +1 -1
  89. package/core/dist/runtime-v2/intent/index.js +2 -0
  90. package/core/dist/runtime-v2/intent/index.js.map +1 -1
  91. package/core/dist/runtime-v2/intent/intent-browser.d.ts +23 -0
  92. package/core/dist/runtime-v2/intent/intent-browser.d.ts.map +1 -0
  93. package/core/dist/runtime-v2/intent/intent-browser.js +21 -0
  94. package/core/dist/runtime-v2/intent/intent-browser.js.map +1 -0
  95. package/core/dist/runtime-v2/intent/intent-doc-version.d.ts +28 -0
  96. package/core/dist/runtime-v2/intent/intent-doc-version.d.ts.map +1 -0
  97. package/core/dist/runtime-v2/intent/intent-doc-version.js +21 -0
  98. package/core/dist/runtime-v2/intent/intent-doc-version.js.map +1 -0
  99. package/core/dist/runtime-v2/intent/intent-doc.d.ts +17 -1
  100. package/core/dist/runtime-v2/intent/intent-doc.d.ts.map +1 -1
  101. package/core/dist/runtime-v2/intent/intent-doc.js +95 -7
  102. package/core/dist/runtime-v2/intent/intent-doc.js.map +1 -1
  103. package/core/dist/runtime-v2/intent/intent-hash.d.ts +2 -0
  104. package/core/dist/runtime-v2/intent/intent-hash.d.ts.map +1 -0
  105. package/core/dist/runtime-v2/intent/intent-hash.js +10 -0
  106. package/core/dist/runtime-v2/intent/intent-hash.js.map +1 -0
  107. package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +41 -1
  108. package/core/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
  109. package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js +130 -2
  110. package/core/dist/runtime-v2/internalization/__tests__/artificer-rule-output.test.js.map +1 -1
  111. package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts +2 -0
  112. package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.d.ts.map +1 -0
  113. package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js +228 -0
  114. package/core/dist/runtime-v2/internalization/__tests__/behavior-example-pack.test.js.map +1 -0
  115. package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +41 -11
  116. package/core/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
  117. package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js +135 -0
  118. package/core/dist/runtime-v2/internalization/__tests__/refiner-sandbox-wrapper.test.js.map +1 -1
  119. package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts +2 -0
  120. package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.d.ts.map +1 -0
  121. package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js +449 -0
  122. package/core/dist/runtime-v2/internalization/__tests__/rule-context-v2.test.js.map +1 -0
  123. package/core/dist/runtime-v2/internalization/adversarial-case.d.ts.map +1 -1
  124. package/core/dist/runtime-v2/internalization/adversarial-case.js +24 -0
  125. package/core/dist/runtime-v2/internalization/adversarial-case.js.map +1 -1
  126. package/core/dist/runtime-v2/internalization/artificer-output.d.ts +10 -0
  127. package/core/dist/runtime-v2/internalization/artificer-output.d.ts.map +1 -1
  128. package/core/dist/runtime-v2/internalization/artificer-output.js +45 -0
  129. package/core/dist/runtime-v2/internalization/artificer-output.js.map +1 -1
  130. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +2 -2
  131. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
  132. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js +7 -2
  133. package/core/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
  134. package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts +66 -0
  135. package/core/dist/runtime-v2/internalization/behavior-example-pack.d.ts.map +1 -0
  136. package/core/dist/runtime-v2/internalization/behavior-example-pack.js +183 -0
  137. package/core/dist/runtime-v2/internalization/behavior-example-pack.js.map +1 -0
  138. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts +8 -0
  139. package/core/dist/runtime-v2/internalization/evaluator-output.d.ts.map +1 -1
  140. package/core/dist/runtime-v2/internalization/evaluator-output.js +10 -0
  141. package/core/dist/runtime-v2/internalization/evaluator-output.js.map +1 -1
  142. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts +17 -0
  143. package/core/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
  144. package/core/dist/runtime-v2/internalization/evaluator-runner.js +118 -24
  145. package/core/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
  146. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.d.ts.map +1 -1
  147. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js +1 -1
  148. package/core/dist/runtime-v2/internalization/refiner-sandbox-wrapper.js.map +1 -1
  149. package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts +61 -0
  150. package/core/dist/runtime-v2/internalization/rule-context-v2.d.ts.map +1 -0
  151. package/core/dist/runtime-v2/internalization/rule-context-v2.js +301 -0
  152. package/core/dist/runtime-v2/internalization/rule-context-v2.js.map +1 -0
  153. package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts +9 -0
  154. package/core/dist/runtime-v2/internalization/rule-host-contracts.d.ts.map +1 -1
  155. package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts +55 -0
  156. package/core/dist/runtime-v2/internalization/v2-adversarial-cases.d.ts.map +1 -0
  157. package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js +131 -0
  158. package/core/dist/runtime-v2/internalization/v2-adversarial-cases.js.map +1 -0
  159. package/core/dist/runtime-v2/pain-signal-observability.d.ts.map +1 -1
  160. package/core/dist/runtime-v2/pain-signal-observability.js +24 -1
  161. package/core/dist/runtime-v2/pain-signal-observability.js.map +1 -1
  162. package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts +2 -0
  163. package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.d.ts.map +1 -0
  164. package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js +95 -0
  165. package/core/dist/runtime-v2/risk/__tests__/risk-calculator-policy.test.js.map +1 -0
  166. package/core/dist/runtime-v2/risk/index.d.ts +7 -0
  167. package/core/dist/runtime-v2/risk/index.d.ts.map +1 -0
  168. package/core/dist/runtime-v2/risk/index.js +6 -0
  169. package/core/dist/runtime-v2/risk/index.js.map +1 -0
  170. package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts +18 -0
  171. package/core/dist/runtime-v2/risk/risk-calculator-policy.d.ts.map +1 -0
  172. package/core/dist/runtime-v2/risk/risk-calculator-policy.js +47 -0
  173. package/core/dist/runtime-v2/risk/risk-calculator-policy.js.map +1 -0
  174. package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts +2 -0
  175. package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.d.ts.map +1 -0
  176. package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js +83 -0
  177. package/core/dist/runtime-v2/store/intent/__tests__/sqlite-intent-doc-version-store.test.js.map +1 -0
  178. package/core/dist/runtime-v2/store/intent/index.d.ts +2 -1
  179. package/core/dist/runtime-v2/store/intent/index.d.ts.map +1 -1
  180. package/core/dist/runtime-v2/store/intent/index.js +2 -1
  181. package/core/dist/runtime-v2/store/intent/index.js.map +1 -1
  182. package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts +28 -0
  183. package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.d.ts.map +1 -0
  184. package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js +88 -0
  185. package/core/dist/runtime-v2/store/intent/sqlite-intent-doc-version-store.js.map +1 -0
  186. package/core/dist/runtime-v2/store/sqlite-connection.d.ts.map +1 -1
  187. package/core/dist/runtime-v2/store/sqlite-connection.js +14 -0
  188. package/core/dist/runtime-v2/store/sqlite-connection.js.map +1 -1
  189. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts +2 -0
  190. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.d.ts.map +1 -0
  191. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js +149 -0
  192. package/core/dist/runtime-v2/thinking-models/__tests__/thinking-models-policy.test.js.map +1 -0
  193. package/core/dist/runtime-v2/thinking-models/index.d.ts +3 -0
  194. package/core/dist/runtime-v2/thinking-models/index.d.ts.map +1 -0
  195. package/core/dist/runtime-v2/thinking-models/index.js +3 -0
  196. package/core/dist/runtime-v2/thinking-models/index.js.map +1 -0
  197. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts +73 -0
  198. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.d.ts.map +1 -0
  199. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js +227 -0
  200. package/core/dist/runtime-v2/thinking-models/thinking-models-policy.js.map +1 -0
  201. package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js +40 -1
  202. package/core/dist/runtime-v2/tools/__tests__/artificer-l2-tool-contract.test.js.map +1 -1
  203. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.d.ts.map +1 -1
  204. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js +28 -1
  205. package/core/dist/runtime-v2/tools/artificer-l2-tool-contract.js.map +1 -1
  206. package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts +3 -0
  207. package/core/dist/runtime-v2/tools/artificer-output-typebox.d.ts.map +1 -1
  208. package/core/dist/runtime-v2/tools/artificer-output-typebox.js +3 -0
  209. package/core/dist/runtime-v2/tools/artificer-output-typebox.js.map +1 -1
  210. package/core/package.json +4 -0
  211. package/package.json +1 -1
  212. package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js +74 -3
  213. package/pd-cli/dist/commands/__tests__/intent-flag-wiring.test.js.map +1 -1
  214. package/pd-cli/dist/commands/intent.d.ts +21 -4
  215. package/pd-cli/dist/commands/intent.d.ts.map +1 -1
  216. package/pd-cli/dist/commands/intent.js +88 -27
  217. package/pd-cli/dist/commands/intent.js.map +1 -1
  218. package/plugin/dist/commands/pain.js +2 -2
  219. package/plugin/dist/core/behavior-example-pack-assembler.d.ts +43 -0
  220. package/plugin/dist/core/behavior-example-pack-assembler.js +247 -0
  221. package/plugin/dist/core/intent-doc-reader-adapter.d.ts +13 -5
  222. package/plugin/dist/core/intent-doc-reader-adapter.js +25 -5
  223. package/plugin/dist/core/intent-doc-reader.d.ts +13 -4
  224. package/plugin/dist/core/intent-doc-reader.js +45 -24
  225. package/plugin/dist/core/rule-context-assembler.d.ts +45 -0
  226. package/plugin/dist/core/rule-context-assembler.js +148 -0
  227. package/plugin/dist/core/thinking-models.d.ts +12 -57
  228. package/plugin/dist/core/thinking-models.js +18 -224
  229. package/plugin/dist/core/trajectory-types.d.ts +18 -0
  230. package/plugin/dist/core/trajectory.d.ts +34 -2
  231. package/plugin/dist/core/trajectory.js +103 -0
  232. package/plugin/dist/hooks/gate.js +59 -2
  233. package/plugin/dist/hooks/pain.js +2 -2
  234. package/plugin/dist/hooks/prompt.js +2 -1
  235. package/plugin/dist/index.js +1 -1
  236. package/plugin/package.json +1 -1
  237. package/plugin/dist/core/evolution-migration.d.ts +0 -5
  238. package/plugin/dist/core/evolution-migration.js +0 -65
  239. package/plugin/dist/core/risk-calculator.d.ts +0 -22
  240. package/plugin/dist/core/risk-calculator.js +0 -88
  241. package/plugin/dist/core/rule-host-helpers.d.ts +0 -8
  242. package/plugin/dist/core/rule-host-helpers.js +0 -7
  243. package/plugin/dist/core/rule-host-types.d.ts +0 -7
  244. package/plugin/dist/core/rule-host-types.js +0 -7
  245. package/plugin/dist/core/schema/db-types.d.ts +0 -11
  246. package/plugin/dist/core/schema/db-types.js +0 -5
  247. package/plugin/dist/core/schema/index.d.ts +0 -17
  248. package/plugin/dist/core/schema/index.js +0 -15
  249. package/plugin/dist/core/schema/migration-runner.d.ts +0 -53
  250. package/plugin/dist/core/schema/migration-runner.js +0 -170
  251. package/plugin/dist/core/schema/migrations/001-init-trajectory.d.ts +0 -6
  252. package/plugin/dist/core/schema/migrations/001-init-trajectory.js +0 -190
  253. package/plugin/dist/core/schema/migrations/002-init-central.d.ts +0 -5
  254. package/plugin/dist/core/schema/migrations/002-init-central.js +0 -108
  255. package/plugin/dist/core/schema/migrations/003-init-workflow.d.ts +0 -5
  256. package/plugin/dist/core/schema/migrations/003-init-workflow.js +0 -50
  257. package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.d.ts +0 -8
  258. package/plugin/dist/core/schema/migrations/004-add-thinking-and-gfi.js +0 -66
  259. package/plugin/dist/core/schema/migrations/index.d.ts +0 -16
  260. package/plugin/dist/core/schema/migrations/index.js +0 -27
  261. package/plugin/dist/core/schema/schema-definitions.d.ts +0 -46
  262. package/plugin/dist/core/schema/schema-definitions.js +0 -599
  263. package/plugin/scripts/db-migrate.mjs +0 -170
@@ -1,65 +0,0 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
- import { stableContentHash } from './evolution-reducer.js';
4
- import { SystemLogger } from './system-logger.js';
5
- function appendEvent(streamPath, event) {
6
- fs.appendFileSync(streamPath, `${JSON.stringify(event)}\n`, 'utf8');
7
- }
8
- function loadImportedHashes(streamPath, workspaceDir) {
9
- if (!fs.existsSync(streamPath))
10
- return new Set();
11
- const raw = fs.readFileSync(streamPath, 'utf8').trim();
12
- if (!raw)
13
- return new Set();
14
- const hashes = new Set();
15
- for (const line of raw.split('\n')) {
16
- try {
17
- const event = JSON.parse(line);
18
- if (event.type !== 'legacy_import')
19
- continue;
20
- const hash = event.data.contentHash;
21
- if (typeof hash === 'string')
22
- hashes.add(hash);
23
- }
24
- catch (e) {
25
- SystemLogger.log(workspaceDir, 'MIGRATION_WARN', `skip malformed line: ${String(e)}`);
26
- }
27
- }
28
- return hashes;
29
- }
30
- export function migrateLegacyEvolutionData(workspaceDir) {
31
- const streamPath = path.join(workspaceDir, 'memory', 'evolution.jsonl');
32
- fs.mkdirSync(path.dirname(streamPath), { recursive: true });
33
- const candidates = [
34
- path.join(workspaceDir, 'memory', 'ISSUE_LOG.md'),
35
- path.join(workspaceDir, 'memory', 'DECISIONS.md'),
36
- path.join(workspaceDir, '.principles', 'PRINCIPLES.md'),
37
- ];
38
- const existingHashes = loadImportedHashes(streamPath, workspaceDir);
39
- let importedEvents = 0;
40
- for (const sourceFile of candidates) {
41
- if (!fs.existsSync(sourceFile)) {
42
- continue;
43
- }
44
- const content = fs.readFileSync(sourceFile, 'utf8').trim();
45
- if (!content) {
46
- continue;
47
- }
48
- const contentHash = stableContentHash(`${sourceFile}:${content}`);
49
- if (existingHashes.has(contentHash)) {
50
- continue;
51
- }
52
- appendEvent(streamPath, {
53
- ts: new Date().toISOString(),
54
- type: 'legacy_import',
55
- data: {
56
- sourceFile: path.relative(workspaceDir, sourceFile),
57
- content,
58
- contentHash,
59
- },
60
- });
61
- importedEvents += 1;
62
- existingHashes.add(contentHash);
63
- }
64
- return { importedEvents, streamPath };
65
- }
@@ -1,22 +0,0 @@
1
- export type RiskLevel = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
2
- export interface FileModification {
3
- toolName: string;
4
- params: Record<string, unknown>;
5
- }
6
- export declare function estimateLineChanges(modification: FileModification): number;
7
- export declare function assessRiskLevel(filePath: string, modification: FileModification, riskPaths: string[]): RiskLevel;
8
- /**
9
- * Get the total line count of a target file.
10
- * @param absoluteFilePath - Absolute path to the file
11
- * @returns File line count, or null if file doesn't exist or can't be read
12
- */
13
- export declare function getTargetFileLineCount(absoluteFilePath: string): number | null;
14
- /**
15
- * Calculate the effective line limit based on percentage of target file.
16
- * @param targetLineCount - Total lines in target file
17
- * @param percentage - Allowed percentage (0-100)
18
- * @param minLines - Absolute minimum threshold
19
- * @param maxLines - Optional upper bound to prevent misconfiguration
20
- * @returns Maximum allowed lines (at least minLines, at most maxLines if provided)
21
- */
22
- export declare function calculatePercentageThreshold(targetLineCount: number, percentage: number, minLines: number, maxLines?: number): number;
@@ -1,88 +0,0 @@
1
- /* global NodeJS */
2
- import * as fs from 'fs';
3
- import { isRisky } from '../utils/io.js';
4
- export function estimateLineChanges(modification) {
5
- const { toolName, params } = modification;
6
- if (toolName === 'write_file' || toolName === 'write') {
7
- const content = params.content || '';
8
- return content.split('\n').length;
9
- }
10
- if (toolName === 'replace' || toolName === 'edit') {
11
- const newContent = params.new_string || params.newText || '';
12
- return newContent.split('\n').length;
13
- }
14
- if (toolName === 'apply_patch' || toolName === 'patch') {
15
- const patch = params.patch || '';
16
- // Rough estimate for patch files
17
- return patch.split('\n').filter((l) => l.startsWith('+') || l.startsWith('-')).length;
18
- }
19
- if (toolName === 'delete_file') {
20
- // Deleting a file is considered a significant change, but we don't know the size.
21
- // We'll treat it as a medium-to-large size change.
22
- return 50;
23
- }
24
- return 0;
25
- }
26
- export function assessRiskLevel(filePath, modification, riskPaths) {
27
- const isRiskPath = isRisky(filePath, riskPaths);
28
- const estimatedLines = estimateLineChanges(modification);
29
- if (isRiskPath) {
30
- if (estimatedLines > 100)
31
- return 'CRITICAL';
32
- return 'HIGH';
33
- }
34
- else {
35
- if (estimatedLines > 100)
36
- return 'HIGH';
37
- if (estimatedLines > 10)
38
- return 'MEDIUM';
39
- return 'LOW';
40
- }
41
- }
42
- /**
43
- * Get the total line count of a target file.
44
- * @param absoluteFilePath - Absolute path to the file
45
- * @returns File line count, or null if file doesn't exist or can't be read
46
- */
47
- export function getTargetFileLineCount(absoluteFilePath) {
48
- try {
49
- if (!fs.existsSync(absoluteFilePath)) {
50
- return null; // File genuinely doesn't exist
51
- }
52
- const stats = fs.statSync(absoluteFilePath);
53
- if (!stats.isFile()) {
54
- return null; // Not a regular file (directory, device, etc.)
55
- }
56
- const content = fs.readFileSync(absoluteFilePath, 'utf-8');
57
- return content.split('\n').length;
58
- }
59
- catch (e) {
60
- // Log error before falling back to null - this is intentional for security gates
61
- const error = e instanceof Error ? e : new Error(String(e));
62
- const errorCode = e.code;
63
- console.error(`[PD:RISK_CALC] Failed to read file for line count: ${absoluteFilePath}`, {
64
- code: errorCode,
65
- message: error.message,
66
- });
67
- return null;
68
- }
69
- }
70
- /**
71
- * Calculate the effective line limit based on percentage of target file.
72
- * @param targetLineCount - Total lines in target file
73
- * @param percentage - Allowed percentage (0-100)
74
- * @param minLines - Absolute minimum threshold
75
- * @param maxLines - Optional upper bound to prevent misconfiguration
76
- * @returns Maximum allowed lines (at least minLines, at most maxLines if provided)
77
- */
78
- export function calculatePercentageThreshold(targetLineCount, percentage, minLines, maxLines) {
79
- // Clamp percentage to valid range [0, 100]
80
- const clampedPercentage = Math.max(0, Math.min(100, percentage));
81
- const calculated = Math.round(targetLineCount * (clampedPercentage / 100));
82
- let effectiveLimit = Math.max(calculated, minLines);
83
- // Apply optional upper bound
84
- if (maxLines !== undefined && maxLines > 0) {
85
- effectiveLimit = Math.min(effectiveLimit, maxLines);
86
- }
87
- return effectiveLimit;
88
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Rule Host Helpers — Re-exported from @principles/core (PRI-42)
3
- *
4
- * Canonical definitions moved to:
5
- * packages/principles-core/src/runtime-v2/internalization/rule-host-helpers.ts
6
- */
7
- export type { RuleHostHelpers } from '@principles/core/runtime-v2';
8
- export { createRuleHostHelpers } from '@principles/core/runtime-v2';
@@ -1,7 +0,0 @@
1
- /**
2
- * Rule Host Helpers — Re-exported from @principles/core (PRI-42)
3
- *
4
- * Canonical definitions moved to:
5
- * packages/principles-core/src/runtime-v2/internalization/rule-host-helpers.ts
6
- */
7
- export { createRuleHostHelpers } from '@principles/core/runtime-v2';
@@ -1,7 +0,0 @@
1
- /**
2
- * Rule Host Types — Re-exported from @principles/core (PRI-42)
3
- *
4
- * Canonical definitions moved to:
5
- * packages/principles-core/src/runtime-v2/internalization/rule-host-contracts.ts
6
- */
7
- export type { RuleHostInput, RuleHostDecision, RuleHostMeta, RuleHostResult, LoadedImplementation, } from '@principles/core/runtime-v2';
@@ -1,7 +0,0 @@
1
- /**
2
- * Rule Host Types — Re-exported from @principles/core (PRI-42)
3
- *
4
- * Canonical definitions moved to:
5
- * packages/principles-core/src/runtime-v2/internalization/rule-host-contracts.ts
6
- */
7
- export {};
@@ -1,11 +0,0 @@
1
- /**
2
- * Shared type definitions for database operations.
3
- * Kept separate to avoid circular dependencies between schema-definitions and migration-runner.
4
- */
5
- /** Minimal interface for better-sqlite3 Database instances. */
6
- export interface Db {
7
- exec(_sql: string): unknown;
8
- get<T = unknown>(_sql: string, ..._params: unknown[]): T | undefined;
9
- run(_sql: string, ..._params: unknown[]): unknown;
10
- close(): void;
11
- }
@@ -1,5 +0,0 @@
1
- /**
2
- * Shared type definitions for database operations.
3
- * Kept separate to avoid circular dependencies between schema-definitions and migration-runner.
4
- */
5
- export {};
@@ -1,17 +0,0 @@
1
- /**
2
- * Schema Management — Unified database schema definitions and migrations.
3
- *
4
- * Usage:
5
- * // In a database class constructor:
6
- * import { ensureDatabaseSchema } from './schema';
7
- * ensureDatabaseSchema(db, 'trajectory.db');
8
- *
9
- * CLI:
10
- * node scripts/db-migrate.mjs status
11
- * node scripts/db-migrate.mjs run
12
- */
13
- export { MigrationRunner, ensureDatabaseSchema } from './migration-runner.js';
14
- export { SCHEMAS, getCatalog, DB_TYPES } from './schema-definitions.js';
15
- export { ALL_MIGRATIONS } from './migrations/index.js';
16
- export type { Db } from './db-types.js';
17
- export type { Migration, DbType, TableDefinition, ViewDefinition, FtsDefinition, SchemaCatalog, } from './migration-runner.js';
@@ -1,15 +0,0 @@
1
- /**
2
- * Schema Management — Unified database schema definitions and migrations.
3
- *
4
- * Usage:
5
- * // In a database class constructor:
6
- * import { ensureDatabaseSchema } from './schema';
7
- * ensureDatabaseSchema(db, 'trajectory.db');
8
- *
9
- * CLI:
10
- * node scripts/db-migrate.mjs status
11
- * node scripts/db-migrate.mjs run
12
- */
13
- export { MigrationRunner, ensureDatabaseSchema } from './migration-runner.js';
14
- export { SCHEMAS, getCatalog, DB_TYPES } from './schema-definitions.js';
15
- export { ALL_MIGRATIONS } from './migrations/index.js';
@@ -1,53 +0,0 @@
1
- /**
2
- * Migration Runner — Executes and tracks schema migrations.
3
- *
4
- * Each migration is versioned. The runner reads the current version from
5
- * the `schema_version` table and only executes migrations with higher IDs.
6
- *
7
- * Usage:
8
- * const runner = new MigrationRunner(db);
9
- * runner.run(allMigrations.filter(m => m.db === 'trajectory.db'));
10
- */
11
- import type { Migration } from './schema-definitions.js';
12
- import { type DbType } from './schema-definitions.js';
13
- import type { Db } from './db-types.js';
14
- export declare class MigrationRunner {
15
- private readonly db;
16
- constructor(db: Db);
17
- /**
18
- * Run all pending migrations for a given database type.
19
- * @returns Array of migration names that were applied
20
- */
21
- runMigrations(migrations: Migration[], _dbType: DbType): string[];
22
- /**
23
- * Apply all schema definitions (tables, indexes, views, FTS) for a database.
24
- * This is a convenience method that creates everything from the schema catalog.
25
- * Used for initial setup when no migrations exist yet.
26
- */
27
- applySchemaCatalog(dbType: DbType): void;
28
- /**
29
- * Get the current migration version.
30
- * Returns '000' if no version is set (fresh database).
31
- */
32
- getCurrentVersion(): string;
33
- /**
34
- * Get all available migration info for a database type.
35
- */
36
- getMigrationInfo(migrations: Migration[], dbType: DbType): {
37
- id: string;
38
- name: string;
39
- applied: boolean;
40
- }[];
41
- /**
42
- * Rollback the latest migration (if down migration is defined).
43
- */
44
- rollback(migrations: Migration[], dbType: DbType): string | null;
45
- private ensureVersionTable;
46
- private setVersion;
47
- }
48
- /**
49
- * Factory: create a MigrationRunner and apply schema catalog for a given database.
50
- * This is the main entry point for database classes.
51
- */
52
- export declare function ensureDatabaseSchema(db: Db, dbType: DbType): void;
53
- export type { Migration, DbType, TableDefinition, ViewDefinition, FtsDefinition, SchemaCatalog } from './schema-definitions.js';
@@ -1,170 +0,0 @@
1
- /**
2
- * Migration Runner — Executes and tracks schema migrations.
3
- *
4
- * Each migration is versioned. The runner reads the current version from
5
- * the `schema_version` table and only executes migrations with higher IDs.
6
- *
7
- * Usage:
8
- * const runner = new MigrationRunner(db);
9
- * runner.run(allMigrations.filter(m => m.db === 'trajectory.db'));
10
- */
11
- import { getCatalog } from './schema-definitions.js';
12
- export class MigrationRunner {
13
- db;
14
- constructor(db) {
15
- this.db = db;
16
- }
17
- /**
18
- * Run all pending migrations for a given database type.
19
- * @returns Array of migration names that were applied
20
- */
21
- runMigrations(migrations, _dbType) {
22
- // NOTE: _dbType is kept for API signature compatibility but migrations are pre-filtered by caller
23
- void _dbType;
24
- // Ensure schema_version table exists before anything else
25
- this.ensureVersionTable();
26
- const currentVersion = this.getCurrentVersion();
27
- const applied = [];
28
- // Filter to pending migrations (higher ID than current)
29
- const pending = migrations
30
- .filter(m => m.id > currentVersion)
31
- .sort((a, b) => a.id.localeCompare(b.id));
32
- for (const migration of pending) {
33
- console.log(`[MigrationRunner] Applying ${migration.id}-${migration.name}...`);
34
- try {
35
- migration.up(this.db);
36
- this.setVersion(migration.id);
37
- applied.push(`${migration.id}-${migration.name}`);
38
- }
39
- catch (err) {
40
- throw new Error(`Migration ${migration.id}-${migration.name} failed: ${String(err)}`, { cause: err });
41
- }
42
- }
43
- if (applied.length > 0) {
44
- console.log(`[MigrationRunner] Applied ${applied.length} migration(s): ${applied.join(', ')}`);
45
- }
46
- return applied;
47
- }
48
- /**
49
- * Apply all schema definitions (tables, indexes, views, FTS) for a database.
50
- * This is a convenience method that creates everything from the schema catalog.
51
- * Used for initial setup when no migrations exist yet.
52
- */
53
- applySchemaCatalog(dbType) {
54
- this.ensureVersionTable();
55
- const catalog = getCatalog(dbType);
56
- // Tables
57
- for (const [key, table] of Object.entries(catalog.tables)) {
58
- try {
59
- this.db.exec(table.ddl);
60
- }
61
- catch (err) {
62
- throw new Error(`Failed to create table ${key}: ${String(err)}`, { cause: err });
63
- }
64
- // Indexes
65
- for (const indexDdl of table.indexes ?? []) {
66
- try {
67
- this.db.exec(indexDdl);
68
- }
69
- catch (err) {
70
- throw new Error(`Failed to create index for ${key}: ${String(err)}`, { cause: err });
71
- }
72
- }
73
- }
74
- // Views
75
- for (const [key, view] of Object.entries(catalog.views)) {
76
- try {
77
- this.db.exec(view.ddl);
78
- }
79
- catch (err) {
80
- throw new Error(`Failed to create view ${key}: ${String(err)}`, { cause: err });
81
- }
82
- }
83
- // FTS5 virtual tables
84
- for (const [key, fts] of Object.entries(catalog.fts)) {
85
- try {
86
- this.db.exec(fts.ddl);
87
- }
88
- catch (err) {
89
- throw new Error(`Failed to create FTS table ${key}: ${String(err)}`, { cause: err });
90
- }
91
- }
92
- }
93
- /**
94
- * Get the current migration version.
95
- * Returns '000' if no version is set (fresh database).
96
- */
97
- getCurrentVersion() {
98
- try {
99
- const row = this.db.get('SELECT version FROM schema_version ORDER BY version DESC LIMIT 1');
100
- return row?.version ?? '000';
101
- }
102
- catch {
103
- return '000';
104
- }
105
- }
106
- /**
107
- * Get all available migration info for a database type.
108
- */
109
- getMigrationInfo(migrations, dbType) {
110
- const currentVersion = this.getCurrentVersion();
111
- return migrations
112
- .filter(m => m.db === dbType)
113
- .sort((a, b) => a.id.localeCompare(b.id))
114
- .map(m => ({
115
- id: m.id,
116
- name: m.name,
117
- applied: m.id <= currentVersion,
118
- }));
119
- }
120
- /**
121
- * Rollback the latest migration (if down migration is defined).
122
- */
123
- rollback(migrations, dbType) {
124
- const currentVersion = this.getCurrentVersion();
125
- if (currentVersion === '000')
126
- return null;
127
- const migration = migrations.find(m => m.db === dbType && m.id === currentVersion);
128
- if (!migration)
129
- return null;
130
- if (!migration.down) {
131
- throw new Error(`Migration ${migration.id}-${migration.name} has no down migration`);
132
- }
133
- console.log(`[MigrationRunner] Rolling back ${migration.id}-${migration.name}...`);
134
- migration.down(this.db);
135
- // Set version to previous migration
136
- const previousMigrations = migrations
137
- .filter(m => m.db === dbType && m.id < currentVersion)
138
- .sort((a, b) => b.id.localeCompare(a.id));
139
- const newVersion = previousMigrations[0]?.id ?? '000';
140
- this.setVersion(newVersion);
141
- console.log(`[MigrationRunner] Rolled back to ${newVersion}`);
142
- return migration.id;
143
- }
144
- // -----------------------------------------------------------------------
145
- // Private helpers
146
- // -----------------------------------------------------------------------
147
- ensureVersionTable() {
148
- this.db.exec(`
149
- CREATE TABLE IF NOT EXISTS schema_version (
150
- version TEXT NOT NULL DEFAULT '000'
151
- )
152
- `);
153
- // Ensure at least one row exists
154
- const count = this.db.get('SELECT COUNT(*) as cnt FROM schema_version');
155
- if (!count || count.cnt === 0) {
156
- this.db.exec("INSERT INTO schema_version (version) VALUES ('000')");
157
- }
158
- }
159
- setVersion(version) {
160
- this.db.exec(`UPDATE schema_version SET version = '${version}'`);
161
- }
162
- }
163
- /**
164
- * Factory: create a MigrationRunner and apply schema catalog for a given database.
165
- * This is the main entry point for database classes.
166
- */
167
- export function ensureDatabaseSchema(db, dbType) {
168
- const runner = new MigrationRunner(db);
169
- runner.applySchemaCatalog(dbType);
170
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Migration: Initialize trajectory.db tables
3
- * This creates all core event store tables.
4
- */
5
- import type { Migration } from '../migration-runner.js';
6
- export declare const migration: Migration;