opensquid 0.5.432 → 0.5.447

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 (440) hide show
  1. package/README.md +1 -0
  2. package/dist/functions/arm_scope.d.ts +27 -0
  3. package/dist/functions/arm_scope.d.ts.map +1 -0
  4. package/dist/functions/arm_scope.js +52 -0
  5. package/dist/functions/arm_scope.js.map +1 -0
  6. package/dist/functions/event.d.ts.map +1 -1
  7. package/dist/functions/event.js +18 -2
  8. package/dist/functions/event.js.map +1 -1
  9. package/dist/functions/index.d.ts +4 -0
  10. package/dist/functions/index.d.ts.map +1 -1
  11. package/dist/functions/index.js +4 -0
  12. package/dist/functions/index.js.map +1 -1
  13. package/dist/functions/inject_context.d.ts +18 -0
  14. package/dist/functions/inject_context.d.ts.map +1 -0
  15. package/dist/functions/inject_context.js +16 -0
  16. package/dist/functions/inject_context.js.map +1 -0
  17. package/dist/functions/procedure_pre_inject.d.ts +23 -0
  18. package/dist/functions/procedure_pre_inject.d.ts.map +1 -0
  19. package/dist/functions/procedure_pre_inject.js +49 -0
  20. package/dist/functions/procedure_pre_inject.js.map +1 -0
  21. package/dist/functions/registry.d.ts +6 -0
  22. package/dist/functions/registry.d.ts.map +1 -1
  23. package/dist/functions/registry.js.map +1 -1
  24. package/dist/functions/rubric_pre_inject.d.ts.map +1 -1
  25. package/dist/functions/rubric_pre_inject.js +2 -1
  26. package/dist/functions/rubric_pre_inject.js.map +1 -1
  27. package/dist/functions/set_request_type.d.ts +11 -0
  28. package/dist/functions/set_request_type.d.ts.map +1 -0
  29. package/dist/functions/set_request_type.js +34 -0
  30. package/dist/functions/set_request_type.js.map +1 -0
  31. package/dist/functions/shell_parse.d.ts +1 -0
  32. package/dist/functions/shell_parse.d.ts.map +1 -1
  33. package/dist/functions/shell_parse.js +22 -4
  34. package/dist/functions/shell_parse.js.map +1 -1
  35. package/dist/packs/loader.d.ts.map +1 -1
  36. package/dist/packs/loader.js +26 -0
  37. package/dist/packs/loader.js.map +1 -1
  38. package/dist/runtime/bootstrap.d.ts.map +1 -1
  39. package/dist/runtime/bootstrap.js +6 -0
  40. package/dist/runtime/bootstrap.js.map +1 -1
  41. package/dist/runtime/fsm_state.d.ts +6 -0
  42. package/dist/runtime/fsm_state.d.ts.map +1 -1
  43. package/dist/runtime/fsm_state.js +14 -0
  44. package/dist/runtime/fsm_state.js.map +1 -1
  45. package/dist/runtime/handoff/render.d.ts +5 -4
  46. package/dist/runtime/handoff/render.d.ts.map +1 -1
  47. package/dist/runtime/handoff/render.js +7 -7
  48. package/dist/runtime/handoff/render.js.map +1 -1
  49. package/dist/runtime/handoff/stranded_scoping.d.ts +21 -0
  50. package/dist/runtime/handoff/stranded_scoping.d.ts.map +1 -0
  51. package/dist/runtime/handoff/stranded_scoping.js +39 -0
  52. package/dist/runtime/handoff/stranded_scoping.js.map +1 -0
  53. package/dist/runtime/hooks/active_task_mirror.js +0 -0
  54. package/dist/runtime/hooks/apply_patch.js +0 -0
  55. package/dist/runtime/hooks/dispatch.d.ts.map +1 -1
  56. package/dist/runtime/hooks/dispatch.js +3 -0
  57. package/dist/runtime/hooks/dispatch.js.map +1 -1
  58. package/dist/runtime/hooks/hook_output.js +0 -0
  59. package/dist/runtime/hooks/memory_reconcile.js +0 -0
  60. package/dist/runtime/hooks/new_project_detect.js +0 -0
  61. package/dist/runtime/hooks/profession_resolver.js +0 -0
  62. package/dist/runtime/hooks/scope_intent.js +0 -0
  63. package/dist/runtime/hooks/session-start.js +17 -0
  64. package/dist/runtime/hooks/session-start.js.map +1 -1
  65. package/dist/runtime/hooks/session_id.js +0 -0
  66. package/dist/runtime/hooks/session_liveness.js +0 -0
  67. package/dist/runtime/hooks/stop_drive.js +0 -0
  68. package/dist/runtime/hooks/stop_stream.js +0 -0
  69. package/dist/runtime/hooks/subagent_guard.js +0 -0
  70. package/dist/runtime/hooks/transcript.js +0 -0
  71. package/dist/runtime/hooks/transcript_tasks.js +0 -0
  72. package/dist/runtime/hooks/user-prompt-submit.d.ts.map +1 -1
  73. package/dist/runtime/hooks/user-prompt-submit.js +22 -1
  74. package/dist/runtime/hooks/user-prompt-submit.js.map +1 -1
  75. package/dist/runtime/ralph/orchestrator.d.ts.map +1 -1
  76. package/dist/runtime/ralph/orchestrator.js +2 -1
  77. package/dist/runtime/ralph/orchestrator.js.map +1 -1
  78. package/dist/runtime/request_type.d.ts +33 -0
  79. package/dist/runtime/request_type.d.ts.map +1 -0
  80. package/dist/runtime/request_type.js +38 -0
  81. package/dist/runtime/request_type.js.map +1 -0
  82. package/dist/runtime/session_state.d.ts +11 -0
  83. package/dist/runtime/session_state.d.ts.map +1 -1
  84. package/dist/runtime/session_state.js +30 -0
  85. package/dist/runtime/session_state.js.map +1 -1
  86. package/dist/runtime/types.d.ts +5 -0
  87. package/dist/runtime/types.d.ts.map +1 -1
  88. package/dist/runtime/types.js +3 -0
  89. package/dist/runtime/types.js.map +1 -1
  90. package/dist/setup/cli/limits_state.d.ts.map +1 -1
  91. package/dist/setup/cli/limits_state.js +6 -40
  92. package/dist/setup/cli/limits_state.js.map +1 -1
  93. package/dist/setup/cli/pack_walk.d.ts +32 -0
  94. package/dist/setup/cli/pack_walk.d.ts.map +1 -0
  95. package/dist/setup/cli/pack_walk.js +76 -0
  96. package/dist/setup/cli/pack_walk.js.map +1 -0
  97. package/dist/setup/cli/permissions_state.d.ts.map +1 -1
  98. package/dist/setup/cli/permissions_state.js +6 -37
  99. package/dist/setup/cli/permissions_state.js.map +1 -1
  100. package/dist/setup/cli/triggers_state.d.ts.map +1 -1
  101. package/dist/setup/cli/triggers_state.js +3 -29
  102. package/dist/setup/cli/triggers_state.js.map +1 -1
  103. package/dist/workgraph/events.d.ts.map +1 -1
  104. package/dist/workgraph/events.js +10 -0
  105. package/dist/workgraph/events.js.map +1 -1
  106. package/dist/workgraph/store.d.ts.map +1 -1
  107. package/dist/workgraph/store.js +5 -0
  108. package/dist/workgraph/store.js.map +1 -1
  109. package/dist/workgraph/types.d.ts +2 -1
  110. package/dist/workgraph/types.d.ts.map +1 -1
  111. package/docs/ARCHITECTURE.md +268 -0
  112. package/docs/pack-runtime.md +26 -10
  113. package/package.json +5 -3
  114. package/packs/builtin/coding-flow/procedure.md +43 -0
  115. package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +49 -6
  116. package/packs/builtin/coding-flow/skills/pause-stop-guard/skill.yaml +11 -1
  117. package/packs/builtin/default-discipline/manifest.yaml +15 -6
  118. package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +8 -0
  119. package/dist/anti-drift/evaluator.d.ts +0 -88
  120. package/dist/anti-drift/evaluator.d.ts.map +0 -1
  121. package/dist/anti-drift/evaluator.js +0 -417
  122. package/dist/anti-drift/evaluator.js.map +0 -1
  123. package/dist/anti-drift/evaluator.test.js +0 -78
  124. package/dist/anti-drift/rules.d.ts +0 -80
  125. package/dist/anti-drift/rules.d.ts.map +0 -1
  126. package/dist/anti-drift/rules.js +0 -368
  127. package/dist/anti-drift/rules.js.map +0 -1
  128. package/dist/anti-drift/rules.test.js +0 -213
  129. package/dist/anti-drift/state.d.ts +0 -107
  130. package/dist/anti-drift/state.d.ts.map +0 -1
  131. package/dist/anti-drift/state.js +0 -177
  132. package/dist/anti-drift/state.js.map +0 -1
  133. package/dist/anti-drift/state.test.js +0 -120
  134. package/dist/chat/adapters/discord.d.ts +0 -41
  135. package/dist/chat/adapters/discord.d.ts.map +0 -1
  136. package/dist/chat/adapters/discord.js +0 -176
  137. package/dist/chat/adapters/discord.js.map +0 -1
  138. package/dist/chat/adapters/discord.test.js +0 -25
  139. package/dist/chat/adapters/slack.d.ts +0 -43
  140. package/dist/chat/adapters/slack.d.ts.map +0 -1
  141. package/dist/chat/adapters/slack.js +0 -172
  142. package/dist/chat/adapters/slack.js.map +0 -1
  143. package/dist/chat/adapters/slack.test.js +0 -30
  144. package/dist/chat/adapters/telegram.d.ts +0 -148
  145. package/dist/chat/adapters/telegram.d.ts.map +0 -1
  146. package/dist/chat/adapters/telegram.js +0 -498
  147. package/dist/chat/adapters/telegram.js.map +0 -1
  148. package/dist/chat/adapters/telegram.test.js +0 -94
  149. package/dist/chat/config.d.ts +0 -98
  150. package/dist/chat/config.d.ts.map +0 -1
  151. package/dist/chat/config.js +0 -185
  152. package/dist/chat/config.js.map +0 -1
  153. package/dist/chat/daemon/active-project.d.ts +0 -17
  154. package/dist/chat/daemon/active-project.d.ts.map +0 -1
  155. package/dist/chat/daemon/active-project.js +0 -23
  156. package/dist/chat/daemon/active-project.js.map +0 -1
  157. package/dist/chat/daemon/autospawn.d.ts +0 -40
  158. package/dist/chat/daemon/autospawn.d.ts.map +0 -1
  159. package/dist/chat/daemon/autospawn.js +0 -129
  160. package/dist/chat/daemon/autospawn.js.map +0 -1
  161. package/dist/chat/daemon/autospawn.test.js +0 -112
  162. package/dist/chat/daemon/cli.d.ts +0 -18
  163. package/dist/chat/daemon/cli.d.ts.map +0 -1
  164. package/dist/chat/daemon/cli.js +0 -71
  165. package/dist/chat/daemon/cli.js.map +0 -1
  166. package/dist/chat/daemon/collisions.js +0 -384
  167. package/dist/chat/daemon/health-check.d.ts +0 -69
  168. package/dist/chat/daemon/health-check.d.ts.map +0 -1
  169. package/dist/chat/daemon/health-check.js +0 -112
  170. package/dist/chat/daemon/health-check.js.map +0 -1
  171. package/dist/chat/daemon/inbox-read.d.ts +0 -35
  172. package/dist/chat/daemon/inbox-read.d.ts.map +0 -1
  173. package/dist/chat/daemon/inbox-read.js +0 -75
  174. package/dist/chat/daemon/inbox-read.js.map +0 -1
  175. package/dist/chat/daemon/inbox-read.test.js +0 -97
  176. package/dist/chat/daemon/inbox.d.ts +0 -63
  177. package/dist/chat/daemon/inbox.d.ts.map +0 -1
  178. package/dist/chat/daemon/inbox.js +0 -56
  179. package/dist/chat/daemon/inbox.js.map +0 -1
  180. package/dist/chat/daemon/inbox.test.js +0 -110
  181. package/dist/chat/daemon/lifecycle.d.ts +0 -71
  182. package/dist/chat/daemon/lifecycle.d.ts.map +0 -1
  183. package/dist/chat/daemon/lifecycle.js +0 -221
  184. package/dist/chat/daemon/lifecycle.js.map +0 -1
  185. package/dist/chat/daemon/lifecycle.test.js +0 -163
  186. package/dist/chat/daemon/protocol.d.ts +0 -107
  187. package/dist/chat/daemon/protocol.d.ts.map +0 -1
  188. package/dist/chat/daemon/protocol.js +0 -54
  189. package/dist/chat/daemon/protocol.js.map +0 -1
  190. package/dist/chat/daemon/routing.d.ts +0 -140
  191. package/dist/chat/daemon/routing.d.ts.map +0 -1
  192. package/dist/chat/daemon/routing.js +0 -198
  193. package/dist/chat/daemon/routing.js.map +0 -1
  194. package/dist/chat/daemon/routing.test.js +0 -259
  195. package/dist/chat/daemon/rpc-client.d.ts +0 -45
  196. package/dist/chat/daemon/rpc-client.d.ts.map +0 -1
  197. package/dist/chat/daemon/rpc-client.js +0 -133
  198. package/dist/chat/daemon/rpc-client.js.map +0 -1
  199. package/dist/chat/daemon/rpc-server.d.ts +0 -39
  200. package/dist/chat/daemon/rpc-server.d.ts.map +0 -1
  201. package/dist/chat/daemon/rpc-server.js +0 -385
  202. package/dist/chat/daemon/rpc-server.js.map +0 -1
  203. package/dist/chat/daemon/rpc.test.js +0 -177
  204. package/dist/chat/daemon/subscribers.js +0 -257
  205. package/dist/chat/daemon/worker.d.ts +0 -27
  206. package/dist/chat/daemon/worker.d.ts.map +0 -1
  207. package/dist/chat/daemon/worker.js +0 -313
  208. package/dist/chat/daemon/worker.js.map +0 -1
  209. package/dist/chat/daemon/workspace-topic.js +0 -324
  210. package/dist/chat/env-token.d.ts +0 -60
  211. package/dist/chat/env-token.d.ts.map +0 -1
  212. package/dist/chat/env-token.js +0 -137
  213. package/dist/chat/env-token.js.map +0 -1
  214. package/dist/chat/env-token.test.js +0 -160
  215. package/dist/chat/factory.d.ts +0 -30
  216. package/dist/chat/factory.d.ts.map +0 -1
  217. package/dist/chat/factory.js +0 -50
  218. package/dist/chat/factory.js.map +0 -1
  219. package/dist/chat/factory.test.js +0 -55
  220. package/dist/chat/gateway.d.ts +0 -176
  221. package/dist/chat/gateway.d.ts.map +0 -1
  222. package/dist/chat/gateway.js +0 -146
  223. package/dist/chat/gateway.js.map +0 -1
  224. package/dist/chat/gateway.test.js +0 -192
  225. package/dist/claude-md.d.ts +0 -39
  226. package/dist/claude-md.d.ts.map +0 -1
  227. package/dist/claude-md.js +0 -113
  228. package/dist/claude-md.js.map +0 -1
  229. package/dist/claude-md.test.js +0 -91
  230. package/dist/codex/activate.d.ts +0 -66
  231. package/dist/codex/activate.d.ts.map +0 -1
  232. package/dist/codex/activate.js +0 -329
  233. package/dist/codex/activate.js.map +0 -1
  234. package/dist/codex/activate.test.js +0 -229
  235. package/dist/codex/bundled-default/bundled-default.test.js +0 -161
  236. package/dist/codex/cli-publish.test.js +0 -133
  237. package/dist/codex/cli.d.ts +0 -35
  238. package/dist/codex/cli.d.ts.map +0 -1
  239. package/dist/codex/cli.js +0 -554
  240. package/dist/codex/cli.js.map +0 -1
  241. package/dist/codex/cli.test.js +0 -277
  242. package/dist/codex/import-skill-md.d.ts +0 -53
  243. package/dist/codex/import-skill-md.d.ts.map +0 -1
  244. package/dist/codex/import-skill-md.js +0 -236
  245. package/dist/codex/import-skill-md.js.map +0 -1
  246. package/dist/codex/import-skill-md.test.js +0 -225
  247. package/dist/codex/loader.d.ts +0 -27
  248. package/dist/codex/loader.d.ts.map +0 -1
  249. package/dist/codex/loader.js +0 -86
  250. package/dist/codex/loader.js.map +0 -1
  251. package/dist/codex/loader.test.js +0 -75
  252. package/dist/codex/parse.d.ts +0 -28
  253. package/dist/codex/parse.d.ts.map +0 -1
  254. package/dist/codex/parse.js +0 -309
  255. package/dist/codex/parse.js.map +0 -1
  256. package/dist/codex/parse.test.js +0 -241
  257. package/dist/codex/store.d.ts +0 -87
  258. package/dist/codex/store.d.ts.map +0 -1
  259. package/dist/codex/store.js +0 -205
  260. package/dist/codex/store.js.map +0 -1
  261. package/dist/codex/store.test.js +0 -242
  262. package/dist/codex/types.d.ts +0 -398
  263. package/dist/codex/types.d.ts.map +0 -1
  264. package/dist/codex/types.js +0 -21
  265. package/dist/codex/types.js.map +0 -1
  266. package/dist/config.d.ts +0 -53
  267. package/dist/config.d.ts.map +0 -1
  268. package/dist/config.js +0 -202
  269. package/dist/config.js.map +0 -1
  270. package/dist/config.test.js +0 -117
  271. package/dist/engine/cli.d.ts +0 -14
  272. package/dist/engine/cli.d.ts.map +0 -1
  273. package/dist/engine/cli.js +0 -171
  274. package/dist/engine/cli.js.map +0 -1
  275. package/dist/engine/client.d.ts +0 -219
  276. package/dist/engine/client.d.ts.map +0 -1
  277. package/dist/engine/client.js +0 -312
  278. package/dist/engine/client.js.map +0 -1
  279. package/dist/engine/config.d.ts +0 -62
  280. package/dist/engine/config.d.ts.map +0 -1
  281. package/dist/engine/config.js +0 -223
  282. package/dist/engine/config.js.map +0 -1
  283. package/dist/engine/index.d.ts +0 -17
  284. package/dist/engine/index.d.ts.map +0 -1
  285. package/dist/engine/index.js +0 -16
  286. package/dist/engine/index.js.map +0 -1
  287. package/dist/engine/resolver.d.ts +0 -62
  288. package/dist/engine/resolver.d.ts.map +0 -1
  289. package/dist/engine/resolver.js +0 -103
  290. package/dist/engine/resolver.js.map +0 -1
  291. package/dist/engine/singleton.d.ts +0 -95
  292. package/dist/engine/singleton.d.ts.map +0 -1
  293. package/dist/engine/singleton.js +0 -325
  294. package/dist/engine/singleton.js.map +0 -1
  295. package/dist/engine/types.d.ts +0 -402
  296. package/dist/engine/types.d.ts.map +0 -1
  297. package/dist/engine/types.js +0 -22
  298. package/dist/engine/types.js.map +0 -1
  299. package/dist/engine-binary-resolver.js +0 -110
  300. package/dist/engine-binary-resolver.test.js +0 -61
  301. package/dist/engine-cli.js +0 -60
  302. package/dist/engine-client.js +0 -301
  303. package/dist/engine-client.test.js +0 -118
  304. package/dist/functions/chain_state.d.ts +0 -51
  305. package/dist/functions/chain_state.d.ts.map +0 -1
  306. package/dist/functions/chain_state.js +0 -59
  307. package/dist/functions/chain_state.js.map +0 -1
  308. package/dist/hooks/drift-catalog.d.ts +0 -68
  309. package/dist/hooks/drift-catalog.d.ts.map +0 -1
  310. package/dist/hooks/drift-catalog.js +0 -184
  311. package/dist/hooks/drift-catalog.js.map +0 -1
  312. package/dist/hooks/drift-catalog.test.js +0 -154
  313. package/dist/hooks/drift-patterns.d.ts +0 -110
  314. package/dist/hooks/drift-patterns.d.ts.map +0 -1
  315. package/dist/hooks/drift-patterns.js +0 -289
  316. package/dist/hooks/drift-patterns.js.map +0 -1
  317. package/dist/hooks/drift-patterns.test.js +0 -325
  318. package/dist/hooks/engine-vocab-gate.d.ts +0 -108
  319. package/dist/hooks/engine-vocab-gate.d.ts.map +0 -1
  320. package/dist/hooks/engine-vocab-gate.js +0 -225
  321. package/dist/hooks/engine-vocab-gate.js.map +0 -1
  322. package/dist/hooks/engine-vocab-gate.test.js +0 -170
  323. package/dist/hooks/heartbeat.d.ts +0 -107
  324. package/dist/hooks/heartbeat.d.ts.map +0 -1
  325. package/dist/hooks/heartbeat.js +0 -316
  326. package/dist/hooks/heartbeat.js.map +0 -1
  327. package/dist/hooks/heartbeat.test.js +0 -393
  328. package/dist/hooks/honesty-ledger-session-scope.test.js +0 -100
  329. package/dist/hooks/honesty-ledger.d.ts +0 -123
  330. package/dist/hooks/honesty-ledger.d.ts.map +0 -1
  331. package/dist/hooks/honesty-ledger.js +0 -226
  332. package/dist/hooks/honesty-ledger.js.map +0 -1
  333. package/dist/hooks/honesty-ledger.test.js +0 -466
  334. package/dist/hooks/inline-report-check.d.ts +0 -63
  335. package/dist/hooks/inline-report-check.d.ts.map +0 -1
  336. package/dist/hooks/inline-report-check.js +0 -88
  337. package/dist/hooks/inline-report-check.js.map +0 -1
  338. package/dist/hooks/inline-report-check.test.js +0 -96
  339. package/dist/hooks/pre-tool-use.d.ts +0 -62
  340. package/dist/hooks/pre-tool-use.d.ts.map +0 -1
  341. package/dist/hooks/pre-tool-use.js +0 -342
  342. package/dist/hooks/pre-tool-use.js.map +0 -1
  343. package/dist/hooks/pre-tool-use.test.js +0 -134
  344. package/dist/hooks/session-end.d.ts +0 -15
  345. package/dist/hooks/session-end.d.ts.map +0 -1
  346. package/dist/hooks/session-end.js +0 -60
  347. package/dist/hooks/session-end.js.map +0 -1
  348. package/dist/hooks/session-end.test.js +0 -52
  349. package/dist/hooks/stop.d.ts +0 -35
  350. package/dist/hooks/stop.d.ts.map +0 -1
  351. package/dist/hooks/stop.js +0 -136
  352. package/dist/hooks/stop.js.map +0 -1
  353. package/dist/hooks/transcript-active-task.test.js +0 -342
  354. package/dist/hooks/transcript.d.ts +0 -26
  355. package/dist/hooks/transcript.d.ts.map +0 -1
  356. package/dist/hooks/transcript.js +0 -266
  357. package/dist/hooks/transcript.js.map +0 -1
  358. package/dist/hooks/transcript.test.js +0 -103
  359. package/dist/hooks/user-prompt-submit.d.ts +0 -74
  360. package/dist/hooks/user-prompt-submit.d.ts.map +0 -1
  361. package/dist/hooks/user-prompt-submit.js +0 -256
  362. package/dist/hooks/user-prompt-submit.js.map +0 -1
  363. package/dist/hooks/user-prompt-submit.test.js +0 -118
  364. package/dist/hooks/versioning-gate.d.ts +0 -101
  365. package/dist/hooks/versioning-gate.d.ts.map +0 -1
  366. package/dist/hooks/versioning-gate.js +0 -245
  367. package/dist/hooks/versioning-gate.js.map +0 -1
  368. package/dist/hooks/versioning-gate.test.js +0 -368
  369. package/dist/hooks/workflow-gate.d.ts +0 -64
  370. package/dist/hooks/workflow-gate.d.ts.map +0 -1
  371. package/dist/hooks/workflow-gate.js +0 -152
  372. package/dist/hooks/workflow-gate.js.map +0 -1
  373. package/dist/hooks/workflow-gate.test.js +0 -197
  374. package/dist/hooks-cli.d.ts +0 -25
  375. package/dist/hooks-cli.d.ts.map +0 -1
  376. package/dist/hooks-cli.js +0 -286
  377. package/dist/hooks-cli.js.map +0 -1
  378. package/dist/hooks-cli.test.js +0 -148
  379. package/dist/origin.d.ts +0 -16
  380. package/dist/origin.d.ts.map +0 -1
  381. package/dist/origin.js +0 -92
  382. package/dist/origin.js.map +0 -1
  383. package/dist/packs/seed_lessons_ingest.d.ts +0 -30
  384. package/dist/packs/seed_lessons_ingest.d.ts.map +0 -1
  385. package/dist/packs/seed_lessons_ingest.js +0 -107
  386. package/dist/packs/seed_lessons_ingest.js.map +0 -1
  387. package/dist/project-cli.d.ts +0 -7
  388. package/dist/project-cli.d.ts.map +0 -1
  389. package/dist/project-cli.js +0 -145
  390. package/dist/project-cli.js.map +0 -1
  391. package/dist/project.d.ts +0 -127
  392. package/dist/project.d.ts.map +0 -1
  393. package/dist/project.js +0 -281
  394. package/dist/project.js.map +0 -1
  395. package/dist/project.test.js +0 -287
  396. package/dist/rag/backends/loop_engine.d.ts +0 -61
  397. package/dist/rag/backends/loop_engine.d.ts.map +0 -1
  398. package/dist/rag/backends/loop_engine.js +0 -160
  399. package/dist/rag/backends/loop_engine.js.map +0 -1
  400. package/dist/recall.d.ts +0 -82
  401. package/dist/recall.d.ts.map +0 -1
  402. package/dist/recall.js +0 -81
  403. package/dist/recall.js.map +0 -1
  404. package/dist/runtime/agent_bridge/autospawn.d.ts +0 -131
  405. package/dist/runtime/agent_bridge/autospawn.d.ts.map +0 -1
  406. package/dist/runtime/agent_bridge/autospawn.js +0 -251
  407. package/dist/runtime/agent_bridge/autospawn.js.map +0 -1
  408. package/dist/runtime/chain_state.d.ts +0 -124
  409. package/dist/runtime/chain_state.d.ts.map +0 -1
  410. package/dist/runtime/chain_state.js +0 -189
  411. package/dist/runtime/chain_state.js.map +0 -1
  412. package/dist/runtime/hooks/permission_decision.d.ts +0 -34
  413. package/dist/runtime/hooks/permission_decision.d.ts.map +0 -1
  414. package/dist/runtime/hooks/permission_decision.js +0 -39
  415. package/dist/runtime/hooks/permission_decision.js.map +0 -1
  416. package/dist/runtime/workflow_fsm.d.ts +0 -21
  417. package/dist/runtime/workflow_fsm.d.ts.map +0 -1
  418. package/dist/runtime/workflow_fsm.js +0 -25
  419. package/dist/runtime/workflow_fsm.js.map +0 -1
  420. package/dist/runtime/workflow_map.d.ts +0 -26
  421. package/dist/runtime/workflow_map.d.ts.map +0 -1
  422. package/dist/runtime/workflow_map.js +0 -38
  423. package/dist/runtime/workflow_map.js.map +0 -1
  424. package/dist/scope.d.ts +0 -48
  425. package/dist/scope.d.ts.map +0 -1
  426. package/dist/scope.js +0 -111
  427. package/dist/scope.js.map +0 -1
  428. package/dist/setup/cli/topic_create_step.d.ts +0 -84
  429. package/dist/setup/cli/topic_create_step.d.ts.map +0 -1
  430. package/dist/setup/cli/topic_create_step.js +0 -213
  431. package/dist/setup/cli/topic_create_step.js.map +0 -1
  432. package/dist/system-export.d.ts +0 -65
  433. package/dist/system-export.d.ts.map +0 -1
  434. package/dist/system-export.js +0 -194
  435. package/dist/system-export.js.map +0 -1
  436. package/dist/utterance/classifier.d.ts +0 -53
  437. package/dist/utterance/classifier.d.ts.map +0 -1
  438. package/dist/utterance/classifier.js +0 -184
  439. package/dist/utterance/classifier.js.map +0 -1
  440. package/dist/utterance/classifier.test.js +0 -147
@@ -1,88 +0,0 @@
1
- /**
2
- * Anti-drift evaluator (0.7.34 — unified-evaluator track).
3
- *
4
- * Single orchestrator that replaces the per-file hook handlers in
5
- * src/hooks/. Binds the 4 Claude Code hook events (PreToolUse, Stop,
6
- * UserPromptSubmit, SessionEnd) to the declarative RULES list from
7
- * rules.ts.
8
- *
9
- * Each runner:
10
- * 1. Reads JSON from stdin (Claude Code's hook payload)
11
- * 2. Builds a HookContext from the payload + transcript scan
12
- * 3. Calls evaluateRules(ctx) to walk applicable rules
13
- * 4. Aggregates verdicts per event semantic:
14
- * PreToolUse → exit 2 on first block; warns → stderr + exit 0
15
- * Stop → surfaces → violations.log (UPS picks up); +
16
- * honesty-reconcile + heartbeat-arm legacy
17
- * UPS → surfaces → stdout (Claude Code injects);
18
- * + resume detection + broken-promises +
19
- * heartbeat-pending consume (preexisting)
20
- * SessionEnd → auto-actions only (catalog + cleanup)
21
- *
22
- * Lives alongside src/hooks/ until the 0.7.35 cutover deletes the
23
- * old per-file handlers and points hooks-cli at this entrypoint.
24
- */
25
- import { type Verdict } from "./rules.js";
26
- interface HookPayload {
27
- hook_event_name?: string;
28
- session_id?: string;
29
- transcript_path?: string;
30
- cwd?: string;
31
- tool_name?: string;
32
- tool_input?: Record<string, unknown>;
33
- prompt?: string;
34
- }
35
- /**
36
- * PreToolUse: walk PreToolUse rules. First block-verdict short-circuits
37
- * exit 2; warns accumulate to stderr; pass through otherwise.
38
- *
39
- * Exported for direct testing.
40
- */
41
- export declare function runPreToolUseEvaluator(payload: HookPayload): Promise<{
42
- exit: 0 | 2;
43
- stderr: string;
44
- }>;
45
- export declare function aggregatePreToolUse(verdicts: Verdict[]): {
46
- exit: 0 | 2;
47
- stderr: string;
48
- };
49
- /**
50
- * Stop: walk Stop rules. Surfaces → violations.log (next UPS picks up).
51
- * Always exit 0 (Stop is observational, not blocking — exit 2 would
52
- * trigger Claude Code's re-prompt loop which is D9 territory).
53
- *
54
- * Exported for direct testing.
55
- */
56
- export declare function runStopEvaluator(payload: HookPayload): Promise<{
57
- stderr: string;
58
- }>;
59
- /**
60
- * UserPromptSubmit: walk UPS rules. Surfaces → stdout (Claude Code
61
- * injects into agent context). Always exit 0.
62
- *
63
- * Exported for direct testing.
64
- */
65
- export declare function runUserPromptSubmitEvaluator(payload: HookPayload): Promise<{
66
- stdout: string;
67
- }>;
68
- /**
69
- * SessionEnd: walk SessionEnd rules (auto-actions like drift-catalog
70
- * scan + state cleanup). Always exit 0.
71
- *
72
- * Exported for direct testing.
73
- */
74
- export declare function runSessionEndEvaluator(payload: HookPayload): Promise<{
75
- stderr: string;
76
- }>;
77
- export type HookEventName = "pre-tool-use" | "stop" | "user-prompt-submit" | "session-end";
78
- /**
79
- * Run the evaluator for the specified hook event by reading stdin,
80
- * dispatching to the right runner, writing the output, and exiting.
81
- *
82
- * Wired into the CLI as `opensquid anti-drift <event>` at the 0.7.35
83
- * cutover; until then, the existing `opensquid hook <event>` handlers
84
- * in src/hooks/* run.
85
- */
86
- export declare function runEvaluator(event: HookEventName): Promise<void>;
87
- export {};
88
- //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src.legacy/anti-drift/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,OAAO,EAAmC,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAe3E,UAAU,WAAW;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAC1E,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CA0BD;AAuBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG;IAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAexF;AAMD;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2FxF;AAMD;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA2D7B;AAmDD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB9F;AAMD,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,oBAAoB,GAAG,aAAa,CAAC;AAE3F;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCtE"}
@@ -1,417 +0,0 @@
1
- /**
2
- * Anti-drift evaluator (0.7.34 — unified-evaluator track).
3
- *
4
- * Single orchestrator that replaces the per-file hook handlers in
5
- * src/hooks/. Binds the 4 Claude Code hook events (PreToolUse, Stop,
6
- * UserPromptSubmit, SessionEnd) to the declarative RULES list from
7
- * rules.ts.
8
- *
9
- * Each runner:
10
- * 1. Reads JSON from stdin (Claude Code's hook payload)
11
- * 2. Builds a HookContext from the payload + transcript scan
12
- * 3. Calls evaluateRules(ctx) to walk applicable rules
13
- * 4. Aggregates verdicts per event semantic:
14
- * PreToolUse → exit 2 on first block; warns → stderr + exit 0
15
- * Stop → surfaces → violations.log (UPS picks up); +
16
- * honesty-reconcile + heartbeat-arm legacy
17
- * UPS → surfaces → stdout (Claude Code injects);
18
- * + resume detection + broken-promises +
19
- * heartbeat-pending consume (preexisting)
20
- * SessionEnd → auto-actions only (catalog + cleanup)
21
- *
22
- * Lives alongside src/hooks/ until the 0.7.35 cutover deletes the
23
- * old per-file handlers and points hooks-cli at this entrypoint.
24
- */
25
- import * as crypto from "node:crypto";
26
- import { promises as fs } from "node:fs";
27
- import * as path from "node:path";
28
- import { resolveDataRoot } from "../codex/store.js";
29
- import { evaluateRules } from "./rules.js";
30
- import { appendViolation } from "./state.js";
31
- // =====================================================================
32
- // Stdin helpers
33
- // =====================================================================
34
- async function readStdin() {
35
- let raw = "";
36
- for await (const chunk of process.stdin) {
37
- raw += chunk;
38
- }
39
- return raw;
40
- }
41
- function parsePayload(raw) {
42
- if (!raw.trim())
43
- return null;
44
- try {
45
- return JSON.parse(raw);
46
- }
47
- catch {
48
- return null;
49
- }
50
- }
51
- // =====================================================================
52
- // PreToolUse runner
53
- // =====================================================================
54
- /**
55
- * PreToolUse: walk PreToolUse rules. First block-verdict short-circuits
56
- * exit 2; warns accumulate to stderr; pass through otherwise.
57
- *
58
- * Exported for direct testing.
59
- */
60
- export async function runPreToolUseEvaluator(payload) {
61
- if (!payload.tool_name)
62
- return { exit: 0, stderr: "" };
63
- // Preserve legacy turn-ledger side effect (honesty reconciliation
64
- // needs the turn-ledger populated for Stop hook). Best-effort.
65
- if (payload.session_id) {
66
- try {
67
- const { recordToolCall } = await import("../hooks/honesty-ledger.js");
68
- const summary = summarizeToolInput(payload.tool_name, payload.tool_input ?? {});
69
- await recordToolCall(payload.session_id, payload.tool_name, summary);
70
- }
71
- catch {
72
- /* non-fatal */
73
- }
74
- }
75
- const ctx = {
76
- hookEvent: "PreToolUse",
77
- sessionId: payload.session_id,
78
- transcriptPath: payload.transcript_path,
79
- cwd: payload.cwd,
80
- toolName: payload.tool_name,
81
- toolInput: payload.tool_input ?? {},
82
- };
83
- const verdicts = await evaluateRules(ctx);
84
- return aggregatePreToolUse(verdicts);
85
- }
86
- /** Tight summary of tool input for the honesty ledger (matches legacy). */
87
- function summarizeToolInput(tool, input) {
88
- if (tool === "Bash") {
89
- const cmd = input.command;
90
- return typeof cmd === "string" ? cmd.slice(0, 500) : "";
91
- }
92
- if (tool === "Edit" || tool === "Write" || tool === "Read") {
93
- const fp = input.file_path;
94
- return typeof fp === "string" ? fp : "";
95
- }
96
- if (tool === "Agent") {
97
- const desc = input.description ?? input.subagent_type ?? "";
98
- return typeof desc === "string" ? desc.slice(0, 200) : "";
99
- }
100
- try {
101
- return JSON.stringify(input).slice(0, 200);
102
- }
103
- catch {
104
- return "";
105
- }
106
- }
107
- export function aggregatePreToolUse(verdicts) {
108
- const blocks = [];
109
- const warns = [];
110
- for (const v of verdicts) {
111
- if (v.kind === "block")
112
- blocks.push(v);
113
- else if (v.kind === "warn")
114
- warns.push(v);
115
- }
116
- const messages = [];
117
- for (const b of blocks)
118
- messages.push(b.kind === "block" ? b.message : "");
119
- for (const w of warns)
120
- messages.push(w.kind === "warn" ? w.message : "");
121
- const stderr = messages.filter(Boolean).join("\n");
122
- return {
123
- exit: blocks.length > 0 ? 2 : 0,
124
- stderr: stderr ? stderr + (stderr.endsWith("\n") ? "" : "\n") : "",
125
- };
126
- }
127
- // =====================================================================
128
- // Stop runner
129
- // =====================================================================
130
- /**
131
- * Stop: walk Stop rules. Surfaces → violations.log (next UPS picks up).
132
- * Always exit 0 (Stop is observational, not blocking — exit 2 would
133
- * trigger Claude Code's re-prompt loop which is D9 territory).
134
- *
135
- * Exported for direct testing.
136
- */
137
- export async function runStopEvaluator(payload) {
138
- if (!payload.session_id)
139
- return { stderr: "" };
140
- // Read the last assistant text from the transcript (delegated to
141
- // the existing helper).
142
- let assistantText = "";
143
- if (payload.transcript_path) {
144
- try {
145
- const { readLastAssistantText } = await import("../hooks/transcript.js");
146
- assistantText = await readLastAssistantText(payload.transcript_path);
147
- }
148
- catch {
149
- /* fail-open */
150
- }
151
- }
152
- const stderrLines = [];
153
- // ---- Legacy side effect 1: honesty-ledger reconciliation ----
154
- try {
155
- const ledger = await import("../hooks/honesty-ledger.js");
156
- const turnLedger = await ledger.readTurnLedger(payload.session_id);
157
- const broken = ledger.reconcile(assistantText, turnLedger);
158
- const existing = await ledger.readBrokenPromises(payload.session_id);
159
- const existingKeys = new Set(existing.map((p) => `${p.claim_id}|${p.matched_text}`));
160
- for (const p of broken) {
161
- if (existingKeys.has(`${p.claim_id}|${p.matched_text}`))
162
- continue;
163
- try {
164
- await ledger.recordBrokenPromise(payload.session_id, p);
165
- stderrLines.push(`🦑 [opensquid honesty] ${p.claim_id}: ${p.reason}`);
166
- }
167
- catch {
168
- /* non-fatal */
169
- }
170
- }
171
- try {
172
- await ledger.clearTurnLedger(payload.session_id);
173
- }
174
- catch {
175
- /* non-fatal */
176
- }
177
- }
178
- catch {
179
- /* fail-open */
180
- }
181
- // ---- Rule walk (inline-report-missing-phases + future Stop rules) ----
182
- const ctx = {
183
- hookEvent: "Stop",
184
- sessionId: payload.session_id,
185
- transcriptPath: payload.transcript_path,
186
- cwd: payload.cwd,
187
- assistantText,
188
- };
189
- const verdicts = await evaluateRules(ctx);
190
- for (const v of verdicts) {
191
- if (v.kind === "surface") {
192
- try {
193
- await appendViolation(payload.session_id, {
194
- ts: new Date().toISOString(),
195
- rule_id: "stop-surface",
196
- verdict: "surface",
197
- reason: v.message,
198
- });
199
- // ALSO route to the legacy broken-promises stream so the
200
- // existing UPS surface pipeline picks it up.
201
- const ledger = await import("../hooks/honesty-ledger.js");
202
- await ledger.recordBrokenPromise(payload.session_id, {
203
- ts: new Date().toISOString(),
204
- claim_id: "inline-report-missing-phases",
205
- claim_label: "PHASES block per feedback_telegram_reports",
206
- matched_text: v.message.slice(0, 200),
207
- reason: v.message,
208
- });
209
- }
210
- catch {
211
- /* best-effort */
212
- }
213
- stderrLines.push(`🦑 [opensquid] ${v.message}`);
214
- }
215
- else if (v.kind === "warn") {
216
- stderrLines.push(v.message);
217
- }
218
- }
219
- // ---- Legacy side effect 2: heartbeat arm ----
220
- if (payload.transcript_path) {
221
- try {
222
- const { checkAndMaybeArm } = await import("../hooks/heartbeat.js");
223
- const armed = await checkAndMaybeArm(payload.session_id, payload.transcript_path);
224
- if (armed)
225
- stderrLines.push(`🦑 [opensquid heartbeat-armed] ${armed}`);
226
- }
227
- catch {
228
- /* non-fatal */
229
- }
230
- }
231
- return { stderr: stderrLines.join("\n") + (stderrLines.length > 0 ? "\n" : "") };
232
- }
233
- // =====================================================================
234
- // UserPromptSubmit runner
235
- // =====================================================================
236
- /**
237
- * UserPromptSubmit: walk UPS rules. Surfaces → stdout (Claude Code
238
- * injects into agent context). Always exit 0.
239
- *
240
- * Exported for direct testing.
241
- */
242
- export async function runUserPromptSubmitEvaluator(payload) {
243
- if (!payload.session_id)
244
- return { stdout: "" };
245
- const stdoutLines = [];
246
- // ---- Legacy 1: resumed-session detection ----
247
- try {
248
- const { detectResumeAndUpdateMarker } = await import("../hooks/user-prompt-submit.js");
249
- const resumeMsg = await detectResumeAndUpdateMarker(payload.session_id);
250
- if (resumeMsg)
251
- stdoutLines.push(resumeMsg);
252
- }
253
- catch {
254
- /* non-fatal */
255
- }
256
- // ---- Legacy 2: broken-promises consume + surface ----
257
- try {
258
- const broken = await consumeBrokenPromises(payload.session_id);
259
- if (broken.length > 0) {
260
- stdoutLines.push("🦑 [opensquid honesty-ledger] unresolved claims from the previous turn:");
261
- for (const p of broken) {
262
- stdoutLines.push(` 🦑 ${p.claim_id}: "${p.matched_text}" — needed ${p.claim_label}`);
263
- }
264
- stdoutLines.push("Acknowledge these in your reply: either do the missing action now, or " +
265
- "retract the claim explicitly. Don't repeat the pattern.");
266
- }
267
- }
268
- catch {
269
- /* non-fatal */
270
- }
271
- // ---- Legacy 3: heartbeat-pending consume + mark recall required ----
272
- try {
273
- const { consumePendingHeartbeat, markRecallRequired } = await import("../hooks/heartbeat.js");
274
- const heartbeat = await consumePendingHeartbeat(payload.session_id);
275
- if (heartbeat) {
276
- if (stdoutLines.length > 0)
277
- stdoutLines.push("");
278
- stdoutLines.push(heartbeat);
279
- await markRecallRequired(payload.session_id);
280
- }
281
- }
282
- catch {
283
- /* non-fatal */
284
- }
285
- // ---- Rule walk (multi-task-plan-injection + future UPS rules) ----
286
- const ctx = {
287
- hookEvent: "UserPromptSubmit",
288
- sessionId: payload.session_id,
289
- transcriptPath: payload.transcript_path,
290
- cwd: payload.cwd,
291
- userPrompt: payload.prompt,
292
- };
293
- const verdicts = await evaluateRules(ctx);
294
- for (const v of verdicts) {
295
- if (v.kind === "surface" || v.kind === "warn") {
296
- stdoutLines.push(v.message);
297
- }
298
- }
299
- return { stdout: stdoutLines.length > 0 ? stdoutLines.join("\n") + "\n" : "" };
300
- }
301
- /**
302
- * Atomically claim broken-promises.jsonl content (rename-then-read-
303
- * then-delete). Mirrors the legacy UPS handler's `consumeJsonl`
304
- * pattern.
305
- */
306
- async function consumeBrokenPromises(sessionId) {
307
- const root = resolveDataRoot();
308
- const filePath = path.join(root, "sessions", sessionId, "broken-promises.jsonl");
309
- const claimed = `${filePath}.consuming.${crypto.randomUUID()}`;
310
- try {
311
- await fs.rename(filePath, claimed);
312
- }
313
- catch {
314
- return [];
315
- }
316
- let raw;
317
- try {
318
- raw = await fs.readFile(claimed, "utf8");
319
- }
320
- catch {
321
- raw = "";
322
- }
323
- try {
324
- await fs.rm(claimed);
325
- }
326
- catch {
327
- /* already gone */
328
- }
329
- if (!raw.trim())
330
- return [];
331
- const items = [];
332
- for (const line of raw.split("\n")) {
333
- const t = line.trim();
334
- if (!t)
335
- continue;
336
- try {
337
- items.push(JSON.parse(t));
338
- }
339
- catch {
340
- /* skip malformed */
341
- }
342
- }
343
- return items;
344
- }
345
- // =====================================================================
346
- // SessionEnd runner
347
- // =====================================================================
348
- /**
349
- * SessionEnd: walk SessionEnd rules (auto-actions like drift-catalog
350
- * scan + state cleanup). Always exit 0.
351
- *
352
- * Exported for direct testing.
353
- */
354
- export async function runSessionEndEvaluator(payload) {
355
- if (!payload.session_id)
356
- return { stderr: "" };
357
- const ctx = {
358
- hookEvent: "SessionEnd",
359
- sessionId: payload.session_id,
360
- transcriptPath: payload.transcript_path,
361
- cwd: payload.cwd,
362
- };
363
- const verdicts = await evaluateRules(ctx);
364
- const stderrLines = [];
365
- for (const v of verdicts) {
366
- if (v.kind === "warn" || v.kind === "surface") {
367
- stderrLines.push(v.message);
368
- }
369
- }
370
- return { stderr: stderrLines.join("\n") + (stderrLines.length > 0 ? "\n" : "") };
371
- }
372
- /**
373
- * Run the evaluator for the specified hook event by reading stdin,
374
- * dispatching to the right runner, writing the output, and exiting.
375
- *
376
- * Wired into the CLI as `opensquid anti-drift <event>` at the 0.7.35
377
- * cutover; until then, the existing `opensquid hook <event>` handlers
378
- * in src/hooks/* run.
379
- */
380
- export async function runEvaluator(event) {
381
- const raw = await readStdin();
382
- const payload = parsePayload(raw);
383
- if (!payload) {
384
- process.exit(0);
385
- }
386
- switch (event) {
387
- case "pre-tool-use": {
388
- const { exit, stderr } = await runPreToolUseEvaluator(payload);
389
- if (stderr)
390
- process.stderr.write(stderr);
391
- process.exit(exit);
392
- break;
393
- }
394
- case "stop": {
395
- const { stderr } = await runStopEvaluator(payload);
396
- if (stderr)
397
- process.stderr.write(stderr);
398
- process.exit(0);
399
- break;
400
- }
401
- case "user-prompt-submit": {
402
- const { stdout } = await runUserPromptSubmitEvaluator(payload);
403
- if (stdout)
404
- process.stdout.write(stdout);
405
- process.exit(0);
406
- break;
407
- }
408
- case "session-end": {
409
- const { stderr } = await runSessionEndEvaluator(payload);
410
- if (stderr)
411
- process.stderr.write(stderr);
412
- process.exit(0);
413
- break;
414
- }
415
- }
416
- }
417
- //# sourceMappingURL=evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src.legacy/anti-drift/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,78 +0,0 @@
1
- /**
2
- * Tests for anti-drift/evaluator.ts (0.7.34 unified-evaluator track).
3
- *
4
- * Focused on aggregation semantics (PreToolUse short-circuit on block,
5
- * Stop+UPS surface/warn pass-through). End-to-end runner tests would
6
- * need stdin fixtures; covered by the existing src/hooks/*.test.ts
7
- * suites which exercise the same code paths via the legacy entry
8
- * points. 0.7.35 cutover migrates those tests.
9
- */
10
- import { describe, expect, it } from "vitest";
11
- import { aggregatePreToolUse } from "./evaluator.js";
12
- describe("aggregatePreToolUse", () => {
13
- it("returns exit 0 + empty stderr when no verdicts fired", () => {
14
- const r = aggregatePreToolUse([]);
15
- expect(r.exit).toBe(0);
16
- expect(r.stderr).toBe("");
17
- });
18
- it("returns exit 0 + empty stderr when all verdicts are pass", () => {
19
- const verdicts = [{ kind: "pass" }, { kind: "pass" }];
20
- const r = aggregatePreToolUse(verdicts);
21
- expect(r.exit).toBe(0);
22
- expect(r.stderr).toBe("");
23
- });
24
- it("returns exit 2 when any verdict is block", () => {
25
- const verdicts = [{ kind: "pass" }, { kind: "block", message: "blocked because X" }];
26
- const r = aggregatePreToolUse(verdicts);
27
- expect(r.exit).toBe(2);
28
- expect(r.stderr).toContain("blocked because X");
29
- });
30
- it("returns exit 0 + stderr when only warns fired", () => {
31
- const verdicts = [
32
- { kind: "warn", message: "warn-A" },
33
- { kind: "warn", message: "warn-B" },
34
- ];
35
- const r = aggregatePreToolUse(verdicts);
36
- expect(r.exit).toBe(0);
37
- expect(r.stderr).toContain("warn-A");
38
- expect(r.stderr).toContain("warn-B");
39
- });
40
- it("blocks listed BEFORE warns in the combined stderr (most-restrictive surfaces first)", () => {
41
- const verdicts = [
42
- { kind: "warn", message: "warn-first-in-input" },
43
- { kind: "block", message: "block-second-in-input" },
44
- ];
45
- const r = aggregatePreToolUse(verdicts);
46
- const blockIdx = r.stderr.indexOf("block-second-in-input");
47
- const warnIdx = r.stderr.indexOf("warn-first-in-input");
48
- expect(blockIdx).toBeGreaterThan(-1);
49
- expect(warnIdx).toBeGreaterThan(-1);
50
- expect(blockIdx).toBeLessThan(warnIdx);
51
- });
52
- it("appends trailing newline to stderr when non-empty", () => {
53
- const verdicts = [{ kind: "warn", message: "x" }];
54
- const r = aggregatePreToolUse(verdicts);
55
- expect(r.stderr.endsWith("\n")).toBe(true);
56
- });
57
- });
58
- describe("runner semantics — block/warn aggregation contract", () => {
59
- it("multiple blocks all appear in stderr", () => {
60
- const verdicts = [
61
- { kind: "block", message: "first block" },
62
- { kind: "block", message: "second block" },
63
- ];
64
- const r = aggregatePreToolUse(verdicts);
65
- expect(r.exit).toBe(2);
66
- expect(r.stderr).toContain("first block");
67
- expect(r.stderr).toContain("second block");
68
- });
69
- it("surface verdicts are NOT included in PreToolUse stderr (those route via Stop/UPS)", () => {
70
- const verdicts = [
71
- { kind: "surface", message: "stop-surface should not appear" },
72
- { kind: "warn", message: "real warn appears" },
73
- ];
74
- const r = aggregatePreToolUse(verdicts);
75
- expect(r.stderr).not.toContain("stop-surface should not appear");
76
- expect(r.stderr).toContain("real warn appears");
77
- });
78
- });