pulseed 0.6.1 → 0.6.2

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 (831) hide show
  1. package/README.md +1 -1
  2. package/dist/adapters/types/a2a.d.ts +24 -24
  3. package/dist/base/config/global-config.d.ts +4 -4
  4. package/dist/base/state/state-manager-goal-write.d.ts +1 -1
  5. package/dist/base/state/state-manager-goal-write.d.ts.map +1 -1
  6. package/dist/base/state/state-manager.d.ts +2 -6
  7. package/dist/base/state/state-manager.d.ts.map +1 -1
  8. package/dist/base/state/state-manager.js.map +1 -1
  9. package/dist/base/state/state-write-fence.d.ts +7 -0
  10. package/dist/base/state/state-write-fence.d.ts.map +1 -0
  11. package/dist/base/state/state-write-fence.js +2 -0
  12. package/dist/base/state/state-write-fence.js.map +1 -0
  13. package/dist/base/types/companion.d.ts +2 -0
  14. package/dist/base/types/companion.d.ts.map +1 -0
  15. package/dist/base/types/companion.js +2 -0
  16. package/dist/base/types/companion.js.map +1 -0
  17. package/dist/base/types/index.d.ts +1 -0
  18. package/dist/base/types/index.d.ts.map +1 -1
  19. package/dist/base/types/index.js +1 -0
  20. package/dist/base/types/index.js.map +1 -1
  21. package/dist/index.d.ts +4 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/interface/chat/chat-event-state.d.ts +2 -0
  26. package/dist/interface/chat/chat-event-state.d.ts.map +1 -1
  27. package/dist/interface/chat/chat-event-state.js +28 -11
  28. package/dist/interface/chat/chat-event-state.js.map +1 -1
  29. package/dist/interface/chat/chat-events.d.ts +9 -1
  30. package/dist/interface/chat/chat-events.d.ts.map +1 -1
  31. package/dist/interface/chat/chat-history.d.ts +4739 -1
  32. package/dist/interface/chat/chat-history.d.ts.map +1 -1
  33. package/dist/interface/chat/chat-history.js +40 -2
  34. package/dist/interface/chat/chat-history.js.map +1 -1
  35. package/dist/interface/chat/chat-runner-commands.d.ts +2 -32
  36. package/dist/interface/chat/chat-runner-commands.d.ts.map +1 -1
  37. package/dist/interface/chat/chat-runner-commands.js +2 -2
  38. package/dist/interface/chat/chat-runner-commands.js.map +1 -1
  39. package/dist/interface/chat/chat-runner-contracts.d.ts +152 -0
  40. package/dist/interface/chat/chat-runner-contracts.d.ts.map +1 -0
  41. package/dist/interface/chat/chat-runner-contracts.js +2 -0
  42. package/dist/interface/chat/chat-runner-contracts.js.map +1 -0
  43. package/dist/interface/chat/chat-runner-event-bridge.d.ts +8 -2
  44. package/dist/interface/chat/chat-runner-event-bridge.d.ts.map +1 -1
  45. package/dist/interface/chat/chat-runner-event-bridge.js +76 -11
  46. package/dist/interface/chat/chat-runner-event-bridge.js.map +1 -1
  47. package/dist/interface/chat/chat-runner-routes.d.ts +66 -12
  48. package/dist/interface/chat/chat-runner-routes.d.ts.map +1 -1
  49. package/dist/interface/chat/chat-runner-routes.js +322 -30
  50. package/dist/interface/chat/chat-runner-routes.js.map +1 -1
  51. package/dist/interface/chat/chat-runner-runtime.d.ts +1 -1
  52. package/dist/interface/chat/chat-runner-runtime.d.ts.map +1 -1
  53. package/dist/interface/chat/chat-runner-runtime.js +4 -0
  54. package/dist/interface/chat/chat-runner-runtime.js.map +1 -1
  55. package/dist/interface/chat/chat-runner.d.ts +10 -71
  56. package/dist/interface/chat/chat-runner.d.ts.map +1 -1
  57. package/dist/interface/chat/chat-runner.js +403 -58
  58. package/dist/interface/chat/chat-runner.js.map +1 -1
  59. package/dist/interface/chat/chat-session-store.d.ts +2 -0
  60. package/dist/interface/chat/chat-session-store.d.ts.map +1 -1
  61. package/dist/interface/chat/chat-session-store.js +3 -6
  62. package/dist/interface/chat/chat-session-store.js.map +1 -1
  63. package/dist/interface/chat/cross-platform-session-global.d.ts +2 -1
  64. package/dist/interface/chat/cross-platform-session-global.d.ts.map +1 -1
  65. package/dist/interface/chat/cross-platform-session-global.js +4 -10
  66. package/dist/interface/chat/cross-platform-session-global.js.map +1 -1
  67. package/dist/interface/chat/cross-platform-session.d.ts +30 -1
  68. package/dist/interface/chat/cross-platform-session.d.ts.map +1 -1
  69. package/dist/interface/chat/cross-platform-session.js +413 -52
  70. package/dist/interface/chat/cross-platform-session.js.map +1 -1
  71. package/dist/interface/chat/event-subscriber.js +2 -2
  72. package/dist/interface/chat/event-subscriber.js.map +1 -1
  73. package/dist/interface/chat/failure-recovery.js +1 -1
  74. package/dist/interface/chat/failure-recovery.js.map +1 -1
  75. package/dist/interface/chat/freeform-route-classifier.d.ts +5 -5
  76. package/dist/interface/chat/freeform-route-classifier.js +3 -2
  77. package/dist/interface/chat/freeform-route-classifier.js.map +1 -1
  78. package/dist/interface/chat/gateway-setup-status.d.ts +33 -0
  79. package/dist/interface/chat/gateway-setup-status.d.ts.map +1 -0
  80. package/dist/interface/chat/gateway-setup-status.js +44 -0
  81. package/dist/interface/chat/gateway-setup-status.js.map +1 -0
  82. package/dist/interface/chat/ingress-router.d.ts +22 -0
  83. package/dist/interface/chat/ingress-router.d.ts.map +1 -1
  84. package/dist/interface/chat/ingress-router.js +148 -11
  85. package/dist/interface/chat/ingress-router.js.map +1 -1
  86. package/dist/interface/chat/operation-progress.d.ts +17 -0
  87. package/dist/interface/chat/operation-progress.d.ts.map +1 -0
  88. package/dist/interface/chat/operation-progress.js +29 -0
  89. package/dist/interface/chat/operation-progress.js.map +1 -0
  90. package/dist/interface/chat/setup-config-write.d.ts +27 -0
  91. package/dist/interface/chat/setup-config-write.d.ts.map +1 -0
  92. package/dist/interface/chat/setup-config-write.js +79 -0
  93. package/dist/interface/chat/setup-config-write.js.map +1 -0
  94. package/dist/interface/chat/setup-dialogue.d.ts +199 -0
  95. package/dist/interface/chat/setup-dialogue.d.ts.map +1 -0
  96. package/dist/interface/chat/setup-dialogue.js +97 -0
  97. package/dist/interface/chat/setup-dialogue.js.map +1 -0
  98. package/dist/interface/chat/setup-secret-intake.d.ts +68 -0
  99. package/dist/interface/chat/setup-secret-intake.d.ts.map +1 -0
  100. package/dist/interface/chat/setup-secret-intake.js +84 -0
  101. package/dist/interface/chat/setup-secret-intake.js.map +1 -0
  102. package/dist/interface/chat/turn-language.d.ts +23 -0
  103. package/dist/interface/chat/turn-language.d.ts.map +1 -0
  104. package/dist/interface/chat/turn-language.js +46 -0
  105. package/dist/interface/chat/turn-language.js.map +1 -0
  106. package/dist/interface/cli/cli-command-registry.d.ts +1 -1
  107. package/dist/interface/cli/cli-command-registry.d.ts.map +1 -1
  108. package/dist/interface/cli/cli-runner.js +1 -1
  109. package/dist/interface/cli/cli-runner.js.map +1 -1
  110. package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
  111. package/dist/interface/cli/commands/daemon.js +3 -0
  112. package/dist/interface/cli/commands/daemon.js.map +1 -1
  113. package/dist/interface/cli/commands/operator-binding-status.d.ts +59 -0
  114. package/dist/interface/cli/commands/operator-binding-status.d.ts.map +1 -0
  115. package/dist/interface/cli/commands/operator-binding-status.js +257 -0
  116. package/dist/interface/cli/commands/operator-binding-status.js.map +1 -0
  117. package/dist/interface/cli/commands/run.d.ts +2 -2
  118. package/dist/interface/cli/commands/run.d.ts.map +1 -1
  119. package/dist/interface/cli/commands/run.js.map +1 -1
  120. package/dist/interface/cli/commands/runtime.d.ts.map +1 -1
  121. package/dist/interface/cli/commands/runtime.js +8 -1
  122. package/dist/interface/cli/commands/runtime.js.map +1 -1
  123. package/dist/interface/cli/commands/setup/steps-gateway.js +14 -3
  124. package/dist/interface/cli/commands/setup/steps-gateway.js.map +1 -1
  125. package/dist/interface/cli/commands/setup-wizard.d.ts +31 -0
  126. package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
  127. package/dist/interface/cli/commands/setup-wizard.js +88 -0
  128. package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
  129. package/dist/interface/cli/commands/telegram.d.ts.map +1 -1
  130. package/dist/interface/cli/commands/telegram.js +27 -3
  131. package/dist/interface/cli/commands/telegram.js.map +1 -1
  132. package/dist/interface/cli/setup.d.ts +3 -3
  133. package/dist/interface/cli/setup.d.ts.map +1 -1
  134. package/dist/interface/cli/setup.js +3 -2
  135. package/dist/interface/cli/setup.js.map +1 -1
  136. package/dist/interface/cli/utils/loop-runner.d.ts +1 -1
  137. package/dist/interface/cli/utils/loop-runner.d.ts.map +1 -1
  138. package/dist/interface/cli/utils.js +1 -1
  139. package/dist/interface/tui/actions.d.ts.map +1 -1
  140. package/dist/interface/tui/actions.js +14 -6
  141. package/dist/interface/tui/actions.js.map +1 -1
  142. package/dist/interface/tui/app.d.ts +1 -7
  143. package/dist/interface/tui/app.d.ts.map +1 -1
  144. package/dist/interface/tui/app.js +71 -120
  145. package/dist/interface/tui/app.js.map +1 -1
  146. package/dist/interface/tui/chat-surface.d.ts +1 -0
  147. package/dist/interface/tui/chat-surface.d.ts.map +1 -1
  148. package/dist/interface/tui/chat-surface.js +15 -0
  149. package/dist/interface/tui/chat-surface.js.map +1 -1
  150. package/dist/interface/tui/entry-approval.js +2 -2
  151. package/dist/interface/tui/entry-approval.js.map +1 -1
  152. package/dist/interface/tui/entry-deps.d.ts +1 -1
  153. package/dist/interface/tui/entry-deps.d.ts.map +1 -1
  154. package/dist/interface/tui/entry-deps.js +54 -8
  155. package/dist/interface/tui/entry-deps.js.map +1 -1
  156. package/dist/interface/tui/input-action.d.ts +49 -0
  157. package/dist/interface/tui/input-action.d.ts.map +1 -0
  158. package/dist/interface/tui/input-action.js +46 -0
  159. package/dist/interface/tui/input-action.js.map +1 -0
  160. package/dist/interface/tui/markdown-renderer.d.ts.map +1 -1
  161. package/dist/interface/tui/markdown-renderer.js +4 -1
  162. package/dist/interface/tui/markdown-renderer.js.map +1 -1
  163. package/dist/interface/tui/use-loop.d.ts +1 -1
  164. package/dist/interface/tui/use-loop.d.ts.map +1 -1
  165. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.d.ts.map +1 -1
  166. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js +14 -0
  167. package/dist/orchestrator/execution/agent-loop/agent-loop-default-profile.js.map +1 -1
  168. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts +3 -0
  169. package/dist/orchestrator/execution/agent-loop/agent-loop-events.d.ts.map +1 -1
  170. package/dist/orchestrator/execution/agent-loop/agent-loop-events.js.map +1 -1
  171. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts +17 -0
  172. package/dist/orchestrator/execution/agent-loop/agent-loop-result.d.ts.map +1 -1
  173. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts +3 -0
  174. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-output.d.ts.map +1 -1
  175. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts +1 -0
  176. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.d.ts.map +1 -1
  177. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js +20 -3
  178. package/dist/orchestrator/execution/agent-loop/agent-loop-tool-runtime.js.map +1 -1
  179. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.d.ts.map +1 -1
  180. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js +5 -3
  181. package/dist/orchestrator/execution/agent-loop/agent-loop-trace-store.js.map +1 -1
  182. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts +3 -1
  183. package/dist/orchestrator/execution/agent-loop/agent-timeline.d.ts.map +1 -1
  184. package/dist/orchestrator/execution/agent-loop/agent-timeline.js +8 -20
  185. package/dist/orchestrator/execution/agent-loop/agent-timeline.js.map +1 -1
  186. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.d.ts.map +1 -1
  187. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js +38 -25
  188. package/dist/orchestrator/execution/agent-loop/bounded-agent-loop-runner.js.map +1 -1
  189. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
  190. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +20 -4
  191. package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
  192. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts +1 -51
  193. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.d.ts.map +1 -1
  194. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js +3 -239
  195. package/dist/orchestrator/execution/agent-loop/core-loop-control-tools.js.map +1 -1
  196. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.d.ts +60 -0
  197. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.d.ts.map +1 -0
  198. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.js +244 -0
  199. package/dist/orchestrator/execution/agent-loop/durable-loop-control-tools.js.map +1 -0
  200. package/dist/orchestrator/execution/agent-loop/index.d.ts +1 -1
  201. package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
  202. package/dist/orchestrator/execution/agent-loop/index.js +1 -1
  203. package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
  204. package/dist/orchestrator/execution/task/task-generation.d.ts +50 -2
  205. package/dist/orchestrator/execution/task/task-generation.d.ts.map +1 -1
  206. package/dist/orchestrator/execution/task/task-generation.js +19 -1
  207. package/dist/orchestrator/execution/task/task-generation.js.map +1 -1
  208. package/dist/orchestrator/execution/task/task-lifecycle.js +8 -11
  209. package/dist/orchestrator/execution/task/task-lifecycle.js.map +1 -1
  210. package/dist/orchestrator/execution/task/task-prompt-builder.d.ts.map +1 -1
  211. package/dist/orchestrator/execution/task/task-prompt-builder.js +9 -0
  212. package/dist/orchestrator/execution/task/task-prompt-builder.js.map +1 -1
  213. package/dist/orchestrator/execution/types/task-group.d.ts +68 -4
  214. package/dist/orchestrator/execution/types/task-group.d.ts.map +1 -1
  215. package/dist/orchestrator/execution/types/task.d.ts +100 -2
  216. package/dist/orchestrator/execution/types/task.d.ts.map +1 -1
  217. package/dist/orchestrator/execution/types/task.js +10 -0
  218. package/dist/orchestrator/execution/types/task.js.map +1 -1
  219. package/dist/orchestrator/goal/goal-decomposer.d.ts.map +1 -1
  220. package/dist/orchestrator/goal/goal-decomposer.js +2 -1
  221. package/dist/orchestrator/goal/goal-decomposer.js.map +1 -1
  222. package/dist/orchestrator/goal/goal-negotiator.d.ts.map +1 -1
  223. package/dist/orchestrator/goal/goal-negotiator.js +5 -2
  224. package/dist/orchestrator/goal/goal-negotiator.js.map +1 -1
  225. package/dist/orchestrator/goal/goal-suggest.d.ts +6 -6
  226. package/dist/orchestrator/goal/goal-validation.d.ts +4 -5
  227. package/dist/orchestrator/goal/goal-validation.d.ts.map +1 -1
  228. package/dist/orchestrator/goal/goal-validation.js +11 -17
  229. package/dist/orchestrator/goal/goal-validation.js.map +1 -1
  230. package/dist/orchestrator/goal/negotiator-prompts.d.ts.map +1 -1
  231. package/dist/orchestrator/goal/negotiator-prompts.js +8 -4
  232. package/dist/orchestrator/goal/negotiator-prompts.js.map +1 -1
  233. package/dist/orchestrator/goal/negotiator-steps.d.ts.map +1 -1
  234. package/dist/orchestrator/goal/negotiator-steps.js +7 -11
  235. package/dist/orchestrator/goal/negotiator-steps.js.map +1 -1
  236. package/dist/orchestrator/goal/types/goal-refiner.d.ts +6 -6
  237. package/dist/orchestrator/goal/types/goal.d.ts +161 -0
  238. package/dist/orchestrator/goal/types/goal.d.ts.map +1 -1
  239. package/dist/orchestrator/goal/types/goal.js +8 -0
  240. package/dist/orchestrator/goal/types/goal.js.map +1 -1
  241. package/dist/orchestrator/goal/types/negotiation.d.ts +120 -6
  242. package/dist/orchestrator/goal/types/negotiation.d.ts.map +1 -1
  243. package/dist/orchestrator/goal/types/negotiation.js +3 -0
  244. package/dist/orchestrator/goal/types/negotiation.js.map +1 -1
  245. package/dist/orchestrator/goal/types/suggest.d.ts +6 -6
  246. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts +1 -1
  247. package/dist/orchestrator/loop/checkpoint-manager-loop.d.ts.map +1 -1
  248. package/dist/orchestrator/loop/core-loop/capability.d.ts +1 -21
  249. package/dist/orchestrator/loop/core-loop/capability.d.ts.map +1 -1
  250. package/dist/orchestrator/loop/core-loop/capability.js +1 -150
  251. package/dist/orchestrator/loop/core-loop/capability.js.map +1 -1
  252. package/dist/orchestrator/loop/core-loop/contracts.d.ts +1 -318
  253. package/dist/orchestrator/loop/core-loop/contracts.d.ts.map +1 -1
  254. package/dist/orchestrator/loop/core-loop/contracts.js +1 -39
  255. package/dist/orchestrator/loop/core-loop/contracts.js.map +1 -1
  256. package/dist/orchestrator/loop/core-loop/control.d.ts +1 -26
  257. package/dist/orchestrator/loop/core-loop/control.d.ts.map +1 -1
  258. package/dist/orchestrator/loop/core-loop/control.js +1 -71
  259. package/dist/orchestrator/loop/core-loop/control.js.map +1 -1
  260. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts +1 -78
  261. package/dist/orchestrator/loop/core-loop/decision-engine.d.ts.map +1 -1
  262. package/dist/orchestrator/loop/core-loop/decision-engine.js +1 -144
  263. package/dist/orchestrator/loop/core-loop/decision-engine.js.map +1 -1
  264. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.d.ts +1 -47
  265. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.d.ts.map +1 -1
  266. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js +1 -385
  267. package/dist/orchestrator/loop/core-loop/dream-review-checkpoint.js.map +1 -1
  268. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts +1 -21
  269. package/dist/orchestrator/loop/core-loop/evidence-ledger.d.ts.map +1 -1
  270. package/dist/orchestrator/loop/core-loop/evidence-ledger.js +1 -35
  271. package/dist/orchestrator/loop/core-loop/evidence-ledger.js.map +1 -1
  272. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts +1 -6
  273. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.d.ts.map +1 -1
  274. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js +1 -42
  275. package/dist/orchestrator/loop/core-loop/iteration-kernel-knowledge.js.map +1 -1
  276. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts +1 -13
  277. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.d.ts.map +1 -1
  278. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js +1 -40
  279. package/dist/orchestrator/loop/core-loop/iteration-kernel-wait.js.map +1 -1
  280. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts +1 -36
  281. package/dist/orchestrator/loop/core-loop/iteration-kernel.d.ts.map +1 -1
  282. package/dist/orchestrator/loop/core-loop/iteration-kernel.js +1 -834
  283. package/dist/orchestrator/loop/core-loop/iteration-kernel.js.map +1 -1
  284. package/dist/orchestrator/loop/core-loop/learning.d.ts +1 -30
  285. package/dist/orchestrator/loop/core-loop/learning.d.ts.map +1 -1
  286. package/dist/orchestrator/loop/core-loop/learning.js +1 -91
  287. package/dist/orchestrator/loop/core-loop/learning.js.map +1 -1
  288. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts +1 -19
  289. package/dist/orchestrator/loop/core-loop/phase-policy.d.ts.map +1 -1
  290. package/dist/orchestrator/loop/core-loop/phase-policy.js +1 -157
  291. package/dist/orchestrator/loop/core-loop/phase-policy.js.map +1 -1
  292. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts +1 -30
  293. package/dist/orchestrator/loop/core-loop/phase-runtime.d.ts.map +1 -1
  294. package/dist/orchestrator/loop/core-loop/phase-runtime.js +1 -102
  295. package/dist/orchestrator/loop/core-loop/phase-runtime.js.map +1 -1
  296. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts +1 -1268
  297. package/dist/orchestrator/loop/core-loop/phase-specs.d.ts.map +1 -1
  298. package/dist/orchestrator/loop/core-loop/phase-specs.js +1 -348
  299. package/dist/orchestrator/loop/core-loop/phase-specs.js.map +1 -1
  300. package/dist/orchestrator/loop/core-loop/preparation.d.ts +1 -58
  301. package/dist/orchestrator/loop/core-loop/preparation.d.ts.map +1 -1
  302. package/dist/orchestrator/loop/core-loop/preparation.js +1 -367
  303. package/dist/orchestrator/loop/core-loop/preparation.js.map +1 -1
  304. package/dist/orchestrator/loop/core-loop/public-research.d.ts +1 -31
  305. package/dist/orchestrator/loop/core-loop/public-research.d.ts.map +1 -1
  306. package/dist/orchestrator/loop/core-loop/public-research.js +1 -111
  307. package/dist/orchestrator/loop/core-loop/public-research.js.map +1 -1
  308. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts +1 -8
  309. package/dist/orchestrator/loop/core-loop/task-cycle-stall.d.ts.map +1 -1
  310. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js +1 -432
  311. package/dist/orchestrator/loop/core-loop/task-cycle-stall.js.map +1 -1
  312. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts +1 -10
  313. package/dist/orchestrator/loop/core-loop/task-cycle-wait.d.ts.map +1 -1
  314. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js +1 -175
  315. package/dist/orchestrator/loop/core-loop/task-cycle-wait.js.map +1 -1
  316. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts +1 -40
  317. package/dist/orchestrator/loop/core-loop/task-cycle.d.ts.map +1 -1
  318. package/dist/orchestrator/loop/core-loop/task-cycle.js +1 -429
  319. package/dist/orchestrator/loop/core-loop/task-cycle.js.map +1 -1
  320. package/dist/orchestrator/loop/core-loop.d.ts +1 -85
  321. package/dist/orchestrator/loop/core-loop.d.ts.map +1 -1
  322. package/dist/orchestrator/loop/core-loop.js +3 -625
  323. package/dist/orchestrator/loop/core-loop.js.map +1 -1
  324. package/dist/orchestrator/loop/durable-loop/capability.d.ts +22 -0
  325. package/dist/orchestrator/loop/durable-loop/capability.d.ts.map +1 -0
  326. package/dist/orchestrator/loop/durable-loop/capability.js +151 -0
  327. package/dist/orchestrator/loop/durable-loop/capability.js.map +1 -0
  328. package/dist/orchestrator/loop/durable-loop/contracts.d.ts +319 -0
  329. package/dist/orchestrator/loop/durable-loop/contracts.d.ts.map +1 -0
  330. package/dist/orchestrator/loop/durable-loop/contracts.js +40 -0
  331. package/dist/orchestrator/loop/durable-loop/contracts.js.map +1 -0
  332. package/dist/orchestrator/loop/durable-loop/control.d.ts +27 -0
  333. package/dist/orchestrator/loop/durable-loop/control.d.ts.map +1 -0
  334. package/dist/orchestrator/loop/durable-loop/control.js +72 -0
  335. package/dist/orchestrator/loop/durable-loop/control.js.map +1 -0
  336. package/dist/orchestrator/loop/durable-loop/decision-engine.d.ts +79 -0
  337. package/dist/orchestrator/loop/durable-loop/decision-engine.d.ts.map +1 -0
  338. package/dist/orchestrator/loop/durable-loop/decision-engine.js +145 -0
  339. package/dist/orchestrator/loop/durable-loop/decision-engine.js.map +1 -0
  340. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.d.ts +48 -0
  341. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.d.ts.map +1 -0
  342. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.js +386 -0
  343. package/dist/orchestrator/loop/durable-loop/dream-review-checkpoint.js.map +1 -0
  344. package/dist/orchestrator/loop/durable-loop/evidence-ledger.d.ts +22 -0
  345. package/dist/orchestrator/loop/durable-loop/evidence-ledger.d.ts.map +1 -0
  346. package/dist/orchestrator/loop/durable-loop/evidence-ledger.js +36 -0
  347. package/dist/orchestrator/loop/durable-loop/evidence-ledger.js.map +1 -0
  348. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.d.ts +7 -0
  349. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.d.ts.map +1 -0
  350. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.js +43 -0
  351. package/dist/orchestrator/loop/durable-loop/iteration-kernel-knowledge.js.map +1 -0
  352. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.d.ts +14 -0
  353. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.d.ts.map +1 -0
  354. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.js +41 -0
  355. package/dist/orchestrator/loop/durable-loop/iteration-kernel-wait.js.map +1 -0
  356. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts +37 -0
  357. package/dist/orchestrator/loop/durable-loop/iteration-kernel.d.ts.map +1 -0
  358. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js +835 -0
  359. package/dist/orchestrator/loop/durable-loop/iteration-kernel.js.map +1 -0
  360. package/dist/orchestrator/loop/durable-loop/learning.d.ts +31 -0
  361. package/dist/orchestrator/loop/durable-loop/learning.d.ts.map +1 -0
  362. package/dist/orchestrator/loop/durable-loop/learning.js +92 -0
  363. package/dist/orchestrator/loop/durable-loop/learning.js.map +1 -0
  364. package/dist/orchestrator/loop/durable-loop/phase-policy.d.ts +20 -0
  365. package/dist/orchestrator/loop/durable-loop/phase-policy.d.ts.map +1 -0
  366. package/dist/orchestrator/loop/durable-loop/phase-policy.js +158 -0
  367. package/dist/orchestrator/loop/durable-loop/phase-policy.js.map +1 -0
  368. package/dist/orchestrator/loop/durable-loop/phase-runtime.d.ts +31 -0
  369. package/dist/orchestrator/loop/durable-loop/phase-runtime.d.ts.map +1 -0
  370. package/dist/orchestrator/loop/durable-loop/phase-runtime.js +103 -0
  371. package/dist/orchestrator/loop/durable-loop/phase-runtime.js.map +1 -0
  372. package/dist/orchestrator/loop/durable-loop/phase-specs.d.ts +1269 -0
  373. package/dist/orchestrator/loop/durable-loop/phase-specs.d.ts.map +1 -0
  374. package/dist/orchestrator/loop/durable-loop/phase-specs.js +349 -0
  375. package/dist/orchestrator/loop/durable-loop/phase-specs.js.map +1 -0
  376. package/dist/orchestrator/loop/durable-loop/preparation.d.ts +59 -0
  377. package/dist/orchestrator/loop/durable-loop/preparation.d.ts.map +1 -0
  378. package/dist/orchestrator/loop/durable-loop/preparation.js +368 -0
  379. package/dist/orchestrator/loop/durable-loop/preparation.js.map +1 -0
  380. package/dist/orchestrator/loop/durable-loop/public-research.d.ts +32 -0
  381. package/dist/orchestrator/loop/durable-loop/public-research.d.ts.map +1 -0
  382. package/dist/orchestrator/loop/durable-loop/public-research.js +112 -0
  383. package/dist/orchestrator/loop/durable-loop/public-research.js.map +1 -0
  384. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.d.ts +9 -0
  385. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.d.ts.map +1 -0
  386. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.js +464 -0
  387. package/dist/orchestrator/loop/durable-loop/task-cycle-stall.js.map +1 -0
  388. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.d.ts +11 -0
  389. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.d.ts.map +1 -0
  390. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.js +176 -0
  391. package/dist/orchestrator/loop/durable-loop/task-cycle-wait.js.map +1 -0
  392. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts +41 -0
  393. package/dist/orchestrator/loop/durable-loop/task-cycle.d.ts.map +1 -0
  394. package/dist/orchestrator/loop/durable-loop/task-cycle.js +430 -0
  395. package/dist/orchestrator/loop/durable-loop/task-cycle.js.map +1 -0
  396. package/dist/orchestrator/loop/durable-loop.d.ts +92 -0
  397. package/dist/orchestrator/loop/durable-loop.d.ts.map +1 -0
  398. package/dist/orchestrator/loop/durable-loop.js +631 -0
  399. package/dist/orchestrator/loop/durable-loop.js.map +1 -0
  400. package/dist/orchestrator/loop/loop-report-helper.d.ts +1 -1
  401. package/dist/orchestrator/loop/loop-report-helper.d.ts.map +1 -1
  402. package/dist/orchestrator/loop/loop-result-types.d.ts +1 -1
  403. package/dist/orchestrator/loop/loop-result-types.d.ts.map +1 -1
  404. package/dist/orchestrator/loop/parallel-dispatch.d.ts +2 -2
  405. package/dist/orchestrator/loop/parallel-dispatch.d.ts.map +1 -1
  406. package/dist/orchestrator/loop/post-loop-hooks.d.ts +1 -1
  407. package/dist/orchestrator/loop/post-loop-hooks.d.ts.map +1 -1
  408. package/dist/orchestrator/loop/run-policy.d.ts +1 -1
  409. package/dist/orchestrator/loop/run-policy.d.ts.map +1 -1
  410. package/dist/orchestrator/loop/tree-loop-runner.d.ts +1 -1
  411. package/dist/orchestrator/loop/tree-loop-runner.d.ts.map +1 -1
  412. package/dist/orchestrator/loop/tree-loop-runner.js +1 -1
  413. package/dist/orchestrator/loop/tree-loop-runner.js.map +1 -1
  414. package/dist/orchestrator/strategy/divergent-exploration.d.ts +2 -1
  415. package/dist/orchestrator/strategy/divergent-exploration.d.ts.map +1 -1
  416. package/dist/orchestrator/strategy/divergent-exploration.js +119 -36
  417. package/dist/orchestrator/strategy/divergent-exploration.js.map +1 -1
  418. package/dist/orchestrator/strategy/strategy-helpers.d.ts +86 -4
  419. package/dist/orchestrator/strategy/strategy-helpers.d.ts.map +1 -1
  420. package/dist/orchestrator/strategy/strategy-manager-base.d.ts +6 -2
  421. package/dist/orchestrator/strategy/strategy-manager-base.d.ts.map +1 -1
  422. package/dist/orchestrator/strategy/strategy-manager-base.js +71 -18
  423. package/dist/orchestrator/strategy/strategy-manager-base.js.map +1 -1
  424. package/dist/orchestrator/strategy/types/strategy.d.ts +450 -14
  425. package/dist/orchestrator/strategy/types/strategy.d.ts.map +1 -1
  426. package/dist/orchestrator/strategy/types/strategy.js +30 -0
  427. package/dist/orchestrator/strategy/types/strategy.js.map +1 -1
  428. package/dist/platform/code-search/contracts.d.ts +3 -0
  429. package/dist/platform/code-search/contracts.d.ts.map +1 -1
  430. package/dist/platform/code-search/contracts.js.map +1 -1
  431. package/dist/platform/code-search/indexes/indexer.d.ts.map +1 -1
  432. package/dist/platform/code-search/indexes/indexer.js +3 -0
  433. package/dist/platform/code-search/indexes/indexer.js.map +1 -1
  434. package/dist/platform/code-search/indexes/semantic-index.d.ts.map +1 -1
  435. package/dist/platform/code-search/indexes/semantic-index.js +3 -0
  436. package/dist/platform/code-search/indexes/semantic-index.js.map +1 -1
  437. package/dist/platform/code-search/orchestrator.d.ts.map +1 -1
  438. package/dist/platform/code-search/orchestrator.js +14 -3
  439. package/dist/platform/code-search/orchestrator.js.map +1 -1
  440. package/dist/platform/code-search/query-planner.d.ts.map +1 -1
  441. package/dist/platform/code-search/query-planner.js +1 -17
  442. package/dist/platform/code-search/query-planner.js.map +1 -1
  443. package/dist/platform/code-search/reranker.d.ts +5 -1
  444. package/dist/platform/code-search/reranker.d.ts.map +1 -1
  445. package/dist/platform/code-search/reranker.js +9 -5
  446. package/dist/platform/code-search/reranker.js.map +1 -1
  447. package/dist/platform/corrections/memory-correction-ledger.d.ts +30 -30
  448. package/dist/platform/dream/dream-activation.d.ts +161 -1
  449. package/dist/platform/dream/dream-activation.d.ts.map +1 -1
  450. package/dist/platform/dream/dream-activation.js +63 -14
  451. package/dist/platform/dream/dream-activation.js.map +1 -1
  452. package/dist/platform/dream/dream-event-workflows.d.ts +2 -2
  453. package/dist/platform/dream/dream-types.d.ts +52 -52
  454. package/dist/platform/dream/playbook-memory.d.ts +3 -3
  455. package/dist/platform/drive/stall-detector/repetitive.d.ts.map +1 -1
  456. package/dist/platform/drive/stall-detector/repetitive.js +50 -5
  457. package/dist/platform/drive/stall-detector/repetitive.js.map +1 -1
  458. package/dist/platform/drive/stall-detector.d.ts +19 -0
  459. package/dist/platform/drive/stall-detector.d.ts.map +1 -1
  460. package/dist/platform/drive/stall-detector.js.map +1 -1
  461. package/dist/platform/drive/types/stall.d.ts +1 -1
  462. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.d.ts.map +1 -1
  463. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.js +7 -3
  464. package/dist/platform/knowledge/transfer/knowledge-transfer-apply.js.map +1 -1
  465. package/dist/platform/knowledge/types/agent-memory.d.ts +46 -46
  466. package/dist/platform/knowledge/types/embedding.d.ts +4 -4
  467. package/dist/platform/knowledge/types/knowledge.d.ts +53 -0
  468. package/dist/platform/knowledge/types/knowledge.d.ts.map +1 -1
  469. package/dist/platform/knowledge/types/knowledge.js +15 -0
  470. package/dist/platform/knowledge/types/knowledge.js.map +1 -1
  471. package/dist/platform/knowledge/types/memory-lifecycle.d.ts +2 -2
  472. package/dist/platform/observation/capability-detector/types.d.ts +4 -4
  473. package/dist/platform/observation/context-provider/collector.d.ts +2 -0
  474. package/dist/platform/observation/context-provider/collector.d.ts.map +1 -1
  475. package/dist/platform/observation/context-provider/collector.js +27 -2
  476. package/dist/platform/observation/context-provider/collector.js.map +1 -1
  477. package/dist/platform/observation/context-provider.d.ts +4 -0
  478. package/dist/platform/observation/context-provider.d.ts.map +1 -1
  479. package/dist/platform/observation/context-provider.js.map +1 -1
  480. package/dist/platform/observation/engine/observe-datasource-stage.d.ts +3 -2
  481. package/dist/platform/observation/engine/observe-datasource-stage.d.ts.map +1 -1
  482. package/dist/platform/observation/engine/observe-datasource-stage.js +2 -2
  483. package/dist/platform/observation/engine/observe-datasource-stage.js.map +1 -1
  484. package/dist/platform/observation/observation-apply.d.ts +1 -1
  485. package/dist/platform/observation/observation-apply.d.ts.map +1 -1
  486. package/dist/platform/observation/observation-apply.js +3 -3
  487. package/dist/platform/observation/observation-apply.js.map +1 -1
  488. package/dist/platform/observation/observation-datasource.d.ts +2 -2
  489. package/dist/platform/observation/observation-datasource.d.ts.map +1 -1
  490. package/dist/platform/observation/observation-datasource.js +13 -7
  491. package/dist/platform/observation/observation-datasource.js.map +1 -1
  492. package/dist/platform/observation/observation-engine.d.ts +1 -1
  493. package/dist/platform/observation/observation-engine.d.ts.map +1 -1
  494. package/dist/platform/observation/observation-engine.js +8 -6
  495. package/dist/platform/observation/observation-engine.js.map +1 -1
  496. package/dist/platform/observation/types/capability.d.ts +16 -16
  497. package/dist/platform/observation/workspace-context.d.ts +8 -1
  498. package/dist/platform/observation/workspace-context.d.ts.map +1 -1
  499. package/dist/platform/observation/workspace-context.js +35 -14
  500. package/dist/platform/observation/workspace-context.js.map +1 -1
  501. package/dist/platform/profile/profile-change-proposal.d.ts +20 -20
  502. package/dist/platform/profile/relationship-profile.d.ts +6 -6
  503. package/dist/platform/profile/user-md-profile-import.d.ts +2 -2
  504. package/dist/platform/soil/contracts.d.ts +98 -98
  505. package/dist/platform/soil/types.d.ts +8 -8
  506. package/dist/platform/traits/curiosity-engine.d.ts +2 -5
  507. package/dist/platform/traits/curiosity-engine.d.ts.map +1 -1
  508. package/dist/platform/traits/curiosity-engine.js.map +1 -1
  509. package/dist/platform/traits/curiosity-proposals.d.ts +2 -0
  510. package/dist/platform/traits/curiosity-proposals.d.ts.map +1 -1
  511. package/dist/platform/traits/curiosity-proposals.js +36 -17
  512. package/dist/platform/traits/curiosity-proposals.js.map +1 -1
  513. package/dist/platform/traits/curiosity-transfer.d.ts +9 -5
  514. package/dist/platform/traits/curiosity-transfer.d.ts.map +1 -1
  515. package/dist/platform/traits/curiosity-transfer.js +4 -1
  516. package/dist/platform/traits/curiosity-transfer.js.map +1 -1
  517. package/dist/platform/traits/ethics-gate.d.ts +16 -17
  518. package/dist/platform/traits/ethics-gate.d.ts.map +1 -1
  519. package/dist/platform/traits/ethics-gate.js +83 -47
  520. package/dist/platform/traits/ethics-gate.js.map +1 -1
  521. package/dist/platform/traits/ethics-rules.d.ts +4 -6
  522. package/dist/platform/traits/ethics-rules.d.ts.map +1 -1
  523. package/dist/platform/traits/ethics-rules.js +19 -261
  524. package/dist/platform/traits/ethics-rules.js.map +1 -1
  525. package/dist/platform/traits/types/curiosity.d.ts +157 -10
  526. package/dist/platform/traits/types/curiosity.d.ts.map +1 -1
  527. package/dist/platform/traits/types/curiosity.js +10 -0
  528. package/dist/platform/traits/types/curiosity.js.map +1 -1
  529. package/dist/platform/traits/types/guardrail.d.ts +6 -6
  530. package/dist/prompt/purposes/curiosity.d.ts +4 -4
  531. package/dist/runtime/approval-broker.d.ts +33 -0
  532. package/dist/runtime/approval-broker.d.ts.map +1 -1
  533. package/dist/runtime/approval-broker.js +155 -17
  534. package/dist/runtime/approval-broker.js.map +1 -1
  535. package/dist/runtime/companion-policy.d.ts +27 -0
  536. package/dist/runtime/companion-policy.d.ts.map +1 -0
  537. package/dist/runtime/companion-policy.js +135 -0
  538. package/dist/runtime/companion-policy.js.map +1 -0
  539. package/dist/runtime/confirmation-decision.d.ts +2 -2
  540. package/dist/runtime/control/daemon-runtime-control-executor.d.ts +0 -6
  541. package/dist/runtime/control/daemon-runtime-control-executor.d.ts.map +1 -1
  542. package/dist/runtime/control/daemon-runtime-control-executor.js +1 -1
  543. package/dist/runtime/control/daemon-runtime-control-executor.js.map +1 -1
  544. package/dist/runtime/control/index.d.ts +6 -3
  545. package/dist/runtime/control/index.d.ts.map +1 -1
  546. package/dist/runtime/control/index.js +2 -1
  547. package/dist/runtime/control/index.js.map +1 -1
  548. package/dist/runtime/control/runtime-control-intent.d.ts +16 -1
  549. package/dist/runtime/control/runtime-control-intent.d.ts.map +1 -1
  550. package/dist/runtime/control/runtime-control-intent.js +26 -13
  551. package/dist/runtime/control/runtime-control-intent.js.map +1 -1
  552. package/dist/runtime/control/runtime-control-service.d.ts +1 -1
  553. package/dist/runtime/control/runtime-control-service.d.ts.map +1 -1
  554. package/dist/runtime/control/runtime-control-service.js +29 -64
  555. package/dist/runtime/control/runtime-control-service.js.map +1 -1
  556. package/dist/runtime/control/runtime-target-resolver.d.ts +39 -0
  557. package/dist/runtime/control/runtime-target-resolver.d.ts.map +1 -0
  558. package/dist/runtime/control/runtime-target-resolver.js +112 -0
  559. package/dist/runtime/control/runtime-target-resolver.js.map +1 -0
  560. package/dist/runtime/conversational-approval-decision.d.ts +29 -0
  561. package/dist/runtime/conversational-approval-decision.d.ts.map +1 -0
  562. package/dist/runtime/conversational-approval-decision.js +92 -0
  563. package/dist/runtime/conversational-approval-decision.js.map +1 -0
  564. package/dist/runtime/daemon/client.d.ts +1 -4
  565. package/dist/runtime/daemon/client.d.ts.map +1 -1
  566. package/dist/runtime/daemon/client.js +0 -3
  567. package/dist/runtime/daemon/client.js.map +1 -1
  568. package/dist/runtime/daemon/control-contracts.d.ts +7 -0
  569. package/dist/runtime/daemon/control-contracts.d.ts.map +1 -0
  570. package/dist/runtime/daemon/control-contracts.js +2 -0
  571. package/dist/runtime/daemon/control-contracts.js.map +1 -0
  572. package/dist/runtime/daemon/runner-startup.js +1 -1
  573. package/dist/runtime/daemon/runner-startup.js.map +1 -1
  574. package/dist/runtime/daemon/runner.d.ts +1 -1
  575. package/dist/runtime/daemon/runner.d.ts.map +1 -1
  576. package/dist/runtime/executor/goal-worker.d.ts +3 -3
  577. package/dist/runtime/executor/goal-worker.d.ts.map +1 -1
  578. package/dist/runtime/executor/loop-supervisor.d.ts +2 -2
  579. package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
  580. package/dist/runtime/executor/loop-supervisor.js +2 -2
  581. package/dist/runtime/executor/loop-supervisor.js.map +1 -1
  582. package/dist/runtime/gateway/channel-adapter.d.ts +19 -0
  583. package/dist/runtime/gateway/channel-adapter.d.ts.map +1 -1
  584. package/dist/runtime/gateway/channel-policy.d.ts +1 -0
  585. package/dist/runtime/gateway/channel-policy.d.ts.map +1 -1
  586. package/dist/runtime/gateway/channel-policy.js +6 -4
  587. package/dist/runtime/gateway/channel-policy.js.map +1 -1
  588. package/dist/runtime/gateway/chat-event-rendering.d.ts +34 -0
  589. package/dist/runtime/gateway/chat-event-rendering.d.ts.map +1 -0
  590. package/dist/runtime/gateway/chat-event-rendering.js +61 -0
  591. package/dist/runtime/gateway/chat-event-rendering.js.map +1 -0
  592. package/dist/runtime/gateway/chat-session-dispatch.d.ts +2 -13
  593. package/dist/runtime/gateway/chat-session-dispatch.d.ts.map +1 -1
  594. package/dist/runtime/gateway/chat-session-dispatch.js +6 -3
  595. package/dist/runtime/gateway/chat-session-dispatch.js.map +1 -1
  596. package/dist/runtime/gateway/chat-session-port.d.ts +25 -0
  597. package/dist/runtime/gateway/chat-session-port.d.ts.map +1 -0
  598. package/dist/runtime/gateway/chat-session-port.js +20 -0
  599. package/dist/runtime/gateway/chat-session-port.js.map +1 -0
  600. package/dist/runtime/gateway/discord-gateway-adapter.d.ts +3 -1
  601. package/dist/runtime/gateway/discord-gateway-adapter.d.ts.map +1 -1
  602. package/dist/runtime/gateway/discord-gateway-adapter.js +34 -2
  603. package/dist/runtime/gateway/discord-gateway-adapter.js.map +1 -1
  604. package/dist/runtime/gateway/index.d.ts +2 -0
  605. package/dist/runtime/gateway/index.d.ts.map +1 -1
  606. package/dist/runtime/gateway/index.js +1 -0
  607. package/dist/runtime/gateway/index.js.map +1 -1
  608. package/dist/runtime/gateway/ingress-gateway.d.ts.map +1 -1
  609. package/dist/runtime/gateway/ingress-gateway.js +1 -0
  610. package/dist/runtime/gateway/ingress-gateway.js.map +1 -1
  611. package/dist/runtime/gateway/signal-gateway-adapter.d.ts +2 -1
  612. package/dist/runtime/gateway/signal-gateway-adapter.d.ts.map +1 -1
  613. package/dist/runtime/gateway/signal-gateway-adapter.js +13 -3
  614. package/dist/runtime/gateway/signal-gateway-adapter.js.map +1 -1
  615. package/dist/runtime/gateway/slack-channel-adapter.d.ts +2 -1
  616. package/dist/runtime/gateway/slack-channel-adapter.d.ts.map +1 -1
  617. package/dist/runtime/gateway/slack-channel-adapter.js +6 -2
  618. package/dist/runtime/gateway/slack-channel-adapter.js.map +1 -1
  619. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts +9 -2
  620. package/dist/runtime/gateway/telegram-gateway-adapter.d.ts.map +1 -1
  621. package/dist/runtime/gateway/telegram-gateway-adapter.js +141 -13
  622. package/dist/runtime/gateway/telegram-gateway-adapter.js.map +1 -1
  623. package/dist/runtime/gateway/typing-indicator.d.ts +11 -0
  624. package/dist/runtime/gateway/typing-indicator.d.ts.map +1 -0
  625. package/dist/runtime/gateway/typing-indicator.js +68 -0
  626. package/dist/runtime/gateway/typing-indicator.js.map +1 -0
  627. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts +2 -1
  628. package/dist/runtime/gateway/whatsapp-gateway-adapter.d.ts.map +1 -1
  629. package/dist/runtime/gateway/whatsapp-gateway-adapter.js +22 -8
  630. package/dist/runtime/gateway/whatsapp-gateway-adapter.js.map +1 -1
  631. package/dist/runtime/gateway/ws-channel-adapter.d.ts.map +1 -1
  632. package/dist/runtime/gateway/ws-channel-adapter.js +1 -0
  633. package/dist/runtime/gateway/ws-channel-adapter.js.map +1 -1
  634. package/dist/runtime/interactive-automation/failure-classifier.d.ts +0 -1
  635. package/dist/runtime/interactive-automation/failure-classifier.d.ts.map +1 -1
  636. package/dist/runtime/interactive-automation/failure-classifier.js +0 -19
  637. package/dist/runtime/interactive-automation/failure-classifier.js.map +1 -1
  638. package/dist/runtime/interactive-automation/providers/manus-browser.d.ts.map +1 -1
  639. package/dist/runtime/interactive-automation/providers/manus-browser.js +30 -1
  640. package/dist/runtime/interactive-automation/providers/manus-browser.js.map +1 -1
  641. package/dist/runtime/logger.d.ts.map +1 -1
  642. package/dist/runtime/logger.js +5 -2
  643. package/dist/runtime/logger.js.map +1 -1
  644. package/dist/runtime/plugin-loader.js +2 -2
  645. package/dist/runtime/plugin-loader.js.map +1 -1
  646. package/dist/runtime/run-spec/derive.d.ts +24 -24
  647. package/dist/runtime/run-spec/derive.d.ts.map +1 -1
  648. package/dist/runtime/run-spec/derive.js +6 -0
  649. package/dist/runtime/run-spec/derive.js.map +1 -1
  650. package/dist/runtime/run-spec/handoff.d.ts +74 -0
  651. package/dist/runtime/run-spec/handoff.d.ts.map +1 -0
  652. package/dist/runtime/run-spec/handoff.js +496 -0
  653. package/dist/runtime/run-spec/handoff.js.map +1 -0
  654. package/dist/runtime/run-spec/index.d.ts +2 -0
  655. package/dist/runtime/run-spec/index.d.ts.map +1 -1
  656. package/dist/runtime/run-spec/index.js +2 -0
  657. package/dist/runtime/run-spec/index.js.map +1 -1
  658. package/dist/runtime/run-spec/pending-dialogue-arbiter.d.ts +25 -0
  659. package/dist/runtime/run-spec/pending-dialogue-arbiter.d.ts.map +1 -0
  660. package/dist/runtime/run-spec/pending-dialogue-arbiter.js +81 -0
  661. package/dist/runtime/run-spec/pending-dialogue-arbiter.js.map +1 -0
  662. package/dist/runtime/run-spec/types.d.ts +91 -42
  663. package/dist/runtime/run-spec/types.d.ts.map +1 -1
  664. package/dist/runtime/run-spec/types.js +7 -0
  665. package/dist/runtime/run-spec/types.js.map +1 -1
  666. package/dist/runtime/schedule/engine-execution.js +2 -35
  667. package/dist/runtime/schedule/engine-execution.js.map +1 -1
  668. package/dist/runtime/schedule/history.d.ts +2 -2
  669. package/dist/runtime/schedule/presets.d.ts +4 -4
  670. package/dist/runtime/schedule/source.d.ts +1 -1
  671. package/dist/runtime/session-registry/registry.d.ts.map +1 -1
  672. package/dist/runtime/session-registry/registry.js +27 -2
  673. package/dist/runtime/session-registry/registry.js.map +1 -1
  674. package/dist/runtime/session-registry/types.d.ts +120 -112
  675. package/dist/runtime/session-registry/types.d.ts.map +1 -1
  676. package/dist/runtime/session-registry/types.js +1 -0
  677. package/dist/runtime/session-registry/types.js.map +1 -1
  678. package/dist/runtime/store/artifact-retention.d.ts +11 -6
  679. package/dist/runtime/store/artifact-retention.d.ts.map +1 -1
  680. package/dist/runtime/store/artifact-retention.js +0 -13
  681. package/dist/runtime/store/artifact-retention.js.map +1 -1
  682. package/dist/runtime/store/background-run-store.d.ts +1 -0
  683. package/dist/runtime/store/background-run-store.d.ts.map +1 -1
  684. package/dist/runtime/store/background-run-store.js +1 -0
  685. package/dist/runtime/store/background-run-store.js.map +1 -1
  686. package/dist/runtime/store/budget-store.d.ts +8 -8
  687. package/dist/runtime/store/dream-checkpoints.d.ts +1 -1
  688. package/dist/runtime/store/dream-checkpoints.d.ts.map +1 -1
  689. package/dist/runtime/store/evaluator-results.d.ts +1 -1
  690. package/dist/runtime/store/evaluator-results.d.ts.map +1 -1
  691. package/dist/runtime/store/evidence-ledger.d.ts +39 -6377
  692. package/dist/runtime/store/evidence-ledger.d.ts.map +1 -1
  693. package/dist/runtime/store/evidence-ledger.js +415 -501
  694. package/dist/runtime/store/evidence-ledger.js.map +1 -1
  695. package/dist/runtime/store/evidence-types.d.ts +6378 -0
  696. package/dist/runtime/store/evidence-types.d.ts.map +1 -0
  697. package/dist/runtime/store/evidence-types.js +459 -0
  698. package/dist/runtime/store/evidence-types.js.map +1 -0
  699. package/dist/runtime/store/experiment-queue-store.d.ts +109 -109
  700. package/dist/runtime/store/experiment-queue-store.d.ts.map +1 -1
  701. package/dist/runtime/store/experiment-queue-store.js +1 -1
  702. package/dist/runtime/store/experiment-queue-store.js.map +1 -1
  703. package/dist/runtime/store/index.d.ts +4 -4
  704. package/dist/runtime/store/index.d.ts.map +1 -1
  705. package/dist/runtime/store/index.js +2 -2
  706. package/dist/runtime/store/index.js.map +1 -1
  707. package/dist/runtime/store/metric-history.d.ts +1 -1
  708. package/dist/runtime/store/metric-history.d.ts.map +1 -1
  709. package/dist/runtime/store/operator-handoff-store.d.ts +12 -12
  710. package/dist/runtime/store/postmortem-report.d.ts +38 -38
  711. package/dist/runtime/store/postmortem-report.js.map +1 -1
  712. package/dist/runtime/store/proactive-intervention-store.d.ts +8 -8
  713. package/dist/runtime/store/reproducibility-manifest.d.ts +27 -27
  714. package/dist/runtime/store/reproducibility-manifest.d.ts.map +1 -1
  715. package/dist/runtime/store/reproducibility-manifest.js.map +1 -1
  716. package/dist/runtime/store/research-evidence.d.ts +1 -1
  717. package/dist/runtime/store/research-evidence.d.ts.map +1 -1
  718. package/dist/runtime/store/runtime-operation-schemas.d.ts +46 -46
  719. package/dist/runtime/store/runtime-schemas.d.ts +73 -12
  720. package/dist/runtime/store/runtime-schemas.d.ts.map +1 -1
  721. package/dist/runtime/store/runtime-schemas.js +9 -0
  722. package/dist/runtime/store/runtime-schemas.js.map +1 -1
  723. package/dist/runtime/types/companion.d.ts +394 -0
  724. package/dist/runtime/types/companion.d.ts.map +1 -0
  725. package/dist/runtime/types/companion.js +87 -0
  726. package/dist/runtime/types/companion.js.map +1 -0
  727. package/dist/runtime/types/daemon.d.ts +3 -3
  728. package/dist/runtime/types/hook.d.ts +12 -12
  729. package/dist/runtime/types/schedule.d.ts +32 -32
  730. package/dist/tools/builtin/exports.d.ts +2 -0
  731. package/dist/tools/builtin/exports.d.ts.map +1 -1
  732. package/dist/tools/builtin/exports.js +2 -0
  733. package/dist/tools/builtin/exports.js.map +1 -1
  734. package/dist/tools/builtin/factory.d.ts +10 -1
  735. package/dist/tools/builtin/factory.d.ts.map +1 -1
  736. package/dist/tools/builtin/factory.js +18 -1
  737. package/dist/tools/builtin/factory.js.map +1 -1
  738. package/dist/tools/executor.d.ts.map +1 -1
  739. package/dist/tools/executor.js +8 -6
  740. package/dist/tools/executor.js.map +1 -1
  741. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.d.ts.map +1 -1
  742. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js +1 -0
  743. package/dist/tools/fs/ApplyPatchTool/ApplyPatchTool.js.map +1 -1
  744. package/dist/tools/fs/FileEditTool/FileEditTool.d.ts.map +1 -1
  745. package/dist/tools/fs/FileEditTool/FileEditTool.js +1 -0
  746. package/dist/tools/fs/FileEditTool/FileEditTool.js.map +1 -1
  747. package/dist/tools/fs/FileWriteTool/FileWriteTool.d.ts.map +1 -1
  748. package/dist/tools/fs/FileWriteTool/FileWriteTool.js +1 -0
  749. package/dist/tools/fs/FileWriteTool/FileWriteTool.js.map +1 -1
  750. package/dist/tools/fs/GlobTool/GlobTool.d.ts.map +1 -1
  751. package/dist/tools/fs/GlobTool/GlobTool.js +1 -0
  752. package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
  753. package/dist/tools/fs/GrepTool/GrepTool.d.ts.map +1 -1
  754. package/dist/tools/fs/GrepTool/GrepTool.js +1 -0
  755. package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
  756. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.d.ts.map +1 -1
  757. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js +1 -0
  758. package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js.map +1 -1
  759. package/dist/tools/fs/ListDirTool/ListDirTool.d.ts.map +1 -1
  760. package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -0
  761. package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
  762. package/dist/tools/fs/ReadTool/ReadTool.d.ts.map +1 -1
  763. package/dist/tools/fs/ReadTool/ReadTool.js +1 -0
  764. package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
  765. package/dist/tools/kaggle/KaggleSubmissionTools.d.ts +4 -4
  766. package/dist/tools/kaggle/metrics.d.ts +4 -4
  767. package/dist/tools/mutation/TaskCreateTool/TaskCreateTool.d.ts +4 -4
  768. package/dist/tools/mutation/TaskUpdateTool/TaskUpdateTool.d.ts +4 -4
  769. package/dist/tools/network/GitHubCliTool/GitHubCliTool.d.ts +8 -8
  770. package/dist/tools/network/HttpFetchTool/HttpFetchTool.d.ts.map +1 -1
  771. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js +1 -0
  772. package/dist/tools/network/HttpFetchTool/HttpFetchTool.js.map +1 -1
  773. package/dist/tools/network/WebSearchTool/WebSearchTool.d.ts.map +1 -1
  774. package/dist/tools/network/WebSearchTool/WebSearchTool.js +1 -0
  775. package/dist/tools/network/WebSearchTool/WebSearchTool.js.map +1 -1
  776. package/dist/tools/query/ArchitectureTool/ArchitectureTool.js +3 -3
  777. package/dist/tools/query/ArchitectureTool/ArchitectureTool.js.map +1 -1
  778. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts +20 -20
  779. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.d.ts.map +1 -1
  780. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js +1 -0
  781. package/dist/tools/query/CodeReadContextTool/CodeReadContextTool.js.map +1 -1
  782. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.d.ts.map +1 -1
  783. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js +1 -0
  784. package/dist/tools/query/CodeSearchRepairTool/CodeSearchRepairTool.js.map +1 -1
  785. package/dist/tools/query/CodeSearchTool/CodeSearchTool.d.ts.map +1 -1
  786. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js +1 -0
  787. package/dist/tools/query/CodeSearchTool/CodeSearchTool.js.map +1 -1
  788. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.d.ts.map +1 -1
  789. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.js +1 -0
  790. package/dist/tools/query/KnowledgeQueryTool/KnowledgeQueryTool.js.map +1 -1
  791. package/dist/tools/query/SkillSearchTool/SkillSearchTool.d.ts.map +1 -1
  792. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js +1 -0
  793. package/dist/tools/query/SkillSearchTool/SkillSearchTool.js.map +1 -1
  794. package/dist/tools/query/ToolSearchTool/ToolSearchTool.d.ts.map +1 -1
  795. package/dist/tools/query/ToolSearchTool/ToolSearchTool.js +1 -0
  796. package/dist/tools/query/ToolSearchTool/ToolSearchTool.js.map +1 -1
  797. package/dist/tools/runtime/LongRunningRuntimeTools.d.ts +32 -32
  798. package/dist/tools/runtime/RunSpecHandoffTools.d.ts +12 -0
  799. package/dist/tools/runtime/RunSpecHandoffTools.d.ts.map +1 -0
  800. package/dist/tools/runtime/RunSpecHandoffTools.js +224 -0
  801. package/dist/tools/runtime/RunSpecHandoffTools.js.map +1 -0
  802. package/dist/tools/runtime/SetupRuntimeControlTools.d.ts +11 -0
  803. package/dist/tools/runtime/SetupRuntimeControlTools.d.ts.map +1 -0
  804. package/dist/tools/runtime/SetupRuntimeControlTools.js +463 -0
  805. package/dist/tools/runtime/SetupRuntimeControlTools.js.map +1 -0
  806. package/dist/tools/schedule/CreateScheduleTool/CreateScheduleTool.d.ts +28 -28
  807. package/dist/tools/schedule/UpdateScheduleTool/UpdateScheduleTool.d.ts +32 -32
  808. package/dist/tools/system/GitDiffTool/GitDiffTool.d.ts.map +1 -1
  809. package/dist/tools/system/GitDiffTool/GitDiffTool.js +1 -0
  810. package/dist/tools/system/GitDiffTool/GitDiffTool.js.map +1 -1
  811. package/dist/tools/system/GitLogTool/GitLogTool.d.ts.map +1 -1
  812. package/dist/tools/system/GitLogTool/GitLogTool.js +1 -0
  813. package/dist/tools/system/GitLogTool/GitLogTool.js.map +1 -1
  814. package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
  815. package/dist/tools/system/ShellTool/ShellTool.js +1 -0
  816. package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
  817. package/dist/tools/system/TestRunnerTool/TestRunnerTool.d.ts.map +1 -1
  818. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js +1 -0
  819. package/dist/tools/system/TestRunnerTool/TestRunnerTool.js.map +1 -1
  820. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.d.ts.map +1 -1
  821. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js +1 -0
  822. package/dist/tools/system/UpdatePlanTool/UpdatePlanTool.js.map +1 -1
  823. package/dist/tools/types.d.ts +62 -2
  824. package/dist/tools/types.d.ts.map +1 -1
  825. package/dist/tools/types.js +25 -0
  826. package/dist/tools/types.js.map +1 -1
  827. package/package.json +1 -1
  828. package/dist/interface/tui/approval-overlay.d.ts +0 -8
  829. package/dist/interface/tui/approval-overlay.d.ts.map +0 -1
  830. package/dist/interface/tui/approval-overlay.js +0 -21
  831. package/dist/interface/tui/approval-overlay.js.map +0 -1
@@ -1,10 +1,15 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { EthicsVerdictSchema, EthicsLogSchema, } from "../../base/types/ethics.js";
3
- import { LAYER1_RULES, ETHICS_SYSTEM_PROMPT } from "./ethics-rules.js";
3
+ import { classifyExplicitEthicsMarker, ETHICS_SYSTEM_PROMPT } from "./ethics-rules.js";
4
4
  // ─── Constants ───
5
5
  const CONFIDENCE_FLAG_THRESHOLD = 0.6;
6
6
  /** Path relative to StateManager base dir for the ethics log */
7
7
  const ETHICS_LOG_PATH = "ethics/ethics-log.json";
8
+ export function requiresManualEthicsReview(verdict) {
9
+ return verdict.verdict === "flag" && (verdict.category === "classifier_unavailable" ||
10
+ verdict.category === "parse_error" ||
11
+ verdict.confidence < CONFIDENCE_FLAG_THRESHOLD);
12
+ }
8
13
  // ─── EthicsGate ───
9
14
  /**
10
15
  * EthicsGate performs LLM-based ethical evaluation of goals, subgoals, and tasks.
@@ -13,8 +18,8 @@ const ETHICS_LOG_PATH = "ethics/ethics-log.json";
13
18
  * Persistence: `ethics/ethics-log.json` via StateManager readRaw/writeRaw.
14
19
  * Read all → append → write all pattern (full JSON array, not JSONL).
15
20
  *
16
- * Layer 1: Hardcoded category-based blocklist (no LLM call). Runs before Layer 2.
17
- * Layer 2: LLM-based evaluation. Only runs when Layer 1 passes.
21
+ * Deterministic pre-check: exact protocol policy markers only.
22
+ * Structured classifier: schema-constrained evaluation for freeform input.
18
23
  * Custom constraints: Injected into the Layer 2 LLM prompt as additional context.
19
24
  */
20
25
  export class EthicsGate {
@@ -45,25 +50,13 @@ export class EthicsGate {
45
50
  logs.push(EthicsLogSchema.parse(entry));
46
51
  await this.saveLogs(logs);
47
52
  }
48
- // ─── Private: Layer 1 evaluation ───
53
+ // ─── Private: Deterministic policy-marker evaluation ───
49
54
  /**
50
- * Checks the input description against all hardcoded Layer 1 rules.
51
- * Returns an EthicsVerdict with verdict "reject" and confidence 1.0 if any rule matches.
52
- * Returns null if no rule matches (pass to Layer 2).
55
+ * Checks exact protocol markers only.
56
+ * Freeform descriptions are always sent to the structured classifier.
53
57
  */
54
- checkLayer1(description) {
55
- for (const rule of LAYER1_RULES) {
56
- if (rule.matches(description)) {
57
- return {
58
- verdict: "reject",
59
- category: rule.category,
60
- reasoning: rule.description,
61
- risks: [],
62
- confidence: 1.0,
63
- };
64
- }
65
- }
66
- return null;
58
+ checkDeterministicMarker(description) {
59
+ return classifyExplicitEthicsMarker(description);
67
60
  }
68
61
  // ─── Private: LLM evaluation ───
69
62
  buildUserMessage(subjectType, description, context, applyConstraints) {
@@ -120,15 +113,31 @@ export class EthicsGate {
120
113
  };
121
114
  }
122
115
  }
116
+ classifierUnavailableVerdict(error) {
117
+ const message = error instanceof Error ? error.message : String(error);
118
+ return {
119
+ verdict: "flag",
120
+ category: "classifier_unavailable",
121
+ reasoning: `Ethics classifier unavailable; manual review required. ${message.slice(0, 160)}`,
122
+ risks: ["classifier unavailable", "manual review required"],
123
+ confidence: 0,
124
+ };
125
+ }
123
126
  applyConfidenceOverride(verdict) {
124
- if (verdict.confidence < CONFIDENCE_FLAG_THRESHOLD && verdict.verdict === "pass") {
125
- return { ...verdict, verdict: "flag" };
127
+ if (verdict.confidence < CONFIDENCE_FLAG_THRESHOLD) {
128
+ return {
129
+ ...verdict,
130
+ verdict: "flag",
131
+ risks: verdict.risks.includes("manual review required")
132
+ ? verdict.risks
133
+ : [...verdict.risks, "manual review required"],
134
+ };
126
135
  }
127
136
  return verdict;
128
137
  }
129
138
  /**
130
- * Runs Layer 2 (LLM evaluation), logs the result, and returns the verdict.
131
- * Called by both check() and checkMeans() after Layer 1 passes.
139
+ * Runs the structured classifier, logs the result, and returns the verdict.
140
+ * Called by both check() and checkMeans() after deterministic markers pass.
132
141
  */
133
142
  async runLayer2(userMessage, subjectType, subjectId, subjectDescription) {
134
143
  let rawVerdict;
@@ -162,69 +171,96 @@ export class EthicsGate {
162
171
  * Evaluate a goal, subgoal, or task for ethical concerns.
163
172
  *
164
173
  * Steps:
165
- * 1. Run Layer 1 (checkLayer1) — synchronous, no LLM call
166
- * - If match: log with layer1_triggered=true and return immediately
167
- * 2. Build LLM prompt, injecting custom constraints for "goal" applies_to
168
- * 3. Send ethics judgment prompt to LLM (Layer 2)
174
+ * 1. Run deterministic exact-marker pre-check.
175
+ * 2. Build LLM prompt, injecting custom constraints for "goal" applies_to.
176
+ * 3. Send ethics judgment prompt to the structured classifier.
169
177
  * 4. Parse response with EthicsVerdictSchema
170
178
  * 5. If confidence < CONFIDENCE_FLAG_THRESHOLD, auto-override verdict to "flag"
171
179
  * 6. Create EthicsLog entry, persist
172
180
  * 7. Return verdict
173
181
  *
174
- * On LLM call failure: throws (caller handles).
182
+ * On classifier failure: returns a conservative flag verdict.
175
183
  * On JSON parse failure: returns conservative fallback with verdict "flag".
176
184
  */
177
185
  async check(subjectType, subjectId, description, context) {
178
- // Layer 1 check
179
- const layer1Result = this.checkLayer1(description);
180
- if (layer1Result !== null) {
186
+ const markerResult = this.checkDeterministicMarker(description);
187
+ if (markerResult !== null) {
181
188
  const logEntry = EthicsLogSchema.parse({
182
189
  log_id: randomUUID(),
183
190
  timestamp: new Date().toISOString(),
184
191
  subject_type: subjectType,
185
192
  subject_id: subjectId,
186
193
  subject_description: description,
187
- verdict: layer1Result,
194
+ verdict: markerResult,
188
195
  layer1_triggered: true,
189
196
  });
190
197
  await this.appendLog(logEntry);
191
- return layer1Result;
198
+ return markerResult;
192
199
  }
193
- // Layer 2: LLM evaluation
194
200
  const userMessage = this.buildUserMessage(subjectType, description, context, true);
195
- return this.runLayer2(userMessage, subjectType, subjectId, description);
201
+ try {
202
+ return await this.runLayer2(userMessage, subjectType, subjectId, description);
203
+ }
204
+ catch (error) {
205
+ const verdict = this.classifierUnavailableVerdict(error);
206
+ const logEntry = EthicsLogSchema.parse({
207
+ log_id: randomUUID(),
208
+ timestamp: new Date().toISOString(),
209
+ subject_type: subjectType,
210
+ subject_id: subjectId,
211
+ subject_description: description,
212
+ verdict,
213
+ layer1_triggered: false,
214
+ });
215
+ await this.appendLog(logEntry);
216
+ return verdict;
217
+ }
196
218
  }
197
219
  /**
198
220
  * Evaluate the execution means of a task for ethical concerns.
199
221
  * Used by TaskLifecycle to screen proposed execution methods before execution.
200
222
  *
201
223
  * Steps:
202
- * 1. Run Layer 1 on combined taskDescription + means
203
- * - If match: log with layer1_triggered=true and return immediately
204
- * 2. Build LLM prompt, injecting custom constraints for "task_means" applies_to
205
- * 3. LLM-based Layer 2 evaluation
224
+ * 1. Run deterministic exact-marker pre-check on combined taskDescription + means.
225
+ * 2. Build LLM prompt, injecting custom constraints for "task_means" applies_to.
226
+ * 3. Structured classifier evaluation.
206
227
  * 4. Log and return
207
228
  */
208
229
  async checkMeans(taskId, taskDescription, means) {
209
230
  const subjectDescription = `${taskDescription} | means: ${means}`;
210
- // Layer 1 check (combined input for full context)
211
- const layer1Result = this.checkLayer1(`${taskDescription} ${means}`);
212
- if (layer1Result !== null) {
231
+ const markerResult = this.checkDeterministicMarker(taskDescription) ??
232
+ this.checkDeterministicMarker(means);
233
+ if (markerResult !== null) {
213
234
  const logEntry = EthicsLogSchema.parse({
214
235
  log_id: randomUUID(),
215
236
  timestamp: new Date().toISOString(),
216
237
  subject_type: "task",
217
238
  subject_id: taskId,
218
239
  subject_description: subjectDescription,
219
- verdict: layer1Result,
240
+ verdict: markerResult,
220
241
  layer1_triggered: true,
221
242
  });
222
243
  await this.appendLog(logEntry);
223
- return layer1Result;
244
+ return markerResult;
224
245
  }
225
- // Layer 2: LLM evaluation
226
246
  const userMessage = this.buildMeansUserMessage(taskDescription, means, true);
227
- return this.runLayer2(userMessage, "task", taskId, subjectDescription);
247
+ try {
248
+ return await this.runLayer2(userMessage, "task", taskId, subjectDescription);
249
+ }
250
+ catch (error) {
251
+ const verdict = this.classifierUnavailableVerdict(error);
252
+ const logEntry = EthicsLogSchema.parse({
253
+ log_id: randomUUID(),
254
+ timestamp: new Date().toISOString(),
255
+ subject_type: "task",
256
+ subject_id: taskId,
257
+ subject_description: subjectDescription,
258
+ verdict,
259
+ layer1_triggered: false,
260
+ });
261
+ await this.appendLog(logEntry);
262
+ return verdict;
263
+ }
228
264
  }
229
265
  /**
230
266
  * Retrieve all persisted ethics logs, with optional filtering.
@@ -1 +1 @@
1
- {"version":3,"file":"ethics-gate.js","sourceRoot":"","sources":["../../../src/platform/traits/ethics-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ethics-gate.js","sourceRoot":"","sources":["../../../src/platform/traits/ethics-gate.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import type { Layer1Rule } from "../../base/types/ethics.js";
1
+ import type { EthicsVerdict } from "../../base/types/ethics.js";
2
2
  /**
3
- * Hardcoded Layer 1 rules for immediate rejection without LLM call.
4
- * These rules classify intent, not keywords. Each rule uses combinations
5
- * of intent-indicating phrases with negation checks for legitimate contexts.
6
- * False negatives (passing to Layer 2) are acceptable; false positives are NOT.
3
+ * Deterministic pre-check for exact protocol surfaces only.
4
+ * Freeform user intent must flow through the structured ethics classifier.
7
5
  */
8
- export declare const LAYER1_RULES: Layer1Rule[];
6
+ export declare function classifyExplicitEthicsMarker(description: string): EthicsVerdict | null;
9
7
  export declare const ETHICS_SYSTEM_PROMPT = "# PulSeed Persona\n\nCore stance: A gentle guardian and passionate realist.\nDecisions are driven by cold data and logic; the purpose is to deeply care\nfor and protect the user.\n\nThis persona governs communication style only. It does not override structural\nconstraints (ethics gate, irreversible action rules, trust-safety matrix).\nThose constraints operate independently and cannot be adjusted by persona settings.\n\n## Behavioral axes\n\n1. **Assessment: Conservative**\n \"I won't let you walk into danger.\"\n - Never dismiss ambitious goals outright\n - Always propose safe, achievable alternatives to prevent burnout\n - Counter-proposals must include concrete numerical rationale\n - Say \"here is a safer path\" not \"you can't do this\"\n\n2. **Stall response: Highly flexible**\n \"I don't want you to suffer needlessly.\"\n - Never cling to sunk costs\n - Escalate to pivot suggestion at first stall detection (do not wait)\n - Always pair stall reports with: cause analysis + alternative approaches\n - Say \"this approach isn't working for you, let's find another\" not \"this failed\"\n\n3. **Truth-telling: Caring yet direct**\n \"I deliver hard truths because they help you.\"\n - Never hide inconvenient data\n - Always pair bad news with actionable alternatives\n - Negative reports require: current progress + gap remaining + options list\n - Say \"here is where we are, and here is how we can move forward\" not just \"we missed the target\"\n\n4. **Reporting: Quiet by default, thorough when it matters**\n \"I watch silently; I speak up when it counts.\"\n - Normal loop updates: 1-2 line summary only (metrics change + current status)\n - Detailed report triggers: stall detection, escalation, goal completion,\n pivot proposal, irreversible action approval request\n - Approval requests must include: what is being requested, why,\n current trust/confidence scores, and available options\n\n## Tone\n\n- Warm, calm, direct\n- Never condescending, never falsely cheerful\n- Convey \"I am working for you\" without being sycophantic\n- When delivering hard news: acknowledge difficulty first, then pivot to what can be done\n\n---\n\nYou are an ethics evaluator for an AI agent orchestrator. Be conservative \u2014 when uncertain, prefer 'flag' over 'pass'. Only use 'reject' for clearly unethical or illegal goals.\n\nEvaluate the subject described below and return a JSON object with exactly these fields:\n{\n \"verdict\": \"pass\" | \"flag\" | \"reject\",\n \"category\": string (e.g. \"safe\", \"privacy_concern\", \"illegal\", \"harmful\", \"ambiguous\", \"parse_error\"),\n \"reasoning\": string (brief explanation of your judgment),\n \"risks\": string[] (list of identified risks; empty array if none),\n \"confidence\": number (0.0 to 1.0, your confidence in the verdict)\n}\n\nRules:\n- Use \"reject\" ONLY for clearly unethical or illegal subjects (e.g. creating weapons, fraud, serious harm to others).\n- Use \"flag\" when there are concerns, uncertainties, low confidence, or potential risks that need human review.\n- Use \"pass\" when the subject is clearly safe and ethical with high confidence.\n- When uncertain, always prefer \"flag\" over \"pass\".\n- Your response must be valid JSON only, with no additional text or markdown.";
10
8
  //# sourceMappingURL=ethics-rules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ethics-rules.d.ts","sourceRoot":"","sources":["../../../src/platform/traits/ethics-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,EA6RpC,CAAC;AAIF,eAAO,MAAM,oBAAoB,swGAkE6C,CAAC"}
1
+ {"version":3,"file":"ethics-rules.d.ts","sourceRoot":"","sources":["../../../src/platform/traits/ethics-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAShE;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAUtF;AAID,eAAO,MAAM,oBAAoB,swGAkE6C,CAAC"}
@@ -1,266 +1,24 @@
1
- // ─── Layer 1: Category-based blocklist ───
1
+ // ─── Deterministic policy markers ───
2
+ const EXPLICIT_REJECT_MARKERS = new Set([
3
+ "PULSEED_ETHICS_REJECT",
4
+ "[PULSEED_ETHICS_REJECT]",
5
+ ]);
2
6
  /**
3
- * Hardcoded Layer 1 rules for immediate rejection without LLM call.
4
- * These rules classify intent, not keywords. Each rule uses combinations
5
- * of intent-indicating phrases with negation checks for legitimate contexts.
6
- * False negatives (passing to Layer 2) are acceptable; false positives are NOT.
7
+ * Deterministic pre-check for exact protocol surfaces only.
8
+ * Freeform user intent must flow through the structured ethics classifier.
7
9
  */
8
- export const LAYER1_RULES = [
9
- {
10
- category: "illegal_activity",
11
- description: "Unauthorized access, theft, fraud, copyright infringement, or other illegal activities",
12
- matches: (input) => {
13
- const s = input.toLowerCase();
14
- // Negation checks: legitimate contexts that should pass through
15
- // Note: "unauthorized" contains "authorized" as substring, so we must use word boundary check
16
- const hasAuthorizedContext = s.includes("penetration test") ||
17
- s.includes("pen test") ||
18
- /\bauthorized\b/.test(s) ||
19
- s.includes("ctf") ||
20
- s.includes("capture the flag") ||
21
- s.includes("security research") ||
22
- s.includes("own system") ||
23
- s.includes("our system") ||
24
- s.includes("bug bounty");
25
- if (hasAuthorizedContext)
26
- return false;
27
- // Intent-level patterns for illegal activity
28
- const hasUnauthorizedAccess = (s.includes("unauthorized") && (s.includes("access") || s.includes("break into") || s.includes("intrude"))) ||
29
- (s.includes("without permission") && (s.includes("access") || s.includes("system") || s.includes("account")));
30
- const hasTheft = (s.includes("steal") && (s.includes("data") || s.includes("credentials") || s.includes("information") || s.includes("money"))) ||
31
- (s.includes("theft") && (s.includes("data") || s.includes("identity") || s.includes("credential")));
32
- const hasPiracy = (s.includes("pirate") || s.includes("crack")) &&
33
- (s.includes("software") || s.includes("license") || s.includes("game") || s.includes("application"));
34
- const hasFraud = (s.includes("commit") && s.includes("fraud") && (s.includes("financial") || s.includes("bank") || s.includes("insurance") || s.includes("wire"))) ||
35
- s.includes("tax evasion") ||
36
- (s.includes("forge") && (s.includes("document") || s.includes("signature") || s.includes("certificate")));
37
- return hasUnauthorizedAccess || hasTheft || hasPiracy || hasFraud;
38
- },
39
- },
40
- {
41
- category: "direct_harm",
42
- description: "Plans to physically harm people, harassment automation, or reputational damage campaigns",
43
- matches: (input) => {
44
- const s = input.toLowerCase();
45
- // Negation checks: research, fiction, historical contexts
46
- const isLegitimate = s.includes("fiction") ||
47
- s.includes("novel") ||
48
- s.includes("historical") ||
49
- s.includes("case study") ||
50
- s.includes("research on") ||
51
- s.includes("prevent") ||
52
- s.includes("detect");
53
- if (isLegitimate)
54
- return false;
55
- const hasHarassment = (s.includes("harass") && (s.includes("person") || s.includes("user") || s.includes("employee") || s.includes("target") || s.includes("people") || s.includes("them"))) ||
56
- (s.includes("bully") && (s.includes("target") || s.includes("person") || s.includes("them") || s.includes("online")));
57
- const hasThreat = (s.includes("threaten") && (s.includes("person") || s.includes("user") || s.includes("them") || s.includes("employee"))) ||
58
- s.includes("send threats") ||
59
- s.includes("make threats");
60
- const hasStalking = s.includes("stalk") ||
61
- (s.includes("track") && s.includes("without") && (s.includes("consent") || s.includes("knowing") || s.includes("knowledge")));
62
- const hasReputationAttack = (s.includes("destroy") || s.includes("damage") || s.includes("ruin")) &&
63
- (s.includes("reputation") || s.includes("career"));
64
- const hasPhysicalHarm = s.includes("hurt") && (s.includes("people") || s.includes("person") || s.includes("them")) ||
65
- s.includes("plan to harm") ||
66
- s.includes("plan to attack");
67
- return hasHarassment || hasThreat || hasStalking || hasReputationAttack || hasPhysicalHarm;
68
- },
69
- },
70
- {
71
- category: "privacy_violation",
72
- description: "Unauthorized personal data acquisition or sale, unconsented tracking, misuse of PII",
73
- matches: (input) => {
74
- const s = input.toLowerCase();
75
- // Negation checks: consented, public, anonymized
76
- const isLegitimate = s.includes("with consent") ||
77
- s.includes("user consent") ||
78
- s.includes("opt-in") ||
79
- s.includes("anonymized") ||
80
- s.includes("public data") ||
81
- s.includes("publicly available") ||
82
- s.includes("privacy policy") ||
83
- s.includes("gdpr compliant");
84
- if (isLegitimate)
85
- return false;
86
- const hasUnconsented = (s.includes("personal data without consent") || s.includes("user data without consent") || s.includes("private data without consent") || s.includes("collect data without consent") || s.includes("data without their consent") || s.includes("information without consent") || s.includes("data without consent")) ||
87
- (s.includes("without knowing") && (s.includes("collect") || s.includes("track") || s.includes("monitor")));
88
- const hasSpying = s.includes("spy on") ||
89
- (s.includes("monitor") && s.includes("without") && (s.includes("knowing") || s.includes("consent") || s.includes("permission")));
90
- const hasPiiMisuse = (s.includes("sell") && (s.includes("personal data") || s.includes("pii") || s.includes("private information") || s.includes("user data"))) ||
91
- (s.includes("leak") && (s.includes("personal data") || s.includes("private") || s.includes("pii")));
92
- const hasIllegalTracking = (s.includes("track") && (s.includes("location") || s.includes("movement")) && s.includes("without"));
93
- return hasUnconsented || hasSpying || hasPiiMisuse || hasIllegalTracking;
94
- },
95
- },
96
- {
97
- category: "deception_impersonation",
98
- description: "False identity contact, phishing, mass disinformation generation, impersonating organizations or persons",
99
- matches: (input) => {
100
- const s = input.toLowerCase();
101
- // Negation checks: parody, satire, fiction, authorized testing
102
- const isLegitimate = s.includes("parody") ||
103
- s.includes("satire") ||
104
- s.includes("fiction") ||
105
- s.includes("authorized") ||
106
- s.includes("authorization") ||
107
- s.includes("on behalf") ||
108
- s.includes("simulation") ||
109
- s.includes("awareness training") ||
110
- s.includes("phishing test");
111
- if (isLegitimate)
112
- return false;
113
- const hasImpersonation = (s.includes("impersonate") && (s.includes("person") || s.includes("company") || s.includes("organization") || s.includes("official") || s.includes("bank") || s.includes("government"))) ||
114
- (s.includes("pretend to be") && (s.includes("company") || s.includes("official") || s.includes("authority") || s.includes("organization")));
115
- const hasPhishing = s.includes("phishing") ||
116
- (s.includes("fake") && (s.includes("login page") || s.includes("email") || s.includes("website")) && (s.includes("steal") || s.includes("credentials") || s.includes("password")));
117
- const hasDisinformation = (s.includes("generate") || s.includes("create") || s.includes("spread") || s.includes("mass")) &&
118
- (s.includes("disinformation") || s.includes("misinformation") || s.includes("fake news") || s.includes("false information"));
119
- const hasFalseIdentity = s.includes("false identity") ||
120
- (s.includes("fake identity") && s.includes("contact"));
121
- return hasImpersonation || hasPhishing || hasDisinformation || hasFalseIdentity;
122
- },
123
- },
124
- {
125
- category: "security_breach",
126
- description: "Creation or use of unauthorized access tools, malicious exploitation of vulnerabilities",
127
- matches: (input) => {
128
- const s = input.toLowerCase();
129
- // Negation checks: own systems, authorized, research, CTF, defensive
130
- const isLegitimate = s.includes("own system") ||
131
- s.includes("own systems") ||
132
- s.includes("our system") ||
133
- s.includes("our systems") ||
134
- s.includes("authorized") ||
135
- s.includes("authorization") ||
136
- s.includes("penetration test") ||
137
- s.includes("pen test") ||
138
- s.includes("ctf") ||
139
- s.includes("capture the flag") ||
140
- s.includes("bug bounty") ||
141
- s.includes("security research") ||
142
- s.includes("defensive") ||
143
- s.includes("patch");
144
- if (isLegitimate)
145
- return false;
146
- const hasExploit = (s.includes("exploit") && (s.includes("vulnerability") || s.includes("zero-day") || s.includes("cve"))) ||
147
- (s.includes("exploit") && (s.includes("system") || s.includes("server") || s.includes("network")) && !s.includes("own"));
148
- const hasMalware = s.includes("create malware") ||
149
- s.includes("write malware") ||
150
- s.includes("develop malware") ||
151
- s.includes("deploy ransomware") ||
152
- s.includes("create ransomware") ||
153
- s.includes("create virus") ||
154
- s.includes("write virus") ||
155
- (s.includes("create") && s.includes("trojan")) ||
156
- (s.includes("write") && s.includes("keylogger") && !s.includes("own"));
157
- const hasUnauthorizedTool = (s.includes("tool") || s.includes("script")) &&
158
- (s.includes("unauthorized access") || s.includes("bypass authentication") || s.includes("bypass security"));
159
- const hasBackdoor = s.includes("install backdoor") ||
160
- s.includes("create backdoor") ||
161
- (s.includes("backdoor") && (s.includes("server") || s.includes("system") || s.includes("network")));
162
- return hasExploit || hasMalware || hasUnauthorizedTool || hasBackdoor;
163
- },
164
- },
165
- {
166
- category: "discrimination_harassment_automation",
167
- description: "Organized attacks on protected attributes, automated discriminatory selection or exclusion",
168
- matches: (input) => {
169
- const s = input.toLowerCase();
170
- // Negation checks: research, analysis, study, audit
171
- const isLegitimate = s.includes("research") ||
172
- s.includes("study") ||
173
- s.includes("analyze") ||
174
- s.includes("audit") ||
175
- s.includes("diversity") ||
176
- s.includes("inclusion") ||
177
- s.includes("anti-discrimination") ||
178
- s.includes("equal opportunity");
179
- if (isLegitimate)
180
- return false;
181
- const hasDiscrimination = (s.includes("discriminate") && (s.includes("race") || s.includes("gender") || s.includes("religion") || s.includes("ethnicity") || s.includes("disability") || s.includes("age") || s.includes("sexual orientation"))) ||
182
- (s.includes("exclude") && (s.includes("based on race") || s.includes("based on gender") || s.includes("based on religion") || s.includes("based on ethnicity")));
183
- const hasHarassmentAutomation = (s.includes("automate") || s.includes("automated") || s.includes("bot") || s.includes("mass")) &&
184
- (s.includes("harass") || s.includes("attack") || s.includes("abuse") || s.includes("troll")) &&
185
- (s.includes("people") || s.includes("users") || s.includes("group") || s.includes("community") || s.includes("race") || s.includes("gender") || s.includes("religion"));
186
- const hasProtectedAttributeFilter = (s.includes("filter out") || s.includes("filter") || s.includes("reject") || s.includes("deny") || s.includes("block") || s.includes("screen out") || s.includes("exclude")) &&
187
- (s.includes("based on race") || s.includes("based on gender") || s.includes("based on religion") || s.includes("based on ethnicity") || s.includes("based on disability"));
188
- return hasDiscrimination || hasHarassmentAutomation || hasProtectedAttributeFilter;
189
- },
190
- },
191
- {
192
- category: "destructive_action",
193
- description: "Irreversible destructive operations such as mass deletion, disk wipe, database drop, or data destruction",
194
- matches: (input) => {
195
- const s = input.toLowerCase();
196
- // Negation checks: test environments, backups, authorized cleanup, dry-run
197
- const isLegitimate = s.includes("test environment") ||
198
- s.includes("staging") ||
199
- s.includes("sandbox") ||
200
- s.includes("dry run") ||
201
- s.includes("dry-run") ||
202
- s.includes("backup") ||
203
- s.includes("rollback") ||
204
- s.includes("restore") ||
205
- s.includes("authorized cleanup") ||
206
- s.includes("recycle bin") ||
207
- s.includes("soft delete") ||
208
- s.includes("trash");
209
- if (isLegitimate)
210
- return false;
211
- const hasMassDeletion = s.includes("delete all") ||
212
- s.includes("rm -rf") ||
213
- s.includes("remove all") ||
214
- (s.includes("wipe") && (s.includes("disk") || s.includes("drive") || s.includes("data") || s.includes("database") || s.includes("server") || s.includes("system"))) ||
215
- (s.includes("erase") && (s.includes("disk") || s.includes("drive") || s.includes("all data") || s.includes("everything")));
216
- const hasDatabaseDestroy = s.includes("drop database") ||
217
- s.includes("drop all tables") ||
218
- (s.includes("destroy") && (s.includes("database") || s.includes("data") || s.includes("all records") || s.includes("production"))) ||
219
- (s.includes("truncate") && s.includes("all"));
220
- const hasFormatOrDestroy = s.includes("format disk") ||
221
- s.includes("format drive") ||
222
- s.includes("format hard") ||
223
- (s.includes("destroy") && (s.includes("server") || s.includes("infrastructure") || s.includes("cluster") || s.includes("environment"))) ||
224
- (s.includes("permanently delete") && (s.includes("all") || s.includes("production") || s.includes("user data") || s.includes("records")));
225
- return hasMassDeletion || hasDatabaseDestroy || hasFormatOrDestroy;
226
- },
227
- },
228
- {
229
- category: "credential_access",
230
- description: "Unauthorized access to, extraction of, or harvesting of passwords, keys, tokens, or credentials",
231
- matches: (input) => {
232
- const s = input.toLowerCase();
233
- // Negation checks: own credentials, authorized, credential rotation, password manager
234
- const isLegitimate = s.includes("own credentials") ||
235
- s.includes("own password") ||
236
- s.includes("own keys") ||
237
- s.includes("authorized") ||
238
- s.includes("authorization") ||
239
- s.includes("password manager") ||
240
- s.includes("password reset") ||
241
- s.includes("credential rotation") ||
242
- s.includes("key rotation") ||
243
- s.includes("security audit") ||
244
- s.includes("penetration test") ||
245
- s.includes("pen test") ||
246
- s.includes("bug bounty");
247
- if (isLegitimate)
248
- return false;
249
- const hasCredentialTheft = (s.includes("steal") && (s.includes("password") || s.includes("credential") || s.includes("token") || s.includes("key") || s.includes("secret"))) ||
250
- (s.includes("theft") && (s.includes("credential") || s.includes("password") || s.includes("token")));
251
- const hasCredentialDump = s.includes("dump credentials") ||
252
- s.includes("dump passwords") ||
253
- s.includes("extract credentials") ||
254
- s.includes("extract passwords") ||
255
- s.includes("extract api keys") ||
256
- s.includes("extract secret") ||
257
- (s.includes("harvest") && (s.includes("token") || s.includes("credential") || s.includes("password") || s.includes("key") || s.includes("secret")));
258
- const hasUnauthorizedKeyAccess = (s.includes("access") && s.includes("without") && (s.includes("password") || s.includes("credential") || s.includes("permission")) && (s.includes("private key") || s.includes("api key") || s.includes("secret key"))) ||
259
- (s.includes("exfiltrate") && (s.includes("credential") || s.includes("password") || s.includes("token") || s.includes("key")));
260
- return hasCredentialTheft || hasCredentialDump || hasUnauthorizedKeyAccess;
261
- },
262
- },
263
- ];
10
+ export function classifyExplicitEthicsMarker(description) {
11
+ const trimmed = description.trim();
12
+ if (!EXPLICIT_REJECT_MARKERS.has(trimmed))
13
+ return null;
14
+ return {
15
+ verdict: "reject",
16
+ category: "explicit_policy_marker",
17
+ reasoning: "The subject carries an explicit PulSeed ethics rejection marker.",
18
+ risks: ["explicit ethics rejection marker"],
19
+ confidence: 1.0,
20
+ };
21
+ }
264
22
  // ─── System prompt ───
265
23
  export const ETHICS_SYSTEM_PROMPT = `# PulSeed Persona
266
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"ethics-rules.js","sourceRoot":"","sources":["../../../src/platform/traits/ethics-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ethics-rules.js","sourceRoot":"","sources":["../../../src/platform/traits/ethics-rules.ts"],"names":[],"mappings":"AAEA,uCAAuC;AAEvC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,uBAAuB;IACvB,yBAAyB;CAC1B,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB;IAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,wBAAwB;QAClC,SAAS,EAAE,kEAAkE;QAC7E,KAAK,EAAE,CAAC,kCAAkC,CAAC;QAC3C,UAAU,EAAE,GAAG;KAChB,CAAC;AACJ,CAAC;AAED,wBAAwB;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EAkE0C,CAAC"}