@llblab/pi-actors 0.41.1 → 0.42.1
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.
- package/AGENTS.md +11 -6
- package/BACKLOG.md +1 -65
- package/CHANGELOG.md +25 -0
- package/README.md +24 -4
- package/dist/index.js +25 -121
- package/dist/lib/async-runs.d.ts +37 -5
- package/dist/lib/async-runs.js +181 -51
- package/dist/lib/automatic-review-runtime.d.ts +18 -0
- package/dist/lib/automatic-review-runtime.js +96 -0
- package/dist/lib/command-templates.js +1 -1
- package/dist/lib/draft-consolidation-transaction.d.ts +65 -0
- package/dist/lib/draft-consolidation-transaction.js +610 -0
- package/dist/lib/draft-consolidation.d.ts +35 -0
- package/dist/lib/draft-consolidation.js +126 -0
- package/dist/lib/draft-review.d.ts +56 -0
- package/dist/lib/draft-review.js +254 -0
- package/dist/lib/draft-sleep.d.ts +65 -0
- package/dist/lib/draft-sleep.js +468 -0
- package/dist/lib/file-state.d.ts +8 -1
- package/dist/lib/file-state.js +115 -18
- package/dist/lib/inspector-actions.d.ts +16 -0
- package/dist/lib/inspector-actions.js +57 -0
- package/dist/lib/inspector-command.d.ts +7 -0
- package/dist/lib/inspector-command.js +37 -0
- package/dist/lib/inspector-overlay.d.ts +23 -3
- package/dist/lib/inspector-overlay.js +327 -70
- package/dist/lib/inspector.d.ts +9 -0
- package/dist/lib/inspector.js +49 -1
- package/dist/lib/observability.d.ts +13 -0
- package/dist/lib/observability.js +160 -6
- package/dist/lib/paths.d.ts +7 -0
- package/dist/lib/paths.js +28 -0
- package/dist/lib/recipes-discovery.js +32 -24
- package/dist/lib/recipes-usage.d.ts +18 -6
- package/dist/lib/recipes-usage.js +445 -34
- package/dist/lib/review-control.d.ts +14 -0
- package/dist/lib/review-control.js +111 -0
- package/dist/lib/review-diagnostics.d.ts +11 -0
- package/dist/lib/review-diagnostics.js +148 -0
- package/dist/lib/review-projection.d.ts +14 -0
- package/dist/lib/review-projection.js +170 -0
- package/dist/lib/run-ui-runtime.d.ts +18 -0
- package/dist/lib/run-ui-runtime.js +123 -0
- package/dist/lib/runs-artifacts.d.ts +1 -1
- package/dist/lib/runs-artifacts.js +1 -1
- package/dist/lib/runs-control.d.ts +10 -2
- package/dist/lib/runs-control.js +37 -7
- package/dist/lib/runs-identity.d.ts +1 -1
- package/dist/lib/runs-identity.js +1 -1
- package/dist/lib/runs-index.d.ts +11 -2
- package/dist/lib/runs-index.js +46 -23
- package/dist/lib/runs-mailbox.d.ts +1 -1
- package/dist/lib/runs-mailbox.js +1 -1
- package/dist/lib/runs-messages.d.ts +1 -1
- package/dist/lib/runs-messages.js +1 -1
- package/dist/lib/runs-outbox.d.ts +1 -1
- package/dist/lib/runs-outbox.js +1 -1
- package/dist/lib/runs-ownership.d.ts +1 -1
- package/dist/lib/runs-ownership.js +18 -4
- package/dist/lib/runs-parent-teardown.d.ts +51 -0
- package/dist/lib/runs-parent-teardown.js +172 -0
- package/dist/lib/runs-process.d.ts +1 -1
- package/dist/lib/runs-process.js +5 -4
- package/dist/lib/runs-retention.d.ts +1 -1
- package/dist/lib/runs-retention.js +1 -1
- package/dist/lib/runs-start.d.ts +5 -3
- package/dist/lib/runs-start.js +7 -48
- package/dist/lib/runs-status.d.ts +5 -3
- package/dist/lib/runs-status.js +7 -6
- package/dist/lib/runtime.d.ts +7 -1
- package/dist/lib/runtime.js +32 -18
- package/dist/lib/tool-review-lineage-transaction.d.ts +27 -0
- package/dist/lib/tool-review-lineage-transaction.js +597 -0
- package/dist/lib/tool-review-lineage.d.ts +24 -0
- package/dist/lib/tool-review-lineage.js +98 -0
- package/dist/lib/tool-review-scheduler.d.ts +80 -0
- package/dist/lib/tool-review-scheduler.js +494 -0
- package/dist/lib/tool-review-transaction.d.ts +50 -0
- package/dist/lib/tool-review-transaction.js +362 -0
- package/dist/lib/tool-review.d.ts +56 -0
- package/dist/lib/tool-review.js +197 -0
- package/dist/lib/tools-inspect.js +28 -4
- package/dist/lib/tools-local.js +21 -4
- package/dist/lib/tools-message.d.ts +1 -0
- package/dist/lib/tools-message.js +29 -17
- package/dist/lib/tools-spawn.js +14 -2
- package/dist/lib/tools.d.ts +1 -0
- package/dist/lib/tools.js +1 -0
- package/dist/recipes/draft-review.json +24 -0
- package/dist/recipes/tool-review.json +24 -0
- package/dist/scripts/async-runner.mjs +9 -9
- package/dist/scripts/build-dist.mjs +6 -1
- package/dist/scripts/conformance.mjs +6 -1
- package/dist/scripts/recipe-utils.mjs +3 -3
- package/dist/scripts/release-gates.mjs +165 -0
- package/dist/skills/actors/SKILL.md +9 -8
- package/dist/skills/swarm/SKILL.md +1 -1
- package/docs/actor-inspector.md +20 -11
- package/docs/async-runs.md +16 -2
- package/docs/recipe-library.md +7 -3
- package/docs/template-recipes.md +4 -11
- package/docs/tool-registry.md +13 -4
- package/index.ts +27 -142
- package/lib/async-runs.ts +283 -67
- package/lib/automatic-review-runtime.ts +135 -0
- package/lib/command-templates.ts +1 -1
- package/lib/draft-consolidation-transaction.ts +821 -0
- package/lib/draft-consolidation.ts +181 -0
- package/lib/draft-review.ts +325 -0
- package/lib/draft-sleep.ts +576 -0
- package/lib/file-state.ts +143 -19
- package/lib/inspector-actions.ts +79 -0
- package/lib/inspector-command.ts +54 -0
- package/lib/inspector-overlay.ts +377 -91
- package/lib/inspector.ts +73 -1
- package/lib/observability.ts +194 -5
- package/lib/paths.ts +43 -0
- package/lib/recipes-discovery.ts +34 -26
- package/lib/recipes-usage.ts +569 -40
- package/lib/review-control.ts +137 -0
- package/lib/review-diagnostics.ts +164 -0
- package/lib/review-projection.ts +200 -0
- package/lib/run-ui-runtime.ts +153 -0
- package/lib/runs-artifacts.ts +1 -1
- package/lib/runs-control.ts +69 -6
- package/lib/runs-identity.ts +1 -1
- package/lib/runs-index.ts +57 -21
- package/lib/runs-mailbox.ts +1 -1
- package/lib/runs-messages.ts +1 -1
- package/lib/runs-outbox.ts +1 -1
- package/lib/runs-ownership.ts +23 -4
- package/lib/runs-parent-teardown.ts +257 -0
- package/lib/runs-process.ts +5 -4
- package/lib/runs-retention.ts +1 -1
- package/lib/runs-start.ts +13 -68
- package/lib/runs-status.ts +17 -8
- package/lib/runtime.ts +34 -17
- package/lib/tool-review-lineage-transaction.ts +881 -0
- package/lib/tool-review-lineage.ts +145 -0
- package/lib/tool-review-scheduler.ts +635 -0
- package/lib/tool-review-transaction.ts +563 -0
- package/lib/tool-review.ts +270 -0
- package/lib/tools-inspect.ts +35 -4
- package/lib/tools-local.ts +29 -4
- package/lib/tools-message.ts +45 -30
- package/lib/tools-spawn.ts +22 -2
- package/lib/tools.ts +5 -0
- package/package.json +5 -3
- package/recipes/draft-review.json +24 -0
- package/recipes/tool-review.json +24 -0
- package/scripts/async-runner.mjs +9 -9
- package/scripts/build-dist.mjs +6 -1
- package/scripts/conformance.mjs +6 -1
- package/scripts/recipe-utils.mjs +3 -3
- package/scripts/release-gates.mjs +165 -0
- package/skills/actors/SKILL.md +9 -8
- package/skills/swarm/SKILL.md +1 -1
package/dist/lib/runtime.js
CHANGED
|
@@ -124,16 +124,20 @@ export function createAutoToolsRuntime(deps) {
|
|
|
124
124
|
registerRuntimeTool,
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
export function createRecipeToolReloadWatcher(runtime) {
|
|
127
|
+
export function createRecipeToolReloadWatcher(runtime, deps = {}) {
|
|
128
|
+
const pathExists = deps.exists ?? existsSync;
|
|
129
|
+
const watchPath = deps.watchPath ?? watch;
|
|
128
130
|
let reloadTimeout;
|
|
129
131
|
let rootWatcher;
|
|
130
132
|
let parentWatcher;
|
|
131
133
|
let failureNotified = false;
|
|
132
134
|
const close = () => {
|
|
133
|
-
rootWatcher
|
|
135
|
+
const closingRoot = rootWatcher;
|
|
134
136
|
rootWatcher = undefined;
|
|
135
|
-
|
|
137
|
+
closingRoot?.close();
|
|
138
|
+
const closingParent = parentWatcher;
|
|
136
139
|
parentWatcher = undefined;
|
|
140
|
+
closingParent?.close();
|
|
137
141
|
if (reloadTimeout)
|
|
138
142
|
clearTimeout(reloadTimeout);
|
|
139
143
|
reloadTimeout = undefined;
|
|
@@ -158,27 +162,32 @@ export function createRecipeToolReloadWatcher(runtime) {
|
|
|
158
162
|
if (parentWatcher || rootWatcher)
|
|
159
163
|
return;
|
|
160
164
|
const parent = dirname(recipeRoot);
|
|
161
|
-
if (!
|
|
165
|
+
if (!pathExists(parent)) {
|
|
162
166
|
notifyFailure(ctx);
|
|
163
167
|
return;
|
|
164
168
|
}
|
|
165
169
|
try {
|
|
166
|
-
|
|
170
|
+
const watcher = watchPath(parent, (_event, changedFile) => {
|
|
171
|
+
if (parentWatcher !== watcher)
|
|
172
|
+
return;
|
|
167
173
|
if (changedFile &&
|
|
168
174
|
String(changedFile) !== basename(recipeRoot) &&
|
|
169
|
-
!
|
|
175
|
+
!pathExists(recipeRoot)) {
|
|
170
176
|
return;
|
|
171
177
|
}
|
|
172
|
-
if (!
|
|
178
|
+
if (!pathExists(recipeRoot))
|
|
173
179
|
return;
|
|
174
|
-
parentWatcher?.close();
|
|
175
180
|
parentWatcher = undefined;
|
|
181
|
+
watcher.close();
|
|
176
182
|
watchRoot(ctx, recipeRoot);
|
|
177
183
|
scheduleReload(ctx);
|
|
178
184
|
});
|
|
179
|
-
parentWatcher
|
|
180
|
-
|
|
185
|
+
parentWatcher = watcher;
|
|
186
|
+
watcher.on("error", () => {
|
|
187
|
+
if (parentWatcher !== watcher)
|
|
188
|
+
return;
|
|
181
189
|
parentWatcher = undefined;
|
|
190
|
+
watcher.close();
|
|
182
191
|
notifyFailure(ctx);
|
|
183
192
|
});
|
|
184
193
|
}
|
|
@@ -189,25 +198,30 @@ export function createRecipeToolReloadWatcher(runtime) {
|
|
|
189
198
|
const watchRoot = (ctx, recipeRoot) => {
|
|
190
199
|
if (rootWatcher)
|
|
191
200
|
return;
|
|
192
|
-
if (!
|
|
201
|
+
if (!pathExists(recipeRoot)) {
|
|
193
202
|
watchParent(ctx, recipeRoot);
|
|
194
203
|
return;
|
|
195
204
|
}
|
|
196
205
|
try {
|
|
197
|
-
|
|
198
|
-
if (
|
|
199
|
-
|
|
206
|
+
const watcher = watchPath(recipeRoot, () => {
|
|
207
|
+
if (rootWatcher !== watcher)
|
|
208
|
+
return;
|
|
209
|
+
if (!pathExists(recipeRoot)) {
|
|
200
210
|
rootWatcher = undefined;
|
|
211
|
+
watcher.close();
|
|
201
212
|
scheduleReload(ctx);
|
|
202
213
|
watchParent(ctx, recipeRoot);
|
|
203
214
|
return;
|
|
204
215
|
}
|
|
205
216
|
scheduleReload(ctx);
|
|
206
217
|
});
|
|
207
|
-
rootWatcher
|
|
208
|
-
|
|
218
|
+
rootWatcher = watcher;
|
|
219
|
+
watcher.on("error", () => {
|
|
220
|
+
if (rootWatcher !== watcher)
|
|
221
|
+
return;
|
|
209
222
|
rootWatcher = undefined;
|
|
210
|
-
|
|
223
|
+
watcher.close();
|
|
224
|
+
if (pathExists(recipeRoot))
|
|
211
225
|
notifyFailure(ctx);
|
|
212
226
|
else
|
|
213
227
|
watchParent(ctx, recipeRoot);
|
|
@@ -222,7 +236,7 @@ export function createRecipeToolReloadWatcher(runtime) {
|
|
|
222
236
|
watch(ctx) {
|
|
223
237
|
if (rootWatcher || parentWatcher)
|
|
224
238
|
return;
|
|
225
|
-
watchRoot(ctx, Paths.getRecipeRoot());
|
|
239
|
+
watchRoot(ctx, deps.recipeRoot ?? Paths.getRecipeRoot());
|
|
226
240
|
},
|
|
227
241
|
};
|
|
228
242
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Journaled tool-review lineage finalization.
|
|
3
|
+
* Zones: lineage projection persistence, ledger/index CAS, crash roll-forward
|
|
4
|
+
* Owns idempotent ledger mutation after portfolio filesystem commit; admission-state activation and quarantine cleanup remain separate.
|
|
5
|
+
*/
|
|
6
|
+
export interface ToolReviewLineageTransactionResult {
|
|
7
|
+
journalPath: string;
|
|
8
|
+
phase: "committed";
|
|
9
|
+
}
|
|
10
|
+
export interface ToolReviewLineageTransactionOptions {
|
|
11
|
+
checkpoint?(checkpoint: "ledger_written" | "prepared"): void;
|
|
12
|
+
now?(): Date;
|
|
13
|
+
recipeRoot: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function finalizeToolReviewLineage(approvedPath: string, options: ToolReviewLineageTransactionOptions): ToolReviewLineageTransactionResult;
|
|
16
|
+
export interface ToolReviewRevisionRollbackResult {
|
|
17
|
+
journalPath: string;
|
|
18
|
+
lineageName: string;
|
|
19
|
+
restoredRevision: number;
|
|
20
|
+
targetPath: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolReviewRevisionRollbackOptions {
|
|
23
|
+
checkpoint?(checkpoint: "ledger_written" | "prepared" | "recipe_written"): void;
|
|
24
|
+
now?(): Date;
|
|
25
|
+
recipeRoot: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function rollbackToolRecipeRevision(lineageName: string, revision: number, options: ToolReviewRevisionRollbackOptions): ToolReviewRevisionRollbackResult;
|