pi-fabric 0.88.1 → 0.88.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/dist/agents/manager.d.ts +0 -2
- package/dist/agents/manager.d.ts.map +1 -1
- package/dist/agents/types.d.ts +1 -1
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/chunks/{chunk-YVSOUJDP.js → chunk-CXUYJNP7.js} +2 -2
- package/dist/chunks/{chunk-MBUOWFDL.js → chunk-K344VGRR.js} +99 -4
- package/dist/chunks/chunk-K344VGRR.js.map +7 -0
- package/dist/chunks/{chunk-4TRJNDSB.js → chunk-WJW47JBN.js} +17 -9
- package/dist/chunks/chunk-WJW47JBN.js.map +7 -0
- package/dist/chunks/{chunk-7QDJFSHJ.js → chunk-ZKJ62VD3.js} +2 -2
- package/dist/chunks/{chunk-7QDJFSHJ.js.map → chunk-ZKJ62VD3.js.map} +1 -1
- package/dist/chunks/{chunk-JKDZDKFP.js → chunk-ZV5AXJYG.js} +2 -2
- package/dist/fabric-runtime-state.d.ts +2 -0
- package/dist/fabric-runtime-state.d.ts.map +1 -1
- package/dist/fabric-runtime-state.js +50 -37
- package/dist/fabric-runtime-state.js.map +3 -3
- package/dist/fabric-state.d.ts +2 -0
- package/dist/fabric-state.d.ts.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +2 -2
- package/dist/managed-host.d.ts +20 -0
- package/dist/managed-host.d.ts.map +1 -0
- package/dist/providers/agents-provider.d.ts.map +1 -1
- package/dist/providers/pi-tools-provider.d.ts +1 -0
- package/dist/providers/pi-tools-provider.d.ts.map +1 -1
- package/dist/residency/client.d.ts.map +1 -1
- package/dist/residency/host.js +2 -2
- package/dist/residency/pi-entry.js +2 -2
- package/dist/runtime/core-override-guest-types.js +2 -2
- package/dist/runtime/guest-types.d.ts +1 -1
- package/dist/runtime/guest-types.d.ts.map +1 -1
- package/dist/runtime/guest-types.js +1 -1
- package/dist/runtime/typescript-kernel.js +2 -2
- package/dist/runtime-state-builtins.d.ts +3 -1
- package/dist/runtime-state-builtins.d.ts.map +1 -1
- package/dist/ui/settings.js +1 -1
- package/docs/agents.md +5 -3
- package/docs/providers.md +33 -0
- package/package.json +1 -1
- package/skillsets/python/fabric-exec/references/agents.md +1 -1
- package/skillsets/typescript/fabric-exec/references/agents.md +2 -2
- package/dist/chunks/chunk-4TRJNDSB.js.map +0 -7
- package/dist/chunks/chunk-MBUOWFDL.js.map +0 -7
- /package/dist/chunks/{chunk-YVSOUJDP.js.map → chunk-CXUYJNP7.js.map} +0 -0
- /package/dist/chunks/{chunk-JKDZDKFP.js.map → chunk-ZV5AXJYG.js.map} +0 -0
package/dist/agents/manager.d.ts
CHANGED
|
@@ -9,8 +9,6 @@ interface AgentParticipantGuidanceRequest {
|
|
|
9
9
|
runner: FabricAgentRunner;
|
|
10
10
|
}
|
|
11
11
|
type AgentParticipantGuidanceResolver = (request: AgentParticipantGuidanceRequest) => string | undefined;
|
|
12
|
-
/** Reject the cwd combination excluded from the leaf-agent release. */
|
|
13
|
-
export declare const validateAgentCwdRequest: (request: Pick<AgentRunRequest, "cwd" | "recursive">) => void;
|
|
14
12
|
/** Resolve and validate a one-shot agent's filesystem execution directory. */
|
|
15
13
|
export declare const resolveAgentCwd: (parentCwd: string, requestedCwd?: string) => string;
|
|
16
14
|
export declare class AgentManager {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/agents/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export interface AgentRunRequest {
|
|
|
45
45
|
timeoutMs?: number;
|
|
46
46
|
extensions?: boolean;
|
|
47
47
|
recursive?: boolean;
|
|
48
|
-
/**
|
|
48
|
+
/** Leaf or recursive execution cwd; relative to the immediate caller, independent of project/mesh lineage. */
|
|
49
49
|
cwd?: string;
|
|
50
50
|
worktree?: boolean;
|
|
51
51
|
residency?: FabricParticipantResidency;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAEvE,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,mBAAmB,CAAC,SAAS,CAAC,EAC9B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CACvB,CAAC;AAEF,mFAAmF;AACnF,MAAM,WAAW,wBAAwB;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,sBAAsB,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,kGAAkG;IAClG,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,sFAAsF;IACtF,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
lifecycleSourceIdentity,
|
|
11
11
|
loadModelUsage,
|
|
12
12
|
useBudgetLedger
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-WJW47JBN.js";
|
|
14
14
|
import {
|
|
15
15
|
normalizeModelAliases,
|
|
16
16
|
resolveAvailablePiModel
|
|
@@ -687,4 +687,4 @@ if (isMain) {
|
|
|
687
687
|
export {
|
|
688
688
|
runResidentHostFromConfigPath
|
|
689
689
|
};
|
|
690
|
-
//# sourceMappingURL=chunk-
|
|
690
|
+
//# sourceMappingURL=chunk-CXUYJNP7.js.map
|
|
@@ -5,12 +5,14 @@ import {
|
|
|
5
5
|
FabricSessionApprovals,
|
|
6
6
|
PrewalkController,
|
|
7
7
|
PrewalkDriftTracker,
|
|
8
|
+
createProviderComponent,
|
|
8
9
|
resolveFabricIdentity
|
|
9
10
|
} from "./chunk-L6R3Y7XI.js";
|
|
10
11
|
import {
|
|
11
12
|
resolveAgentDir
|
|
12
13
|
} from "./chunk-PXAICAUT.js";
|
|
13
14
|
import {
|
|
15
|
+
DEFAULT_FABRIC_CONFIG,
|
|
14
16
|
loadFabricConfig,
|
|
15
17
|
loadFabricConfigForScope
|
|
16
18
|
} from "./chunk-4RCPQIN2.js";
|
|
@@ -18,11 +20,94 @@ import {
|
|
|
18
20
|
// src/fabric-state.ts
|
|
19
21
|
import fs from "node:fs";
|
|
20
22
|
import path from "node:path";
|
|
23
|
+
|
|
24
|
+
// src/managed-host.ts
|
|
25
|
+
var REPLACEABLE = /* @__PURE__ */ new Set(["agents", "memory", "compact", "schema", "state", "mesh", "mcp"]);
|
|
26
|
+
var FabricManagedHost = class {
|
|
27
|
+
#allowed;
|
|
28
|
+
#providers = /* @__PURE__ */ new Map();
|
|
29
|
+
#retired = /* @__PURE__ */ new Set();
|
|
30
|
+
#sealed = false;
|
|
31
|
+
constructor(options) {
|
|
32
|
+
this.#allowed = new Set(options.providers);
|
|
33
|
+
for (const name of this.#allowed) if (!REPLACEABLE.has(name)) throw new Error(`Managed host cannot replace provider: ${name}`);
|
|
34
|
+
}
|
|
35
|
+
register(provider, overwrite = false) {
|
|
36
|
+
if (!this.#allowed.has(provider.name)) throw new Error(`Managed host provider not authorized: ${provider.name}`);
|
|
37
|
+
const previous = this.#providers.get(provider.name);
|
|
38
|
+
if (previous === provider) return;
|
|
39
|
+
if (this.#sealed) throw new Error("Managed provider authority is sealed; create a new host to replace it");
|
|
40
|
+
if (previous && !overwrite) throw new Error(`Fabric provider already registered: ${provider.name}`);
|
|
41
|
+
if (previous) this.#retired.add(previous);
|
|
42
|
+
this.#providers.set(provider.name, provider);
|
|
43
|
+
}
|
|
44
|
+
seal() {
|
|
45
|
+
for (const name of this.#allowed) if (!this.#providers.has(name)) throw new Error(`Managed host provider missing: ${name}`);
|
|
46
|
+
this.#sealed = true;
|
|
47
|
+
}
|
|
48
|
+
has(name) {
|
|
49
|
+
return this.#allowed.has(name);
|
|
50
|
+
}
|
|
51
|
+
provider(name) {
|
|
52
|
+
const source = this.#providers.get(name);
|
|
53
|
+
if (!source) return { name, description: "Unavailable in managed host", list: async () => [], describe: async () => void 0, invoke: async () => {
|
|
54
|
+
throw new Error(`Managed host provider unavailable: ${name}`);
|
|
55
|
+
} };
|
|
56
|
+
return {
|
|
57
|
+
name,
|
|
58
|
+
description: source.description,
|
|
59
|
+
list: source.list.bind(source),
|
|
60
|
+
describe: source.describe.bind(source),
|
|
61
|
+
invoke: source.invoke.bind(source),
|
|
62
|
+
...source.prepareArguments ? { prepareArguments: source.prepareArguments.bind(source) } : {},
|
|
63
|
+
...source.acquire ? { acquire: source.acquire.bind(source) } : {},
|
|
64
|
+
...source.invocationEnded ? { invocationEnded: source.invocationEnded.bind(source) } : {},
|
|
65
|
+
...source.subscribeCatalog ? { subscribeCatalog: source.subscribeCatalog.bind(source) } : {}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
component(component) {
|
|
69
|
+
const name = component.definition.provides?.[0];
|
|
70
|
+
if (typeof name !== "string" || name === "pi" || name === "extensions") return component;
|
|
71
|
+
return createProviderComponent({ provider: name, description: "Managed host provider", create: () => this.provider(name) });
|
|
72
|
+
}
|
|
73
|
+
config() {
|
|
74
|
+
const config = structuredClone(DEFAULT_FABRIC_CONFIG);
|
|
75
|
+
config.fullCodeMode = true;
|
|
76
|
+
config.executor.kernel = "typescript";
|
|
77
|
+
config.executor.runtime = "quickjs";
|
|
78
|
+
config.mcp.enabled = false;
|
|
79
|
+
config.mcp.allowDynamicServers = false;
|
|
80
|
+
config.mesh.enabled = false;
|
|
81
|
+
config.agents.enabled = false;
|
|
82
|
+
config.agents.sessionExport = false;
|
|
83
|
+
config.prewalk.enabled = false;
|
|
84
|
+
config.memory.enabled = false;
|
|
85
|
+
config.repairs.enabled = false;
|
|
86
|
+
config.entropy.compile = false;
|
|
87
|
+
config.speculation.enabled = false;
|
|
88
|
+
config.ui.enabled = false;
|
|
89
|
+
config.schema.mode = "off";
|
|
90
|
+
config.schema.trustedCommands = {};
|
|
91
|
+
config.components = [];
|
|
92
|
+
config.compaction.engine = "fabric";
|
|
93
|
+
config.approvals = { ...config.approvals, read: "allow", write: "allow", execute: "allow", agent: "allow", network: "deny" };
|
|
94
|
+
return config;
|
|
95
|
+
}
|
|
96
|
+
async close() {
|
|
97
|
+
const providers = /* @__PURE__ */ new Set([...this.#providers.values(), ...this.#retired]);
|
|
98
|
+
this.#providers.clear();
|
|
99
|
+
this.#retired.clear();
|
|
100
|
+
await Promise.all([...providers].map((provider) => provider.close?.()));
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// src/fabric-state.ts
|
|
21
105
|
var FabricState = class {
|
|
22
106
|
constructor(pi, capturedTools, options = {}) {
|
|
23
107
|
this.pi = pi;
|
|
24
108
|
this.capturedTools = capturedTools;
|
|
25
109
|
this.#options = options;
|
|
110
|
+
this.#managedHost = options.managedHost ? new FabricManagedHost(options.managedHost) : void 0;
|
|
26
111
|
}
|
|
27
112
|
#runtime;
|
|
28
113
|
#activatingRuntime;
|
|
@@ -38,6 +123,7 @@ var FabricState = class {
|
|
|
38
123
|
#externalProviders = /* @__PURE__ */ new Map();
|
|
39
124
|
#externalComponents = /* @__PURE__ */ new Map();
|
|
40
125
|
#options;
|
|
126
|
+
#managedHost;
|
|
41
127
|
activity = new FabricActivityStore();
|
|
42
128
|
prewalk = new PrewalkController();
|
|
43
129
|
prewalkDrift = new PrewalkDriftTracker();
|
|
@@ -117,7 +203,7 @@ var FabricState = class {
|
|
|
117
203
|
const generation = ++this.#generation;
|
|
118
204
|
this.#cwd = context.cwd;
|
|
119
205
|
this.#config = void 0;
|
|
120
|
-
const config = loadFabricConfig({
|
|
206
|
+
const config = this.#managedHost?.config() ?? loadFabricConfig({
|
|
121
207
|
cwd: context.cwd,
|
|
122
208
|
agentDir: resolveAgentDir(),
|
|
123
209
|
projectTrusted: context.isProjectTrusted()
|
|
@@ -139,7 +225,7 @@ var FabricState = class {
|
|
|
139
225
|
if (!this.#config || this.#cwd !== context.cwd) {
|
|
140
226
|
await this.bootstrap(context);
|
|
141
227
|
} else {
|
|
142
|
-
const next = loadFabricConfig({
|
|
228
|
+
const next = this.#managedHost?.config() ?? loadFabricConfig({
|
|
143
229
|
cwd: context.cwd,
|
|
144
230
|
agentDir: resolveAgentDir(),
|
|
145
231
|
projectTrusted: context.isProjectTrusted()
|
|
@@ -222,6 +308,10 @@ var FabricState = class {
|
|
|
222
308
|
return this.#current()?.publishHostLifecycle(event, payload) ?? Promise.resolve();
|
|
223
309
|
}
|
|
224
310
|
registerExternal(provider, options = {}) {
|
|
311
|
+
if (this.#managedHost) {
|
|
312
|
+
this.#managedHost.register(provider, options.overwrite);
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
225
315
|
if (provider.name === "fabric" || provider.name === "components" || FABRIC_COMPONENT_PROVIDER_NAMES.some((name) => name === provider.name)) {
|
|
226
316
|
throw new Error(`Reserved Fabric provider name: ${provider.name}`);
|
|
227
317
|
}
|
|
@@ -232,6 +322,7 @@ var FabricState = class {
|
|
|
232
322
|
this.#current()?.registerExternal(provider, options);
|
|
233
323
|
}
|
|
234
324
|
registerExternalComponent(component, options = {}) {
|
|
325
|
+
if (this.#managedHost) throw new Error("Managed host component registration is disabled");
|
|
235
326
|
if (component.name.startsWith(FABRIC_PROVIDER_COMPONENT_PREFIX)) {
|
|
236
327
|
throw new Error(`Reserved Fabric component name: ${component.name}`);
|
|
237
328
|
}
|
|
@@ -242,7 +333,7 @@ var FabricState = class {
|
|
|
242
333
|
this.#current()?.registerExternalComponent(component, options);
|
|
243
334
|
}
|
|
244
335
|
reloadConfig(context) {
|
|
245
|
-
const next = loadFabricConfig({
|
|
336
|
+
const next = this.#managedHost?.config() ?? loadFabricConfig({
|
|
246
337
|
cwd: context.cwd,
|
|
247
338
|
agentDir: resolveAgentDir(),
|
|
248
339
|
projectTrusted: context.isProjectTrusted()
|
|
@@ -263,6 +354,7 @@ var FabricState = class {
|
|
|
263
354
|
// touching fabric.json, so the next session starts from the configured mode.
|
|
264
355
|
// reloadConfig preserves the override like the startup mode does.
|
|
265
356
|
setSchemaMode(context, mode) {
|
|
357
|
+
if (this.#managedHost) throw new Error("Managed host policy is immutable");
|
|
266
358
|
if (!this.#config) throw new Error("Fabric is not initialized");
|
|
267
359
|
const previous = this.#config.schema.mode;
|
|
268
360
|
if (mode === "enforce" && previous !== "enforce" && !this.#config.fullCodeMode) {
|
|
@@ -288,6 +380,7 @@ var FabricState = class {
|
|
|
288
380
|
};
|
|
289
381
|
}
|
|
290
382
|
#diskConfig(context) {
|
|
383
|
+
if (this.#managedHost) return this.#managedHost.config();
|
|
291
384
|
const projectTrusted = context.isProjectTrusted();
|
|
292
385
|
return loadFabricConfigForScope(
|
|
293
386
|
{ cwd: context.cwd, agentDir: resolveAgentDir(), projectTrusted },
|
|
@@ -303,6 +396,7 @@ var FabricState = class {
|
|
|
303
396
|
this.#runtime = void 0;
|
|
304
397
|
try {
|
|
305
398
|
await runtime?.shutdown();
|
|
399
|
+
await this.#managedHost?.close();
|
|
306
400
|
} finally {
|
|
307
401
|
if (generation === this.#generation) {
|
|
308
402
|
this.#config = void 0;
|
|
@@ -387,6 +481,7 @@ var FabricState = class {
|
|
|
387
481
|
this.pi,
|
|
388
482
|
this.capturedTools,
|
|
389
483
|
{
|
|
484
|
+
...this.#managedHost ? { managedHost: this.#managedHost } : {},
|
|
390
485
|
activity: this.activity,
|
|
391
486
|
prewalk: this.prewalk,
|
|
392
487
|
prewalkDrift: this.prewalkDrift,
|
|
@@ -408,4 +503,4 @@ var FabricState = class {
|
|
|
408
503
|
export {
|
|
409
504
|
FabricState
|
|
410
505
|
};
|
|
411
|
-
//# sourceMappingURL=chunk-
|
|
506
|
+
//# sourceMappingURL=chunk-K344VGRR.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/fabric-state.ts", "../../src/managed-host.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ExtensionContext } from \"@earendil-works/pi-coding-agent\";\nimport { resolveAgentDir } from \"./core/agent-dir.js\";\nimport type { ExtensionAPI } from \"@earendil-works/pi-coding-agent\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { FabricActivityStore } from \"./activity/store.js\";\nimport { CapturedToolCatalog } from \"./capture/catalog.js\";\nimport {\n FABRIC_COMPONENT_PROVIDER_NAMES,\n FABRIC_PROVIDER_COMPONENT_PREFIX,\n} from \"./components/provider-component.js\";\nimport type { FabricOwnedModelGuidance } from \"./components/model-guidance.js\";\nimport type { FabricComponentGraph } from \"./components/types.js\";\nimport {\n loadFabricConfig,\n loadFabricConfigForScope,\n type FabricConfig,\n type FabricResultFormat,\n type FabricSchemaMode,\n} from \"./config.js\";\nimport { FabricSessionApprovals } from \"./core/approval-controller.js\";\nimport { PrewalkController } from \"./prewalk/controller.js\";\nimport { PrewalkDriftTracker } from \"./prewalk/fs-drift.js\";\nimport type { PendingFabricHandoff } from \"./prewalk/handoff.js\";\nimport type { AgentToolResultMessage } from \"./agents/types.js\";\nimport type { FabricExecutionResult } from \"./execution-service.js\";\nimport type {\n FabricParticipantInfo,\n FabricParticipantListOptions,\n FabricPeerInfo,\n} from \"./topology/types.js\";\nimport {\n resolveFabricIdentity,\n type FabricAgentMessageDelivery,\n type FabricAgentMessageResult,\n type FabricMainAgentInfo,\n} from \"./main-agent.js\";\nimport type { FabricActorHostEvent } from \"./actors/types.js\";\nimport type { FabricLifecycleEventType } from \"./lifecycle/types.js\";\nimport type {\n FabricActionDescriptor,\n FabricComponentDefinition,\n FabricProvider,\n} from \"./protocol.js\";\nimport type { FabricRuntimeState } from \"./fabric-runtime-state.js\";\nimport type { FabricRuntimePaths } from \"./runtime-paths.js\";\n\nimport { FabricManagedHost, type FabricManagedHostOptions } from \"./managed-host.js\";\n\nexport interface FabricStateOptions {\n managedHost?: FabricManagedHostOptions;\n paths?: FabricRuntimePaths;\n runtimeLoader?: () => Promise<typeof import(\"./fabric-runtime-state.js\")>;\n}\n\ntype ActivationHook = (context: ExtensionContext) => void | Promise<void>;\ntype ActivationFailureHook = () => void | Promise<void>;\n\nexport class FabricState {\n #runtime: FabricRuntimeState | undefined;\n #activatingRuntime: FabricRuntimeState | undefined;\n #activation: Promise<FabricRuntimeState> | undefined;\n #activationGeneration: number | undefined;\n #config: FabricConfig | undefined;\n #kernelReloadRequired = false;\n\n #cwd: string | undefined;\n #generation = 0;\n #everActivated = false;\n #activationHook: ActivationHook | undefined;\n #activationFailureHook: ActivationFailureHook | undefined;\n readonly #externalProviders = new Map<string, FabricProvider>();\n readonly #externalComponents = new Map<string, FabricComponentDefinition>();\n readonly #options: FabricStateOptions;\n readonly #managedHost: FabricManagedHost | undefined;\n readonly activity = new FabricActivityStore();\n readonly prewalk = new PrewalkController();\n readonly prewalkDrift = new PrewalkDriftTracker();\n readonly sessionApprovals = new FabricSessionApprovals();\n #widgetDismissedAt = 0;\n\n constructor(\n readonly pi: ExtensionAPI,\n readonly capturedTools: CapturedToolCatalog,\n options: FabricStateOptions = {},\n ) {\n this.#options = options;\n this.#managedHost = options.managedHost ? new FabricManagedHost(options.managedHost) : undefined;\n }\n\n get kernelReloadRequired(): boolean {\n return this.#kernelReloadRequired;\n }\n\n get initialized(): boolean {\n return this.#current()?.initialized === true;\n }\n\n // Lightweight bootstrap seam: true once configuration is loaded, with no\n // dependency on the heavyweight runtime. Rendering reads this instead of\n // initialized so a resumed session honors bootstrapped presentation\n // preferences while the runtime is intentionally inactive.\n get bootstrapped(): boolean {\n return this.#config !== undefined;\n }\n\n get activated(): boolean {\n return this.#everActivated;\n }\n\n get config(): FabricConfig {\n if (!this.#config) throw new Error(\"Pi Fabric has not bootstrapped\");\n return this.#config;\n }\n\n get cwd(): string | undefined {\n return this.#cwd;\n }\n\n get widgetDismissedAt(): number {\n return this.#current()?.widgetDismissedAt ?? this.#widgetDismissedAt;\n }\n\n set widgetDismissedAt(value: number) {\n this.#widgetDismissedAt = value;\n const runtime = this.#current();\n if (runtime) runtime.widgetDismissedAt = value;\n }\n\n get registry(): FabricRuntimeState[\"registry\"] { return this.#required().registry; }\n get execution(): FabricRuntimeState[\"execution\"] { return this.#required().execution; }\n\n /** Speculative-PTC stream tap; undefined pre-init or when speculation is disabled. */\n get speculationTap(): FabricRuntimeState[\"speculationTap\"] { return this.#runtime?.speculationTap; }\n\n /** Turn-boundary backstop for the speculation store; safe before initialization. */\n resetSpeculation(): void { this.#runtime?.resetSpeculation(); }\n get agents(): FabricRuntimeState[\"agents\"] { return this.#required().agents; }\n get actors(): FabricRuntimeState[\"actors\"] { return this.#required().actors; }\n get globalActors(): FabricRuntimeState[\"globalActors\"] { return this.#required().globalActors; }\n get mesh(): FabricRuntimeState[\"mesh\"] { return this.#required().mesh; }\n get compact(): FabricRuntimeState[\"compact\"] { return this.#required().compact; }\n get repairs(): FabricRuntimeState[\"repairs\"] { return this.#required().repairs; }\n get components(): FabricRuntimeState[\"components\"] { return this.#required().components; }\n\n setActivationHook(hook: ActivationHook, onFailure?: ActivationFailureHook): void {\n this.#activationHook = hook;\n this.#activationFailureHook = onFailure;\n }\n\n async bootstrap(context: ExtensionContext): Promise<void> {\n const generation = ++this.#generation;\n this.#cwd = context.cwd;\n // A failed config load must not leak the previous session's configuration\n // into this one: clear before the read so bootstrapped stays false and\n // presentation falls back to the safe default until a load succeeds.\n this.#config = undefined;\n const config = this.#managedHost?.config() ?? loadFabricConfig({\n cwd: context.cwd,\n agentDir: resolveAgentDir(),\n projectTrusted: context.isProjectTrusted(),\n });\n this.#config = config;\n this.#kernelReloadRequired = false;\n this.prewalk.cancel();\n this.prewalkDrift.clear();\n this.activity.reset();\n this.sessionApprovals.approvedRisks.clear();\n this.#widgetDismissedAt = 0;\n context.ui.setStatus(\"fabric-prewalk\", undefined);\n\n const pending = this.#activation;\n if (pending) await pending.catch(() => undefined);\n if (generation !== this.#generation) return;\n if (this.#everActivated) await this.#activate(context, true);\n }\n\n async initialize(context: ExtensionContext): Promise<void> {\n if (!this.#config || this.#cwd !== context.cwd) {\n await this.bootstrap(context);\n } else {\n const next = this.#managedHost?.config() ?? loadFabricConfig({\n cwd: context.cwd,\n agentDir: resolveAgentDir(),\n projectTrusted: context.isProjectTrusted(),\n });\n this.#kernelReloadRequired = next.executor.kernel !== this.#config.executor.kernel;\n next.executor.kernel = this.#config.executor.kernel;\n this.#config = next;\n }\n await this.#activate(context, true);\n }\n\n async ensure(context: ExtensionContext): Promise<void> {\n if (!this.#config || this.#cwd !== context.cwd) await this.bootstrap(context);\n await this.#activate(context, false);\n }\n\n shouldEagerlyActivate(context: ExtensionContext): boolean {\n if (\n process.env.PI_FABRIC_CAPABILITY_REQUIREMENTS !== undefined &&\n Boolean(process.env.PI_FABRIC_CAPABILITY_DIGEST)\n ) return true;\n if (this.config.prewalk.alwaysRearm) return true;\n if (this.config.components.some((component) => component.disabled !== true)) return true;\n if (!context.isProjectTrusted() || !this.config.mesh.enabled || this.config.schema.mode === \"enforce\") {\n return false;\n }\n const sessionId = context.sessionManager.getSessionId();\n if (resolveFabricIdentity(sessionId).identity.kind !== \"main\") return false;\n const projectRoot = process.env.PI_FABRIC_PROJECT_ROOT ?? context.cwd;\n const meshRoot = process.env.PI_FABRIC_MESH_ROOT ??\n (this.config.mesh.root\n ? path.resolve(projectRoot, this.config.mesh.root)\n : path.join(projectRoot, \".pi\", \"fabric\", \"mesh\"));\n const fabricSessionId = process.env.PI_FABRIC_SESSION_ID?.trim() || sessionId;\n const actorRoots = [\n path.join(meshRoot, \"actors\"),\n path.join(meshRoot, \"actors\", fabricSessionId),\n ];\n return actorRoots.some((actorRoot) => {\n try {\n const registry = JSON.parse(fs.readFileSync(path.join(actorRoot, \"actors.json\"), \"utf8\")) as unknown;\n if (typeof registry !== \"object\" || registry === null || Array.isArray(registry)) return false;\n const actors = (registry as { actors?: unknown }).actors;\n return Array.isArray(actors) && actors.some((value) => {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) return false;\n const actor = value as Record<string, unknown>;\n return typeof actor.id === \"string\" && /^[a-f0-9]{32}$/.test(actor.id) &&\n typeof actor.name === \"string\" && /^[a-zA-Z0-9][a-zA-Z0-9 _.-]{0,59}$/.test(actor.name) &&\n typeof actor.instructions === \"string\" &&\n Buffer.byteLength(actor.instructions, \"utf8\") <= this.config.mesh.maxEventBytes &&\n typeof actor.createdAt === \"number\" && Number.isFinite(actor.createdAt);\n });\n } catch {\n return false;\n }\n });\n }\n\n mainAgentInfo(context?: ExtensionContext): FabricMainAgentInfo { return this.#required().mainAgentInfo(context); }\n peerInfos(): FabricPeerInfo[] { return this.#current()?.peerInfos() ?? []; }\n componentGraph(): FabricComponentGraph {\n return this.#current()?.componentGraph() ?? { components: [], edges: [], cycles: [] };\n }\n modelGuidance(): FabricOwnedModelGuidance[] { return this.#current()?.modelGuidance() ?? []; }\n participantInfos(options: FabricParticipantListOptions = {}): FabricParticipantInfo[] {\n return this.#current()?.participantInfos(options) ?? [];\n }\n queueUserMessage(targetId: string, message: string, delivery: FabricAgentMessageDelivery): Promise<FabricAgentMessageResult> {\n return this.#required().queueUserMessage(targetId, message, delivery);\n }\n stopParticipant(targetId: string): Promise<unknown> { return this.#required().stopParticipant(targetId); }\n claimHandoff(execution: FabricExecutionResult, sessionId: string, resultFormat: FabricResultFormat, outerToolCallId: string): Promise<PendingFabricHandoff | undefined> {\n return this.#required().claimHandoff(execution, sessionId, resultFormat, outerToolCallId);\n }\n runHandoffAtBoundary(pending: PendingFabricHandoff, result: AgentToolResultMessage, context: ExtensionContext): Promise<Record<string, unknown>> {\n return this.#required().runHandoffAtBoundary(pending, result, context);\n }\n noteMainActivity(context: ExtensionContext): void { this.#current()?.noteMainActivity(context); }\n dispatchHostEvent(event: FabricActorHostEvent, payload: unknown, context: ExtensionContext): number {\n return this.#current()?.dispatchHostEvent(event, payload, context) ?? 0;\n }\n publishHostLifecycle(event: FabricLifecycleEventType, payload: unknown): Promise<void> {\n return this.#current()?.publishHostLifecycle(event, payload) ?? Promise.resolve();\n }\n\n registerExternal(provider: FabricProvider, options: { overwrite?: boolean } = {}): void {\n if (this.#managedHost) {\n this.#managedHost.register(provider, options.overwrite);\n return;\n }\n if (\n provider.name === \"fabric\" ||\n provider.name === \"components\" ||\n FABRIC_COMPONENT_PROVIDER_NAMES.some((name) => name === provider.name)\n ) {\n throw new Error(`Reserved Fabric provider name: ${provider.name}`);\n }\n if (this.#externalProviders.has(provider.name) && !options.overwrite) {\n throw new Error(`Fabric provider already registered: ${provider.name}`);\n }\n this.#externalProviders.set(provider.name, provider);\n this.#current()?.registerExternal(provider, options);\n }\n\n registerExternalComponent(\n component: FabricComponentDefinition,\n options: { overwrite?: boolean } = {},\n ): void {\n if (this.#managedHost) throw new Error(\"Managed host component registration is disabled\");\n if (component.name.startsWith(FABRIC_PROVIDER_COMPONENT_PREFIX)) {\n throw new Error(`Reserved Fabric component name: ${component.name}`);\n }\n if (this.#externalComponents.has(component.name) && !options.overwrite) {\n throw new Error(`Fabric component already registered: ${component.name}`);\n }\n this.#externalComponents.set(component.name, component);\n this.#current()?.registerExternalComponent(component, options);\n }\n\n reloadConfig(context: ExtensionContext): void {\n const next = this.#managedHost?.config() ?? loadFabricConfig({\n cwd: context.cwd,\n agentDir: resolveAgentDir(),\n projectTrusted: context.isProjectTrusted(),\n });\n if (this.#config) {\n // Pi skill discovery is additive. Keep execution aligned with the loaded\n // skill tree until Pi reload creates a fresh extension/resource runtime.\n this.#kernelReloadRequired = next.executor.kernel !== this.#config.executor.kernel;\n next.executor.kernel = this.#config.executor.kernel;\n next.schema.mode = this.#config.schema.mode;\n // Isolate the selected language, including when a live schema override\n // differs from disk. CPython selects its OS sandbox at execution time.\n if (next.schema.mode === \"enforce\" && next.executor.kernel === \"typescript\") {\n next.executor.runtime = \"quickjs\";\n }\n }\n this.#config = next;\n this.#runtime?.reloadConfig(context, next);\n }\n\n // Ephemeral, session-only schema mode: mutates the live config (guidance,\n // resolved-action gate, and executor runtime all read it per call) without\n // touching fabric.json, so the next session starts from the configured mode.\n // reloadConfig preserves the override like the startup mode does.\n setSchemaMode(context: ExtensionContext, mode: FabricSchemaMode): void {\n if (this.#managedHost) throw new Error(\"Managed host policy is immutable\");\n if (!this.#config) throw new Error(\"Fabric is not initialized\");\n const previous = this.#config.schema.mode;\n if (mode === \"enforce\" && previous !== \"enforce\" && !this.#config.fullCodeMode) {\n throw new Error(\n \"Schema enforce requires full code mode; enable fullCodeMode or start a session with schema.mode=enforce\",\n );\n }\n this.#config.schema.mode = mode;\n if (mode === \"enforce\") {\n if (this.#config.executor.kernel === \"typescript\") this.#config.executor.runtime = \"quickjs\";\n } else if (previous === \"enforce\") {\n this.#config.executor.runtime = this.#diskConfig(context).executor.runtime;\n }\n this.#runtime?.setSchemaMode(mode, this.#config.executor.runtime);\n }\n\n schemaStatus(context: ExtensionContext): {\n mode: FabricSchemaMode;\n source: \"config\" | \"session override\";\n executorRuntime: string;\n } {\n const disk = this.#diskConfig(context);\n const mode = this.#config?.schema.mode ?? disk.schema.mode;\n return {\n mode,\n source: this.#config && this.#config.schema.mode !== disk.schema.mode\n ? \"session override\"\n : \"config\",\n executorRuntime: (this.#config ?? disk).executor.kernel === \"python\"\n ? (this.#config ?? disk).executor.pythonRuntime\n : this.#config?.executor.runtime ?? disk.executor.runtime,\n };\n }\n\n #diskConfig(context: ExtensionContext): FabricConfig {\n if (this.#managedHost) return this.#managedHost.config();\n const projectTrusted = context.isProjectTrusted();\n return loadFabricConfigForScope(\n { cwd: context.cwd, agentDir: resolveAgentDir(), projectTrusted },\n projectTrusted ? \"project\" : \"global\",\n );\n }\n\n async shutdown(): Promise<void> {\n const generation = ++this.#generation;\n const activation = this.#activation;\n if (activation) await activation.catch(() => undefined);\n if (generation !== this.#generation) return;\n\n const runtime = this.#runtime;\n this.#runtime = undefined;\n try {\n await runtime?.shutdown();\n await this.#managedHost?.close();\n } finally {\n if (generation === this.#generation) {\n this.#config = undefined;\n this.#cwd = undefined;\n this.#externalProviders.clear();\n this.#externalComponents.clear();\n this.#everActivated = false;\n this.activity.reset();\n this.prewalk.cancel();\n this.prewalkDrift.clear();\n }\n }\n }\n\n async #activate(context: ExtensionContext, reinitialize: boolean): Promise<FabricRuntimeState> {\n if (this.#activation) {\n if (this.#activationGeneration === this.#generation) return this.#activation;\n await this.#activation.catch(() => undefined);\n return this.#activate(context, reinitialize);\n }\n if (this.#runtime?.initialized && !reinitialize) return this.#runtime;\n\n const generation = this.#generation;\n const config = this.config;\n const existing = this.#runtime;\n const reusable = existing?.initialized ? existing : undefined;\n const orphan = existing && !existing.initialized ? existing : undefined;\n this.#runtime = undefined;\n let candidate: FabricRuntimeState | undefined;\n const assertCurrent = (): void => {\n if (generation !== this.#generation) {\n throw new Error(\"Pi Fabric activation was superseded by a session change\");\n }\n };\n const activation = (async () => {\n try {\n await orphan?.shutdown().catch(() => undefined);\n assertCurrent();\n candidate = reusable ?? await this.#createRuntime();\n if (!reusable) {\n for (const component of this.#externalComponents.values()) {\n candidate.registerExternalComponent(component, { overwrite: true });\n }\n }\n await candidate.initialize(context, config);\n assertCurrent();\n for (const provider of this.#externalProviders.values()) {\n candidate.registerExternal(provider, { overwrite: true });\n }\n await candidate.settleComponents?.();\n assertCurrent();\n this.#activatingRuntime = candidate;\n candidate.widgetDismissedAt = this.#widgetDismissedAt;\n await this.#activationHook?.(context);\n assertCurrent();\n this.#runtime = candidate;\n this.#activatingRuntime = undefined;\n this.#everActivated = true;\n return candidate;\n } catch (error) {\n try {\n await this.#activationFailureHook?.();\n } catch {\n // Cleanup is best-effort; preserve the activation failure.\n }\n if (this.#activatingRuntime === candidate) this.#activatingRuntime = undefined;\n if (candidate) await candidate.shutdown().catch(() => undefined);\n if (this.#runtime === candidate) this.#runtime = undefined;\n throw error;\n }\n })();\n this.#activation = activation;\n this.#activationGeneration = generation;\n void activation.finally(() => {\n if (this.#activation === activation) {\n this.#activation = undefined;\n this.#activationGeneration = undefined;\n }\n }).catch(() => undefined);\n return activation;\n }\n\n async #createRuntime(): Promise<FabricRuntimeState> {\n const module = await (this.#options.runtimeLoader?.() ?? import(\"./fabric-runtime-state.js\"));\n return new module.FabricRuntimeState(\n this.pi,\n this.capturedTools,\n {\n ...(this.#managedHost ? {managedHost: this.#managedHost} : {}),\n activity: this.activity,\n prewalk: this.prewalk,\n prewalkDrift: this.prewalkDrift,\n sessionApprovals: this.sessionApprovals,\n ...(this.#options.paths ? { paths: this.#options.paths } : {}),\n },\n );\n }\n\n #current(): FabricRuntimeState | undefined {\n return this.#runtime ?? this.#activatingRuntime;\n }\n\n #required(): FabricRuntimeState {\n const runtime = this.#current();\n if (!runtime?.initialized) throw new Error(\"Pi Fabric has not activated\");\n return runtime;\n }\n}\n", "import { DEFAULT_FABRIC_CONFIG, type FabricConfig } from \"./config.js\";\nimport { createProviderComponent, type FabricProviderComponent } from \"./components/provider-component.js\";\nimport type { FabricProvider } from \"./protocol.js\";\n\nconst REPLACEABLE = new Set([\"agents\", \"memory\", \"compact\", \"schema\", \"state\", \"mesh\", \"mcp\"]);\nexport interface FabricManagedHostOptions {\n /** Host code only; never read from project/global configuration or the provider event payload. */\n providers: readonly string[];\n}\n\n/** Closed-world provider authority for embedded hosts. Native providers cannot return on reload. */\nexport class FabricManagedHost {\n readonly #allowed: Set<string>;\n readonly #providers = new Map<string, FabricProvider>();\n readonly #retired = new Set<FabricProvider>();\n #sealed = false;\n constructor(options: FabricManagedHostOptions) {\n this.#allowed = new Set(options.providers);\n for (const name of this.#allowed) if (!REPLACEABLE.has(name)) throw new Error(`Managed host cannot replace provider: ${name}`);\n }\n register(provider: FabricProvider, overwrite = false): void {\n if (!this.#allowed.has(provider.name)) throw new Error(`Managed host provider not authorized: ${provider.name}`);\n const previous = this.#providers.get(provider.name);\n if (previous === provider) return;\n if (this.#sealed) throw new Error(\"Managed provider authority is sealed; create a new host to replace it\");\n if (previous && !overwrite) throw new Error(`Fabric provider already registered: ${provider.name}`);\n if (previous) this.#retired.add(previous);\n this.#providers.set(provider.name, provider);\n }\n seal(): void {\n for (const name of this.#allowed) if (!this.#providers.has(name)) throw new Error(`Managed host provider missing: ${name}`);\n this.#sealed = true;\n }\n has(name: string): boolean { return this.#allowed.has(name); }\n provider(name: string): FabricProvider {\n const source = this.#providers.get(name);\n if (!source) return {name, description: \"Unavailable in managed host\", list: async () => [], describe: async () => undefined, invoke: async () => {throw new Error(`Managed host provider unavailable: ${name}`);}};\n // Components own publication, while the host owns the supplied object's lifetime. Reload does\n // not close then reuse it; final host shutdown awaits close exactly once after withdrawal.\n return {name, description: source.description, list: source.list.bind(source), describe: source.describe.bind(source), invoke: source.invoke.bind(source),\n ...(source.prepareArguments ? {prepareArguments: source.prepareArguments.bind(source)} : {}),\n ...(source.acquire ? {acquire: source.acquire.bind(source)} : {}),\n ...(source.invocationEnded ? {invocationEnded: source.invocationEnded.bind(source)} : {}),\n ...(source.subscribeCatalog ? {subscribeCatalog: source.subscribeCatalog.bind(source)} : {}),\n };\n }\n component(component: FabricProviderComponent): FabricProviderComponent {\n const name = component.definition.provides?.[0];\n if (typeof name !== \"string\" || name === \"pi\" || name === \"extensions\") return component;\n return createProviderComponent({provider: name, description: \"Managed host provider\", create: () => this.provider(name)});\n }\n config(): FabricConfig {\n const config = structuredClone(DEFAULT_FABRIC_CONFIG);\n config.fullCodeMode = true;\n config.executor.kernel = \"typescript\";\n config.executor.runtime = \"quickjs\";\n config.mcp.enabled = false;\n config.mcp.allowDynamicServers = false;\n config.mesh.enabled = false;\n config.agents.enabled = false;\n config.agents.sessionExport = false;\n config.prewalk.enabled = false;\n config.memory.enabled = false;\n config.repairs.enabled = false;\n config.entropy.compile = false;\n config.speculation.enabled = false;\n config.ui.enabled = false;\n config.schema.mode = \"off\";\n config.schema.trustedCommands = {};\n config.components = [];\n config.compaction.engine = \"fabric\";\n config.approvals = {...config.approvals, read: \"allow\", write: \"allow\", execute: \"allow\", agent: \"allow\", network: \"deny\"};\n return config;\n }\n async close(): Promise<void> {\n const providers = new Set([...this.#providers.values(), ...this.#retired]);\n this.#providers.clear(); this.#retired.clear();\n await Promise.all([...providers].map((provider) => provider.close?.()));\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -934,6 +934,19 @@ import os3 from "node:os";
|
|
|
934
934
|
import path11 from "node:path";
|
|
935
935
|
import { fileURLToPath } from "node:url";
|
|
936
936
|
|
|
937
|
+
// src/core/child-tool-allowlist.ts
|
|
938
|
+
function readChildToolAllowlist(raw = process.env.PI_FABRIC_TOOL_ALLOWLIST) {
|
|
939
|
+
if (raw === void 0) return void 0;
|
|
940
|
+
try {
|
|
941
|
+
const names = JSON.parse(raw);
|
|
942
|
+
if (Array.isArray(names) && names.every((name) => typeof name === "string")) {
|
|
943
|
+
return new Set(names.filter((name) => name !== "fabric_exec"));
|
|
944
|
+
}
|
|
945
|
+
} catch {
|
|
946
|
+
}
|
|
947
|
+
return /* @__PURE__ */ new Set();
|
|
948
|
+
}
|
|
949
|
+
|
|
937
950
|
// src/agents/semaphore.ts
|
|
938
951
|
var Semaphore = class {
|
|
939
952
|
constructor(limit) {
|
|
@@ -1695,11 +1708,6 @@ var effectiveAgentTimeoutMs = (configuredTimeoutMs, requestedTimeoutMs) => {
|
|
|
1695
1708
|
Math.min(Math.floor(requestedTimeoutMs), MAX_AGENT_TIMEOUT_MS)
|
|
1696
1709
|
);
|
|
1697
1710
|
};
|
|
1698
|
-
var validateAgentCwdRequest = (request) => {
|
|
1699
|
-
if (request.cwd !== void 0 && request.recursive === true) {
|
|
1700
|
-
throw new Error("Fabric agent cwd is supported only for non-recursive agents; omit cwd when recursive is true");
|
|
1701
|
-
}
|
|
1702
|
-
};
|
|
1703
1711
|
var resolveAgentCwd = (parentCwd, requestedCwd) => {
|
|
1704
1712
|
if (requestedCwd === void 0) return parentCwd;
|
|
1705
1713
|
const requested = requestedCwd;
|
|
@@ -1996,7 +2004,6 @@ var AgentManager = class {
|
|
|
1996
2004
|
...request.recursive === true ? { extensions: true } : {}
|
|
1997
2005
|
});
|
|
1998
2006
|
const pythonRuntime = kernel ? this.resolvePythonRuntime(request.pythonRuntime) : void 0;
|
|
1999
|
-
validateAgentCwdRequest(request);
|
|
2000
2007
|
const selectedCwd = this.resolveCwd(request.cwd);
|
|
2001
2008
|
const residency = request.residency ?? "session";
|
|
2002
2009
|
if (residency !== "session" && residency !== "durable") {
|
|
@@ -2761,9 +2768,10 @@ var AgentManager = class {
|
|
|
2761
2768
|
} catch {
|
|
2762
2769
|
}
|
|
2763
2770
|
}
|
|
2771
|
+
#inheritedToolAllowlist = readChildToolAllowlist();
|
|
2764
2772
|
#childTools(request, runner, requiresFabricKernel = false) {
|
|
2765
2773
|
const tools = [...request.tools ?? this.config.defaultTools].filter(
|
|
2766
|
-
(tool) => tool !== "fabric_exec"
|
|
2774
|
+
(tool) => tool !== "fabric_exec" && (this.#inheritedToolAllowlist === void 0 || this.#inheritedToolAllowlist.has(tool))
|
|
2767
2775
|
);
|
|
2768
2776
|
const extensions = request.recursive === true ? true : request.extensions ?? this.config.extensions;
|
|
2769
2777
|
if (runner === "pi" && (request.recursive || (this.#fullCodeMode || requiresFabricKernel) && extensions)) {
|
|
@@ -6738,6 +6746,7 @@ var actorParticipantRecord = (actor, rootId, ownerHostId, ownerIdentityId, paren
|
|
|
6738
6746
|
export {
|
|
6739
6747
|
loadModelUsage,
|
|
6740
6748
|
MeshStore,
|
|
6749
|
+
readChildToolAllowlist,
|
|
6741
6750
|
resolvePiBinary,
|
|
6742
6751
|
FABRIC_PARTICIPANT_LIFECYCLE_TOPIC,
|
|
6743
6752
|
FABRIC_LIFECYCLE_EVENTS,
|
|
@@ -6747,7 +6756,6 @@ export {
|
|
|
6747
6756
|
addCloneFirstWorktree,
|
|
6748
6757
|
useBudgetLedger,
|
|
6749
6758
|
effectiveAgentTimeoutMs,
|
|
6750
|
-
validateAgentCwdRequest,
|
|
6751
6759
|
resolveAgentCwd,
|
|
6752
6760
|
AgentManager,
|
|
6753
6761
|
resolveActorDeliveryPolicy,
|
|
@@ -6760,4 +6768,4 @@ export {
|
|
|
6760
6768
|
agentParticipantRecords,
|
|
6761
6769
|
actorParticipantRecord
|
|
6762
6770
|
};
|
|
6763
|
-
//# sourceMappingURL=chunk-
|
|
6771
|
+
//# sourceMappingURL=chunk-WJW47JBN.js.map
|