psyclaw 0.24.0 → 0.25.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 (277) hide show
  1. package/README.md +46 -53
  2. package/{dist/apps → apps}/panel/index.html +28 -50
  3. package/package.json +10 -20
  4. package/scripts/__pycache__/build_dist.cpython-314.pyc +0 -0
  5. package/scripts/__pycache__/build_whitepaper_docx.cpython-314.pyc +0 -0
  6. package/scripts/build_preprint_docx.py +729 -0
  7. package/scripts/build_preprint_figures.py +238 -0
  8. package/scripts/build_three_line_table_fixture.py +56 -0
  9. package/scripts/build_whitepaper_docx.py +768 -0
  10. package/scripts/check-branding.mjs +159 -0
  11. package/scripts/copy-panel.mjs +11 -0
  12. package/scripts/rebrand-pi.mjs +292 -0
  13. package/scripts/verify_docx.py +41 -0
  14. package/skills/core/citation-audit/SKILL.md +9 -9
  15. package/skills/core/evidence-capture/SKILL.md +9 -9
  16. package/skills/core/manifest.json +15 -15
  17. package/skills/core/research-brief/SKILL.md +8 -8
  18. package/skills/core/research-intake/SKILL.md +9 -9
  19. package/dist/src/adapters/pi/extension.d.ts +0 -19
  20. package/dist/src/adapters/pi/extension.js +0 -735
  21. package/dist/src/adapters/pi/extension.js.map +0 -1
  22. package/dist/src/adapters/pi/model.d.ts +0 -72
  23. package/dist/src/adapters/pi/model.js +0 -152
  24. package/dist/src/adapters/pi/model.js.map +0 -1
  25. package/dist/src/adapters/pi/resources.d.ts +0 -23
  26. package/dist/src/adapters/pi/resources.js +0 -54
  27. package/dist/src/adapters/pi/resources.js.map +0 -1
  28. package/dist/src/adapters/pi/rpc.d.ts +0 -56
  29. package/dist/src/adapters/pi/rpc.js +0 -248
  30. package/dist/src/adapters/pi/rpc.js.map +0 -1
  31. package/dist/src/adapters/pi/session.d.ts +0 -30
  32. package/dist/src/adapters/pi/session.js +0 -64
  33. package/dist/src/adapters/pi/session.js.map +0 -1
  34. package/dist/src/agents/catalog.d.ts +0 -30
  35. package/dist/src/agents/catalog.js +0 -118
  36. package/dist/src/agents/catalog.js.map +0 -1
  37. package/dist/src/agents/discover.d.ts +0 -28
  38. package/dist/src/agents/discover.js +0 -127
  39. package/dist/src/agents/discover.js.map +0 -1
  40. package/dist/src/agents/import.d.ts +0 -67
  41. package/dist/src/agents/import.js +0 -801
  42. package/dist/src/agents/import.js.map +0 -1
  43. package/dist/src/analysis/hooks.d.ts +0 -81
  44. package/dist/src/analysis/hooks.js +0 -139
  45. package/dist/src/analysis/hooks.js.map +0 -1
  46. package/dist/src/analysis/pre-registration.d.ts +0 -18
  47. package/dist/src/analysis/pre-registration.js +0 -86
  48. package/dist/src/analysis/pre-registration.js.map +0 -1
  49. package/dist/src/branding.d.ts +0 -43
  50. package/dist/src/branding.js +0 -127
  51. package/dist/src/branding.js.map +0 -1
  52. package/dist/src/chat.d.ts +0 -16
  53. package/dist/src/chat.js +0 -67
  54. package/dist/src/chat.js.map +0 -1
  55. package/dist/src/cli.d.ts +0 -2
  56. package/dist/src/cli.js +0 -316
  57. package/dist/src/cli.js.map +0 -1
  58. package/dist/src/core/citations.d.ts +0 -44
  59. package/dist/src/core/citations.js +0 -48
  60. package/dist/src/core/citations.js.map +0 -1
  61. package/dist/src/core/contracts.d.ts +0 -119
  62. package/dist/src/core/contracts.js +0 -2
  63. package/dist/src/core/contracts.js.map +0 -1
  64. package/dist/src/core/docx.d.ts +0 -11
  65. package/dist/src/core/docx.js +0 -46
  66. package/dist/src/core/docx.js.map +0 -1
  67. package/dist/src/core/doi.d.ts +0 -41
  68. package/dist/src/core/doi.js +0 -82
  69. package/dist/src/core/doi.js.map +0 -1
  70. package/dist/src/core/evidence-policy.d.ts +0 -24
  71. package/dist/src/core/evidence-policy.js +0 -308
  72. package/dist/src/core/evidence-policy.js.map +0 -1
  73. package/dist/src/core/filekind.d.ts +0 -15
  74. package/dist/src/core/filekind.js +0 -82
  75. package/dist/src/core/filekind.js.map +0 -1
  76. package/dist/src/core/hash.d.ts +0 -2
  77. package/dist/src/core/hash.js +0 -17
  78. package/dist/src/core/hash.js.map +0 -1
  79. package/dist/src/core/pricing.d.ts +0 -38
  80. package/dist/src/core/pricing.js +0 -110
  81. package/dist/src/core/pricing.js.map +0 -1
  82. package/dist/src/core/redact.d.ts +0 -12
  83. package/dist/src/core/redact.js +0 -48
  84. package/dist/src/core/redact.js.map +0 -1
  85. package/dist/src/core/references.d.ts +0 -55
  86. package/dist/src/core/references.js +0 -102
  87. package/dist/src/core/references.js.map +0 -1
  88. package/dist/src/core/schemas.d.ts +0 -162
  89. package/dist/src/core/schemas.js +0 -160
  90. package/dist/src/core/schemas.js.map +0 -1
  91. package/dist/src/extension.d.ts +0 -1
  92. package/dist/src/extension.js +0 -2
  93. package/dist/src/extension.js.map +0 -1
  94. package/dist/src/index.d.ts +0 -72
  95. package/dist/src/index.js +0 -73
  96. package/dist/src/index.js.map +0 -1
  97. package/dist/src/install/installer.d.ts +0 -147
  98. package/dist/src/install/installer.js +0 -743
  99. package/dist/src/install/installer.js.map +0 -1
  100. package/dist/src/integrations/contracts.d.ts +0 -35
  101. package/dist/src/integrations/contracts.js +0 -27
  102. package/dist/src/integrations/contracts.js.map +0 -1
  103. package/dist/src/integrations/mcp.d.ts +0 -155
  104. package/dist/src/integrations/mcp.js +0 -826
  105. package/dist/src/integrations/mcp.js.map +0 -1
  106. package/dist/src/knowledge-map/contracts.d.ts +0 -20
  107. package/dist/src/knowledge-map/contracts.js +0 -2
  108. package/dist/src/knowledge-map/contracts.js.map +0 -1
  109. package/dist/src/knowledge-map/index.d.ts +0 -4
  110. package/dist/src/knowledge-map/index.js +0 -39
  111. package/dist/src/knowledge-map/index.js.map +0 -1
  112. package/dist/src/literature/contracts.d.ts +0 -106
  113. package/dist/src/literature/contracts.js +0 -2
  114. package/dist/src/literature/contracts.js.map +0 -1
  115. package/dist/src/literature/fulltext.d.ts +0 -7
  116. package/dist/src/literature/fulltext.js +0 -24
  117. package/dist/src/literature/fulltext.js.map +0 -1
  118. package/dist/src/literature/knowledge-map.d.ts +0 -2
  119. package/dist/src/literature/knowledge-map.js +0 -20
  120. package/dist/src/literature/knowledge-map.js.map +0 -1
  121. package/dist/src/literature/ledger.d.ts +0 -3
  122. package/dist/src/literature/ledger.js +0 -17
  123. package/dist/src/literature/ledger.js.map +0 -1
  124. package/dist/src/literature/metadata.d.ts +0 -6
  125. package/dist/src/literature/metadata.js +0 -32
  126. package/dist/src/literature/metadata.js.map +0 -1
  127. package/dist/src/memory/store.d.ts +0 -22
  128. package/dist/src/memory/store.js +0 -73
  129. package/dist/src/memory/store.js.map +0 -1
  130. package/dist/src/orchestration/contracts.d.ts +0 -61
  131. package/dist/src/orchestration/contracts.js +0 -2
  132. package/dist/src/orchestration/contracts.js.map +0 -1
  133. package/dist/src/orchestration/pi-executor.d.ts +0 -28
  134. package/dist/src/orchestration/pi-executor.js +0 -169
  135. package/dist/src/orchestration/pi-executor.js.map +0 -1
  136. package/dist/src/orchestration/runner.d.ts +0 -196
  137. package/dist/src/orchestration/runner.js +0 -991
  138. package/dist/src/orchestration/runner.js.map +0 -1
  139. package/dist/src/orchestration/scheduler.d.ts +0 -8
  140. package/dist/src/orchestration/scheduler.js +0 -335
  141. package/dist/src/orchestration/scheduler.js.map +0 -1
  142. package/dist/src/panel/events.d.ts +0 -20
  143. package/dist/src/panel/events.js +0 -93
  144. package/dist/src/panel/events.js.map +0 -1
  145. package/dist/src/panel/extension.d.ts +0 -8
  146. package/dist/src/panel/extension.js +0 -114
  147. package/dist/src/panel/extension.js.map +0 -1
  148. package/dist/src/panel/literature-map.d.ts +0 -26
  149. package/dist/src/panel/literature-map.js +0 -34
  150. package/dist/src/panel/literature-map.js.map +0 -1
  151. package/dist/src/panel/projection.d.ts +0 -51
  152. package/dist/src/panel/projection.js +0 -288
  153. package/dist/src/panel/projection.js.map +0 -1
  154. package/dist/src/panel/server.d.ts +0 -46
  155. package/dist/src/panel/server.js +0 -1610
  156. package/dist/src/panel/server.js.map +0 -1
  157. package/dist/src/panel/usage.d.ts +0 -53
  158. package/dist/src/panel/usage.js +0 -150
  159. package/dist/src/panel/usage.js.map +0 -1
  160. package/dist/src/project/bootstrap.d.ts +0 -10
  161. package/dist/src/project/bootstrap.js +0 -83
  162. package/dist/src/project/bootstrap.js.map +0 -1
  163. package/dist/src/project/hitl.d.ts +0 -12
  164. package/dist/src/project/hitl.js +0 -43
  165. package/dist/src/project/hitl.js.map +0 -1
  166. package/dist/src/project/jsonl.d.ts +0 -16
  167. package/dist/src/project/jsonl.js +0 -93
  168. package/dist/src/project/jsonl.js.map +0 -1
  169. package/dist/src/project/manuscript.d.ts +0 -21
  170. package/dist/src/project/manuscript.js +0 -74
  171. package/dist/src/project/manuscript.js.map +0 -1
  172. package/dist/src/project/paths.d.ts +0 -38
  173. package/dist/src/project/paths.js +0 -166
  174. package/dist/src/project/paths.js.map +0 -1
  175. package/dist/src/project/versions.d.ts +0 -10
  176. package/dist/src/project/versions.js +0 -14
  177. package/dist/src/project/versions.js.map +0 -1
  178. package/dist/src/psyclaw-theme.d.ts +0 -88
  179. package/dist/src/psyclaw-theme.js +0 -89
  180. package/dist/src/psyclaw-theme.js.map +0 -1
  181. package/dist/src/research/brief.d.ts +0 -11
  182. package/dist/src/research/brief.js +0 -81
  183. package/dist/src/research/brief.js.map +0 -1
  184. package/dist/src/research/ledger.d.ts +0 -12
  185. package/dist/src/research/ledger.js +0 -43
  186. package/dist/src/research/ledger.js.map +0 -1
  187. package/dist/src/run.d.ts +0 -20
  188. package/dist/src/run.js +0 -34
  189. package/dist/src/run.js.map +0 -1
  190. package/dist/src/setup.d.ts +0 -54
  191. package/dist/src/setup.js +0 -221
  192. package/dist/src/setup.js.map +0 -1
  193. package/dist/src/skills/contracts.d.ts +0 -105
  194. package/dist/src/skills/contracts.js +0 -3
  195. package/dist/src/skills/contracts.js.map +0 -1
  196. package/dist/src/skills/preflight.d.ts +0 -10
  197. package/dist/src/skills/preflight.js +0 -39
  198. package/dist/src/skills/preflight.js.map +0 -1
  199. package/dist/src/skills/registry.d.ts +0 -28
  200. package/dist/src/skills/registry.js +0 -556
  201. package/dist/src/skills/registry.js.map +0 -1
  202. package/dist/src/style/artifact.d.ts +0 -6
  203. package/dist/src/style/artifact.js +0 -61
  204. package/dist/src/style/artifact.js.map +0 -1
  205. package/dist/src/style/cli-ui.d.ts +0 -41
  206. package/dist/src/style/cli-ui.js +0 -119
  207. package/dist/src/style/cli-ui.js.map +0 -1
  208. package/dist/src/style/contracts.d.ts +0 -34
  209. package/dist/src/style/contracts.js +0 -2
  210. package/dist/src/style/contracts.js.map +0 -1
  211. package/dist/src/style/registry.d.ts +0 -16
  212. package/dist/src/style/registry.js +0 -50
  213. package/dist/src/style/registry.js.map +0 -1
  214. package/dist/src/trust/manifest.d.ts +0 -42
  215. package/dist/src/trust/manifest.js +0 -53
  216. package/dist/src/trust/manifest.js.map +0 -1
  217. package/dist/src/trust/sbom.d.ts +0 -54
  218. package/dist/src/trust/sbom.js +0 -77
  219. package/dist/src/trust/sbom.js.map +0 -1
  220. package/dist/src/tui/app.d.ts +0 -3
  221. package/dist/src/tui/app.js +0 -103
  222. package/dist/src/tui/app.js.map +0 -1
  223. package/dist/src/tui/model.d.ts +0 -13
  224. package/dist/src/tui/model.js +0 -25
  225. package/dist/src/tui/model.js.map +0 -1
  226. package/dist/src/updates/check.d.ts +0 -43
  227. package/dist/src/updates/check.js +0 -68
  228. package/dist/src/updates/check.js.map +0 -1
  229. package/dist/src/updates/manifest.d.ts +0 -19
  230. package/dist/src/updates/manifest.js +0 -58
  231. package/dist/src/updates/manifest.js.map +0 -1
  232. package/dist/src/updates/registry.d.ts +0 -21
  233. package/dist/src/updates/registry.js +0 -82
  234. package/dist/src/updates/registry.js.map +0 -1
  235. package/dist/src/updates/skills.d.ts +0 -15
  236. package/dist/src/updates/skills.js +0 -39
  237. package/dist/src/updates/skills.js.map +0 -1
  238. package/dist/src/updates/status.d.ts +0 -7
  239. package/dist/src/updates/status.js +0 -37
  240. package/dist/src/updates/status.js.map +0 -1
  241. package/dist/src/updates/update.d.ts +0 -43
  242. package/dist/src/updates/update.js +0 -126
  243. package/dist/src/updates/update.js.map +0 -1
  244. package/dist/src/wizard.d.ts +0 -7
  245. package/dist/src/wizard.js +0 -90
  246. package/dist/src/wizard.js.map +0 -1
  247. package/dist/src/workflows/analysis-delegation.d.ts +0 -3
  248. package/dist/src/workflows/analysis-delegation.js +0 -96
  249. package/dist/src/workflows/analysis-delegation.js.map +0 -1
  250. package/dist/src/workflows/expert-review-runner.d.ts +0 -29
  251. package/dist/src/workflows/expert-review-runner.js +0 -35
  252. package/dist/src/workflows/expert-review-runner.js.map +0 -1
  253. package/dist/src/workflows/expert-review.d.ts +0 -140
  254. package/dist/src/workflows/expert-review.js +0 -111
  255. package/dist/src/workflows/expert-review.js.map +0 -1
  256. package/dist/src/workflows/institutional-fulltext.d.ts +0 -16
  257. package/dist/src/workflows/institutional-fulltext.js +0 -110
  258. package/dist/src/workflows/institutional-fulltext.js.map +0 -1
  259. package/dist/src/workflows/literature-review.d.ts +0 -3
  260. package/dist/src/workflows/literature-review.js +0 -76
  261. package/dist/src/workflows/literature-review.js.map +0 -1
  262. package/dist/src/workflows/meta-analysis.d.ts +0 -38
  263. package/dist/src/workflows/meta-analysis.js +0 -185
  264. package/dist/src/workflows/meta-analysis.js.map +0 -1
  265. package/dist/src/workflows/publish.d.ts +0 -51
  266. package/dist/src/workflows/publish.js +0 -153
  267. package/dist/src/workflows/publish.js.map +0 -1
  268. package/dist/src/workflows/spec.d.ts +0 -51
  269. package/dist/src/workflows/spec.js +0 -157
  270. package/dist/src/workflows/spec.js.map +0 -1
  271. package/dist/src/workflows/style-contract.d.ts +0 -24
  272. package/dist/src/workflows/style-contract.js +0 -23
  273. package/dist/src/workflows/style-contract.js.map +0 -1
  274. package/dist/src/workflows/writing-review.d.ts +0 -15
  275. package/dist/src/workflows/writing-review.js +0 -82
  276. package/dist/src/workflows/writing-review.js.map +0 -1
  277. package/package.json.psyclaw +0 -21
@@ -1,169 +0,0 @@
1
- import { BoundedOrchestrator, } from "./runner.js";
2
- import { PiRpcClient } from "../adapters/pi/rpc.js";
3
- function blockedReport(task, context, summary) {
4
- return {
5
- schemaVersion: "psyclaw/worker-report/v1",
6
- taskId: task.id,
7
- dispatchId: context.dispatchId,
8
- outcome: "blocked",
9
- summary,
10
- filesModified: [],
11
- verification: [],
12
- blockers: [summary],
13
- };
14
- }
15
- function textFromMessage(message) {
16
- if (!message || typeof message !== "object")
17
- return undefined;
18
- const content = message.content;
19
- if (!Array.isArray(content))
20
- return undefined;
21
- const text = content
22
- .filter((part) => Boolean(part && typeof part === "object" && part.type === "text" && typeof part.text === "string"))
23
- .map((part) => part.text)
24
- .join("");
25
- return text || undefined;
26
- }
27
- function extractJson(text) {
28
- const trimmed = text.trim();
29
- const fenced = trimmed.match(/```(?:json)?\s*([\s\S]*?)\s*```/i)?.[1];
30
- const candidate = (fenced ?? trimmed).trim();
31
- try {
32
- return JSON.parse(candidate);
33
- }
34
- catch {
35
- const start = candidate.indexOf("{");
36
- const end = candidate.lastIndexOf("}");
37
- if (start < 0 || end <= start)
38
- return undefined;
39
- try {
40
- return JSON.parse(candidate.slice(start, end + 1));
41
- }
42
- catch {
43
- return undefined;
44
- }
45
- }
46
- }
47
- function parseWorkerReport(value, task, context) {
48
- if (!value || typeof value !== "object")
49
- return undefined;
50
- const record = value;
51
- if (record.schemaVersion !== "psyclaw/worker-report/v1")
52
- return undefined;
53
- if (record.taskId !== task.id || record.dispatchId !== context.dispatchId)
54
- return undefined;
55
- if (record.outcome !== "succeeded" && record.outcome !== "blocked" && record.outcome !== "failed")
56
- return undefined;
57
- if (typeof record.summary !== "string" || record.summary.trim() === "")
58
- return undefined;
59
- if (!Array.isArray(record.filesModified) || !record.filesModified.every((item) => typeof item === "string"))
60
- return undefined;
61
- if (!Array.isArray(record.blockers) || !record.blockers.every((item) => typeof item === "string"))
62
- return undefined;
63
- if (!Array.isArray(record.verification))
64
- return undefined;
65
- if (record.filesModified.length > 0)
66
- return undefined;
67
- return {
68
- schemaVersion: "psyclaw/worker-report/v1",
69
- taskId: task.id,
70
- dispatchId: context.dispatchId,
71
- outcome: record.outcome,
72
- summary: record.summary,
73
- filesModified: [],
74
- verification: record.verification.filter((item) => {
75
- if (!item || typeof item !== "object")
76
- return false;
77
- const candidate = item;
78
- return typeof candidate.command === "string" && candidate.command.trim() !== ""
79
- && Number.isInteger(candidate.exitCode) && (candidate.outputDigest === undefined || typeof candidate.outputDigest === "string");
80
- }),
81
- blockers: record.blockers,
82
- };
83
- }
84
- function lastAssistantText(events) {
85
- for (let index = events.length - 1; index >= 0; index -= 1) {
86
- const event = events[index];
87
- if (event?.type !== "message_end")
88
- continue;
89
- const text = textFromMessage(event.message);
90
- if (text)
91
- return text;
92
- }
93
- return undefined;
94
- }
95
- function taskPrompt(task, context) {
96
- return [
97
- "You are a read-only psyclaw research worker.",
98
- "Do not write, edit, delete, execute shell commands, access network services, or modify credentials.",
99
- "Inspect only the supplied task inputs and project files with read/grep/find/ls.",
100
- "At the end return ONLY one JSON object matching this schema:",
101
- '{"schemaVersion":"psyclaw/worker-report/v1","taskId":"...","dispatchId":"...","outcome":"succeeded|blocked|failed","summary":"...","filesModified":[],"verification":[{"command":"...","exitCode":0}],"blockers":[]}',
102
- `taskId=${task.id}`,
103
- `dispatchId=${context.dispatchId}`,
104
- `objective=${task.objective}`,
105
- `inputs=${JSON.stringify(task.inputs)}`,
106
- ].join("\n");
107
- }
108
- /**
109
- * Execute one task in a separate Pi process with extensions, skills, context
110
- * files and all mutating tools disabled. This is a process boundary, not a
111
- * complete OS sandbox; deployments needing hostile-code isolation must add a
112
- * container or equivalent runtime policy.
113
- */
114
- export function createPiReadOnlyExecutor(options) {
115
- return async (task, context) => {
116
- const effects = task.allowedEffects ?? ["read"];
117
- if (effects.some((effect) => effect !== "read")) {
118
- return { report: blockedReport(task, context, "Pi read-only executor cannot run side-effecting tasks") };
119
- }
120
- const client = new PiRpcClient({
121
- cwd: options.cwd,
122
- ...(options.cliPath === undefined ? {} : { cliPath: options.cliPath }),
123
- ...(options.command === undefined ? {} : { command: options.command }),
124
- ...(options.provider === undefined ? {} : { provider: options.provider }),
125
- ...(options.model === undefined ? {} : { model: options.model }),
126
- ...(options.agentDir === undefined ? {} : { agentDir: options.agentDir }),
127
- ...(options.env === undefined ? {} : { env: options.env }),
128
- ...(options.timeoutMs === undefined ? {} : { timeoutMs: options.timeoutMs }),
129
- tools: ["read", "grep", "find", "ls"],
130
- });
131
- try {
132
- await client.start();
133
- const events = await client.promptAndWait(taskPrompt(task, context), options.timeoutMs);
134
- const report = parseWorkerReport(extractJson(lastAssistantText(events) ?? ""), task, context);
135
- if (!report)
136
- return { report: blockedReport(task, context, "Worker did not return a valid structured report") };
137
- return { report };
138
- }
139
- catch {
140
- return { report: blockedReport(task, context, "Pi worker process failed or timed out") };
141
- }
142
- finally {
143
- await client.stop();
144
- }
145
- };
146
- }
147
- export async function runPlanWithPi(plan, options = { cwd: process.cwd() }) {
148
- const executor = createPiReadOnlyExecutor(options);
149
- return new BoundedOrchestrator({
150
- executor,
151
- root: options.root ?? options.cwd,
152
- ...(options.maxWorkers === undefined ? {} : { maxWorkers: options.maxWorkers }),
153
- allowWrites: false,
154
- ...(options.pauseRequested === undefined ? {} : { pauseRequested: options.pauseRequested }),
155
- ...(options.onEvent === undefined ? {} : { onEvent: options.onEvent }),
156
- }).run(plan);
157
- }
158
- export async function resumePlanWithPi(plan, options = { cwd: process.cwd() }) {
159
- const executor = createPiReadOnlyExecutor(options);
160
- return new BoundedOrchestrator({
161
- executor,
162
- root: options.root ?? options.cwd,
163
- ...(options.maxWorkers === undefined ? {} : { maxWorkers: options.maxWorkers }),
164
- allowWrites: false,
165
- ...(options.pauseRequested === undefined ? {} : { pauseRequested: options.pauseRequested }),
166
- ...(options.onEvent === undefined ? {} : { onEvent: options.onEvent }),
167
- }).resume(plan);
168
- }
169
- //# sourceMappingURL=pi-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pi-executor.js","sourceRoot":"","sources":["../../../src/orchestration/pi-executor.ts"],"names":[],"mappings":"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"}
@@ -1,196 +0,0 @@
1
- import { Type } from "typebox";
2
- import type { Effect, ToolReceipt } from "../core/contracts.js";
3
- import type { Plan, TaskNode, WorkerReport } from "./contracts.js";
4
- /**
5
- * The planner boundary intentionally has no tool or filesystem capability.
6
- * A caller gives us an opaque planner result and we only accept a strict Plan.
7
- */
8
- export interface PlannerRequest {
9
- goal: string;
10
- paradigm?: string;
11
- runId?: string;
12
- }
13
- export type Planner = (request: PlannerRequest) => unknown | Promise<unknown>;
14
- export declare const PlanSchema: Type.TObject<{
15
- schemaVersion: Type.TLiteral<"psyclaw/plan/v1">;
16
- runId: Type.TString;
17
- tasks: Type.TArray<Type.TObject<{
18
- id: Type.TString;
19
- role: Type.TUnion<[Type.TLiteral<"planner">, Type.TLiteral<"researcher">, Type.TLiteral<"analyst">, Type.TLiteral<"critic">, Type.TLiteral<"writer">, Type.TLiteral<"verifier">]>;
20
- objective: Type.TString;
21
- deps: Type.TArray<Type.TString>;
22
- ownedPaths: Type.TArray<Type.TString>;
23
- parallelSafe: Type.TBoolean;
24
- inputs: Type.TArray<Type.TString>;
25
- outputs: Type.TArray<Type.TString>;
26
- allowedEffects: Type.TOptional<Type.TArray<Type.TUnion<[Type.TLiteral<"read">, Type.TLiteral<"write">, Type.TLiteral<"network">, Type.TLiteral<"destructive">]>>>;
27
- completionContract: Type.TObject<{
28
- requiredArtifacts: Type.TArray<Type.TString>;
29
- requiredReceiptEffects: Type.TArray<Type.TUnion<[Type.TLiteral<"read">, Type.TLiteral<"write">, Type.TLiteral<"network">, Type.TLiteral<"destructive">]>>;
30
- mustPassGates: Type.TArray<Type.TString>;
31
- }>;
32
- }>>;
33
- budget: Type.TObject<{
34
- maxTurns: Type.TInteger;
35
- maxWorkers: Type.TInteger;
36
- }>;
37
- horizon: Type.TOptional<Type.TObject<{
38
- strategy: Type.TLiteral<"hierarchical-plan-act-reflect">;
39
- maxIterations: Type.TInteger;
40
- reflectionEvery: Type.TInteger;
41
- }>>;
42
- }>;
43
- export declare class PlanSchemaError extends Error {
44
- readonly diagnostics: string[];
45
- constructor(diagnostics: string[]);
46
- }
47
- /** Parse and validate the only value a planner is allowed to hand to runtime. */
48
- export declare function validatePlanSchema(value: unknown): Plan;
49
- /** Alias used by integrations that call the boundary an "accepted plan". */
50
- export declare const acceptPlan: typeof validatePlanSchema;
51
- /** Execute a planner with no ambient tool context, then enforce the Plan schema. */
52
- export declare function planOnly(planner: Planner, request: PlannerRequest): Promise<Plan>;
53
- export interface WorkerArtifact {
54
- path: string;
55
- sha256?: string;
56
- }
57
- export interface WorkerExecutionResult {
58
- report: WorkerReport;
59
- artifacts?: (string | WorkerArtifact)[];
60
- receipts?: ToolReceipt[];
61
- passedGates?: string[];
62
- /** Optional revision generated by the coordinator; stale revisions are rejected. */
63
- specRevision?: string;
64
- }
65
- export interface WorkerContext {
66
- runId: string;
67
- dispatchId: string;
68
- attempt: number;
69
- task: TaskNode;
70
- /** MVP workers receive this as true and should only inspect inputs. */
71
- readOnly: boolean;
72
- signal: AbortSignal;
73
- }
74
- export type WorkerExecutor = (task: TaskNode, context: WorkerContext) => WorkerExecutionResult | WorkerReport | Promise<WorkerExecutionResult | WorkerReport>;
75
- export interface OrchestratorOptions {
76
- executor: WorkerExecutor;
77
- /** Project root used for the default checkpoint location. */
78
- root?: string;
79
- checkpointPath?: string;
80
- /** An input fingerprint that must remain stable across resume. */
81
- inputDigest?: string;
82
- /** Coordinator revision that must remain stable across resume. */
83
- specRevision?: string;
84
- /** Runtime budget; a resume may explicitly raise this after human approval. */
85
- maxTurns?: number;
86
- /** Can only lower the plan's worker count; never raises the hard cap of four. */
87
- maxWorkers?: number;
88
- /** Explicit human-approved write mode. It is false by default. */
89
- allowWrites?: boolean;
90
- /** Grants network effects. `allowWrites` never implies this. */
91
- allowNetwork?: boolean;
92
- /** Grants destructive effects. `allowWrites` never implies this. */
93
- allowDestructive?: boolean;
94
- now?: () => string;
95
- onEvent?: (event: RunnerEvent) => void | Promise<void>;
96
- /** Cooperative pause hook checked between task batches. */
97
- pauseRequested?: () => boolean | Promise<boolean>;
98
- }
99
- export interface RunnerEvent {
100
- type: "planned" | "started" | "completed" | "blocked" | "checkpoint";
101
- runId: string;
102
- at: string;
103
- taskId?: string;
104
- dispatchId?: string;
105
- message?: string;
106
- }
107
- export type TaskRunStatus = "pending" | "running" | "succeeded" | "failed" | "blocked";
108
- export interface TaskCheckpoint {
109
- status: TaskRunStatus;
110
- dispatchId?: string;
111
- attempt: number;
112
- report?: WorkerReport;
113
- artifacts: string[];
114
- artifactRecords?: WorkerArtifact[];
115
- receipts: ToolReceipt[];
116
- passedGates: string[];
117
- }
118
- export interface RunnerCheckpoint {
119
- schemaVersion: "psyclaw/orchestrator-checkpoint/v1";
120
- runId: string;
121
- planHash: string;
122
- inputDigest?: string;
123
- specRevision?: string;
124
- budgetLimit: number;
125
- budgetUsed: number;
126
- tasks: Record<string, TaskCheckpoint>;
127
- writtenPaths: string[];
128
- updatedAt: string;
129
- }
130
- export interface OrchestrationResult {
131
- runId: string;
132
- status: "completed" | "paused" | "blocked";
133
- planHash: string;
134
- budgetUsed: number;
135
- checkpoint?: RunnerCheckpoint;
136
- reports: WorkerReport[];
137
- diagnostics: string[];
138
- }
139
- export interface NormalizedWorkerResult {
140
- report: WorkerReport;
141
- artifacts: string[];
142
- artifactRecords?: WorkerArtifact[];
143
- artifactErrors?: string[];
144
- receipts: ToolReceipt[];
145
- passedGates: string[];
146
- specRevision?: string;
147
- schemaValid: boolean;
148
- }
149
- /**
150
- * A deliberately small coordinator. It owns scheduling and acceptance, while
151
- * the executor owns the actual Pi/skill/MCP call. No model output can mutate
152
- * task state without passing the checks below.
153
- */
154
- export declare class BoundedOrchestrator {
155
- private readonly options;
156
- private checkpointWrite;
157
- constructor(options: OrchestratorOptions);
158
- run(planValue: unknown): Promise<OrchestrationResult>;
159
- resume(planValue: unknown): Promise<OrchestrationResult>;
160
- private execute;
161
- private dispatch;
162
- /** Persist failure experience as a pending lesson; human approval promotes it. */
163
- private draftReflection;
164
- private checkpointPath;
165
- private allowedEffects;
166
- private taskAllowsWrite;
167
- private taskIsReadOnly;
168
- private persist;
169
- private markBlocked;
170
- private emit;
171
- private timestamp;
172
- private assertCheckpointPath;
173
- private blocked;
174
- private blockedWithoutPlan;
175
- private result;
176
- }
177
- /** Alias kept short for callers that do not need the implementation name. */
178
- export declare const Orchestrator: typeof BoundedOrchestrator;
179
- export declare function runPlan(plan: unknown, options: OrchestratorOptions): Promise<OrchestrationResult>;
180
- export declare function resumePlan(plan: unknown, options: OrchestratorOptions): Promise<OrchestrationResult>;
181
- export interface CompletionAcceptance {
182
- ok: boolean;
183
- reasons: string[];
184
- }
185
- export declare function verifyWorkerCompletion(task: TaskNode, result: NormalizedWorkerResult | WorkerExecutionResult, policy?: {
186
- readOnly: boolean;
187
- writtenPaths?: readonly string[];
188
- artifactRoot?: string;
189
- allowedEffects?: ReadonlySet<Effect>;
190
- seenIdempotencyKeys?: readonly string[];
191
- expectedRunId?: string;
192
- expectedTaskId?: string;
193
- expectedDispatchId?: string;
194
- expectedSpecRevision?: string;
195
- reservedPaths?: readonly string[];
196
- }): CompletionAcceptance;