pi-fabric 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +635 -0
  3. package/THIRD_PARTY_NOTICES.md +9 -0
  4. package/dist/activity/store.d.ts +27 -0
  5. package/dist/activity/store.d.ts.map +1 -0
  6. package/dist/activity/store.js +474 -0
  7. package/dist/activity/store.js.map +1 -0
  8. package/dist/activity/types.d.ts +101 -0
  9. package/dist/activity/types.d.ts.map +1 -0
  10. package/dist/activity/types.js +2 -0
  11. package/dist/activity/types.js.map +1 -0
  12. package/dist/actors/context.d.ts +13 -0
  13. package/dist/actors/context.d.ts.map +1 -0
  14. package/dist/actors/context.js +155 -0
  15. package/dist/actors/context.js.map +1 -0
  16. package/dist/actors/manager.d.ts +33 -0
  17. package/dist/actors/manager.d.ts.map +1 -0
  18. package/dist/actors/manager.js +751 -0
  19. package/dist/actors/manager.js.map +1 -0
  20. package/dist/actors/types.d.ts +67 -0
  21. package/dist/actors/types.d.ts.map +1 -0
  22. package/dist/actors/types.js +2 -0
  23. package/dist/actors/types.js.map +1 -0
  24. package/dist/capture/catalog.d.ts +23 -0
  25. package/dist/capture/catalog.d.ts.map +1 -0
  26. package/dist/capture/catalog.js +53 -0
  27. package/dist/capture/catalog.js.map +1 -0
  28. package/dist/capture/interceptor.d.ts +13 -0
  29. package/dist/capture/interceptor.d.ts.map +1 -0
  30. package/dist/capture/interceptor.js +130 -0
  31. package/dist/capture/interceptor.js.map +1 -0
  32. package/dist/commands/fabric.d.ts +14 -0
  33. package/dist/commands/fabric.d.ts.map +1 -0
  34. package/dist/commands/fabric.js +237 -0
  35. package/dist/commands/fabric.js.map +1 -0
  36. package/dist/config.d.ts +89 -0
  37. package/dist/config.d.ts.map +1 -0
  38. package/dist/config.js +255 -0
  39. package/dist/config.js.map +1 -0
  40. package/dist/core/action-registry.d.ts +71 -0
  41. package/dist/core/action-registry.d.ts.map +1 -0
  42. package/dist/core/action-registry.js +273 -0
  43. package/dist/core/action-registry.js.map +1 -0
  44. package/dist/core/approval-controller.d.ts +11 -0
  45. package/dist/core/approval-controller.d.ts.map +1 -0
  46. package/dist/core/approval-controller.js +45 -0
  47. package/dist/core/approval-controller.js.map +1 -0
  48. package/dist/core/pi-tools.d.ts +4 -0
  49. package/dist/core/pi-tools.d.ts.map +1 -0
  50. package/dist/core/pi-tools.js +11 -0
  51. package/dist/core/pi-tools.js.map +1 -0
  52. package/dist/core/tool-ownership.d.ts +12 -0
  53. package/dist/core/tool-ownership.d.ts.map +1 -0
  54. package/dist/core/tool-ownership.js +41 -0
  55. package/dist/core/tool-ownership.js.map +1 -0
  56. package/dist/execution-service.d.ts +41 -0
  57. package/dist/execution-service.d.ts.map +1 -0
  58. package/dist/execution-service.js +210 -0
  59. package/dist/execution-service.js.map +1 -0
  60. package/dist/fabric-state.d.ts +38 -0
  61. package/dist/fabric-state.d.ts.map +1 -0
  62. package/dist/fabric-state.js +275 -0
  63. package/dist/fabric-state.js.map +1 -0
  64. package/dist/index.d.ts +4 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +491 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/mesh/store.d.ts +68 -0
  69. package/dist/mesh/store.d.ts.map +1 -0
  70. package/dist/mesh/store.js +387 -0
  71. package/dist/mesh/store.js.map +1 -0
  72. package/dist/protocol.d.ts +62 -0
  73. package/dist/protocol.d.ts.map +1 -0
  74. package/dist/protocol.js +3 -0
  75. package/dist/protocol.js.map +1 -0
  76. package/dist/providers/agents-provider.d.ts +15 -0
  77. package/dist/providers/agents-provider.d.ts.map +1 -0
  78. package/dist/providers/agents-provider.js +393 -0
  79. package/dist/providers/agents-provider.js.map +1 -0
  80. package/dist/providers/captured-tools-provider.d.ts +23 -0
  81. package/dist/providers/captured-tools-provider.d.ts.map +1 -0
  82. package/dist/providers/captured-tools-provider.js +170 -0
  83. package/dist/providers/captured-tools-provider.js.map +1 -0
  84. package/dist/providers/mcp-provider.d.ts +15 -0
  85. package/dist/providers/mcp-provider.d.ts.map +1 -0
  86. package/dist/providers/mcp-provider.js +289 -0
  87. package/dist/providers/mcp-provider.js.map +1 -0
  88. package/dist/providers/mesh-provider.d.ts +13 -0
  89. package/dist/providers/mesh-provider.d.ts.map +1 -0
  90. package/dist/providers/mesh-provider.js +175 -0
  91. package/dist/providers/mesh-provider.js.map +1 -0
  92. package/dist/providers/pi-tools-provider.d.ts +14 -0
  93. package/dist/providers/pi-tools-provider.d.ts.map +1 -0
  94. package/dist/providers/pi-tools-provider.js +200 -0
  95. package/dist/providers/pi-tools-provider.js.map +1 -0
  96. package/dist/runtime/guest-types.d.ts +3 -0
  97. package/dist/runtime/guest-types.d.ts.map +1 -0
  98. package/dist/runtime/guest-types.js +313 -0
  99. package/dist/runtime/guest-types.js.map +1 -0
  100. package/dist/runtime/quickjs-runtime.d.ts +18 -0
  101. package/dist/runtime/quickjs-runtime.d.ts.map +1 -0
  102. package/dist/runtime/quickjs-runtime.js +538 -0
  103. package/dist/runtime/quickjs-runtime.js.map +1 -0
  104. package/dist/runtime/type-checker.d.ts +10 -0
  105. package/dist/runtime/type-checker.d.ts.map +1 -0
  106. package/dist/runtime/type-checker.js +71 -0
  107. package/dist/runtime/type-checker.js.map +1 -0
  108. package/dist/subagents/budget-ledger.d.ts +61 -0
  109. package/dist/subagents/budget-ledger.d.ts.map +1 -0
  110. package/dist/subagents/budget-ledger.js +92 -0
  111. package/dist/subagents/budget-ledger.js.map +1 -0
  112. package/dist/subagents/manager.d.ts +27 -0
  113. package/dist/subagents/manager.d.ts.map +1 -0
  114. package/dist/subagents/manager.js +497 -0
  115. package/dist/subagents/manager.js.map +1 -0
  116. package/dist/subagents/semaphore.d.ts +7 -0
  117. package/dist/subagents/semaphore.d.ts.map +1 -0
  118. package/dist/subagents/semaphore.js +54 -0
  119. package/dist/subagents/semaphore.js.map +1 -0
  120. package/dist/subagents/transports/localterm-transport.d.ts +7 -0
  121. package/dist/subagents/transports/localterm-transport.d.ts.map +1 -0
  122. package/dist/subagents/transports/localterm-transport.js +54 -0
  123. package/dist/subagents/transports/localterm-transport.js.map +1 -0
  124. package/dist/subagents/transports/process-transport.d.ts +7 -0
  125. package/dist/subagents/transports/process-transport.d.ts.map +1 -0
  126. package/dist/subagents/transports/process-transport.js +17 -0
  127. package/dist/subagents/transports/process-transport.js.map +1 -0
  128. package/dist/subagents/transports/process-utils.d.ts +16 -0
  129. package/dist/subagents/transports/process-utils.d.ts.map +1 -0
  130. package/dist/subagents/transports/process-utils.js +57 -0
  131. package/dist/subagents/transports/process-utils.js.map +1 -0
  132. package/dist/subagents/transports/screen-transport.d.ts +7 -0
  133. package/dist/subagents/transports/screen-transport.d.ts.map +1 -0
  134. package/dist/subagents/transports/screen-transport.js +33 -0
  135. package/dist/subagents/transports/screen-transport.js.map +1 -0
  136. package/dist/subagents/transports/tmux-transport.d.ts +7 -0
  137. package/dist/subagents/transports/tmux-transport.d.ts.map +1 -0
  138. package/dist/subagents/transports/tmux-transport.js +41 -0
  139. package/dist/subagents/transports/tmux-transport.js.map +1 -0
  140. package/dist/subagents/types.d.ts +132 -0
  141. package/dist/subagents/types.d.ts.map +1 -0
  142. package/dist/subagents/types.js +2 -0
  143. package/dist/subagents/types.js.map +1 -0
  144. package/dist/subagents/worktree-manager.d.ts +12 -0
  145. package/dist/subagents/worktree-manager.d.ts.map +1 -0
  146. package/dist/subagents/worktree-manager.js +53 -0
  147. package/dist/subagents/worktree-manager.js.map +1 -0
  148. package/dist/ui/controller.d.ts +14 -0
  149. package/dist/ui/controller.d.ts.map +1 -0
  150. package/dist/ui/controller.js +153 -0
  151. package/dist/ui/controller.js.map +1 -0
  152. package/dist/ui/dashboard.d.ts +36 -0
  153. package/dist/ui/dashboard.d.ts.map +1 -0
  154. package/dist/ui/dashboard.js +620 -0
  155. package/dist/ui/dashboard.js.map +1 -0
  156. package/dist/ui/fabric-render.d.ts +28 -0
  157. package/dist/ui/fabric-render.d.ts.map +1 -0
  158. package/dist/ui/fabric-render.js +280 -0
  159. package/dist/ui/fabric-render.js.map +1 -0
  160. package/dist/ui/format.d.ts +7 -0
  161. package/dist/ui/format.d.ts.map +1 -0
  162. package/dist/ui/format.js +57 -0
  163. package/dist/ui/format.js.map +1 -0
  164. package/dist/ui/highlight.d.ts +13 -0
  165. package/dist/ui/highlight.d.ts.map +1 -0
  166. package/dist/ui/highlight.js +337 -0
  167. package/dist/ui/highlight.js.map +1 -0
  168. package/dist/ui/settings.d.ts +21 -0
  169. package/dist/ui/settings.d.ts.map +1 -0
  170. package/dist/ui/settings.js +480 -0
  171. package/dist/ui/settings.js.map +1 -0
  172. package/dist/ui/snapshot.d.ts +5 -0
  173. package/dist/ui/snapshot.d.ts.map +1 -0
  174. package/dist/ui/snapshot.js +120 -0
  175. package/dist/ui/snapshot.js.map +1 -0
  176. package/dist/ui/types.d.ts +57 -0
  177. package/dist/ui/types.d.ts.map +1 -0
  178. package/dist/ui/types.js +11 -0
  179. package/dist/ui/types.js.map +1 -0
  180. package/dist/ui/widget.d.ts +16 -0
  181. package/dist/ui/widget.d.ts.map +1 -0
  182. package/dist/ui/widget.js +199 -0
  183. package/dist/ui/widget.js.map +1 -0
  184. package/dist/util.d.ts +2 -0
  185. package/dist/util.d.ts.map +1 -0
  186. package/dist/util.js +10 -0
  187. package/dist/util.js.map +1 -0
  188. package/dist/worker.d.ts +3 -0
  189. package/dist/worker.d.ts.map +1 -0
  190. package/dist/worker.js +478 -0
  191. package/dist/worker.js.map +1 -0
  192. package/package.json +87 -0
  193. package/skills/fabric-advisor/SKILL.md +53 -0
  194. package/skills/fabric-ambient/SKILL.md +84 -0
  195. package/skills/fabric-council/SKILL.md +37 -0
  196. package/skills/fabric-exec/SKILL.md +39 -0
  197. package/skills/fabric-exec/references/agents.md +78 -0
  198. package/skills/fabric-exec/references/mcp.md +46 -0
  199. package/skills/fabric-exec/references/mesh.md +42 -0
  200. package/skills/fabric-rlm/SKILL.md +84 -0
  201. package/skills/fabric-supervisor/SKILL.md +63 -0
  202. package/skills/fabric-swarm/SKILL.md +85 -0
  203. package/skills/fabric-workflow/SKILL.md +69 -0
@@ -0,0 +1,210 @@
1
+ import { FabricActivityStore } from "./activity/store.js";
2
+ import { ActionRegistry, } from "./core/action-registry.js";
3
+ import { ApprovalController } from "./core/approval-controller.js";
4
+ import { guestTypeDeclarations } from "./runtime/guest-types.js";
5
+ import { QuickJsRuntime } from "./runtime/quickjs-runtime.js";
6
+ import { typeCheckFabricCode } from "./runtime/type-checker.js";
7
+ export class FabricExecutionService {
8
+ registry;
9
+ config;
10
+ activity;
11
+ #runtime = new QuickJsRuntime();
12
+ constructor(registry, config, activity) {
13
+ this.registry = registry;
14
+ this.config = config;
15
+ this.activity = activity;
16
+ }
17
+ async execute(options) {
18
+ const startedAt = performance.now();
19
+ this.activity?.start(options.parentToolCallId, options.display);
20
+ const checked = typeCheckFabricCode(options.code, guestTypeDeclarations(this.config.fullCodeMode));
21
+ if (checked.errors.length > 0) {
22
+ this.activity?.finish(options.parentToolCallId, false, "Type checking failed");
23
+ return {
24
+ success: false,
25
+ value: undefined,
26
+ logs: [],
27
+ audits: [],
28
+ phases: [],
29
+ elapsedMs: performance.now() - startedAt,
30
+ typeErrors: checked.errors,
31
+ };
32
+ }
33
+ const approval = new ApprovalController(this.config.approvals, options.context);
34
+ const audits = [];
35
+ const phases = [];
36
+ let agentCalls = 0;
37
+ const maxAgentCalls = Math.max(1, Math.min(options.maxAgentCalls ?? this.config.subagents.maxPerExecution, this.config.subagents.maxPerExecution));
38
+ const guardAgentCall = (ref) => {
39
+ if (ref !== "agents.run" && ref !== "agents.spawn" && ref !== "agents.create")
40
+ return;
41
+ agentCalls++;
42
+ if (agentCalls > maxAgentCalls) {
43
+ throw new Error(`Fabric agent budget exhausted (${maxAgentCalls} per execution)`);
44
+ }
45
+ };
46
+ const fullCodeProvider = (value) => {
47
+ const separator = value.indexOf(".");
48
+ const provider = separator > 0 ? value.slice(0, separator) : value;
49
+ return provider === "pi" || provider === "extensions" ? provider : undefined;
50
+ };
51
+ const guardFullCodeRef = (ref) => {
52
+ if (this.config.fullCodeMode)
53
+ return;
54
+ const provider = fullCodeProvider(ref);
55
+ if (!provider)
56
+ return;
57
+ throw new Error(`Fabric full code mode is disabled; call ${provider === "pi" ? "Pi core" : "registered extension"} tools directly outside fabric_exec`);
58
+ };
59
+ let currentProgress;
60
+ const emit = () => {
61
+ options.onPartial({ audits: audits.slice(), progress: currentProgress });
62
+ };
63
+ const update = (message) => {
64
+ currentProgress = message;
65
+ emit();
66
+ };
67
+ const observeInvocation = (event) => {
68
+ if (this.activity) {
69
+ if (event.type === "call_start") {
70
+ this.activity.beginCall(options.parentToolCallId, event);
71
+ }
72
+ else if (event.type === "call_update") {
73
+ this.activity.updateCall(options.parentToolCallId, event.callId, event.update);
74
+ }
75
+ else {
76
+ this.activity.finishCall(options.parentToolCallId, event.callId, event);
77
+ }
78
+ }
79
+ if (event.type === "call_end")
80
+ emit();
81
+ };
82
+ const baseContext = {
83
+ cwd: options.context.cwd,
84
+ signal: options.signal,
85
+ parentToolCallId: options.parentToolCallId,
86
+ nestedToolCallId: `${options.parentToolCallId}_metadata`,
87
+ extensionContext: options.context,
88
+ update,
89
+ };
90
+ let sandboxResult;
91
+ try {
92
+ sandboxResult = await this.#runtime.execute(options.code, async (ref, args, runtimeSignal) => {
93
+ const callContext = { ...baseContext, signal: runtimeSignal };
94
+ switch (ref) {
95
+ case "fabric.$providers":
96
+ return this.registry
97
+ .providers()
98
+ .filter((provider) => this.config.fullCodeMode || !fullCodeProvider(provider.name));
99
+ case "fabric.$list": {
100
+ if (typeof args.provider === "string")
101
+ guardFullCodeRef(`${args.provider}.*`);
102
+ const actions = await this.registry.list({
103
+ ...(typeof args.provider === "string" ? { provider: args.provider } : {}),
104
+ ...(typeof args.namespace === "string" ? { namespace: args.namespace } : {}),
105
+ ...(typeof args.query === "string" ? { query: args.query } : {}),
106
+ ...(typeof args.limit === "number" ? { limit: args.limit } : {}),
107
+ }, callContext);
108
+ return actions.filter((action) => this.config.fullCodeMode || !fullCodeProvider(action.provider));
109
+ }
110
+ case "fabric.$search": {
111
+ const actions = await this.registry.search(String(args.query ?? ""), callContext, typeof args.limit === "number" ? args.limit : undefined);
112
+ return actions.filter((action) => this.config.fullCodeMode || !fullCodeProvider(action.provider));
113
+ }
114
+ case "fabric.$describe": {
115
+ const targetRef = String(args.ref ?? "");
116
+ guardFullCodeRef(targetRef);
117
+ return this.registry.describe(targetRef, callContext);
118
+ }
119
+ case "fabric.$call": {
120
+ const callArgs = typeof args.args === "object" && args.args !== null && !Array.isArray(args.args)
121
+ ? args.args
122
+ : {};
123
+ const targetRef = String(args.ref ?? "");
124
+ guardFullCodeRef(targetRef);
125
+ guardAgentCall(targetRef);
126
+ return this.registry.invoke(targetRef, callArgs, {
127
+ ...callContext,
128
+ approve: (action) => approval.approve(action),
129
+ audits,
130
+ maxResultChars: this.config.executor.maxNestedResultChars,
131
+ observeInvocation,
132
+ });
133
+ }
134
+ case "fabric.$progress":
135
+ update(String(args.message ?? "Working"));
136
+ return undefined;
137
+ case "fabric.$configure": {
138
+ const display = {
139
+ ...(typeof args.name === "string" ? { name: args.name } : {}),
140
+ ...(typeof args.description === "string" ? { description: args.description } : {}),
141
+ };
142
+ return this.activity?.configure(options.parentToolCallId, display) ?? display;
143
+ }
144
+ case "fabric.$phase": {
145
+ const name = String(args.name ?? "").trim();
146
+ if (!name)
147
+ throw new Error("Workflow phase name must not be empty");
148
+ if (!phases.includes(name))
149
+ phases.push(name);
150
+ const phaseInput = {
151
+ name,
152
+ ...(typeof args.id === "string" ? { id: args.id } : {}),
153
+ ...(typeof args.description === "string" ? { description: args.description } : {}),
154
+ ...(typeof args.total === "number" ? { total: args.total } : {}),
155
+ };
156
+ const activityPhase = this.activity?.phase(options.parentToolCallId, phaseInput);
157
+ update(`Phase: ${name}`);
158
+ return {
159
+ name,
160
+ index: phases.indexOf(name),
161
+ ...(activityPhase ? { id: activityPhase.id } : {}),
162
+ };
163
+ }
164
+ case "fabric.$item": {
165
+ const item = args;
166
+ return this.activity?.upsertItem(options.parentToolCallId, item) ?? item;
167
+ }
168
+ case "fabric.$event": {
169
+ const event = args;
170
+ this.activity?.event(options.parentToolCallId, event);
171
+ return undefined;
172
+ }
173
+ default:
174
+ guardFullCodeRef(ref);
175
+ guardAgentCall(ref);
176
+ return this.registry.invoke(ref, args, {
177
+ ...callContext,
178
+ approve: (action) => approval.approve(action),
179
+ audits,
180
+ maxResultChars: this.config.executor.maxNestedResultChars,
181
+ observeInvocation,
182
+ });
183
+ }
184
+ }, {
185
+ timeoutMs: this.config.executor.timeoutMs,
186
+ memoryLimitBytes: this.config.executor.memoryLimitBytes,
187
+ maxLogChars: this.config.executor.maxOutputChars,
188
+ ...(options.strings ? { strings: options.strings } : {}),
189
+ ...(options.tokenBudget !== undefined ? { tokenBudget: options.tokenBudget } : {}),
190
+ ...(options.signal ? { signal: options.signal } : {}),
191
+ });
192
+ }
193
+ catch (error) {
194
+ const message = error instanceof Error ? error.message : String(error);
195
+ this.activity?.finish(options.parentToolCallId, false, message);
196
+ throw error;
197
+ }
198
+ this.activity?.finish(options.parentToolCallId, !sandboxResult.error, sandboxResult.error);
199
+ return {
200
+ success: !sandboxResult.error,
201
+ value: sandboxResult.value,
202
+ logs: sandboxResult.logs,
203
+ audits,
204
+ phases,
205
+ elapsedMs: performance.now() - startedAt,
206
+ ...(sandboxResult.error ? { error: sandboxResult.error } : {}),
207
+ };
208
+ }
209
+ }
210
+ //# sourceMappingURL=execution-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-service.js","sourceRoot":"","sources":["../src/execution-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type ExtensionContext } from "@earendil-works/pi-coding-agent";
2
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
3
+ import { FabricActivityStore } from "./activity/store.js";
4
+ import { ActorManager } from "./actors/manager.js";
5
+ import type { FabricActorHostEvent } from "./actors/types.js";
6
+ import { CapturedToolCatalog } from "./capture/catalog.js";
7
+ import { type FabricConfig } from "./config.js";
8
+ import { ActionRegistry } from "./core/action-registry.js";
9
+ import { FabricExecutionService } from "./execution-service.js";
10
+ import { MeshStore } from "./mesh/store.js";
11
+ import { type FabricProvider } from "./protocol.js";
12
+ import { SubagentManager } from "./subagents/manager.js";
13
+ export declare class FabricState {
14
+ #private;
15
+ readonly pi: ExtensionAPI;
16
+ readonly capturedTools: CapturedToolCatalog;
17
+ readonly activity: FabricActivityStore;
18
+ constructor(pi: ExtensionAPI, capturedTools: CapturedToolCatalog);
19
+ get initialized(): boolean;
20
+ get widgetDismissedAt(): number;
21
+ set widgetDismissedAt(value: number);
22
+ get cwd(): string | undefined;
23
+ get config(): FabricConfig;
24
+ get registry(): ActionRegistry;
25
+ get execution(): FabricExecutionService;
26
+ get subagents(): SubagentManager;
27
+ get actors(): ActorManager;
28
+ get mesh(): MeshStore;
29
+ initialize(context: ExtensionContext): Promise<void>;
30
+ ensure(context: ExtensionContext): Promise<void>;
31
+ reloadConfig(context: ExtensionContext): void;
32
+ dispatchHostEvent(event: FabricActorHostEvent, payload: unknown, context: ExtensionContext): number;
33
+ registerExternal(provider: FabricProvider, options?: {
34
+ overwrite?: boolean;
35
+ }): void;
36
+ shutdown(): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=fabric-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fabric-state.d.ts","sourceRoot":"","sources":["../src/fabric-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAqB,MAAM,iBAAiB,CAAC;AAM/D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,qBAAa,WAAW;;IAapB,QAAQ,CAAC,EAAE,EAAE,YAAY;IACzB,QAAQ,CAAC,aAAa,EAAE,mBAAmB;IAL7C,QAAQ,CAAC,QAAQ,sBAA6B;gBAInC,EAAE,EAAE,YAAY,EAChB,aAAa,EAAE,mBAAmB;IAG7C,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAElC;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,MAAM,IAAI,YAAY,CAGzB;IAED,IAAI,QAAQ,IAAI,cAAc,CAG7B;IAED,IAAI,SAAS,IAAI,sBAAsB,CAGtC;IAED,IAAI,SAAS,IAAI,eAAe,CAG/B;IAED,IAAI,MAAM,IAAI,YAAY,CAGzB;IAED,IAAI,IAAI,IAAI,SAAS,CAGpB;IAEK,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+GpD,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAU7C,iBAAiB,CACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,gBAAgB,GACxB,MAAM;IA8CT,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IAWjF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBhC"}
@@ -0,0 +1,275 @@
1
+ import { getAgentDir } from "@earendil-works/pi-coding-agent";
2
+ import path from "node:path";
3
+ import { FabricActivityStore } from "./activity/store.js";
4
+ import { ActorManager } from "./actors/manager.js";
5
+ import { buildActorContext } from "./actors/context.js";
6
+ import { CapturedToolCatalog } from "./capture/catalog.js";
7
+ import { loadFabricConfig } from "./config.js";
8
+ import { ActionRegistry } from "./core/action-registry.js";
9
+ import { FabricExecutionService } from "./execution-service.js";
10
+ import { MeshStore } from "./mesh/store.js";
11
+ import { AgentsProvider } from "./providers/agents-provider.js";
12
+ import { CapturedToolsProvider } from "./providers/captured-tools-provider.js";
13
+ import { McpProvider } from "./providers/mcp-provider.js";
14
+ import { MeshProvider } from "./providers/mesh-provider.js";
15
+ import { PiToolsProvider } from "./providers/pi-tools-provider.js";
16
+ import { FABRIC_PROVIDER_DISCOVER_EVENT, } from "./protocol.js";
17
+ import { SubagentManager } from "./subagents/manager.js";
18
+ const BACKGROUND_COMPLETION_MAX_CHARS = 8_000;
19
+ const ACTOR_DELIVERY_MAX_CHARS = 8_000;
20
+ const escapeXmlText = (value) => value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
21
+ export class FabricState {
22
+ pi;
23
+ capturedTools;
24
+ #registry;
25
+ #config;
26
+ #execution;
27
+ #subagents;
28
+ #actors;
29
+ #mesh;
30
+ #cwd;
31
+ #externalProviders = new Map();
32
+ activity = new FabricActivityStore();
33
+ #widgetDismissedAt = 0;
34
+ constructor(pi, capturedTools) {
35
+ this.pi = pi;
36
+ this.capturedTools = capturedTools;
37
+ }
38
+ get initialized() {
39
+ return Boolean(this.#execution);
40
+ }
41
+ get widgetDismissedAt() {
42
+ return this.#widgetDismissedAt;
43
+ }
44
+ set widgetDismissedAt(value) {
45
+ this.#widgetDismissedAt = value;
46
+ }
47
+ get cwd() {
48
+ return this.#cwd;
49
+ }
50
+ get config() {
51
+ if (!this.#config)
52
+ throw new Error("Pi Fabric has not initialized");
53
+ return this.#config;
54
+ }
55
+ get registry() {
56
+ if (!this.#registry)
57
+ throw new Error("Pi Fabric has not initialized");
58
+ return this.#registry;
59
+ }
60
+ get execution() {
61
+ if (!this.#execution)
62
+ throw new Error("Pi Fabric has not initialized");
63
+ return this.#execution;
64
+ }
65
+ get subagents() {
66
+ if (!this.#subagents)
67
+ throw new Error("Pi Fabric has not initialized");
68
+ return this.#subagents;
69
+ }
70
+ get actors() {
71
+ if (!this.#actors)
72
+ throw new Error("Pi Fabric has not initialized");
73
+ return this.#actors;
74
+ }
75
+ get mesh() {
76
+ if (!this.#mesh)
77
+ throw new Error("Pi Fabric has not initialized");
78
+ return this.#mesh;
79
+ }
80
+ async initialize(context) {
81
+ await this.#closeInternal();
82
+ this.activity.reset();
83
+ this.#cwd = context.cwd;
84
+ this.#config = loadFabricConfig({
85
+ cwd: context.cwd,
86
+ agentDir: getAgentDir(),
87
+ projectTrusted: context.isProjectTrusted(),
88
+ });
89
+ this.#registry = new ActionRegistry();
90
+ const capturedToolsProvider = this.#config.fullCodeMode && this.#config.capture.enabled
91
+ ? new CapturedToolsProvider(this.capturedTools)
92
+ : undefined;
93
+ if (this.#config.fullCodeMode) {
94
+ this.#registry.register(new PiToolsProvider(context.cwd, this.capturedTools, capturedToolsProvider));
95
+ }
96
+ this.#registry.register(new McpProvider(context.cwd, this.#config.mcp));
97
+ if (capturedToolsProvider)
98
+ this.#registry.register(capturedToolsProvider);
99
+ const sessionId = context.sessionManager.getSessionId();
100
+ const actorId = process.env.PI_FABRIC_ACTOR_ID;
101
+ const identity = actorId
102
+ ? {
103
+ id: actorId,
104
+ name: process.env.PI_FABRIC_ACTOR_NAME || actorId.slice(0, 8),
105
+ kind: "actor",
106
+ sessionId,
107
+ }
108
+ : { id: `session:${sessionId}`, name: "main", kind: "main", sessionId };
109
+ const configuredMeshRoot = this.#config.mesh.root;
110
+ const meshRoot = process.env.PI_FABRIC_MESH_ROOT ??
111
+ (configuredMeshRoot
112
+ ? path.resolve(context.cwd, configuredMeshRoot)
113
+ : path.join(context.cwd, ".pi", "fabric", "mesh"));
114
+ this.#mesh = new MeshStore(meshRoot, this.#config.mesh.maxEventBytes, this.#config.mesh.maxReadEvents);
115
+ if (this.#config.mesh.enabled) {
116
+ this.#registry.register(new MeshProvider(this.#mesh, identity));
117
+ }
118
+ this.#subagents = new SubagentManager(context.cwd, this.#config.subagents, {
119
+ fullCodeMode: this.#config.fullCodeMode,
120
+ onBackgroundComplete: (result) => {
121
+ const durationMs = Math.max(0, (result.finishedAt ?? Date.now()) - result.startedAt);
122
+ const duration = durationMs < 60_000
123
+ ? `${Math.round(durationMs / 1_000)}s`
124
+ : `${(durationMs / 60_000).toFixed(1)}m`;
125
+ const summary = result.text || result.error || "no result";
126
+ const clippedSummary = summary.length > BACKGROUND_COMPLETION_MAX_CHARS
127
+ ? `${summary.slice(0, BACKGROUND_COMPLETION_MAX_CHARS)}\n[completion truncated]`
128
+ : summary;
129
+ this.pi.sendMessage({
130
+ customType: "pi-fabric-subagent-complete",
131
+ content: `Fabric agent ${result.id.slice(0, 8)} ${result.status} after ${duration}: ${clippedSummary}`,
132
+ display: true,
133
+ details: result,
134
+ }, { deliverAs: "followUp", triggerTurn: true });
135
+ },
136
+ });
137
+ this.#actors = new ActorManager(sessionId, identity, this.#mesh, this.#config.mesh, this.#subagents, ({ actor, message, delivery, triggerTurn }) => {
138
+ const actorText = message.text ?? "";
139
+ if (!actorText)
140
+ return;
141
+ const text = actorText.length > ACTOR_DELIVERY_MAX_CHARS
142
+ ? `${actorText.slice(0, ACTOR_DELIVERY_MAX_CHARS)}\n[actor delivery truncated]`
143
+ : actorText;
144
+ this.pi.sendMessage({
145
+ customType: "pi-fabric-actor",
146
+ content: `<fabric-actor name=${JSON.stringify(actor.name)} id=${JSON.stringify(actor.id)}>\n${escapeXmlText(text)}\n</fabric-actor>`,
147
+ display: true,
148
+ details: { actor, message },
149
+ }, { deliverAs: delivery, triggerTurn });
150
+ }, context.isProjectTrusted() && this.#config.mesh.enabled
151
+ ? {
152
+ actorRoot: path.join(meshRoot, "actors", sessionId),
153
+ persistent: true,
154
+ }
155
+ : { persistent: false });
156
+ this.#registry.register(new AgentsProvider(this.#subagents, this.#actors));
157
+ for (const provider of this.#externalProviders.values()) {
158
+ this.#registry.register(provider);
159
+ }
160
+ this.#execution = new FabricExecutionService(this.#registry, this.#config, this.activity);
161
+ const discovery = {
162
+ version: 1,
163
+ register: (provider, options) => this.registerExternal(provider, options),
164
+ };
165
+ this.pi.events.emit(FABRIC_PROVIDER_DISCOVER_EVENT, discovery);
166
+ }
167
+ async ensure(context) {
168
+ if (!this.initialized || this.#cwd !== context.cwd)
169
+ await this.initialize(context);
170
+ }
171
+ reloadConfig(context) {
172
+ if (!this.#config || !this.#cwd)
173
+ return;
174
+ const next = loadFabricConfig({
175
+ cwd: context.cwd,
176
+ agentDir: getAgentDir(),
177
+ projectTrusted: context.isProjectTrusted(),
178
+ });
179
+ deepAssign(this.#config, next);
180
+ }
181
+ dispatchHostEvent(event, payload, context) {
182
+ if (!this.#actors || !this.#config?.mesh.enabled)
183
+ return 0;
184
+ const maxChars = this.#config.mesh.eventContextChars;
185
+ const bounded = (value) => {
186
+ let json;
187
+ try {
188
+ const serialized = JSON.stringify(value, (_key, nested) => {
189
+ if (typeof nested === "bigint")
190
+ return String(nested);
191
+ if (typeof nested === "function")
192
+ return undefined;
193
+ if (typeof nested === "object" &&
194
+ nested !== null &&
195
+ "type" in nested &&
196
+ nested.type === "image") {
197
+ return { type: "image", redacted: true };
198
+ }
199
+ return nested;
200
+ });
201
+ if (serialized === undefined)
202
+ return null;
203
+ json = serialized;
204
+ }
205
+ catch {
206
+ return String(value);
207
+ }
208
+ if (json.length > maxChars)
209
+ json = json.slice(json.length - maxChars);
210
+ try {
211
+ return JSON.parse(json);
212
+ }
213
+ catch {
214
+ return json;
215
+ }
216
+ };
217
+ const branch = context.sessionManager.getBranch();
218
+ const { digest, transcript } = buildActorContext(branch, this.#config.mesh.actorContextEntries, this.#config.mesh.eventContextChars);
219
+ return this.#actors.dispatchHostEvent(event, {
220
+ event,
221
+ session: { id: context.sessionManager.getSessionId(), cwd: context.cwd },
222
+ digest,
223
+ transcript,
224
+ signal: { payload: bounded(payload), idle: context.isIdle(), observedAt: Date.now() },
225
+ });
226
+ }
227
+ registerExternal(provider, options = {}) {
228
+ if (["pi", "mcp", "agents", "mesh", "extensions", "fabric"].includes(provider.name)) {
229
+ throw new Error(`Reserved Fabric provider name: ${provider.name}`);
230
+ }
231
+ if (this.#externalProviders.has(provider.name) && !options.overwrite) {
232
+ throw new Error(`Fabric provider already registered: ${provider.name}`);
233
+ }
234
+ this.#externalProviders.set(provider.name, provider);
235
+ if (this.#registry)
236
+ this.#registry.register(provider, options);
237
+ }
238
+ async shutdown() {
239
+ await this.#registry?.close();
240
+ this.#registry = undefined;
241
+ this.#config = undefined;
242
+ this.#execution = undefined;
243
+ this.#subagents = undefined;
244
+ this.#actors = undefined;
245
+ this.#mesh = undefined;
246
+ this.#cwd = undefined;
247
+ this.activity.reset();
248
+ this.#widgetDismissedAt = 0;
249
+ this.#externalProviders.clear();
250
+ }
251
+ async #closeInternal() {
252
+ if (!this.#registry)
253
+ return;
254
+ const externalNames = new Set(this.#externalProviders.keys());
255
+ await this.#registry.close(externalNames);
256
+ this.#registry = undefined;
257
+ this.#execution = undefined;
258
+ this.#subagents = undefined;
259
+ this.#actors = undefined;
260
+ this.#mesh = undefined;
261
+ }
262
+ }
263
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
264
+ const deepAssign = (target, source) => {
265
+ for (const [key, value] of Object.entries(source)) {
266
+ const targetValue = target[key];
267
+ if (isPlainObject(value) && isPlainObject(targetValue)) {
268
+ deepAssign(targetValue, value);
269
+ }
270
+ else {
271
+ target[key] = value;
272
+ }
273
+ }
274
+ };
275
+ //# sourceMappingURL=fabric-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fabric-state.js","sourceRoot":"","sources":["../src/fabric-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ExtensionAPI } from "@earendil-works/pi-coding-agent";
2
+ export default function piFabric(pi: ExtensionAPI): Promise<void>;
3
+ export * from "./protocol.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAElB,MAAM,iCAAiC,CAAC;AA6EzC,wBAA8B,QAAQ,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsftE;AAED,cAAc,eAAe,CAAC"}