@caupulican/pi-adaptative 0.94.0 → 0.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/bundled-resources/extensions/tmux-agent-manager/README.md +32 -13
  3. package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts +7 -4
  4. package/dist/bundled-resources/extensions/tmux-agent-manager/index.d.ts.map +1 -1
  5. package/dist/bundled-resources/extensions/tmux-agent-manager/index.js +173 -293
  6. package/dist/bundled-resources/extensions/tmux-agent-manager/index.js.map +1 -1
  7. package/dist/bundled-resources/extensions/tmux-agent-manager/index.ts +247 -392
  8. package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.d.ts +52 -0
  9. package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.d.ts.map +1 -0
  10. package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.js +118 -0
  11. package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.js.map +1 -0
  12. package/dist/bundled-resources/extensions/tmux-agent-manager/launch-profile.ts +169 -0
  13. package/dist/bundled-resources/extensions/tmux-agent-manager/templates/builder-validator.json +1 -1
  14. package/dist/bundled-resources/extensions/tmux-agent-manager/templates/provider-prompt-smoke.json +1 -1
  15. package/dist/bundled-resources/skills/pi-harness-learning/SKILL.md +13 -7
  16. package/dist/bundled-resources/skills/worker-profile-writer/SKILL.md +11 -11
  17. package/dist/core/agent-paths.d.ts +2 -0
  18. package/dist/core/agent-paths.d.ts.map +1 -1
  19. package/dist/core/agent-paths.js +7 -0
  20. package/dist/core/agent-paths.js.map +1 -1
  21. package/dist/core/agent-session.d.ts +11 -41
  22. package/dist/core/agent-session.d.ts.map +1 -1
  23. package/dist/core/agent-session.js +98 -161
  24. package/dist/core/agent-session.js.map +1 -1
  25. package/dist/core/autonomy/envelope-enforcement.d.ts +6 -1
  26. package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
  27. package/dist/core/autonomy/envelope-enforcement.js +26 -25
  28. package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
  29. package/dist/core/autonomy/lane-private-paths.d.ts.map +1 -1
  30. package/dist/core/autonomy/lane-private-paths.js +2 -1
  31. package/dist/core/autonomy/lane-private-paths.js.map +1 -1
  32. package/dist/core/autonomy/lane-tool-surface.d.ts +8 -8
  33. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  34. package/dist/core/autonomy/lane-tool-surface.js +45 -30
  35. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  36. package/dist/core/autonomy/worker-session-private-scope.d.ts +12 -0
  37. package/dist/core/autonomy/worker-session-private-scope.d.ts.map +1 -0
  38. package/dist/core/autonomy/worker-session-private-scope.js +42 -0
  39. package/dist/core/autonomy/worker-session-private-scope.js.map +1 -0
  40. package/dist/core/autonomy/worker-tool-adapter-registry.d.ts +65 -0
  41. package/dist/core/autonomy/worker-tool-adapter-registry.d.ts.map +1 -0
  42. package/dist/core/autonomy/worker-tool-adapter-registry.js +145 -0
  43. package/dist/core/autonomy/worker-tool-adapter-registry.js.map +1 -0
  44. package/dist/core/background-lane-controller.d.ts +9 -1
  45. package/dist/core/background-lane-controller.d.ts.map +1 -1
  46. package/dist/core/background-lane-controller.js +76 -6
  47. package/dist/core/background-lane-controller.js.map +1 -1
  48. package/dist/core/background-tool-task-controller.d.ts +23 -2
  49. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  50. package/dist/core/background-tool-task-controller.js +132 -17
  51. package/dist/core/background-tool-task-controller.js.map +1 -1
  52. package/dist/core/context/long-term-memory-trigger.d.ts +3 -1
  53. package/dist/core/context/long-term-memory-trigger.d.ts.map +1 -1
  54. package/dist/core/context/long-term-memory-trigger.js +1 -1
  55. package/dist/core/context/long-term-memory-trigger.js.map +1 -1
  56. package/dist/core/context/okf-memory-provider.d.ts +3 -0
  57. package/dist/core/context/okf-memory-provider.d.ts.map +1 -1
  58. package/dist/core/context/okf-memory-provider.js +66 -31
  59. package/dist/core/context/okf-memory-provider.js.map +1 -1
  60. package/dist/core/context/okf-memory.d.ts +18 -1
  61. package/dist/core/context/okf-memory.d.ts.map +1 -1
  62. package/dist/core/context/okf-memory.js +48 -0
  63. package/dist/core/context/okf-memory.js.map +1 -1
  64. package/dist/core/cost-guard-controller.d.ts +37 -0
  65. package/dist/core/cost-guard-controller.d.ts.map +1 -0
  66. package/dist/core/cost-guard-controller.js +71 -0
  67. package/dist/core/cost-guard-controller.js.map +1 -0
  68. package/dist/core/cost-guard.d.ts +9 -4
  69. package/dist/core/cost-guard.d.ts.map +1 -1
  70. package/dist/core/cost-guard.js +7 -3
  71. package/dist/core/cost-guard.js.map +1 -1
  72. package/dist/core/delegation/worker-agent-control.d.ts +4 -0
  73. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
  74. package/dist/core/delegation/worker-agent-control.js.map +1 -1
  75. package/dist/core/delegation/worker-attempt-executor.d.ts +1 -1
  76. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  77. package/dist/core/delegation/worker-attempt-executor.js +0 -1
  78. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  79. package/dist/core/delegation/worker-authority-resolver.d.ts +16 -3
  80. package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
  81. package/dist/core/delegation/worker-authority-resolver.js +114 -55
  82. package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
  83. package/dist/core/delegation/worker-claim.d.ts +1 -2
  84. package/dist/core/delegation/worker-claim.d.ts.map +1 -1
  85. package/dist/core/delegation/worker-claim.js.map +1 -1
  86. package/dist/core/delegation/worker-delegation-controller.d.ts +19 -6
  87. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  88. package/dist/core/delegation/worker-delegation-controller.js +125 -40
  89. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  90. package/dist/core/delegation/worker-delegation-request.d.ts +3 -3
  91. package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
  92. package/dist/core/delegation/worker-delegation-request.js +13 -19
  93. package/dist/core/delegation/worker-delegation-request.js.map +1 -1
  94. package/dist/core/delegation/worker-execution-policy.d.ts +3 -2
  95. package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
  96. package/dist/core/delegation/worker-execution-policy.js +54 -39
  97. package/dist/core/delegation/worker-execution-policy.js.map +1 -1
  98. package/dist/core/delegation/worker-fleet-limits.d.ts +3 -3
  99. package/dist/core/delegation/worker-fleet-limits.d.ts.map +1 -1
  100. package/dist/core/delegation/worker-fleet-limits.js +7 -7
  101. package/dist/core/delegation/worker-fleet-limits.js.map +1 -1
  102. package/dist/core/delegation/worker-machine-scope.d.ts +12 -0
  103. package/dist/core/delegation/worker-machine-scope.d.ts.map +1 -0
  104. package/dist/core/delegation/worker-machine-scope.js +38 -0
  105. package/dist/core/delegation/worker-machine-scope.js.map +1 -0
  106. package/dist/core/delegation/worker-notification-coordinator.d.ts +10 -0
  107. package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
  108. package/dist/core/delegation/worker-notification-coordinator.js +69 -3
  109. package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
  110. package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -1
  111. package/dist/core/delegation/worker-recovery-coordinator.js +6 -1
  112. package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -1
  113. package/dist/core/delegation/worker-runner.d.ts +5 -7
  114. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  115. package/dist/core/delegation/worker-runner.js +1 -4
  116. package/dist/core/delegation/worker-runner.js.map +1 -1
  117. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +3 -2
  118. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -1
  119. package/dist/core/delegation/worker-write-reservation-coordinator.js +50 -25
  120. package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -1
  121. package/dist/core/durable-custom-message-turn-controller.d.ts +6 -0
  122. package/dist/core/durable-custom-message-turn-controller.d.ts.map +1 -1
  123. package/dist/core/durable-custom-message-turn-controller.js +38 -15
  124. package/dist/core/durable-custom-message-turn-controller.js.map +1 -1
  125. package/dist/core/extension-binding-controller.d.ts +5 -1
  126. package/dist/core/extension-binding-controller.d.ts.map +1 -1
  127. package/dist/core/extension-binding-controller.js +15 -0
  128. package/dist/core/extension-binding-controller.js.map +1 -1
  129. package/dist/core/extensions/factory-runtime.d.ts.map +1 -1
  130. package/dist/core/extensions/factory-runtime.js +5 -0
  131. package/dist/core/extensions/factory-runtime.js.map +1 -1
  132. package/dist/core/extensions/runner.d.ts.map +1 -1
  133. package/dist/core/extensions/runner.js +1 -0
  134. package/dist/core/extensions/runner.js.map +1 -1
  135. package/dist/core/extensions/types.d.ts +8 -4
  136. package/dist/core/extensions/types.d.ts.map +1 -1
  137. package/dist/core/extensions/types.js.map +1 -1
  138. package/dist/core/foreground-terminal-handoff-controller.d.ts +31 -0
  139. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  140. package/dist/core/foreground-terminal-handoff-controller.js +239 -55
  141. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  142. package/dist/core/goals/goal-session-controller.d.ts +2 -0
  143. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  144. package/dist/core/goals/goal-session-controller.js +8 -0
  145. package/dist/core/goals/goal-session-controller.js.map +1 -1
  146. package/dist/core/goals/goal-tool-core.d.ts +5 -4
  147. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  148. package/dist/core/goals/goal-tool-core.js +23 -19
  149. package/dist/core/goals/goal-tool-core.js.map +1 -1
  150. package/dist/core/learning/auto-learn-settings.d.ts +84 -0
  151. package/dist/core/learning/auto-learn-settings.d.ts.map +1 -0
  152. package/dist/core/learning/auto-learn-settings.js +66 -0
  153. package/dist/core/learning/auto-learn-settings.js.map +1 -0
  154. package/dist/core/learning/learning-audit.d.ts +5 -1
  155. package/dist/core/learning/learning-audit.d.ts.map +1 -1
  156. package/dist/core/learning/learning-audit.js +32 -1
  157. package/dist/core/learning/learning-audit.js.map +1 -1
  158. package/dist/core/learning/reflection-engine.d.ts +24 -0
  159. package/dist/core/learning/reflection-engine.d.ts.map +1 -1
  160. package/dist/core/learning/reflection-engine.js +104 -8
  161. package/dist/core/learning/reflection-engine.js.map +1 -1
  162. package/dist/core/local-prefix-warm-controller.d.ts +24 -0
  163. package/dist/core/local-prefix-warm-controller.d.ts.map +1 -0
  164. package/dist/core/local-prefix-warm-controller.js +79 -0
  165. package/dist/core/local-prefix-warm-controller.js.map +1 -0
  166. package/dist/core/memory/okf-project-memory-store.d.ts +28 -0
  167. package/dist/core/memory/okf-project-memory-store.d.ts.map +1 -0
  168. package/dist/core/memory/okf-project-memory-store.js +111 -0
  169. package/dist/core/memory/okf-project-memory-store.js.map +1 -0
  170. package/dist/core/memory/providers/file-store.d.ts +44 -1
  171. package/dist/core/memory/providers/file-store.d.ts.map +1 -1
  172. package/dist/core/memory/providers/file-store.js +341 -24
  173. package/dist/core/memory/providers/file-store.js.map +1 -1
  174. package/dist/core/memory/worker-memory-tools.d.ts +5 -0
  175. package/dist/core/memory/worker-memory-tools.d.ts.map +1 -0
  176. package/dist/core/memory/worker-memory-tools.js +5 -0
  177. package/dist/core/memory/worker-memory-tools.js.map +1 -0
  178. package/dist/core/memory-controller.d.ts +10 -1
  179. package/dist/core/memory-controller.d.ts.map +1 -1
  180. package/dist/core/memory-controller.js +72 -8
  181. package/dist/core/memory-controller.js.map +1 -1
  182. package/dist/core/model-capability.d.ts +7 -0
  183. package/dist/core/model-capability.d.ts.map +1 -1
  184. package/dist/core/model-capability.js +12 -0
  185. package/dist/core/model-capability.js.map +1 -1
  186. package/dist/core/model-registry.d.ts.map +1 -1
  187. package/dist/core/model-registry.js +2 -10
  188. package/dist/core/model-registry.js.map +1 -1
  189. package/dist/core/model-router-controller.d.ts +3 -2
  190. package/dist/core/model-router-controller.d.ts.map +1 -1
  191. package/dist/core/model-router-controller.js +3 -2
  192. package/dist/core/model-router-controller.js.map +1 -1
  193. package/dist/core/orchestration/contracts.d.ts +16 -12
  194. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  195. package/dist/core/orchestration/contracts.js +2 -2
  196. package/dist/core/orchestration/contracts.js.map +1 -1
  197. package/dist/core/orchestration/lane-tool-manifests.d.ts +2 -2
  198. package/dist/core/orchestration/lane-tool-manifests.d.ts.map +1 -1
  199. package/dist/core/orchestration/lane-tool-manifests.js +6 -1
  200. package/dist/core/orchestration/lane-tool-manifests.js.map +1 -1
  201. package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
  202. package/dist/core/orchestration/profile-registry.js +14 -0
  203. package/dist/core/orchestration/profile-registry.js.map +1 -1
  204. package/dist/core/orchestration/task-profile-writer.d.ts +7 -4
  205. package/dist/core/orchestration/task-profile-writer.d.ts.map +1 -1
  206. package/dist/core/orchestration/task-profile-writer.js +71 -59
  207. package/dist/core/orchestration/task-profile-writer.js.map +1 -1
  208. package/dist/core/orchestration/thinking-level-schema.d.ts +7 -0
  209. package/dist/core/orchestration/thinking-level-schema.d.ts.map +1 -0
  210. package/dist/core/orchestration/thinking-level-schema.js +19 -0
  211. package/dist/core/orchestration/thinking-level-schema.js.map +1 -0
  212. package/dist/core/orchestration/worker-execution-contract.d.ts.map +1 -1
  213. package/dist/core/orchestration/worker-execution-contract.js +12 -5
  214. package/dist/core/orchestration/worker-execution-contract.js.map +1 -1
  215. package/dist/core/provider-prompt-contracts.d.ts +1 -4
  216. package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
  217. package/dist/core/provider-prompt-contracts.js +13 -29
  218. package/dist/core/provider-prompt-contracts.js.map +1 -1
  219. package/dist/core/provider-request-context-controller.d.ts +2 -0
  220. package/dist/core/provider-request-context-controller.d.ts.map +1 -1
  221. package/dist/core/provider-request-context-controller.js +10 -3
  222. package/dist/core/provider-request-context-controller.js.map +1 -1
  223. package/dist/core/reflection-controller.d.ts +63 -27
  224. package/dist/core/reflection-controller.d.ts.map +1 -1
  225. package/dist/core/reflection-controller.js +300 -132
  226. package/dist/core/reflection-controller.js.map +1 -1
  227. package/dist/core/runtime-builder.d.ts +1 -0
  228. package/dist/core/runtime-builder.d.ts.map +1 -1
  229. package/dist/core/runtime-builder.js +25 -14
  230. package/dist/core/runtime-builder.js.map +1 -1
  231. package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
  232. package/dist/core/secrets/credential-exposure-guard.js +55 -10
  233. package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
  234. package/dist/core/session-role.d.ts +6 -8
  235. package/dist/core/session-role.d.ts.map +1 -1
  236. package/dist/core/session-role.js +8 -18
  237. package/dist/core/session-role.js.map +1 -1
  238. package/dist/core/settings-manager.d.ts +13 -16
  239. package/dist/core/settings-manager.d.ts.map +1 -1
  240. package/dist/core/settings-manager.js +53 -50
  241. package/dist/core/settings-manager.js.map +1 -1
  242. package/dist/core/skill-vault.d.ts +15 -0
  243. package/dist/core/skill-vault.d.ts.map +1 -1
  244. package/dist/core/skill-vault.js +79 -45
  245. package/dist/core/skill-vault.js.map +1 -1
  246. package/dist/core/skills.d.ts +3 -0
  247. package/dist/core/skills.d.ts.map +1 -1
  248. package/dist/core/skills.js +6 -6
  249. package/dist/core/skills.js.map +1 -1
  250. package/dist/core/system-prompt-builder.d.ts +2 -0
  251. package/dist/core/system-prompt-builder.d.ts.map +1 -1
  252. package/dist/core/system-prompt-builder.js +52 -12
  253. package/dist/core/system-prompt-builder.js.map +1 -1
  254. package/dist/core/system-prompt.js +1 -1
  255. package/dist/core/system-prompt.js.map +1 -1
  256. package/dist/core/tool-capability-policy.d.ts +3 -0
  257. package/dist/core/tool-capability-policy.d.ts.map +1 -1
  258. package/dist/core/tool-capability-policy.js +13 -2
  259. package/dist/core/tool-capability-policy.js.map +1 -1
  260. package/dist/core/toolkit/script-runner.d.ts +2 -1
  261. package/dist/core/toolkit/script-runner.d.ts.map +1 -1
  262. package/dist/core/toolkit/script-runner.js +10 -2
  263. package/dist/core/toolkit/script-runner.js.map +1 -1
  264. package/dist/core/tools/delegate-status.d.ts +3 -1
  265. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  266. package/dist/core/tools/delegate-status.js +5 -1
  267. package/dist/core/tools/delegate-status.js.map +1 -1
  268. package/dist/core/tools/delegate.d.ts +4 -13
  269. package/dist/core/tools/delegate.d.ts.map +1 -1
  270. package/dist/core/tools/delegate.js +173 -73
  271. package/dist/core/tools/delegate.js.map +1 -1
  272. package/dist/core/tools/goal.d.ts +3 -4
  273. package/dist/core/tools/goal.d.ts.map +1 -1
  274. package/dist/core/tools/goal.js +24 -7
  275. package/dist/core/tools/goal.js.map +1 -1
  276. package/dist/core/tools/profile-writer.d.ts +2 -8
  277. package/dist/core/tools/profile-writer.d.ts.map +1 -1
  278. package/dist/core/tools/profile-writer.js +6 -18
  279. package/dist/core/tools/profile-writer.js.map +1 -1
  280. package/dist/core/tools/run-toolkit-script.d.ts +1 -1
  281. package/dist/core/tools/run-toolkit-script.d.ts.map +1 -1
  282. package/dist/core/tools/run-toolkit-script.js +2 -2
  283. package/dist/core/tools/run-toolkit-script.js.map +1 -1
  284. package/dist/core/tools/skill-audit.d.ts +28 -1
  285. package/dist/core/tools/skill-audit.d.ts.map +1 -1
  286. package/dist/core/tools/skill-audit.js +56 -12
  287. package/dist/core/tools/skill-audit.js.map +1 -1
  288. package/dist/core/tools/skill.d.ts +12 -1
  289. package/dist/core/tools/skill.d.ts.map +1 -1
  290. package/dist/core/tools/skill.js +52 -0
  291. package/dist/core/tools/skill.js.map +1 -1
  292. package/dist/core/tools/skillify.d.ts.map +1 -1
  293. package/dist/core/tools/skillify.js +16 -7
  294. package/dist/core/tools/skillify.js.map +1 -1
  295. package/dist/core/tools/task-steps.js +1 -1
  296. package/dist/core/tools/task-steps.js.map +1 -1
  297. package/dist/core/tools/tmux-dispatch.d.ts +4 -16
  298. package/dist/core/tools/tmux-dispatch.d.ts.map +1 -1
  299. package/dist/core/tools/tmux-dispatch.js +5 -20
  300. package/dist/core/tools/tmux-dispatch.js.map +1 -1
  301. package/dist/core/tools/tool-task.d.ts +1 -0
  302. package/dist/core/tools/tool-task.d.ts.map +1 -1
  303. package/dist/core/tools/tool-task.js +13 -8
  304. package/dist/core/tools/tool-task.js.map +1 -1
  305. package/dist/core/util/atomic-file.d.ts +2 -0
  306. package/dist/core/util/atomic-file.d.ts.map +1 -1
  307. package/dist/core/util/atomic-file.js +4 -0
  308. package/dist/core/util/atomic-file.js.map +1 -1
  309. package/dist/core/worktree-sync/codes.d.ts +1 -2
  310. package/dist/core/worktree-sync/codes.d.ts.map +1 -1
  311. package/dist/core/worktree-sync/codes.js +1 -2
  312. package/dist/core/worktree-sync/codes.js.map +1 -1
  313. package/dist/core/worktree-sync/lane-gate.d.ts +4 -8
  314. package/dist/core/worktree-sync/lane-gate.d.ts.map +1 -1
  315. package/dist/core/worktree-sync/lane-gate.js +5 -51
  316. package/dist/core/worktree-sync/lane-gate.js.map +1 -1
  317. package/dist/index.d.ts +5 -0
  318. package/dist/index.d.ts.map +1 -1
  319. package/dist/index.js +7 -0
  320. package/dist/index.js.map +1 -1
  321. package/dist/modes/interactive/auto-learn-controller.d.ts +6 -7
  322. package/dist/modes/interactive/auto-learn-controller.d.ts.map +1 -1
  323. package/dist/modes/interactive/auto-learn-controller.js +32 -207
  324. package/dist/modes/interactive/auto-learn-controller.js.map +1 -1
  325. package/dist/modes/interactive/autonomy-commands.js +2 -2
  326. package/dist/modes/interactive/autonomy-commands.js.map +1 -1
  327. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
  328. package/dist/modes/interactive/components/activity-lane.js +12 -23
  329. package/dist/modes/interactive/components/activity-lane.js.map +1 -1
  330. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  331. package/dist/modes/interactive/components/custom-message.js +142 -1
  332. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  333. package/dist/modes/interactive/components/fitness-role-selector.d.ts.map +1 -1
  334. package/dist/modes/interactive/components/fitness-role-selector.js +2 -2
  335. package/dist/modes/interactive/components/fitness-role-selector.js.map +1 -1
  336. package/dist/modes/interactive/components/footer.js +1 -1
  337. package/dist/modes/interactive/components/footer.js.map +1 -1
  338. package/dist/modes/interactive/components/settings-selector.d.ts +4 -0
  339. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  340. package/dist/modes/interactive/components/settings-selector.js +150 -73
  341. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  342. package/dist/modes/interactive/report-commands.d.ts.map +1 -1
  343. package/dist/modes/interactive/report-commands.js +8 -4
  344. package/dist/modes/interactive/report-commands.js.map +1 -1
  345. package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
  346. package/dist/modes/interactive/settings-selector-flow.js +10 -0
  347. package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
  348. package/docs/extensions.md +8 -0
  349. package/docs/harness-architecture.md +28 -32
  350. package/docs/index.md +1 -1
  351. package/docs/process-matrix.md +8 -6
  352. package/docs/resources.md +1 -1
  353. package/docs/settings.md +61 -51
  354. package/docs/tmux-agent-manager.md +47 -40
  355. package/docs/usage.md +1 -1
  356. package/docs/worker-profiles.md +8 -6
  357. package/docs/worktree-sync.md +26 -20
  358. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  359. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  360. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  361. package/examples/extensions/sandbox/package-lock.json +2 -2
  362. package/examples/extensions/sandbox/package.json +1 -1
  363. package/examples/extensions/with-deps/package-lock.json +2 -2
  364. package/examples/extensions/with-deps/package.json +1 -1
  365. package/npm-shrinkwrap.json +12 -12
  366. package/package.json +4 -4
  367. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts +0 -133
  368. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.d.ts.map +0 -1
  369. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js +0 -199
  370. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.js.map +0 -1
  371. package/dist/bundled-resources/extensions/tmux-agent-manager/dispatch-grant.ts +0 -312
@@ -2,9 +2,12 @@ import { createHash, randomUUID } from "node:crypto";
2
2
  import { promises as fs } from "node:fs";
3
3
  import { Type } from "typebox";
4
4
  import { configFile, managedMemoryStateFile } from "../../agent-paths.js";
5
+ import { OKF_MEMORY_LIMITS, PI_OKF_TYPES, validateOkfMemoryDocumentInput, } from "../../context/okf-memory.js";
5
6
  import { hasInvisibleUnicode, scanContextFileThreats, stripInvisibleUnicode, } from "../../security/context-threat-scanner.js";
6
7
  import { jaccard, tokenize } from "../../tools/skill-audit.js";
7
- import { withFileLock, writeFileAtomic } from "../../util/atomic-file.js";
8
+ import { isMissingFileError, withFileLock, writeFileAtomic } from "../../util/atomic-file.js";
9
+ import { OkfProjectMemoryStore } from "../okf-project-memory-store.js";
10
+ import { ROOT_MEMORY_TOOL_NAME } from "../worker-memory-tools.js";
8
11
  import { UserMemoryArchive } from "./user-memory-archive.js";
9
12
  /**
10
13
  * Confront-before-write (anti append-rot): if `content` is a near-duplicate of an existing
@@ -39,21 +42,58 @@ export function supersedeNearDuplicateLine(existing, content) {
39
42
  return lines.join("\n");
40
43
  }
41
44
  const memorySchema = Type.Object({
42
- action: Type.Union([Type.Literal("add"), Type.Literal("replace"), Type.Literal("remove")], {
45
+ action: Type.Union([Type.Literal("add"), Type.Literal("replace"), Type.Literal("remove"), Type.Literal("list")], {
43
46
  description: "Action to perform: add new content, replace existing content, or remove content",
44
47
  }),
45
- target: Type.Union([Type.Literal("memory"), Type.Literal("user")], {
46
- description: "Target file: 'memory' for MEMORY.md, 'user' for USER.md",
48
+ target: Type.Union([Type.Literal("memory"), Type.Literal("user"), Type.Literal("okf")], {
49
+ description: "Target: 'memory' for MEMORY.md, 'user' for USER.md, or 'okf' for structured project memory",
47
50
  }),
48
- content: Type.Optional(Type.String({ description: "Content to write (required for 'add' or 'replace')" })),
51
+ content: Type.Optional(Type.String({
52
+ maxLength: OKF_MEMORY_LIMITS.bodyChars,
53
+ description: "Content to write (required for add/replace)",
54
+ })),
55
+ title: Type.Optional(Type.String({
56
+ minLength: 1,
57
+ maxLength: OKF_MEMORY_LIMITS.titleChars,
58
+ description: "Structured OKF title (required when target is 'okf')",
59
+ })),
49
60
  oldContent: Type.Optional(Type.String({ description: "Exact substring to replace or remove (required for 'replace' or 'remove')" })),
61
+ type: Type.Optional(Type.Union(PI_OKF_TYPES.map((value) => Type.Literal(value)), {
62
+ description: "Structured OKF type (required when target is 'okf')",
63
+ })),
64
+ description: Type.Optional(Type.String({
65
+ minLength: 1,
66
+ maxLength: OKF_MEMORY_LIMITS.descriptionChars,
67
+ description: "Structured OKF summary (required when target is 'okf')",
68
+ })),
69
+ scope: Type.Optional(Type.Literal("project", { description: "Structured OKF records are project-scoped" })),
70
+ tags: Type.Optional(Type.Array(Type.String({ minLength: 1, maxLength: OKF_MEMORY_LIMITS.tagChars }), {
71
+ maxItems: OKF_MEMORY_LIMITS.tagCount,
72
+ uniqueItems: true,
73
+ description: "Structured OKF tags",
74
+ })),
75
+ evidenceRefs: Type.Optional(Type.Array(Type.String({ minLength: 1, maxLength: OKF_MEMORY_LIMITS.evidenceRefChars }), {
76
+ minItems: 1,
77
+ maxItems: OKF_MEMORY_LIMITS.evidenceRefCount,
78
+ uniqueItems: true,
79
+ description: "Evidence references for structured OKF",
80
+ })),
81
+ expectedDigest: Type.Optional(Type.String({ pattern: "^[a-f0-9]{64}$", description: "Optional conflict guard for structured removal" })),
50
82
  });
51
- export const FILE_STORE_MEMORY_SYSTEM_NOTE = "[System Note: Below is a snapshot of persistent memory. Proactively record verified reusable project facts and user preferences with the 'memory' tool; never store transient noise.]";
83
+ export const FILE_STORE_MEMORY_SYSTEM_NOTE = "[System Note: Below is a snapshot of persistent memory. Proactively record verified reusable project facts and user preferences with the 'memory' tool. Keep MEMORY.md for compact hot facts, USER.md for preferences, and use target 'okf' for durable project decisions, architecture, rules, findings, and references. Never store transient noise.]";
52
84
  function contentDigest(content) {
53
85
  return createHash("sha256").update(content, "utf8").digest("hex");
54
86
  }
55
- function isMissingFileError(error) {
56
- return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
87
+ function removeExactHotMemoryItem(existing, sourceText) {
88
+ if (sourceText.length === 0)
89
+ return undefined;
90
+ const memoryLines = existing.split("\n");
91
+ const sourceLines = sourceText.split("\n");
92
+ const start = memoryLines.findIndex((_, index) => sourceLines.every((line, offset) => memoryLines[index + offset] === line));
93
+ if (start === -1)
94
+ return undefined;
95
+ memoryLines.splice(start, sourceLines.length);
96
+ return memoryLines.join("\n");
57
97
  }
58
98
  function parseManagedMemoryState(raw) {
59
99
  let parsed;
@@ -177,6 +217,7 @@ export class FileStoreProvider {
177
217
  this.userStatePath = managedMemoryStateFile(ctx.agentDir, "USER.md");
178
218
  this.userArchive = new UserMemoryArchive(ctx.agentDir);
179
219
  await fs.mkdir(ctx.agentDir, { recursive: true });
220
+ this.okfStore = new OkfProjectMemoryStore(ctx.agentDir, ctx.cwd);
180
221
  [this.lastWrittenMemory, this.lastWrittenUser] = await Promise.all([
181
222
  this.initializeManagedFile(this.memoryFilePath, this.memoryStatePath),
182
223
  this.initializeManagedFile(this.userFilePath, this.userStatePath),
@@ -212,6 +253,8 @@ export class FileStoreProvider {
212
253
  });
213
254
  }
214
255
  systemPromptBlock(budget) {
256
+ if (this.ctx?.isChildSession)
257
+ return "";
215
258
  const sanitize = (content) => {
216
259
  // Strip hidden/bidi-control chars before injecting memory into the prompt (defence in depth: the
217
260
  // write path already blocks them, but a file edited out-of-band could carry them). Strip #31.
@@ -256,33 +299,140 @@ export class FileStoreProvider {
256
299
  async shutdown() {
257
300
  // no-op
258
301
  }
302
+ async executeMemoryCommand(params, signal) {
303
+ const tool = this.getToolDefinitions()[0];
304
+ if (tool === undefined)
305
+ return { details: { success: false, error: "Memory tool unavailable" } };
306
+ const result = await tool.execute("reflection-memory", params, signal, undefined, undefined);
307
+ return result;
308
+ }
309
+ async hasExactHotMemoryItem(sourceText) {
310
+ return withFileLock(this.memoryFilePath, async () => {
311
+ const current = await fs.readFile(this.memoryFilePath, "utf8");
312
+ return removeExactHotMemoryItem(current, sourceText) !== undefined;
313
+ });
314
+ }
315
+ async removeExactHotMemoryItem(sourceText) {
316
+ try {
317
+ return await withFileLock(this.memoryFilePath, async () => {
318
+ const currentOnDisk = await fs.readFile(this.memoryFilePath, "utf8");
319
+ const currentDigest = contentDigest(currentOnDisk);
320
+ const stateRead = await readManagedMemoryState(this.memoryStatePath);
321
+ let managedState;
322
+ if (stateRead.status === "valid") {
323
+ const reconciled = reconcileManagedMemoryState(currentDigest, stateRead.state);
324
+ if (reconciled.recognized) {
325
+ managedState = reconciled.state;
326
+ if (reconciled.changed)
327
+ await writeManagedMemoryState(this.memoryStatePath, reconciled.state);
328
+ }
329
+ }
330
+ if (!managedState)
331
+ return { success: false, error: "Drift detected" };
332
+ const newContent = removeExactHotMemoryItem(currentOnDisk, sourceText);
333
+ if (newContent === undefined)
334
+ return { success: false, error: "Exact hot-memory item was not found" };
335
+ const newDigest = contentDigest(newContent);
336
+ await writeManagedMemoryState(this.memoryStatePath, {
337
+ version: 1,
338
+ committedDigest: managedState.committedDigest,
339
+ pendingDigest: newDigest,
340
+ });
341
+ await writeFileAtomic(this.memoryFilePath, newContent, { mode: 0o600 });
342
+ await writeManagedMemoryState(this.memoryStatePath, { version: 1, committedDigest: newDigest });
343
+ this.lastWrittenMemory = newContent;
344
+ this.options.onDurableMemoryChanged?.();
345
+ return { success: true };
346
+ });
347
+ }
348
+ catch (error) {
349
+ return { success: false, error: String(error) };
350
+ }
351
+ }
352
+ /** Reflection-owned structured write. Organization is OKF-first, then exact hot-memory removal. */
353
+ async applyStructuredReflectionWrite(write, signal) {
354
+ if (write.kind === "okf_organize" && !(await this.hasExactHotMemoryItem(write.sourceText))) {
355
+ return {
356
+ applied: false,
357
+ created: false,
358
+ sourceRemoved: false,
359
+ error: "Exact hot-memory item was not found",
360
+ };
361
+ }
362
+ const added = await this.executeMemoryCommand({
363
+ action: "add",
364
+ target: "okf",
365
+ type: write.type,
366
+ title: write.title,
367
+ description: write.description,
368
+ scope: "project",
369
+ content: write.text,
370
+ tags: write.tags,
371
+ evidenceRefs: write.evidenceRefs,
372
+ }, signal);
373
+ if (added.details?.success !== true) {
374
+ return { applied: false, created: false, error: added.details?.error ?? "OKF write failed" };
375
+ }
376
+ const created = added.details.created === true;
377
+ const storedDigest = added.details.digest;
378
+ if (write.kind === "okf_add") {
379
+ return {
380
+ applied: created,
381
+ created,
382
+ ...(storedDigest ? { digest: storedDigest } : {}),
383
+ ...(!created ? { error: "Exact OKF record already exists" } : {}),
384
+ };
385
+ }
386
+ await this.options.beforeOrganizeHotRemoval?.();
387
+ const removed = await this.removeExactHotMemoryItem(write.sourceText);
388
+ const sourceRemoved = removed.success;
389
+ return {
390
+ // A newly-created OKF record is a real durable change even if exact hot cleanup was
391
+ // interrupted. This records a reversible partial apply instead of hiding landed data.
392
+ applied: created || sourceRemoved,
393
+ created,
394
+ ...(storedDigest ? { digest: storedDigest } : {}),
395
+ sourceRemoved,
396
+ ...(!sourceRemoved ? { error: removed.error ?? "Hot-memory removal failed" } : {}),
397
+ };
398
+ }
399
+ /** Restore hot memory first, then conditionally remove the exact audited OKF bytes. */
400
+ async rollbackStructuredReflectionWrite(rollback, signal) {
401
+ if (rollback.sourceText !== undefined) {
402
+ const restored = await this.executeMemoryCommand({ action: "add", target: "memory", content: rollback.sourceText }, signal);
403
+ if (restored.details?.success !== true)
404
+ return false;
405
+ }
406
+ if (!rollback.removeRecord)
407
+ return true;
408
+ const removed = await this.executeMemoryCommand({
409
+ action: "remove",
410
+ target: "okf",
411
+ type: rollback.type,
412
+ title: rollback.title,
413
+ expectedDigest: rollback.expectedDigest,
414
+ }, signal);
415
+ return removed.details?.success === true;
416
+ }
259
417
  getContextMarkers() {
260
418
  return [];
261
419
  }
262
420
  getToolDefinitions() {
421
+ if (this.ctx?.isChildSession)
422
+ return [];
263
423
  return [
264
424
  {
265
- name: "memory",
425
+ name: ROOT_MEMORY_TOOL_NAME,
266
426
  label: "Persistent Memory Manager",
267
- description: "Add, replace, or remove durable project facts and user preferences. Proactively store newly verified reusable facts; USER.md overflow is migrated into indexed OKF shards.",
268
- promptSnippet: "Persist verified project facts and user preferences.",
427
+ description: "Add, replace, or remove durable facts and preferences. Use target 'okf' with structured metadata for durable project decisions, architecture, rules, debugging findings, and references; USER.md overflow is migrated into indexed OKF shards.",
428
+ promptSnippet: "Persist verified facts; route durable project knowledge to structured OKF records.",
269
429
  promptGuidelines: [
270
- "Store verified facts and preferences. Repeatable multi-step procedures become skills via skillify; reflection promotes them when the write is a workflow.",
430
+ "OKF=project decisions/rules/findings with type,title,summary,body,evidenceRefs; MEMORY=hot facts; USER=preferences.",
431
+ "Workers gather evidence read-only; only the parent or its reflection writes memory. Repeatable procedures become skills via skillify.",
271
432
  ],
272
433
  parameters: memorySchema,
273
434
  execute: async (_toolCallId, params, _signal, _onUpdate, _execCtx) => {
274
- if (this.ctx?.isChildSession) {
275
- return {
276
- content: [
277
- {
278
- type: "text",
279
- text: "Error: Writes to persistent memory are not allowed in child sessions (subagents).",
280
- },
281
- ],
282
- details: { success: false, error: "Child session write-gated" },
283
- };
284
- }
285
- const { action, target, content, oldContent } = params;
435
+ const { action, target, content, oldContent, title, type, description, scope, tags, evidenceRefs, expectedDigest, } = params;
286
436
  // Strict-scope injection guard on the high-privilege WRITE path (agy #31): a poisoned
287
437
  // memory entry persists across sessions and is injected into every future system prompt,
288
438
  // so block outright rather than strip. Hidden/bidi-control chars have no legitimate place
@@ -312,6 +462,173 @@ export class FileStoreProvider {
312
462
  };
313
463
  }
314
464
  }
465
+ if (target === "okf") {
466
+ if (action === "list") {
467
+ if (this.okfStore === undefined) {
468
+ return {
469
+ content: [{ type: "text", text: "Error: Memory provider is not initialized." }],
470
+ details: { success: false },
471
+ };
472
+ }
473
+ const catalog = this.okfStore.list();
474
+ return {
475
+ content: [{ type: "text", text: catalog || "No structured OKF memory records found." }],
476
+ details: { success: true },
477
+ };
478
+ }
479
+ if (action !== "add" && action !== "remove") {
480
+ return {
481
+ content: [
482
+ {
483
+ type: "text",
484
+ text: "Error: structured OKF memory only supports action 'add' or 'remove'.",
485
+ },
486
+ ],
487
+ details: { success: false, error: "Unsupported OKF action" },
488
+ };
489
+ }
490
+ if (action === "remove") {
491
+ if (this.okfStore === undefined ||
492
+ type === undefined ||
493
+ title === undefined ||
494
+ !PI_OKF_TYPES.includes(type)) {
495
+ return {
496
+ content: [{ type: "text", text: "Error: OKF removal requires a valid type and title." }],
497
+ details: { success: false, error: "Incomplete OKF removal" },
498
+ };
499
+ }
500
+ try {
501
+ const removed = await this.okfStore.remove(type, title, expectedDigest);
502
+ if (removed.removed)
503
+ this.options.onDurableMemoryChanged?.();
504
+ return {
505
+ content: [
506
+ {
507
+ type: "text",
508
+ text: removed.removed
509
+ ? "Successfully removed structured OKF project memory."
510
+ : "Structured OKF project memory was already absent.",
511
+ },
512
+ ],
513
+ details: { success: true, removed: removed.removed },
514
+ };
515
+ }
516
+ catch (err) {
517
+ const error = String(err);
518
+ return {
519
+ content: [{ type: "text", text: `Error: Failed to remove structured OKF memory: ${error}` }],
520
+ details: { success: false, error: /ENOENT/.test(error) ? "not found" : error },
521
+ };
522
+ }
523
+ }
524
+ if (type === undefined ||
525
+ title === undefined ||
526
+ description === undefined ||
527
+ scope !== "project" ||
528
+ content === undefined ||
529
+ evidenceRefs === undefined ||
530
+ evidenceRefs.length === 0) {
531
+ return {
532
+ content: [
533
+ {
534
+ type: "text",
535
+ text: "Error: structured OKF memory requires type, title, description, scope, content, and evidenceRefs.",
536
+ },
537
+ ],
538
+ details: { success: false, error: "Incomplete OKF memory" },
539
+ };
540
+ }
541
+ if (!PI_OKF_TYPES.includes(type)) {
542
+ return {
543
+ content: [{ type: "text", text: `Error: unsupported OKF type '${type}'.` }],
544
+ details: { success: false, error: "Unsupported OKF type" },
545
+ };
546
+ }
547
+ const validationErrors = validateOkfMemoryDocumentInput({
548
+ type: type,
549
+ title,
550
+ description,
551
+ scope,
552
+ body: content,
553
+ tags,
554
+ evidenceRefs,
555
+ }, { projectOnly: true, requireEvidence: true });
556
+ if (validationErrors.length > 0) {
557
+ return {
558
+ content: [
559
+ {
560
+ type: "text",
561
+ text: `Error: Invalid structured OKF memory: ${validationErrors.join("; ")}`,
562
+ },
563
+ ],
564
+ details: { success: false, error: "Invalid OKF memory" },
565
+ };
566
+ }
567
+ const okfText = [type, title, description, scope, content, ...(tags ?? []), ...evidenceRefs].join("\n");
568
+ if (hasInvisibleUnicode(okfText)) {
569
+ return {
570
+ content: [
571
+ {
572
+ type: "text",
573
+ text: "Error: OKF write rejected — contains hidden/bidirectional control characters.",
574
+ },
575
+ ],
576
+ details: { success: false, error: "Invisible unicode in OKF write" },
577
+ };
578
+ }
579
+ const threats = scanContextFileThreats(okfText, "strict");
580
+ if (threats.length > 0) {
581
+ return {
582
+ content: [
583
+ {
584
+ type: "text",
585
+ text: `Error: OKF write rejected — potential injection/exfiltration detected (${threats.join(", ")}).`,
586
+ },
587
+ ],
588
+ details: { success: false, error: "Threat in OKF write" },
589
+ };
590
+ }
591
+ try {
592
+ if (this.okfStore === undefined)
593
+ throw new Error("Memory provider is not initialized.");
594
+ const stored = await this.okfStore.put({
595
+ type: type,
596
+ title,
597
+ description,
598
+ scope,
599
+ body: content,
600
+ tags,
601
+ evidenceRefs,
602
+ });
603
+ if (stored.created)
604
+ this.options.onDurableMemoryChanged?.();
605
+ return {
606
+ content: [
607
+ {
608
+ type: "text",
609
+ text: stored.created
610
+ ? "Successfully added structured OKF project memory."
611
+ : "Structured OKF project memory already contained this exact record.",
612
+ },
613
+ ],
614
+ details: { success: true, created: stored.created, digest: stored.digest },
615
+ };
616
+ }
617
+ catch (err) {
618
+ return {
619
+ content: [
620
+ { type: "text", text: `Error: Failed to write structured OKF memory: ${String(err)}` },
621
+ ],
622
+ details: { success: false, error: String(err) },
623
+ };
624
+ }
625
+ }
626
+ if (action === "list") {
627
+ return {
628
+ content: [{ type: "text", text: "Error: action 'list' is only supported for target 'okf'." }],
629
+ details: { success: false, error: "Unsupported list target" },
630
+ };
631
+ }
315
632
  const filePath = target === "memory" ? this.memoryFilePath : this.userFilePath;
316
633
  const statePath = target === "memory" ? this.memoryStatePath : this.userStatePath;
317
634
  const budget = target === "memory" ? FileStoreProvider.BUDGET_MEMORY : FileStoreProvider.BUDGET_USER;