pi-forge 1.2.4 → 1.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/README.md +1 -1
- package/dist/client/assets/{CodeMirrorEditor-M7HIAKX2.js → CodeMirrorEditor-BuLFJjB1.js} +13 -13
- package/dist/client/assets/CodeMirrorEditor-BuLFJjB1.js.map +1 -0
- package/dist/client/assets/index-CEqSkIuy.css +1 -0
- package/dist/client/assets/index-GubcPYw6.js +375 -0
- package/dist/client/assets/index-GubcPYw6.js.map +1 -0
- package/dist/client/assets/{workbox-window.prod.es5-Cch4wiA5.js → workbox-window.prod.es5-Bd17z0YL.js} +2 -2
- package/dist/client/assets/{workbox-window.prod.es5-Cch4wiA5.js.map → workbox-window.prod.es5-Bd17z0YL.js.map} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.map +1 -1
- package/dist/server/agent-extensions/compaction-continuation.js +65 -0
- package/dist/server/agent-extensions/compaction-continuation.js.map +1 -0
- package/dist/server/agent-resource-loader.js +10 -0
- package/dist/server/agent-resource-loader.js.map +1 -1
- package/dist/server/git-clone.js +364 -0
- package/dist/server/git-clone.js.map +1 -0
- package/dist/server/index.js +26 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/tool-bridge.js +14 -8
- package/dist/server/mcp/tool-bridge.js.map +1 -1
- package/dist/server/orchestration/config.js +61 -0
- package/dist/server/orchestration/config.js.map +1 -0
- package/dist/server/orchestration/event-bridge.js +93 -0
- package/dist/server/orchestration/event-bridge.js.map +1 -0
- package/dist/server/orchestration/inbox.js +199 -0
- package/dist/server/orchestration/inbox.js.map +1 -0
- package/dist/server/orchestration/init.js +39 -0
- package/dist/server/orchestration/init.js.map +1 -0
- package/dist/server/orchestration/store.js +352 -0
- package/dist/server/orchestration/store.js.map +1 -0
- package/dist/server/orchestration/tools.js +769 -0
- package/dist/server/orchestration/tools.js.map +1 -0
- package/dist/server/orchestration/types.js +57 -0
- package/dist/server/orchestration/types.js.map +1 -0
- package/dist/server/processes/envelope.js +60 -0
- package/dist/server/processes/envelope.js.map +1 -0
- package/dist/server/processes/log-store.js +132 -0
- package/dist/server/processes/log-store.js.map +1 -0
- package/dist/server/processes/manager.js +370 -0
- package/dist/server/processes/manager.js.map +1 -0
- package/dist/server/processes/prompt-strings.js +43 -0
- package/dist/server/processes/prompt-strings.js.map +1 -0
- package/dist/server/processes/tool.js +273 -0
- package/dist/server/processes/tool.js.map +1 -0
- package/dist/server/processes/types.js +21 -0
- package/dist/server/processes/types.js.map +1 -0
- package/dist/server/processes/watches.js +59 -0
- package/dist/server/processes/watches.js.map +1 -0
- package/dist/server/project-manager.js +46 -32
- package/dist/server/project-manager.js.map +1 -1
- package/dist/server/routes/config.js +5 -0
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/control.js +9 -0
- package/dist/server/routes/control.js.map +1 -1
- package/dist/server/routes/health.js +14 -1
- package/dist/server/routes/health.js.map +1 -1
- package/dist/server/routes/orchestration.js +464 -0
- package/dist/server/routes/orchestration.js.map +1 -0
- package/dist/server/routes/processes.js +228 -0
- package/dist/server/routes/processes.js.map +1 -0
- package/dist/server/routes/projects.js +239 -14
- package/dist/server/routes/projects.js.map +1 -1
- package/dist/server/routes/sessions.js +53 -34
- package/dist/server/routes/sessions.js.map +1 -1
- package/dist/server/routes/webhooks.js +362 -0
- package/dist/server/routes/webhooks.js.map +1 -0
- package/dist/server/session-registry.js +246 -3
- package/dist/server/session-registry.js.map +1 -1
- package/dist/server/sse-bridge.js +226 -18
- package/dist/server/sse-bridge.js.map +1 -1
- package/dist/server/webhooks/dispatcher.js +254 -0
- package/dist/server/webhooks/dispatcher.js.map +1 -0
- package/dist/server/webhooks/event-bridge.js +185 -0
- package/dist/server/webhooks/event-bridge.js.map +1 -0
- package/dist/server/webhooks/init.js +55 -0
- package/dist/server/webhooks/init.js.map +1 -0
- package/dist/server/webhooks/store.js +394 -0
- package/dist/server/webhooks/store.js.map +1 -0
- package/dist/server/webhooks/types.js +32 -0
- package/dist/server/webhooks/types.js.map +1 -0
- package/package.json +4 -4
- package/dist/client/assets/CodeMirrorEditor-M7HIAKX2.js.map +0 -1
- package/dist/client/assets/index-DFDpaYie.css +0 -1
- package/dist/client/assets/index-DjYKKZRm.js +0 -363
- package/dist/client/assets/index-DjYKKZRm.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/orchestration/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session orchestration — types + constants.
|
|
3
|
+
*
|
|
4
|
+
* A "supervisor" session has the `orchestrate_*` tool group enabled
|
|
5
|
+
* and can spawn / observe / message / interrupt / kill / detach a set
|
|
6
|
+
* of "worker" sessions. Workers are real first-class sessions (same
|
|
7
|
+
* .jsonl on disk, same browser visibility) — the link is purely
|
|
8
|
+
* forge-side metadata in `${FORGE_DATA_DIR}/session-orchestration.json`.
|
|
9
|
+
*
|
|
10
|
+
* Topology is strict hub-and-spoke: workers don't get the orchestrate
|
|
11
|
+
* tools and have no way to enumerate or message other workers.
|
|
12
|
+
* Enforcement is by tool-surface (the tools simply aren't there),
|
|
13
|
+
* not by permission check at the registry layer.
|
|
14
|
+
*
|
|
15
|
+
* Depth is limited to 1: a worker cannot become a supervisor. Keeps
|
|
16
|
+
* the worst case bounded against fork-bomb runaway prompts.
|
|
17
|
+
*/
|
|
18
|
+
export const ORCHESTRATION_VERSION = 1;
|
|
19
|
+
/**
|
|
20
|
+
* Inbox events the supervisor's LLM sees when it calls
|
|
21
|
+
* `orchestrate_read_inbox`. All carry the workerId; the `data`
|
|
22
|
+
* shape is event-specific and intentionally small — the supervisor
|
|
23
|
+
* can call `orchestrate_read_worker` to fetch full detail.
|
|
24
|
+
*/
|
|
25
|
+
export const INBOX_EVENT_TYPES = [
|
|
26
|
+
"worker.ended",
|
|
27
|
+
"worker.ask_user",
|
|
28
|
+
"worker.auto_retry_failed",
|
|
29
|
+
"worker.process_alert",
|
|
30
|
+
"worker.deleted",
|
|
31
|
+
];
|
|
32
|
+
export function isInboxEventType(v) {
|
|
33
|
+
return typeof v === "string" && INBOX_EVENT_TYPES.includes(v);
|
|
34
|
+
}
|
|
35
|
+
export function emptyStore() {
|
|
36
|
+
return { version: ORCHESTRATION_VERSION, supervisors: {}, workers: {} };
|
|
37
|
+
}
|
|
38
|
+
export function emptyInboxStore() {
|
|
39
|
+
return { version: ORCHESTRATION_VERSION, inboxes: {} };
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Per-supervisor inbox cap. Items beyond this evict from the FIFO
|
|
43
|
+
* front. 200 is enough headroom for a supervisor that goes offline
|
|
44
|
+
* for an hour while 20 workers run; the supervisor can still see the
|
|
45
|
+
* last few hundred events on resume. Bumping this is cheap (small
|
|
46
|
+
* JSON blob); shrinking risks an inattentive supervisor missing
|
|
47
|
+
* events that fired before its next wake-up.
|
|
48
|
+
*/
|
|
49
|
+
export const MAX_INBOX_ITEMS = 200;
|
|
50
|
+
/** Default per-supervisor concurrent worker cap. Configurable via
|
|
51
|
+
* `ORCHESTRATION_MAX_WORKERS_PER_SUPERVISOR`. */
|
|
52
|
+
export const DEFAULT_MAX_WORKERS_PER_SUPERVISOR = 8;
|
|
53
|
+
/** Depth limit — workers cannot themselves be supervisors. Phase 1
|
|
54
|
+
* ships at depth=1 only. Reconsider once real usage clarifies what
|
|
55
|
+
* the worst-case prompt loops look like. */
|
|
56
|
+
export const MAX_DEPTH = 1;
|
|
57
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/orchestration/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,cAAc;IACd,iBAAiB;IACjB,0BAA0B;IAC1B,sBAAsB;IACtB,gBAAgB;CACR,CAAC;AAIX,MAAM,UAAU,gBAAgB,CAAC,CAAU;IACzC,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAK,iBAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAmDD,MAAM,UAAU,UAAU;IACxB,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC1E,CAAC;AAQD,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC;kDACkD;AAClD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD;;6CAE6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { LIVE_STATUSES } from "./types.js";
|
|
2
|
+
/** Truncate a command for one-line display in `list`. */
|
|
3
|
+
function truncateCmd(cmd, max = 60) {
|
|
4
|
+
if (cmd.length <= max)
|
|
5
|
+
return cmd;
|
|
6
|
+
return `${cmd.slice(0, max - 1)}…`;
|
|
7
|
+
}
|
|
8
|
+
function formatRuntime(start, end) {
|
|
9
|
+
const ms = (end ?? Date.now()) - start;
|
|
10
|
+
if (ms < 1_000)
|
|
11
|
+
return `${ms}ms`;
|
|
12
|
+
const s = ms / 1_000;
|
|
13
|
+
if (s < 60)
|
|
14
|
+
return `${s.toFixed(1)}s`;
|
|
15
|
+
const m = s / 60;
|
|
16
|
+
if (m < 60)
|
|
17
|
+
return `${m.toFixed(1)}m`;
|
|
18
|
+
return `${(m / 60).toFixed(1)}h`;
|
|
19
|
+
}
|
|
20
|
+
function formatStatus(p) {
|
|
21
|
+
if (LIVE_STATUSES.has(p.status))
|
|
22
|
+
return p.status;
|
|
23
|
+
if (p.success === true)
|
|
24
|
+
return "exited(0)";
|
|
25
|
+
if (p.exitCode !== null)
|
|
26
|
+
return `${p.status}(${p.exitCode})`;
|
|
27
|
+
return p.status;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Build the agent-facing result envelope. Per-action `details`
|
|
31
|
+
* fields piggyback on the same flat `ProcessesDetails` shape the
|
|
32
|
+
* plugin uses; agents that switch between implementations see the
|
|
33
|
+
* same field names.
|
|
34
|
+
*/
|
|
35
|
+
export function ok(details) {
|
|
36
|
+
return { content: [{ type: "text", text: details.message }], details };
|
|
37
|
+
}
|
|
38
|
+
export function err(action, message) {
|
|
39
|
+
return {
|
|
40
|
+
content: [{ type: "text", text: message }],
|
|
41
|
+
details: { action, success: false, message },
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/** `start` summary the model reads. Mirrors the plugin's text shape. */
|
|
45
|
+
export function buildStartMessage(p) {
|
|
46
|
+
return [
|
|
47
|
+
`Started "${p.name}" (${p.id}, PID: ${p.pid})`,
|
|
48
|
+
"Log files:",
|
|
49
|
+
` stdout: ${p.stdoutFile}`,
|
|
50
|
+
` stderr: ${p.stderrFile}`,
|
|
51
|
+
].join("\n");
|
|
52
|
+
}
|
|
53
|
+
/** `list` summary. One line per process, oldest sort handled by caller. */
|
|
54
|
+
export function buildListMessage(processes) {
|
|
55
|
+
if (processes.length === 0)
|
|
56
|
+
return "No background processes running";
|
|
57
|
+
const lines = processes.map((p) => `${p.id} "${p.name}": ${truncateCmd(p.command)} [${formatStatus(p)}] ${formatRuntime(p.startTime, p.endTime)}`);
|
|
58
|
+
return `${processes.length} process(es):\n${lines.join("\n")}`;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/processes/envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { createWriteStream, mkdirSync } from "node:fs";
|
|
2
|
+
import { rename, stat } from "node:fs/promises";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
export const DEFAULT_OPTIONS = {
|
|
5
|
+
ringMaxLines: 1_000,
|
|
6
|
+
ringMaxBytes: 64 * 1024,
|
|
7
|
+
diskMaxBytes: 10 * 1024 * 1024,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* One per process+stream. Owns its WriteStream (closes on dispose)
|
|
11
|
+
* and a ring buffer of recent lines split on `\n`. The append()
|
|
12
|
+
* call is synchronous-looking from the caller's perspective — the
|
|
13
|
+
* write to disk is fire-and-forget through the stream's internal
|
|
14
|
+
* buffer.
|
|
15
|
+
*/
|
|
16
|
+
export class LogChannel {
|
|
17
|
+
opts;
|
|
18
|
+
filePath;
|
|
19
|
+
stream;
|
|
20
|
+
byteCount = 0;
|
|
21
|
+
rotating = false;
|
|
22
|
+
/** Pending tail of an incoming chunk that didn't end on a newline. */
|
|
23
|
+
partial = "";
|
|
24
|
+
/** Most-recent N lines; oldest evicted first. */
|
|
25
|
+
lines = [];
|
|
26
|
+
linesBytes = 0;
|
|
27
|
+
disposed = false;
|
|
28
|
+
constructor(filePath, opts = {}) {
|
|
29
|
+
this.opts = { ...DEFAULT_OPTIONS, ...opts };
|
|
30
|
+
this.filePath = filePath;
|
|
31
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
32
|
+
this.stream = createWriteStream(filePath, { flags: "a" });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Push a chunk of process output. Splits on `\n` to update the
|
|
36
|
+
* ring buffer (and to feed log watches via the caller's
|
|
37
|
+
* `onLine` callback). Disk write is the raw chunk — preserves
|
|
38
|
+
* the original bytes including any embedded carriage returns
|
|
39
|
+
* the process emitted.
|
|
40
|
+
*/
|
|
41
|
+
append(chunk, onLine) {
|
|
42
|
+
if (this.disposed)
|
|
43
|
+
return;
|
|
44
|
+
const bytes = chunk.length;
|
|
45
|
+
this.byteCount += bytes;
|
|
46
|
+
this.stream.write(chunk);
|
|
47
|
+
// Maybe rotate AFTER writing — the file is what we want to cap,
|
|
48
|
+
// not the chunk size.
|
|
49
|
+
if (this.byteCount >= this.opts.diskMaxBytes && !this.rotating) {
|
|
50
|
+
void this.rotate();
|
|
51
|
+
}
|
|
52
|
+
const text = chunk.toString("utf8");
|
|
53
|
+
let buf = this.partial + text;
|
|
54
|
+
let nl = buf.indexOf("\n");
|
|
55
|
+
while (nl !== -1) {
|
|
56
|
+
const line = buf.slice(0, nl);
|
|
57
|
+
buf = buf.slice(nl + 1);
|
|
58
|
+
this.pushLine(line);
|
|
59
|
+
if (onLine !== undefined)
|
|
60
|
+
onLine(line);
|
|
61
|
+
nl = buf.indexOf("\n");
|
|
62
|
+
}
|
|
63
|
+
this.partial = buf;
|
|
64
|
+
}
|
|
65
|
+
pushLine(line) {
|
|
66
|
+
const bytes = Buffer.byteLength(line, "utf8") + 1;
|
|
67
|
+
this.lines.push(line);
|
|
68
|
+
this.linesBytes += bytes;
|
|
69
|
+
while (this.lines.length > this.opts.ringMaxLines || this.linesBytes > this.opts.ringMaxBytes) {
|
|
70
|
+
const dropped = this.lines.shift();
|
|
71
|
+
if (dropped === undefined)
|
|
72
|
+
break;
|
|
73
|
+
this.linesBytes -= Buffer.byteLength(dropped, "utf8") + 1;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async rotate() {
|
|
77
|
+
this.rotating = true;
|
|
78
|
+
try {
|
|
79
|
+
const backup = `${this.filePath}.1`;
|
|
80
|
+
// Close the current stream so the rename succeeds on Windows
|
|
81
|
+
// (best-effort — Unix doesn't need it but it's idempotent).
|
|
82
|
+
await new Promise((resolve) => this.stream.end(() => resolve()));
|
|
83
|
+
await rename(this.filePath, backup).catch(() => undefined);
|
|
84
|
+
this.stream = createWriteStream(this.filePath, { flags: "a" });
|
|
85
|
+
// Re-stat to refresh byteCount (the rename happens to a
|
|
86
|
+
// possibly-stale `byteCount` value if writes raced — re-read
|
|
87
|
+
// the truth).
|
|
88
|
+
try {
|
|
89
|
+
const st = await stat(this.filePath);
|
|
90
|
+
this.byteCount = st.size;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
this.byteCount = 0;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
this.rotating = false;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/** Latest N lines (default: all retained). */
|
|
101
|
+
tail(n) {
|
|
102
|
+
if (n === undefined || n >= this.lines.length)
|
|
103
|
+
return [...this.lines];
|
|
104
|
+
return this.lines.slice(this.lines.length - n);
|
|
105
|
+
}
|
|
106
|
+
filePathOnDisk() {
|
|
107
|
+
return this.filePath;
|
|
108
|
+
}
|
|
109
|
+
async dispose() {
|
|
110
|
+
if (this.disposed)
|
|
111
|
+
return;
|
|
112
|
+
this.disposed = true;
|
|
113
|
+
// Flush any partial line into the ring buffer (no trailing
|
|
114
|
+
// newline, but the user-visible "last line" makes sense).
|
|
115
|
+
if (this.partial.length > 0) {
|
|
116
|
+
this.pushLine(this.partial);
|
|
117
|
+
this.partial = "";
|
|
118
|
+
}
|
|
119
|
+
await new Promise((resolve) => {
|
|
120
|
+
this.stream.end(() => resolve());
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve a process's log directory under the session's tree.
|
|
126
|
+
* Lives in FORGE_DATA_DIR so it cascades with the rest of the
|
|
127
|
+
* forge's per-session state when a session is cold-deleted.
|
|
128
|
+
*/
|
|
129
|
+
export function processLogDir(forgeDataDir, sessionId, processId) {
|
|
130
|
+
return join(forgeDataDir, "processes", sessionId, processId);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=log-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-store.js","sourceRoot":"","sources":["../../src/processes/log-store.ts"],"names":[],"mappings":"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"}
|