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,225 +0,0 @@
1
- import { promises as fs } from "node:fs";
2
- import * as path from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import { describe, expect, it } from "vitest";
5
- import { SkillMdImportError, convertSkillMdToCodex, detectVariant, parseSkillMd, slugify, } from "./import-skill-md.js";
6
- import { isFocusedCodex } from "./types.js";
7
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
- const FIXTURES = path.resolve(__dirname, "../../test/fixtures/skill-md");
9
- async function loadFixture(name) {
10
- return fs.readFile(path.join(FIXTURES, name), "utf8");
11
- }
12
- // ---------------------------------------------------------------------
13
- // slugify
14
- // ---------------------------------------------------------------------
15
- describe("slugify", () => {
16
- it("lowercases ASCII", () => {
17
- expect(slugify("HelloWorld")).toBe("helloworld");
18
- });
19
- it("replaces underscores with dashes", () => {
20
- expect(slugify("google_meet")).toBe("google-meet");
21
- });
22
- it("collapses runs of non-alphanumerics", () => {
23
- expect(slugify("foo bar___baz")).toBe("foo-bar-baz");
24
- });
25
- it("trims leading/trailing dashes", () => {
26
- expect(slugify("---foo---")).toBe("foo");
27
- });
28
- it("caps at 64 chars", () => {
29
- const long = "a".repeat(200);
30
- expect(slugify(long).length).toBe(64);
31
- });
32
- it("throws on empty after stripping", () => {
33
- expect(() => slugify("!!!")).toThrow(SkillMdImportError);
34
- });
35
- });
36
- // ---------------------------------------------------------------------
37
- // parseSkillMd
38
- // ---------------------------------------------------------------------
39
- describe("parseSkillMd", () => {
40
- it("rejects empty input", () => {
41
- expect(() => parseSkillMd("")).toThrow(/empty/);
42
- });
43
- it("rejects missing frontmatter", () => {
44
- expect(() => parseSkillMd("just a body, no fences")).toThrow(/frontmatter/);
45
- });
46
- it("rejects missing name", () => {
47
- expect(() => parseSkillMd("---\ndescription: x\n---\nbody")).toThrow(/name/);
48
- });
49
- it("rejects missing description", () => {
50
- expect(() => parseSkillMd("---\nname: foo\n---\nbody")).toThrow(/description/);
51
- });
52
- it("parses minimal valid SKILL.md", () => {
53
- const { frontmatter, body } = parseSkillMd("---\nname: foo\ndescription: bar\n---\nhello");
54
- expect(frontmatter.name).toBe("foo");
55
- expect(frontmatter.description).toBe("bar");
56
- expect(body).toBe("hello");
57
- });
58
- it("handles CRLF line endings", () => {
59
- const { frontmatter } = parseSkillMd("---\r\nname: foo\r\ndescription: bar\r\n---\r\nbody\r\n");
60
- expect(frontmatter.name).toBe("foo");
61
- });
62
- it("strips UTF-8 BOM at start of file (v0.6d audit L1)", () => {
63
- const bom = "";
64
- const { frontmatter, body } = parseSkillMd(`${bom}---\nname: bom-test\ndescription: leading BOM\n---\nbody\n`);
65
- expect(frontmatter.name).toBe("bom-test");
66
- expect(body).toBe("body");
67
- });
68
- });
69
- // ---------------------------------------------------------------------
70
- // detectVariant
71
- // ---------------------------------------------------------------------
72
- describe("detectVariant", () => {
73
- it("detects ECC by origin", () => {
74
- expect(detectVariant({ name: "x", description: "y", origin: "ECC" })).toBe("ecc");
75
- });
76
- it("detects Hermes by platforms array", () => {
77
- expect(detectVariant({ name: "x", description: "y", platforms: ["claude-code"] })).toBe("hermes");
78
- });
79
- it("detects Hermes by metadata.hermes block", () => {
80
- expect(detectVariant({ name: "x", description: "y", metadata: { hermes: { tags: [] } } })).toBe("hermes");
81
- });
82
- it("detects superpowers by path", () => {
83
- expect(detectVariant({ name: "x", description: "y" }, "/repo/superpowers/skills/foo/SKILL.md")).toBe("superpowers");
84
- });
85
- it("does NOT detect superpowers from CSO description alone (Anthropic skills use it too)", () => {
86
- expect(detectVariant({ name: "x", description: "Use when writing tests" })).toBe("anthropic");
87
- });
88
- it("detects pure Anthropic (only known fields)", () => {
89
- expect(detectVariant({ name: "x", description: "extracts text", license: "MIT" })).toBe("anthropic");
90
- });
91
- it("falls back to unknown for unrecognized non-standard fields", () => {
92
- expect(detectVariant({ name: "x", description: "extracts text", randomField: 1 })).toBe("unknown");
93
- });
94
- });
95
- // ---------------------------------------------------------------------
96
- // convertSkillMdToCodex — fixture round-trip
97
- // ---------------------------------------------------------------------
98
- describe("convertSkillMdToCodex — fixtures", () => {
99
- it("converts Anthropic skill-creator (minimal)", async () => {
100
- const raw = await loadFixture("anthropic-skill-creator.md");
101
- const { codex, lessons, variant } = convertSkillMdToCodex(raw, {
102
- originalPath: "/fake/skill-creator/SKILL.md",
103
- now: "2026-05-16T00:00:00.000Z",
104
- });
105
- expect(variant).toBe("anthropic");
106
- expect(codex.id).toBe("skill-creator");
107
- expect(codex.version).toBe("1.0.0");
108
- expect(isFocusedCodex(codex)).toBe(true);
109
- if (!isFocusedCodex(codex))
110
- throw new Error("unreachable");
111
- expect(codex.evolves).toBe(true);
112
- expect(codex.source?.kind).toBe("skill_md");
113
- expect(codex.source?.original_variant).toBe("anthropic");
114
- expect(codex.source?.original_name).toBe("skill-creator");
115
- expect(codex.source?.imported_at).toBe("2026-05-16T00:00:00.000Z");
116
- expect(codex.metadata?.imported_from).toBe("skill_md");
117
- expect(codex.metadata?.imported).toEqual({ synthesized_version: true });
118
- expect(codex.seed_lessons).toHaveLength(1);
119
- expect(codex.seed_lessons?.[0]?.id).toBe("skill-creator");
120
- expect(codex.seed_lessons?.[0]?.body_path).toBe("lessons/skill-creator/lesson.md");
121
- expect(lessons).toHaveLength(1);
122
- expect(lessons[0].body).toContain("# Skill Creator");
123
- });
124
- it("converts Anthropic pdf — preserves license", async () => {
125
- const raw = await loadFixture("anthropic-pdf.md");
126
- const { codex } = convertSkillMdToCodex(raw, { originalPath: "/fake/pdf/SKILL.md" });
127
- expect(codex.id).toBe("pdf");
128
- expect(codex.license).toBe("Apache-2.0");
129
- });
130
- it("converts superpowers TDD — path-based detection", async () => {
131
- const raw = await loadFixture("superpowers-tdd.md");
132
- const { codex, variant } = convertSkillMdToCodex(raw, {
133
- originalPath: "/home/u/repos/superpowers/skills/test-driven-development/SKILL.md",
134
- });
135
- expect(variant).toBe("superpowers");
136
- expect(codex.id).toBe("test-driven-development");
137
- });
138
- it("converts ECC tdd-workflow — preserves origin in metadata", async () => {
139
- const raw = await loadFixture("ecc-tdd-workflow.md");
140
- const { codex, variant } = convertSkillMdToCodex(raw, {
141
- originalPath: "/fake/ecc/SKILL.md",
142
- });
143
- expect(variant).toBe("ecc");
144
- expect(codex.metadata?.origin).toBe("ECC");
145
- });
146
- it("converts Hermes dogfood — preserves version + author + extensions", async () => {
147
- const raw = await loadFixture("hermes-dogfood.md");
148
- const { codex, variant } = convertSkillMdToCodex(raw, {
149
- originalPath: "/fake/hermes/dogfood/SKILL.md",
150
- });
151
- expect(variant).toBe("hermes");
152
- if (!isFocusedCodex(codex))
153
- throw new Error("unreachable");
154
- expect(codex.version).toBe("0.3.1");
155
- expect(codex.author?.name).toBe("Hermes Team");
156
- expect(codex.metadata?.platforms).toEqual(["claude-code", "cursor", "hermes"]);
157
- const hermesMeta = codex.metadata?.hermes;
158
- expect(hermesMeta?.tags).toContain("testing");
159
- expect(hermesMeta?.related_skills).toContain("publish-skill");
160
- // synthesized_version marker MUST NOT be set when Hermes supplied a version
161
- expect(codex.metadata?.imported).toBeUndefined();
162
- });
163
- it("converts Hermes google_meet — underscore rewrites to hyphen", async () => {
164
- const raw = await loadFixture("hermes-google-meet.md");
165
- const { codex } = convertSkillMdToCodex(raw, {
166
- originalPath: "/fake/hermes/google_meet/SKILL.md",
167
- });
168
- expect(codex.id).toBe("google-meet");
169
- if (!isFocusedCodex(codex))
170
- throw new Error("unreachable");
171
- expect(codex.source?.original_name).toBe("google_meet");
172
- expect(codex.seed_lessons?.[0]?.body_path).toBe("lessons/google-meet/lesson.md");
173
- });
174
- });
175
- // ---------------------------------------------------------------------
176
- // allowed-tools mapping (Anthropic experimental field)
177
- // ---------------------------------------------------------------------
178
- describe("convertSkillMdToCodex — allowed-tools", () => {
179
- it("maps `allowed-tools` array to foundation.tools[]", () => {
180
- const src = `---
181
- name: tooled
182
- description: uses specific tools
183
- allowed-tools:
184
- - Read
185
- - Bash
186
- - Edit
187
- ---
188
-
189
- body`;
190
- const { codex } = convertSkillMdToCodex(src);
191
- if (!isFocusedCodex(codex))
192
- throw new Error("unreachable");
193
- expect(codex.foundation?.tools?.map((t) => t.name)).toEqual(["Read", "Bash", "Edit"]);
194
- });
195
- it("omits foundation when allowed-tools is empty", () => {
196
- const src = `---
197
- name: untooled
198
- description: no tool restrictions
199
- ---
200
-
201
- body`;
202
- const { codex } = convertSkillMdToCodex(src);
203
- if (!isFocusedCodex(codex))
204
- throw new Error("unreachable");
205
- expect(codex.foundation).toBeUndefined();
206
- });
207
- });
208
- // ---------------------------------------------------------------------
209
- // Unknown frontmatter keys → metadata catch-all
210
- // ---------------------------------------------------------------------
211
- describe("convertSkillMdToCodex — extensibility bucket", () => {
212
- it("preserves unknown top-level keys under metadata", () => {
213
- const src = `---
214
- name: custom
215
- description: has random fields
216
- custom_field: hello
217
- another: 42
218
- ---
219
-
220
- body`;
221
- const { codex } = convertSkillMdToCodex(src);
222
- expect(codex.metadata?.custom_field).toBe("hello");
223
- expect(codex.metadata?.another).toBe(42);
224
- });
225
- });
@@ -1,27 +0,0 @@
1
- /**
2
- * Bundled-default codex loader (drift-as-codex chunk 2).
3
- *
4
- * Reads `bundled-default/codex.yaml` once per process and returns the
5
- * parsed FocusedCodex. Downstream hooks (workflow-gate, honesty-ledger,
6
- * versioning-gate — see chunks 3a/3b) call this to source their rules
7
- * from the codex instead of having them hard-coded in TypeScript.
8
- *
9
- * Singleton cache: the YAML is small and unchanging across a process
10
- * lifetime; computing the path + parsing once is cheap and avoids
11
- * surprising the test suite with stale state.
12
- */
13
- import { FocusedCodex } from "./types.js";
14
- /**
15
- * Load the bundled-default codex once per process and return it.
16
- *
17
- * Throws if the file is missing, malformed, or parses to a
18
- * CompositeCodex (the bundled-default is always focused — composite
19
- * codexes are a separate consumer pattern).
20
- */
21
- export declare function loadBundledDefaultCodex(): FocusedCodex;
22
- /**
23
- * Clear the loader cache. Test-only — production code should never
24
- * need to invalidate the bundled-default codex within a process.
25
- */
26
- export declare function __resetCachedCodexForTesting(): void;
27
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src.legacy/codex/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAE,YAAY,EAAkB,MAAM,YAAY,CAAC;AAgD1D;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,YAAY,CAqBtD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Bundled-default codex loader (drift-as-codex chunk 2).
3
- *
4
- * Reads `bundled-default/codex.yaml` once per process and returns the
5
- * parsed FocusedCodex. Downstream hooks (workflow-gate, honesty-ledger,
6
- * versioning-gate — see chunks 3a/3b) call this to source their rules
7
- * from the codex instead of having them hard-coded in TypeScript.
8
- *
9
- * Singleton cache: the YAML is small and unchanging across a process
10
- * lifetime; computing the path + parsing once is cheap and avoids
11
- * surprising the test suite with stale state.
12
- */
13
- import { readFileSync } from "node:fs";
14
- import * as path from "node:path";
15
- import { fileURLToPath } from "node:url";
16
- import { parseCodexYaml } from "./parse.js";
17
- import { isFocusedCodex } from "./types.js";
18
- const __filename = fileURLToPath(import.meta.url);
19
- const __dirname = path.dirname(__filename);
20
- /**
21
- * Path to the bundled-default codex YAML. Resolved relative to this
22
- * file's location, so it works in both `src/` (vitest direct execution)
23
- * and `dist/` (built + published npm package, since
24
- * `src/codex/bundled-default/codex.yaml` is listed in `package.json`
25
- * `files[]`).
26
- *
27
- * The relative layout is identical in both worlds:
28
- * src/codex/loader.ts + src/codex/bundled-default/codex.yaml
29
- * dist/codex/loader.js + src/codex/bundled-default/codex.yaml
30
- *
31
- * Wait — the `dist/` build only includes the loader.js. The YAML
32
- * stays at its `src/codex/bundled-default/codex.yaml` location because
33
- * that's what package.json `files[]` ships. We resolve from
34
- * `loader.{ts,js}` up to the package root then back down to the YAML.
35
- */
36
- function resolveBundledCodexPath() {
37
- // From `dist/codex/loader.js` or `src/codex/loader.ts`, the YAML is
38
- // at `../../src/codex/bundled-default/codex.yaml` relative to the
39
- // dist build, or `./bundled-default/codex.yaml` in the src tree.
40
- // Try the src-tree path first (works in test runs); fall back to
41
- // the dist-relative path (works in published npm package).
42
- const srcRelative = path.resolve(__dirname, "bundled-default", "codex.yaml");
43
- // Distinguish dist vs src by checking whether __dirname ends with
44
- // .../dist/codex. In `dist/`, the bundled YAML is one level higher.
45
- const distRelative = path.resolve(__dirname, "..", "..", "src", "codex", "bundled-default", "codex.yaml");
46
- // When running from src/, srcRelative resolves correctly; when
47
- // running from dist/, only distRelative does (the YAML stays in
48
- // src/codex/bundled-default/ per package.json files[]). Branch on
49
- // whether __dirname is inside /dist/.
50
- return srcRelative.includes(`${path.sep}dist${path.sep}`) ? distRelative : srcRelative;
51
- }
52
- let cachedCodex = null;
53
- /**
54
- * Load the bundled-default codex once per process and return it.
55
- *
56
- * Throws if the file is missing, malformed, or parses to a
57
- * CompositeCodex (the bundled-default is always focused — composite
58
- * codexes are a separate consumer pattern).
59
- */
60
- export function loadBundledDefaultCodex() {
61
- if (cachedCodex !== null) {
62
- return cachedCodex;
63
- }
64
- const yamlPath = resolveBundledCodexPath();
65
- let yaml;
66
- try {
67
- yaml = readFileSync(yamlPath, "utf-8");
68
- }
69
- catch (err) {
70
- throw new Error(`[opensquid loader] bundled-default codex not found at ${yamlPath}: ${err instanceof Error ? err.message : err}`);
71
- }
72
- const parsed = parseCodexYaml(yaml);
73
- if (!isFocusedCodex(parsed)) {
74
- throw new Error(`[opensquid loader] bundled-default codex must be focused, got composite (id=${parsed.id})`);
75
- }
76
- cachedCodex = parsed;
77
- return cachedCodex;
78
- }
79
- /**
80
- * Clear the loader cache. Test-only — production code should never
81
- * need to invalidate the bundled-default codex within a process.
82
- */
83
- export function __resetCachedCodexForTesting() {
84
- cachedCodex = null;
85
- }
86
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src.legacy/codex/loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;;;;;;;;;;;;;;GAeG;AACH,SAAS,uBAAuB;IAC9B,oEAAoE;IACpE,kEAAkE;IAClE,iEAAiE;IACjE,iEAAiE;IACjE,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;IAC7E,kEAAkE;IAClE,oEAAoE;IACpE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC/B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,YAAY,CACb,CAAC;IACF,+DAA+D;IAC/D,gEAAgE;IAChE,kEAAkE;IAClE,sCAAsC;IACtC,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;AACzF,CAAC;AAED,IAAI,WAAW,GAAwB,IAAI,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB;IACrC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,yDAAyD,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACjH,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,+EAA+E,MAAM,CAAC,EAAE,GAAG,CAC5F,CAAC;IACJ,CAAC;IACD,WAAW,GAAG,MAAM,CAAC;IACrB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B;IAC1C,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC"}
@@ -1,75 +0,0 @@
1
- import { describe, expect, it, beforeEach } from "vitest";
2
- import { __resetCachedCodexForTesting, loadBundledDefaultCodex } from "./loader.js";
3
- import { isFocusedCodex } from "./types.js";
4
- describe("loadBundledDefaultCodex", () => {
5
- beforeEach(() => {
6
- __resetCachedCodexForTesting();
7
- });
8
- it("loads the bundled-default codex and returns a focused codex", () => {
9
- const codex = loadBundledDefaultCodex();
10
- expect(codex.id).toBe("opensquid-default");
11
- expect(isFocusedCodex(codex)).toBe(true);
12
- });
13
- it("exposes the drift, workflow, claim, and policy sections (chunk 1 content)", () => {
14
- const codex = loadBundledDefaultCodex();
15
- expect(codex.drifts).toBeDefined();
16
- expect((codex.drifts ?? []).length).toBeGreaterThanOrEqual(4);
17
- expect(codex.workflows).toBeDefined();
18
- expect((codex.workflows ?? []).length).toBeGreaterThanOrEqual(1);
19
- expect(codex.default_workflow_id).toBe("standard-7-phase");
20
- expect(codex.claims).toBeDefined();
21
- expect((codex.claims ?? []).length).toBeGreaterThanOrEqual(5);
22
- expect(codex.policies).toBeDefined();
23
- expect((codex.policies ?? []).length).toBeGreaterThanOrEqual(2);
24
- });
25
- it("caches across calls (returns the same object instance on repeated calls)", () => {
26
- const first = loadBundledDefaultCodex();
27
- const second = loadBundledDefaultCodex();
28
- expect(first).toBe(second);
29
- });
30
- it("re-parses after __resetCachedCodexForTesting (fresh object instance)", () => {
31
- const first = loadBundledDefaultCodex();
32
- __resetCachedCodexForTesting();
33
- const second = loadBundledDefaultCodex();
34
- // Same content, different reference because cache was cleared.
35
- expect(first).not.toBe(second);
36
- expect(first.id).toBe(second.id);
37
- });
38
- it("exposes the standard-7-phase workflow with all 7 phases", () => {
39
- const codex = loadBundledDefaultCodex();
40
- const workflow = (codex.workflows ?? []).find((w) => w.id === "standard-7-phase");
41
- expect(workflow).toBeDefined();
42
- const phaseNames = (workflow?.phases ?? []).map((p) => p.name);
43
- expect(phaseNames).toEqual([
44
- "pre_research",
45
- "learn",
46
- "code",
47
- "test",
48
- "audit",
49
- "post_research",
50
- "fix",
51
- ]);
52
- // `fix` is the only soft phase (required: false). The other 6 are required.
53
- const requiredPhases = (workflow?.phases ?? []).filter((p) => p.required).map((p) => p.name);
54
- expect(requiredPhases).toEqual([
55
- "pre_research",
56
- "learn",
57
- "code",
58
- "test",
59
- "audit",
60
- "post_research",
61
- ]);
62
- });
63
- it("exposes versioning-pre1-patch-only policy with allowed_slots = [patch]", () => {
64
- const codex = loadBundledDefaultCodex();
65
- const policy = (codex.policies ?? []).find((p) => p.id === "versioning-pre1-patch-only");
66
- expect(policy).toBeDefined();
67
- if (policy?.kind === "versioning") {
68
- expect(policy.params.per_commit_required).toBe(true);
69
- expect(policy.params.allowed_slots).toEqual(["patch"]);
70
- }
71
- else {
72
- throw new Error("versioning-pre1-patch-only policy is not of kind=versioning");
73
- }
74
- });
75
- });
@@ -1,28 +0,0 @@
1
- /**
2
- * Codex YAML parsing + runtime validation.
3
- *
4
- * Authoritative parse for codex.yaml files. Used by `opensquid codex
5
- * install <path>` to validate before storing locally. Foreign-format
6
- * imports (superpowers SKILL.md, ECC, etc.) come pre-converted to
7
- * native codex YAML via LLM at install time — this parser sees the
8
- * native shape only.
9
- */
10
- import { z } from "zod";
11
- import type { Codex } from "./types.js";
12
- export declare class CodexParseError extends Error {
13
- readonly issues?: z.ZodIssue[] | undefined;
14
- constructor(message: string, issues?: z.ZodIssue[] | undefined);
15
- }
16
- /**
17
- * Parse + validate a codex from a raw object (already-parsed YAML/JSON).
18
- *
19
- * Throws `CodexParseError` on schema violations with detailed issues.
20
- */
21
- export declare function parseCodex(raw: unknown): Codex;
22
- /**
23
- * Parse a codex from a YAML string.
24
- *
25
- * Throws `CodexParseError` on YAML syntax error or schema violation.
26
- */
27
- export declare function parseCodexYaml(source: string): Codex;
28
- //# sourceMappingURL=parse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src.legacy/codex/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EACV,KAAK,EAeN,MAAM,YAAY,CAAC;AAiSpB,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;gBADrC,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,YAAA;CAKxC;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAgB9C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAepD"}