pi-fabric 0.104.1 → 0.104.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.
- package/README.md +4 -4
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/chunks/{chunk-PQW2ISQ3.js → chunk-Y5HBN75E.js} +27 -11
- package/dist/chunks/chunk-Y5HBN75E.js.map +7 -0
- package/dist/chunks/{chunk-TTNR3ULB.js → chunk-ZLWJ3T75.js} +2 -2
- package/dist/fabric-runtime-state.js +1 -1
- package/dist/jev-fabric/client.js +1 -1
- package/dist/jev-fabric/client.js.map +2 -2
- package/dist/jev-fabric/resolve.js +1 -1
- package/dist/jev-fabric/resolve.js.map +2 -2
- package/dist/residency/host.js +2 -2
- package/dist/residency/pi-entry.js +2 -2
- package/docs/agents.md +1 -1
- package/docs/background-tasks.md +1 -1
- package/docs/configuration.md +1 -1
- package/docs/shell-composition.md +1 -1
- package/package.json +5 -5
- package/dist/chunks/chunk-PQW2ISQ3.js.map +0 -7
- /package/dist/chunks/{chunk-TTNR3ULB.js.map → chunk-ZLWJ3T75.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
3
|
<p>
|
|
4
|
-
<img src="https://raw.githubusercontent.com/
|
|
4
|
+
<img src="https://raw.githubusercontent.com/fabric-runtime/pi-fabric/main/media/opencollective/fabric-runtime/fa-avatar.png" alt="Pi Fabric logo" width="96" height="96">
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
# pi-fabric
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
_One program for tools, MCP, agents, workflows, actors, mesh, councils, and recursion._
|
|
12
12
|
|
|
13
13
|
<p>
|
|
14
|
-
<img src="https://raw.githubusercontent.com/
|
|
14
|
+
<img src="https://raw.githubusercontent.com/fabric-runtime/pi-fabric/main/media/banner.svg" alt="Animated banner: one checked TypeScript program weaving pi core tools, MCP servers, agents, and mesh into a single result" width="100%">
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
17
|
[](https://www.npmjs.com/package/pi-fabric)
|
|
18
18
|
[](https://arcprize.org/scorecards/d4c56c67-136b-4643-b648-62ae28fe2a54)
|
|
19
|
-
[](https://github.com/fabric-runtime/pi-fabric/actions/workflows/test.yml)
|
|
20
20
|
[](https://github.com/earendil-works/pi-coding-agent)
|
|
21
21
|
[](LICENSE)
|
|
22
22
|
[](https://opencollective.com/pi-fabric)
|
|
@@ -96,7 +96,7 @@ pi install npm:pi-fabric
|
|
|
96
96
|
From GitHub:
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
pi install git:github.com/
|
|
99
|
+
pi install git:github.com/fabric-runtime/pi-fabric
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
From a local checkout:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EAEtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAkBzB,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAE1B,kBAAkB,EAClB,cAAc,EACd,eAAe,EAEf,cAAc,EACd,eAAe,EACf,cAAc,EAEd,gBAAgB,EAKjB,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAqBpE,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,uBAAuB,CAAC;AAsB/B,eAAO,MAAM,uBAAuB,GAClC,qBAAqB,MAAM,EAC3B,qBAAqB,MAAM,KAC1B,MAYF,CAAC;AAEF,UAAU,+BAA+B;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,KAAK,gCAAgC,GAAG,CACtC,OAAO,EAAE,+BAA+B,KACrC,MAAM,GAAG,SAAS,CAAC;AAExB,8EAA8E;AAC9E,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,EAAE,eAAe,MAAM,KAAG,MAoB1E,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2006,6 +2006,21 @@ var compactUiRecord = (record) => {
|
|
|
2006
2006
|
...nestedAgents && nestedAgents.length > 0 ? { nestedAgents: nestedAgents.map((nested) => compactUiRecord(nested)) } : {}
|
|
2007
2007
|
};
|
|
2008
2008
|
};
|
|
2009
|
+
var reconcileNestedAgents = (records, owner) => records.map((record) => {
|
|
2010
|
+
let next = record;
|
|
2011
|
+
if (terminalStatuses.has(owner.status) && !terminalStatuses.has(record.status) && record.residency !== "durable") {
|
|
2012
|
+
const { currentTool: _currentTool, blockedOn: _blockedOn, ...rest } = record;
|
|
2013
|
+
const finishedAt = owner.finishedAt ?? owner.updatedAt;
|
|
2014
|
+
next = {
|
|
2015
|
+
...rest,
|
|
2016
|
+
status: "failed",
|
|
2017
|
+
error: `Nested agent owner ${owner.id} finished (${owner.status}) before a terminal result was retained`,
|
|
2018
|
+
finishedAt,
|
|
2019
|
+
updatedAt: Math.max(record.updatedAt, finishedAt)
|
|
2020
|
+
};
|
|
2021
|
+
}
|
|
2022
|
+
return next.nestedAgents ? { ...next, nestedAgents: reconcileNestedAgents(next.nestedAgents, next) } : next;
|
|
2023
|
+
});
|
|
2009
2024
|
var readNestedAgents = (runDirectory, depth = 0) => {
|
|
2010
2025
|
if (depth >= 8) return [];
|
|
2011
2026
|
const nestedRoot = path12.join(runDirectory, "nested");
|
|
@@ -2087,6 +2102,7 @@ var AgentManager = class {
|
|
|
2087
2102
|
this.#semaphore = new AgentAdmission(config.maxConcurrent, Infinity, config.maxDepth);
|
|
2088
2103
|
this.#managedTempRoot = options.runRoot === void 0 && process.env.PI_FABRIC_RUN_ROOT === void 0;
|
|
2089
2104
|
this.#runRoot = options.runRoot ?? process.env.PI_FABRIC_RUN_ROOT ?? fs11.mkdtempSync(path12.join(os3.tmpdir(), "pi-fabric-runs-"));
|
|
2105
|
+
this.#parentOwnedRunRoot = options.runRoot === void 0 && this.#parentLineage?.worker === true && this.#parentLineage.depth > 0 && path12.basename(this.#runRoot) === "nested" && path12.basename(path12.dirname(this.#runRoot)) === this.#parentLineage.runId;
|
|
2090
2106
|
this.#retention = options.retention ?? DEFAULT_FABRIC_CONFIG.retention;
|
|
2091
2107
|
this.#workerPath = options.workerPath ?? fileURLToPath(new URL("../worker.js", import.meta.url));
|
|
2092
2108
|
this.#fabricExtensionPath = options.fabricExtensionPath ?? fileURLToPath(new URL("../index.js", import.meta.url));
|
|
@@ -2134,6 +2150,7 @@ var AgentManager = class {
|
|
|
2134
2150
|
#worktrees = new WorktreeManager();
|
|
2135
2151
|
#runRoot;
|
|
2136
2152
|
#managedTempRoot;
|
|
2153
|
+
#parentOwnedRunRoot;
|
|
2137
2154
|
#retention;
|
|
2138
2155
|
#workerPath;
|
|
2139
2156
|
#fabricExtensionPath;
|
|
@@ -3132,7 +3149,7 @@ var AgentManager = class {
|
|
|
3132
3149
|
this.#unregisteredTransports.clear();
|
|
3133
3150
|
const storageSafe = !this.#managedTempRoot || canRemoveManagedRunRoot(this.#runRoot);
|
|
3134
3151
|
if (!this.config.retainRuns) {
|
|
3135
|
-
if (storageSafe) {
|
|
3152
|
+
if (storageSafe && !this.#parentOwnedRunRoot) {
|
|
3136
3153
|
await removeTree(this.#runRoot).catch(() => void 0);
|
|
3137
3154
|
}
|
|
3138
3155
|
} else if (this.#managedTempRoot) {
|
|
@@ -3431,6 +3448,8 @@ var AgentManager = class {
|
|
|
3431
3448
|
#settle(managed, result) {
|
|
3432
3449
|
if (managed.settled) return;
|
|
3433
3450
|
if (managed.worktreeResult) result.worktreeResult = managed.worktreeResult;
|
|
3451
|
+
const nested = this.#nestedAgents(managed, true);
|
|
3452
|
+
if (nested.length > 0) result.nestedAgents = reconcileNestedAgents(nested, result);
|
|
3434
3453
|
this.#drainLifecycle(managed);
|
|
3435
3454
|
if (!beginAgentSettlement(managed)) return;
|
|
3436
3455
|
managed.questions?.abort(new Error("Agent run settled"));
|
|
@@ -3447,10 +3466,8 @@ var AgentManager = class {
|
|
|
3447
3466
|
const compactResult = compactUiRecord(result);
|
|
3448
3467
|
managed.latestRecord = compactResult;
|
|
3449
3468
|
managed.latestUiRecord = compactResult;
|
|
3450
|
-
if (
|
|
3451
|
-
managed.nestedSnapshot =
|
|
3452
|
-
(record) => compactUiRecord(record)
|
|
3453
|
-
);
|
|
3469
|
+
if (result.nestedAgents) {
|
|
3470
|
+
managed.nestedSnapshot = result.nestedAgents.map((record) => compactUiRecord(record));
|
|
3454
3471
|
}
|
|
3455
3472
|
this.#pruneRetainedUiRecords();
|
|
3456
3473
|
this.#invalidateUiList();
|
|
@@ -3712,9 +3729,8 @@ var AgentManager = class {
|
|
|
3712
3729
|
...managed.worktree ? { worktree: managed.worktree } : {}
|
|
3713
3730
|
};
|
|
3714
3731
|
}
|
|
3715
|
-
//
|
|
3716
|
-
//
|
|
3717
|
-
// in the parent run until that parent is explicitly cleaned up.
|
|
3732
|
+
// Retain a bounded tree even when legacy workers removed their nested run
|
|
3733
|
+
// directories. Terminal-owner reconciliation prevents cached active ghosts.
|
|
3718
3734
|
#nestedAgents(managed, force = false) {
|
|
3719
3735
|
const now = Date.now();
|
|
3720
3736
|
const needsInitialDiscovery = managed.nestedSnapshot === void 0 && fs11.existsSync(path12.join(managed.runDirectory, "nested"));
|
|
@@ -3730,10 +3746,10 @@ var AgentManager = class {
|
|
|
3730
3746
|
return managed.nestedSnapshot ? structuredClone(managed.nestedSnapshot) : [];
|
|
3731
3747
|
}
|
|
3732
3748
|
#withTransportMetadata(record, managed) {
|
|
3733
|
-
const nestedAgents = this.#nestedAgents(
|
|
3749
|
+
const nestedAgents = reconcileNestedAgents(this.#nestedAgents(
|
|
3734
3750
|
managed,
|
|
3735
3751
|
terminalStatuses.has(record.status) && !managed.settled
|
|
3736
|
-
);
|
|
3752
|
+
), record);
|
|
3737
3753
|
const budget = this.#budgetSummary();
|
|
3738
3754
|
const { logFile: _logFile, nestedAgents: _nestedAgents, ...safeRecord } = record;
|
|
3739
3755
|
const model = record.model ?? managed.model;
|
|
@@ -7747,4 +7763,4 @@ export {
|
|
|
7747
7763
|
agentParticipantRecords,
|
|
7748
7764
|
actorParticipantRecord
|
|
7749
7765
|
};
|
|
7750
|
-
//# sourceMappingURL=chunk-
|
|
7766
|
+
//# sourceMappingURL=chunk-Y5HBN75E.js.map
|