pi-fabric 0.2.0 → 0.3.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.
- package/dist/actors/manager.d.ts +6 -1
- package/dist/actors/manager.d.ts.map +1 -1
- package/dist/actors/manager.js +133 -3
- package/dist/actors/manager.js.map +1 -1
- package/dist/actors/types.d.ts +17 -1
- package/dist/actors/types.d.ts.map +1 -1
- package/dist/commands/fabric.d.ts.map +1 -1
- package/dist/commands/fabric.js +163 -5
- package/dist/commands/fabric.js.map +1 -1
- package/dist/providers/agents-provider.d.ts.map +1 -1
- package/dist/providers/agents-provider.js +34 -0
- package/dist/providers/agents-provider.js.map +1 -1
- 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 +34 -0
- package/dist/runtime/guest-types.js.map +1 -1
- package/dist/runtime/quickjs-runtime.d.ts.map +1 -1
- package/dist/runtime/quickjs-runtime.js +1 -0
- package/dist/runtime/quickjs-runtime.js.map +1 -1
- package/dist/subagents/manager.d.ts +5 -1
- package/dist/subagents/manager.d.ts.map +1 -1
- package/dist/subagents/manager.js +34 -0
- package/dist/subagents/manager.js.map +1 -1
- package/dist/subagents/types.d.ts +12 -0
- package/dist/subagents/types.d.ts.map +1 -1
- package/dist/ui/fabric-model-selector.d.ts +1 -1
- package/dist/ui/fabric-model-selector.d.ts.map +1 -1
- package/dist/ui/fabric-model-selector.js +3 -6
- package/dist/ui/fabric-model-selector.js.map +1 -1
- package/dist/ui/settings.d.ts.map +1 -1
- package/dist/ui/settings.js +3 -2
- package/dist/ui/settings.js.map +1 -1
- package/package.json +1 -1
- package/skills/fabric-exec/references/agents.md +1 -0
package/dist/actors/manager.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FabricMeshConfig } from "../config.js";
|
|
2
2
|
import { MeshStore, type MeshIdentity } from "../mesh/store.js";
|
|
3
3
|
import { SubagentManager } from "../subagents/manager.js";
|
|
4
|
-
import type { FabricActorDeliveryRequest, FabricActorHostEvent, FabricActorInfo, FabricActorMessage, FabricActorRequest } from "./types.js";
|
|
4
|
+
import type { FabricActorDeliveryRequest, FabricActorHostEvent, FabricActorInfo, FabricActorLog, FabricActorMessage, FabricActorRequest } from "./types.js";
|
|
5
5
|
export declare class ActorManager {
|
|
6
6
|
#private;
|
|
7
7
|
readonly sessionId: string;
|
|
@@ -23,6 +23,11 @@ export declare class ActorManager {
|
|
|
23
23
|
};
|
|
24
24
|
ask(id: string, message: string, data?: unknown, signal?: AbortSignal): Promise<FabricActorMessage>;
|
|
25
25
|
messages(id: string, limit?: number): FabricActorMessage[];
|
|
26
|
+
readLog(id: string, opts?: {
|
|
27
|
+
type?: "session" | "run" | "all";
|
|
28
|
+
lines?: number;
|
|
29
|
+
runId?: string;
|
|
30
|
+
}): FabricActorLog;
|
|
26
31
|
dispatchHostEvent(event: FabricActorHostEvent, payload: unknown): number;
|
|
27
32
|
stop(id: string): Promise<FabricActorInfo>;
|
|
28
33
|
remove(id: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/actors/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAEV,0BAA0B,EAE1B,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/actors/manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAkB,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAEV,0BAA0B,EAE1B,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAgIpB,qBAAa,YAAY;;IAWrB,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS;IACxB,QAAQ,CAAC,UAAU,EAAE,gBAAgB;IACrC,QAAQ,CAAC,SAAS,EAAE,eAAe;IACnC,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI;gBALxD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,EACjE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO;IAetD,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA4DnE,IAAI,IAAI,eAAe,EAAE;IAIzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe;IAInC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAmBtF,GAAG,CACD,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC;IA4C9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,kBAAkB,EAAE;IAMtD,OAAO,CACL,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9E,cAAc;IAkCjB,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;IAoBlE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmB1C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAajD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAijB7B"}
|
package/dist/actors/manager.js
CHANGED
|
@@ -23,6 +23,40 @@ const atomicWrite = (filePath, value) => {
|
|
|
23
23
|
});
|
|
24
24
|
fs.renameSync(temporaryPath, filePath);
|
|
25
25
|
};
|
|
26
|
+
const MAX_RETAINED_RUNS = 10;
|
|
27
|
+
const readRunRecord = (filePath) => {
|
|
28
|
+
try {
|
|
29
|
+
const parsed = JSON.parse(fs.readFileSync(filePath, "utf8"));
|
|
30
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
|
|
31
|
+
return undefined;
|
|
32
|
+
return parsed;
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const readJsonlTail = (filePath, lines) => {
|
|
39
|
+
let content;
|
|
40
|
+
try {
|
|
41
|
+
content = fs.readFileSync(filePath, "utf8");
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
const all = content.split("\n").filter((line) => line.length > 0);
|
|
47
|
+
const tail = all.slice(-lines);
|
|
48
|
+
const offset = all.length - tail.length;
|
|
49
|
+
return tail.map((raw, index) => {
|
|
50
|
+
let parsed;
|
|
51
|
+
try {
|
|
52
|
+
parsed = JSON.parse(raw);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
/* keep raw only */
|
|
56
|
+
}
|
|
57
|
+
return { index: offset + index, raw, ...(parsed !== undefined ? { parsed } : {}) };
|
|
58
|
+
});
|
|
59
|
+
};
|
|
26
60
|
const directiveSchema = {
|
|
27
61
|
type: "object",
|
|
28
62
|
properties: {
|
|
@@ -219,6 +253,39 @@ export class ActorManager {
|
|
|
219
253
|
const bounded = Math.max(1, Math.min(Math.floor(limit), MESSAGE_HISTORY_LIMIT));
|
|
220
254
|
return actor.messages.slice(-bounded).map((message) => structuredClone(message));
|
|
221
255
|
}
|
|
256
|
+
readLog(id, opts = {}) {
|
|
257
|
+
const actor = this.#requireActor(id);
|
|
258
|
+
const type = opts.type ?? "session";
|
|
259
|
+
const lines = Math.max(1, Math.min(opts.lines ?? 200, 5000));
|
|
260
|
+
const sessionFile = actor.sessionFile;
|
|
261
|
+
const logDir = path.join(path.dirname(sessionFile), "runs");
|
|
262
|
+
const session = type === "run" ? [] : readJsonlTail(sessionFile, lines);
|
|
263
|
+
let run;
|
|
264
|
+
if (type !== "session") {
|
|
265
|
+
const targetRunId = opts.runId ?? actor.lastRunId;
|
|
266
|
+
if (targetRunId) {
|
|
267
|
+
const runPath = path.join(logDir, targetRunId);
|
|
268
|
+
if (fs.existsSync(runPath)) {
|
|
269
|
+
const statusRecord = readRunRecord(path.join(runPath, "status.json"));
|
|
270
|
+
run = {
|
|
271
|
+
runId: targetRunId,
|
|
272
|
+
eventsFile: path.join(runPath, "events.jsonl"),
|
|
273
|
+
...(statusRecord ? { status: statusRecord } : {}),
|
|
274
|
+
events: readJsonlTail(path.join(runPath, "events.jsonl"), lines),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
actorId: actor.id,
|
|
281
|
+
actorName: actor.name,
|
|
282
|
+
sessionFile,
|
|
283
|
+
logDir,
|
|
284
|
+
session,
|
|
285
|
+
...(run ? { run } : {}),
|
|
286
|
+
retainedRuns: this.#retainedRunIds(actor),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
222
289
|
dispatchHostEvent(event, payload) {
|
|
223
290
|
if (this.#closing || !this.meshConfig.enabled)
|
|
224
291
|
return 0;
|
|
@@ -424,9 +491,16 @@ export class ActorManager {
|
|
|
424
491
|
item.reject?.(new Error(message));
|
|
425
492
|
}
|
|
426
493
|
finally {
|
|
427
|
-
// Retain
|
|
428
|
-
//
|
|
429
|
-
//
|
|
494
|
+
// Retain a durable copy of the run's event log + status in the
|
|
495
|
+
// actor's directory so agents.log / /fabric log can inspect what the
|
|
496
|
+
// actor sent to and received from its model, even after a successful
|
|
497
|
+
// run cleans up the in-memory handle and tmp run directory. Failed
|
|
498
|
+
// runs stay in the subagent registry for agents.status(lastRunId).
|
|
499
|
+
if (runId) {
|
|
500
|
+
await this.#retainRunLog(actor, runId).catch(() => undefined);
|
|
501
|
+
}
|
|
502
|
+
// Release the in-memory handle and tmp run dir for completed runs;
|
|
503
|
+
// failed runs are retained for agents.status(actor.lastRunId).
|
|
430
504
|
if (previousRunId && previousRunId !== runId) {
|
|
431
505
|
await this.subagents.cleanup(previousRunId).catch(() => ({ cleaned: false }));
|
|
432
506
|
}
|
|
@@ -542,6 +616,60 @@ export class ActorManager {
|
|
|
542
616
|
catch { /* skip event for a full or stopped actor */ }
|
|
543
617
|
}
|
|
544
618
|
}
|
|
619
|
+
async #retainRunLog(actor, runId) {
|
|
620
|
+
const runDirectory = this.subagents.runDirectory(runId);
|
|
621
|
+
if (!runDirectory || !fs.existsSync(runDirectory))
|
|
622
|
+
return;
|
|
623
|
+
const dest = path.join(path.dirname(actor.sessionFile), "runs", runId);
|
|
624
|
+
fs.mkdirSync(dest, { recursive: true, mode: 0o700 });
|
|
625
|
+
for (const file of ["events.jsonl", "status.json", "task.txt"]) {
|
|
626
|
+
const src = path.join(runDirectory, file);
|
|
627
|
+
if (fs.existsSync(src))
|
|
628
|
+
fs.copyFileSync(src, path.join(dest, file));
|
|
629
|
+
}
|
|
630
|
+
const nested = path.join(runDirectory, "nested");
|
|
631
|
+
if (fs.existsSync(nested)) {
|
|
632
|
+
try {
|
|
633
|
+
fs.cpSync(nested, path.join(dest, "nested"), { recursive: true });
|
|
634
|
+
}
|
|
635
|
+
catch {
|
|
636
|
+
/* best-effort recursive run retention */
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
this.#pruneRetainedRuns(actor);
|
|
640
|
+
}
|
|
641
|
+
#pruneRetainedRuns(actor) {
|
|
642
|
+
const runsDir = path.join(path.dirname(actor.sessionFile), "runs");
|
|
643
|
+
let entries;
|
|
644
|
+
try {
|
|
645
|
+
entries = fs.readdirSync(runsDir);
|
|
646
|
+
}
|
|
647
|
+
catch {
|
|
648
|
+
return;
|
|
649
|
+
}
|
|
650
|
+
const ranked = entries
|
|
651
|
+
.map((name) => {
|
|
652
|
+
try {
|
|
653
|
+
return { name, mtime: fs.statSync(path.join(runsDir, name)).mtimeMs };
|
|
654
|
+
}
|
|
655
|
+
catch {
|
|
656
|
+
return { name, mtime: 0 };
|
|
657
|
+
}
|
|
658
|
+
})
|
|
659
|
+
.sort((a, b) => b.mtime - a.mtime);
|
|
660
|
+
for (const entry of ranked.slice(MAX_RETAINED_RUNS)) {
|
|
661
|
+
fs.rmSync(path.join(runsDir, entry.name), { recursive: true, force: true });
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
#retainedRunIds(actor) {
|
|
665
|
+
const runsDir = path.join(path.dirname(actor.sessionFile), "runs");
|
|
666
|
+
try {
|
|
667
|
+
return fs.readdirSync(runsDir).sort();
|
|
668
|
+
}
|
|
669
|
+
catch {
|
|
670
|
+
return [];
|
|
671
|
+
}
|
|
672
|
+
}
|
|
545
673
|
#recordMessage(actor, message) {
|
|
546
674
|
const bounded = structuredClone(message);
|
|
547
675
|
const maxTextChars = Math.min(this.meshConfig.eventContextChars, this.meshConfig.maxEventBytes);
|
|
@@ -720,6 +848,8 @@ export class ActorManager {
|
|
|
720
848
|
updatedAt: actor.updatedAt,
|
|
721
849
|
...(actor.lastRunId ? { lastRunId: actor.lastRunId } : {}),
|
|
722
850
|
...(actor.lastError ? { lastError: actor.lastError } : {}),
|
|
851
|
+
sessionFile: actor.sessionFile,
|
|
852
|
+
logDir: path.join(path.dirname(actor.sessionFile), "runs"),
|
|
723
853
|
};
|
|
724
854
|
}
|
|
725
855
|
#validateDirectMessage(message, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/actors/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/actors/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/actors/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FabricSubagentTransport } from "../config.js";
|
|
2
|
-
import type { SubagentUsage } from "../subagents/types.js";
|
|
2
|
+
import type { FabricLogLine, SubagentRunRecord, SubagentUsage } from "../subagents/types.js";
|
|
3
3
|
export type FabricActorHostEvent = "input" | "turn_end" | "agent_settled" | "tool_error" | "session_compact";
|
|
4
4
|
export type FabricActorDelivery = "mailbox" | "steer" | "followUp" | "nextTurn";
|
|
5
5
|
export type FabricActorResponseMode = "text" | "directive";
|
|
@@ -38,6 +38,22 @@ export interface FabricActorInfo {
|
|
|
38
38
|
updatedAt: number;
|
|
39
39
|
lastRunId?: string;
|
|
40
40
|
lastError?: string;
|
|
41
|
+
sessionFile?: string;
|
|
42
|
+
logDir?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface FabricActorLog {
|
|
45
|
+
actorId: string;
|
|
46
|
+
actorName: string;
|
|
47
|
+
sessionFile: string;
|
|
48
|
+
logDir: string;
|
|
49
|
+
session: FabricLogLine[];
|
|
50
|
+
run?: {
|
|
51
|
+
runId: string;
|
|
52
|
+
eventsFile: string;
|
|
53
|
+
status?: SubagentRunRecord;
|
|
54
|
+
events: FabricLogLine[];
|
|
55
|
+
};
|
|
56
|
+
retainedRuns: string[];
|
|
41
57
|
}
|
|
42
58
|
export interface FabricActorMessage {
|
|
43
59
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/actors/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fabric.d.ts","sourceRoot":"","sources":["../../src/commands/fabric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"fabric.d.ts","sourceRoot":"","sources":["../../src/commands/fabric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,UAAU,iBAAiB;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;AA4CD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAkXrF"}
|
package/dist/commands/fabric.js
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
import { truncateMiddle } from "../util.js";
|
|
2
2
|
import { openFabricSettings } from "../ui/settings.js";
|
|
3
|
+
import fs from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
const extractContentText = (content) => {
|
|
6
|
+
if (typeof content === "string")
|
|
7
|
+
return content;
|
|
8
|
+
if (Array.isArray(content)) {
|
|
9
|
+
return content
|
|
10
|
+
.map((part) => {
|
|
11
|
+
if (typeof part !== "object" || part === null)
|
|
12
|
+
return "";
|
|
13
|
+
const p = part;
|
|
14
|
+
return typeof p.text === "string" ? p.text : typeof p.type === "string" ? p.type : "";
|
|
15
|
+
})
|
|
16
|
+
.filter(Boolean)
|
|
17
|
+
.join(" ");
|
|
18
|
+
}
|
|
19
|
+
return "";
|
|
20
|
+
};
|
|
21
|
+
const summarizeLogLine = (entry) => {
|
|
22
|
+
if (typeof entry !== "object" || entry === null)
|
|
23
|
+
return truncateMiddle(String(entry), 200);
|
|
24
|
+
const record = entry;
|
|
25
|
+
const type = typeof record.type === "string" ? record.type : undefined;
|
|
26
|
+
const tool = typeof record.toolName === "string" ? record.toolName : undefined;
|
|
27
|
+
// Pi session lines and worker message_end both wrap a { role, content } message.
|
|
28
|
+
const msg = record.message;
|
|
29
|
+
if (typeof msg === "object" && msg !== null && !Array.isArray(msg)) {
|
|
30
|
+
const m = msg;
|
|
31
|
+
const role = typeof m.role === "string" ? m.role : "message";
|
|
32
|
+
const model = typeof m.model === "string" ? m.model : undefined;
|
|
33
|
+
const text = extractContentText(m.content);
|
|
34
|
+
const body = (text || JSON.stringify(m)).replace(/\s+/g, " ");
|
|
35
|
+
return `${role}${model ? ` [${model}]` : ""}: ${truncateMiddle(body, 160)}`;
|
|
36
|
+
}
|
|
37
|
+
if (type) {
|
|
38
|
+
const bits = [type];
|
|
39
|
+
if (tool)
|
|
40
|
+
bits.push(tool);
|
|
41
|
+
const model = typeof record.modelId === "string" ? record.modelId : undefined;
|
|
42
|
+
const provider = typeof record.provider === "string" && !model ? record.provider : undefined;
|
|
43
|
+
if (provider)
|
|
44
|
+
bits.push(provider);
|
|
45
|
+
if (model)
|
|
46
|
+
bits.push(model);
|
|
47
|
+
return bits.join(" ");
|
|
48
|
+
}
|
|
49
|
+
return truncateMiddle(JSON.stringify(record), 160);
|
|
50
|
+
};
|
|
3
51
|
export function registerFabricCommand(pi, deps) {
|
|
4
52
|
const { state, fabricUi, capturedTools, applyFabricMode, suspendToolCapture } = deps;
|
|
5
53
|
pi.registerCommand("fabric", {
|
|
@@ -14,12 +62,22 @@ export function registerFabricCommand(pi, deps) {
|
|
|
14
62
|
"agents",
|
|
15
63
|
"actors",
|
|
16
64
|
"messages",
|
|
65
|
+
"log",
|
|
66
|
+
"export-log",
|
|
17
67
|
"attach",
|
|
18
68
|
"stop",
|
|
19
69
|
"remove",
|
|
20
70
|
"kill",
|
|
21
71
|
];
|
|
22
|
-
const idCommands = new Set([
|
|
72
|
+
const idCommands = new Set([
|
|
73
|
+
"messages",
|
|
74
|
+
"log",
|
|
75
|
+
"export-log",
|
|
76
|
+
"attach",
|
|
77
|
+
"stop",
|
|
78
|
+
"remove",
|
|
79
|
+
"kill",
|
|
80
|
+
]);
|
|
23
81
|
const firstSpace = argumentPrefix.indexOf(" ");
|
|
24
82
|
if (firstSpace < 0) {
|
|
25
83
|
const matches = subcommands.filter((name) => name.startsWith(argumentPrefix));
|
|
@@ -136,15 +194,115 @@ export function registerFabricCommand(pi, deps) {
|
|
|
136
194
|
try {
|
|
137
195
|
const actor = state.actors.status(id);
|
|
138
196
|
const messages = state.actors.messages(actor.id, 20);
|
|
139
|
-
|
|
197
|
+
const shortId = actor.id.slice(0, 8);
|
|
198
|
+
const body = messages.length > 0
|
|
140
199
|
? messages
|
|
141
200
|
.map((message) => {
|
|
142
201
|
const value = message.text ?? message.action ?? message.error ?? "data";
|
|
143
202
|
const summary = truncateMiddle(value.replace(/\s+/g, " "), 500);
|
|
144
|
-
|
|
203
|
+
const runTag = message.runId ? ` [${message.runId.slice(0, 8)}]` : "";
|
|
204
|
+
const usageTag = message.usage
|
|
205
|
+
? ` · ${message.usage.input + message.usage.output} tok`
|
|
206
|
+
: "";
|
|
207
|
+
return `${message.direction === "in" ? "→" : "←"} ${message.source}${runTag}: ${summary}${usageTag}`;
|
|
145
208
|
})
|
|
146
209
|
.join("\n")
|
|
147
|
-
: `No messages for ${actor.name}
|
|
210
|
+
: `No messages for ${actor.name}`;
|
|
211
|
+
const footer = `\nInspect LLM I/O: /fabric log ${shortId} · Export: /fabric export-log ${actor.name}`;
|
|
212
|
+
context.ui.notify(`${body}${footer}`, "info");
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
context.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
216
|
+
}
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
if (command === "log") {
|
|
220
|
+
const id = argumentsList[0];
|
|
221
|
+
if (!id) {
|
|
222
|
+
context.ui.notify("Usage: /fabric log <id> [session|run|all] [--lines N] [--run <runId>]", "warning");
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
let type = "session";
|
|
226
|
+
let lines = 40;
|
|
227
|
+
let runId;
|
|
228
|
+
for (let i = 1; i < argumentsList.length; i++) {
|
|
229
|
+
const arg = argumentsList[i];
|
|
230
|
+
if (arg === "session" || arg === "run" || arg === "all")
|
|
231
|
+
type = arg;
|
|
232
|
+
else if ((arg === "--lines" || arg === "-n") && i + 1 < argumentsList.length) {
|
|
233
|
+
const n = Number(argumentsList[++i]);
|
|
234
|
+
if (n > 0)
|
|
235
|
+
lines = Math.min(n, 5000);
|
|
236
|
+
}
|
|
237
|
+
else if (arg === "--run" && i + 1 < argumentsList.length) {
|
|
238
|
+
runId = argumentsList[++i];
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
try {
|
|
242
|
+
const actor = state.actors.status(id);
|
|
243
|
+
const log = state.actors.readLog(actor.id, { type, lines, ...(runId ? { runId } : {}) });
|
|
244
|
+
const parts = [`Actor ${actor.name} · ${log.sessionFile}`];
|
|
245
|
+
if (log.session.length > 0) {
|
|
246
|
+
parts.push(`── session (last ${log.session.length} lines) ──`);
|
|
247
|
+
for (const line of log.session)
|
|
248
|
+
parts.push(summarizeLogLine(line.parsed ?? line.raw));
|
|
249
|
+
}
|
|
250
|
+
if (log.run) {
|
|
251
|
+
parts.push(`── run ${log.run.runId.slice(0, 8)} (${log.run.status?.status ?? "?"}) ──`);
|
|
252
|
+
for (const line of log.run.events)
|
|
253
|
+
parts.push(summarizeLogLine(line.parsed ?? line.raw));
|
|
254
|
+
}
|
|
255
|
+
if (log.retainedRuns.length > 0) {
|
|
256
|
+
parts.push(`retained runs: ${log.retainedRuns.map((r) => r.slice(0, 8)).join(" ")}`);
|
|
257
|
+
}
|
|
258
|
+
context.ui.notify(parts.length > 1 ? truncateMiddle(parts.join("\n"), 8000) : `No log found for ${actor.name}`, "info");
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
context.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (command === "export-log") {
|
|
266
|
+
const id = argumentsList[0];
|
|
267
|
+
const destArg = argumentsList.slice(1).join(" ");
|
|
268
|
+
if (!id) {
|
|
269
|
+
context.ui.notify("Usage: /fabric export-log <id> [path]", "warning");
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const dest = path.resolve(destArg || path.join("fabric-logs", `export-${Date.now()}`));
|
|
274
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
275
|
+
const actor = state.actors
|
|
276
|
+
.list()
|
|
277
|
+
.find((candidate) => candidate.id.startsWith(id) || candidate.name === id);
|
|
278
|
+
let label;
|
|
279
|
+
let copied = [];
|
|
280
|
+
if (actor) {
|
|
281
|
+
const full = state.actors.status(actor.id);
|
|
282
|
+
label = actor.name;
|
|
283
|
+
if (full.sessionFile && fs.existsSync(full.sessionFile)) {
|
|
284
|
+
fs.copyFileSync(full.sessionFile, path.join(dest, "session.jsonl"));
|
|
285
|
+
copied.push("session.jsonl");
|
|
286
|
+
}
|
|
287
|
+
if (full.logDir && fs.existsSync(full.logDir)) {
|
|
288
|
+
fs.cpSync(full.logDir, path.join(dest, "runs"), { recursive: true });
|
|
289
|
+
copied.push("runs/");
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
const runDir = state.subagents.runDirectory(id);
|
|
294
|
+
const status = state.subagents.status(id);
|
|
295
|
+
label = status.name;
|
|
296
|
+
if (runDir && fs.existsSync(runDir)) {
|
|
297
|
+
fs.cpSync(runDir, dest, { recursive: true });
|
|
298
|
+
copied.push("run/");
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
if (copied.length === 0) {
|
|
302
|
+
context.ui.notify(`No log files found for ${label}`, "warning");
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
context.ui.notify(`Exported ${label} log → ${dest} (${copied.join(", ")})`, "info");
|
|
148
306
|
}
|
|
149
307
|
catch (error) {
|
|
150
308
|
context.ui.notify(error instanceof Error ? error.message : String(error), "error");
|
|
@@ -211,7 +369,7 @@ export function registerFabricCommand(pi, deps) {
|
|
|
211
369
|
return;
|
|
212
370
|
}
|
|
213
371
|
if (command !== "status") {
|
|
214
|
-
context.ui.notify("Usage: /fabric [status|dashboard|reload|providers|agents|actors|messages <id>|attach <id>|stop <id>|remove <id>|kill <id>]", "warning");
|
|
372
|
+
context.ui.notify("Usage: /fabric [status|dashboard|reload|providers|agents|actors|messages <id>|log <id>|export-log <id>|attach <id>|stop <id>|remove <id>|kill <id>]", "warning");
|
|
215
373
|
return;
|
|
216
374
|
}
|
|
217
375
|
const config = state.config;
|