pi-forge 1.3.6 → 1.3.7
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-BH6J6WhM.js → CodeMirrorEditor-BklpCqAo.js} +2 -2
- package/dist/client/assets/{CodeMirrorEditor-BH6J6WhM.js.map → CodeMirrorEditor-BklpCqAo.js.map} +1 -1
- package/dist/client/assets/index-CfPBiBJW.css +1 -0
- package/dist/client/assets/{index-bJJrpg1R.js → index-EU82nCUh.js} +82 -81
- package/dist/client/assets/index-EU82nCUh.js.map +1 -0
- 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/cli.js +122 -1
- package/dist/server/cli.js.map +1 -1
- package/dist/server/config.js +69 -4
- package/dist/server/config.js.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/ldap-auth.js +103 -0
- package/dist/server/ldap-auth.js.map +1 -0
- package/dist/server/lifecycle-notifications.js +44 -0
- package/dist/server/lifecycle-notifications.js.map +1 -0
- package/dist/server/mcp/tool-bridge.js +12 -8
- package/dist/server/mcp/tool-bridge.js.map +1 -1
- package/dist/server/orchestration/config.js +10 -36
- package/dist/server/orchestration/config.js.map +1 -1
- package/dist/server/orchestration/event-bridge.js +69 -28
- package/dist/server/orchestration/event-bridge.js.map +1 -1
- package/dist/server/orchestration/inbox.js +157 -124
- package/dist/server/orchestration/inbox.js.map +1 -1
- package/dist/server/orchestration/init.js +1 -1
- package/dist/server/orchestration/store.js +44 -4
- package/dist/server/orchestration/store.js.map +1 -1
- package/dist/server/orchestration/tools.js +35 -118
- package/dist/server/orchestration/tools.js.map +1 -1
- package/dist/server/orchestration/types.js +8 -4
- package/dist/server/orchestration/types.js.map +1 -1
- package/dist/server/orchestration/worker-lifecycle.js +1 -1
- package/dist/server/orchestration/worker-lifecycle.js.map +1 -1
- package/dist/server/routes/_schemas.js +6 -0
- package/dist/server/routes/_schemas.js.map +1 -1
- package/dist/server/routes/auth.js +31 -9
- package/dist/server/routes/auth.js.map +1 -1
- package/dist/server/routes/control.js +52 -13
- package/dist/server/routes/control.js.map +1 -1
- package/dist/server/routes/health.js +3 -4
- package/dist/server/routes/health.js.map +1 -1
- package/dist/server/routes/orchestration.js +31 -7
- package/dist/server/routes/orchestration.js.map +1 -1
- package/dist/server/routes/prompt.js +40 -2
- package/dist/server/routes/prompt.js.map +1 -1
- package/dist/server/routes/sessions.js +110 -5
- package/dist/server/routes/sessions.js.map +1 -1
- package/dist/server/routes/stream.js +77 -2
- package/dist/server/routes/stream.js.map +1 -1
- package/dist/server/session-registry.js +125 -28
- package/dist/server/session-registry.js.map +1 -1
- package/dist/server/sse-bridge.js +39 -29
- package/dist/server/sse-bridge.js.map +1 -1
- package/dist/server/subagents-external.js +319 -0
- package/dist/server/subagents-external.js.map +1 -0
- package/package.json +2 -1
- package/dist/client/assets/index-BszHzUYE.css +0 -1
- package/dist/client/assets/index-bJJrpg1R.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ldap-auth.js","sourceRoot":"","sources":["../src/ldap-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Send a custom lifecycle/status card with explicit active-run behavior.
|
|
3
|
+
*
|
|
4
|
+
* While streaming, lifecycle cards use `steer` so the card is available
|
|
5
|
+
* to the active run's next model step rather than being delivered after
|
|
6
|
+
* `agent_end` as a follow-up. If the current LLM request is already in
|
|
7
|
+
* flight, the SDK cannot inject into that already-sent request; the earliest
|
|
8
|
+
* possible context point is the next agent step.
|
|
9
|
+
*
|
|
10
|
+
* When idle, `triggerTurn` controls whether the card starts a new model turn:
|
|
11
|
+
* failures trigger; success/informational cards only append/display.
|
|
12
|
+
*/
|
|
13
|
+
export function sendCustomLifecycleMessage(session, message, options) {
|
|
14
|
+
if (options.dedupe !== undefined &&
|
|
15
|
+
hasExistingNotification(session.messages, message.customType, options.dedupe)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const send = (sendOptions) => {
|
|
19
|
+
void session.sendCustomMessage(message, sendOptions).catch((err) => {
|
|
20
|
+
options.onError?.(err);
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
if (session.isStreaming) {
|
|
24
|
+
send({ deliverAs: "steer", triggerTurn: options.triggerTurn });
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (options.dedupe !== undefined &&
|
|
28
|
+
hasExistingNotification(session.messages, message.customType, options.dedupe)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
send({ triggerTurn: options.triggerTurn });
|
|
32
|
+
}
|
|
33
|
+
function hasExistingNotification(messages, customType, dedupe) {
|
|
34
|
+
return messages.some((message) => {
|
|
35
|
+
const m = message;
|
|
36
|
+
if (m.role !== "custom" || m.customType !== customType)
|
|
37
|
+
return false;
|
|
38
|
+
if (typeof m.details !== "object" || m.details === null)
|
|
39
|
+
return false;
|
|
40
|
+
const details = m.details;
|
|
41
|
+
return details[dedupe.detailKey] === dedupe.detailValue;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=lifecycle-notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-notifications.js","sourceRoot":"","sources":["../src/lifecycle-notifications.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAyB,EACzB,OAA+B,EAC/B,OAIC;IAED,IACE,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAC7E,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,WAAuE,EAAQ,EAAE;QAC7F,KAAK,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC1E,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,IACE,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,uBAAuB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAC7E,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAA4B,EAC5B,UAAkB,EAClB,MAAkD;IAElD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,MAAM,CAAC,GAAG,OAAsE,CAAC;QACjF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACrE,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtE,MAAM,OAAO,GAAG,CAAC,CAAC,OAAkC,CAAC;QACrD,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -124,10 +124,11 @@ export function mcpResultToAgentResult(res) {
|
|
|
124
124
|
* usually has the most recent / most relevant items in time-ordered
|
|
125
125
|
* lists.
|
|
126
126
|
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
127
|
+
* Warning text is placed at the very start of the returned text so
|
|
128
|
+
* even simple models notice it before consuming a large head/tail
|
|
129
|
+
* payload. It tells the agent (a) truncation happened, (b) by how
|
|
130
|
+
* much, and (c) what to do next. Imperative phrasing nudges the
|
|
131
|
+
* model to narrow scope rather than re-running the same call.
|
|
131
132
|
*
|
|
132
133
|
* No per-tool override yet — add when a real workload needs a higher
|
|
133
134
|
* or lower cap. Hardcoded constant is the deliberate first cut.
|
|
@@ -154,10 +155,13 @@ export function capTextContent(blocks) {
|
|
|
154
155
|
const head = flat.slice(0, headLen);
|
|
155
156
|
const tail = flat.slice(flat.length - tailLen);
|
|
156
157
|
const omitted = flat.length - headLen - tailLen;
|
|
157
|
-
const
|
|
158
|
-
`
|
|
159
|
-
`
|
|
160
|
-
|
|
158
|
+
const warning = `MCP_RESULT_TRUNCATED: ${omitted.toLocaleString()} characters ` +
|
|
159
|
+
`(~${Math.round(omitted / 4).toLocaleString()} tokens) were omitted from the middle of this tool result. ` +
|
|
160
|
+
`Do not assume the missing content was irrelevant. Next step: call the MCP tool again with a smaller scope, ` +
|
|
161
|
+
`narrower filter, or pagination to inspect the omitted content.\n\n`;
|
|
162
|
+
const marker = `\n\n[--- MCP_RESULT_TRUNCATED: omitted middle content. Use a smaller scope, narrower filter, ` +
|
|
163
|
+
`or pagination to inspect it. ---]\n\n`;
|
|
164
|
+
const truncatedText = warning + head + marker + tail;
|
|
161
165
|
// Keep one text block with the truncated payload + every image
|
|
162
166
|
// block from the original (in its original relative order). Drop
|
|
163
167
|
// duplicate text blocks since they were already absorbed into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../../src/mcp/tool-bridge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-bridge.js","sourceRoot":"","sources":["../../src/mcp/tool-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAK/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,aAAa,CAAC,IAS7B;IACC,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5D,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,WAAW;QAClB,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,kBAAkB,IAAI,CAAC,UAAU,IAAI,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,QAAQ,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjD,WAAW;QACX,UAAU,EAAE,IAAI,CAAC,MAAM,CAA0B,IAAI,CAAC,WAAW,CAAC;QAClE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,WAAW,CAChB,eAAe,IAAI,CAAC,UAAU,+EAA+E,CAC9G,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAC/B;oBACE,IAAI,EAAE,IAAI,CAAC,QAAQ;oBACnB,SAAS,EAAG,MAAkC,IAAI,EAAE;iBACrD,EACD,SAAS,EACT,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9C,CAAC;gBACF,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAChB,aAAa,YAAY,YAAY,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;KACuB,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB,CAAC;AACJ,CAAC;AAgBD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAkB,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,OAAO,GAGP,EAAE,CAAC;IACT,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,OAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,OAAO;YACtB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAClC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,+DAA+D;YAC/D,8DAA8D;YAC9D,2CAA2C;YAC3C,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;aACtE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,+DAA+D;QAC/D,kEAAkE;QAClE,gBAAgB;QAChB,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3C,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;AACpF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAMvC,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACpD,CAAC;IACD,IAAI,SAAS,IAAI,kBAAkB;QAAE,OAAO,MAAM,CAAC;IACnD,+DAA+D;IAC/D,kEAAkE;IAClE,oDAAoD;IACpD,MAAM,IAAI,GAAG,MAAM;SAChB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,kBAAkB,GAAG,OAAO,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAChD,MAAM,OAAO,GACX,yBAAyB,OAAO,CAAC,cAAc,EAAE,cAAc;QAC/D,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,6DAA6D;QAC1G,6GAA6G;QAC7G,oEAAoE,CAAC;IACvE,MAAM,MAAM,GACV,+FAA+F;QAC/F,uCAAuC,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACrD,+DAA+D;IAC/D,iEAAiE;IACjE,8DAA8D;IAC9D,UAAU;IACV,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;gBAChD,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,49 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Runtime config for the orchestration feature.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* MINIMAL_UI is a HARD gate (checked separately in routes + tool
|
|
10
|
-
* registration): even with `ORCHESTRATION_ENABLED=true`, a deployment
|
|
11
|
-
* running under MINIMAL_UI never surfaces orchestration. Same posture
|
|
12
|
-
* as the webhooks mutation gate, applied to BOTH routes AND the
|
|
13
|
-
* agent-facing tool surface.
|
|
4
|
+
* Enabled by default with an instance-level disable switch + tunable
|
|
5
|
+
* limits. MINIMAL_UI is a HARD gate (checked separately in routes +
|
|
6
|
+
* tool registration): a deployment running under MINIMAL_UI never
|
|
7
|
+
* surfaces orchestration. Same posture as the webhooks mutation gate,
|
|
8
|
+
* applied to BOTH routes AND the agent-facing tool surface.
|
|
14
9
|
*/
|
|
15
10
|
import { config } from "../config.js";
|
|
16
|
-
import { DEFAULT_MAX_WORKERS_PER_SUPERVISOR } from "./types.js";
|
|
17
|
-
function readBoolEnv(key, fallback) {
|
|
18
|
-
const raw = process.env[key];
|
|
19
|
-
if (raw === undefined || raw === "")
|
|
20
|
-
return fallback;
|
|
21
|
-
const v = raw.toLowerCase();
|
|
22
|
-
if (["1", "true", "yes", "on"].includes(v))
|
|
23
|
-
return true;
|
|
24
|
-
if (["0", "false", "no", "off"].includes(v))
|
|
25
|
-
return false;
|
|
26
|
-
return fallback;
|
|
27
|
-
}
|
|
28
|
-
function readIntEnv(key, fallback, min, max) {
|
|
29
|
-
const raw = process.env[key];
|
|
30
|
-
if (raw === undefined || raw === "")
|
|
31
|
-
return fallback;
|
|
32
|
-
const n = Number.parseInt(raw, 10);
|
|
33
|
-
if (!Number.isFinite(n) || n < min || n > max)
|
|
34
|
-
return fallback;
|
|
35
|
-
return n;
|
|
36
|
-
}
|
|
37
11
|
/**
|
|
38
12
|
* True when orchestration tools may surface AND the REST routes may
|
|
39
|
-
* accept mutations. Combines the instance-level
|
|
40
|
-
* MINIMAL_UI hard gate — under MINIMAL_UI, orchestration is OFF
|
|
41
|
-
* regardless of the
|
|
13
|
+
* accept mutations. Combines the instance-level feature config with
|
|
14
|
+
* the MINIMAL_UI hard gate — under MINIMAL_UI, orchestration is OFF
|
|
15
|
+
* regardless of the disable switch.
|
|
42
16
|
*/
|
|
43
17
|
export function isOrchestrationEnabled() {
|
|
44
18
|
if (config.minimalUi)
|
|
45
19
|
return false;
|
|
46
|
-
return
|
|
20
|
+
return config.orchestrationEnabled;
|
|
47
21
|
}
|
|
48
22
|
/**
|
|
49
23
|
* Reason string for the disabled state — surfaced in 403 responses
|
|
@@ -56,6 +30,6 @@ export function orchestrationDisabledReason() {
|
|
|
56
30
|
return "orchestration_disabled";
|
|
57
31
|
}
|
|
58
32
|
export function maxWorkersPerSupervisor() {
|
|
59
|
-
return
|
|
33
|
+
return config.orchestrationMaxWorkersPerSupervisor;
|
|
60
34
|
}
|
|
61
35
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/orchestration/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/orchestration/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC,oBAAoB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,qBAAqB,CAAC;IACnD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,MAAM,CAAC,oCAAoC,CAAC;AACrD,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { bridgeWorkerEvent } from "./inbox.js";
|
|
2
|
+
import { getWorkerRecord, updateWorkerLifecycle } from "./store.js";
|
|
2
3
|
function findLastAssistant(messages) {
|
|
3
4
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
4
5
|
const m = messages[i];
|
|
@@ -28,49 +29,65 @@ function extractAssistantText(content) {
|
|
|
28
29
|
}
|
|
29
30
|
if (parts.length === 0)
|
|
30
31
|
return undefined;
|
|
31
|
-
//
|
|
32
|
-
//
|
|
33
|
-
//
|
|
34
|
-
|
|
35
|
-
const joined = parts.join("\n");
|
|
36
|
-
return joined.length > 600 ? `${joined.slice(0, 600)}…` : joined;
|
|
32
|
+
// Worker completion notifications are the supervisor's actionable
|
|
33
|
+
// context now, so include the full final assistant text rather than a
|
|
34
|
+
// preview that requires a follow-up inbox/transcript read.
|
|
35
|
+
return parts.join("\n");
|
|
37
36
|
}
|
|
38
37
|
/**
|
|
39
38
|
* Called from `session-registry.makeSubscribeHandler` for every
|
|
40
|
-
* AgentSessionEvent on every live session.
|
|
41
|
-
*
|
|
39
|
+
* AgentSessionEvent on every live session. Only authoritative
|
|
40
|
+
* lifecycle signals wake the supervisor: agent_end (final turn
|
|
41
|
+
* outcome) and explicit blocked state from ask_user_question (below).
|
|
42
|
+
* Retry events are deliberately ignored here; if retries ultimately
|
|
43
|
+
* fail, the SDK reports the terminal outcome on agent_end or the
|
|
44
|
+
* explicit stop/delete path reports no agent_end was observed.
|
|
42
45
|
*/
|
|
43
46
|
export async function bridgeWorkerAgentEvent(meta, event) {
|
|
44
47
|
const e = event;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
const now = new Date().toISOString();
|
|
49
|
+
if (e.type === "agent_start") {
|
|
50
|
+
await updateWorkerLifecycle(meta.sessionId, {
|
|
51
|
+
state: "running",
|
|
52
|
+
turnOpen: true,
|
|
53
|
+
lastStateAt: now,
|
|
54
|
+
lastAgentStartAt: now,
|
|
55
|
+
stopReason: null,
|
|
56
|
+
errorMessage: null,
|
|
54
57
|
});
|
|
55
58
|
return;
|
|
56
59
|
}
|
|
57
|
-
if (e.type
|
|
58
|
-
await bridgeWorkerEvent(meta.sessionId, "worker.auto_retry_failed", {
|
|
59
|
-
attempt: e.attempt ?? null,
|
|
60
|
-
maxAttempts: e.maxAttempts ?? null,
|
|
61
|
-
finalError: e.finalError ?? null,
|
|
62
|
-
});
|
|
60
|
+
if (e.type !== "agent_end")
|
|
63
61
|
return;
|
|
64
|
-
|
|
62
|
+
const messages = meta.session.messages;
|
|
63
|
+
const lastAssistant = findLastAssistant(messages);
|
|
64
|
+
const errorMessage = meta.session.errorMessage ??
|
|
65
|
+
lastAssistant?.errorMessage;
|
|
66
|
+
const hasError = typeof errorMessage === "string" && errorMessage.length > 0;
|
|
67
|
+
await updateWorkerLifecycle(meta.sessionId, {
|
|
68
|
+
state: hasError ? "errored" : "ended",
|
|
69
|
+
turnOpen: false,
|
|
70
|
+
lastStateAt: now,
|
|
71
|
+
lastAgentEndAt: now,
|
|
72
|
+
stopReason: lastAssistant?.stopReason ?? null,
|
|
73
|
+
errorMessage: errorMessage ?? null,
|
|
74
|
+
});
|
|
75
|
+
await bridgeWorkerEvent(meta.sessionId, "worker.ended", {
|
|
76
|
+
stopReason: lastAssistant?.stopReason ?? null,
|
|
77
|
+
errorMessage: errorMessage ?? null,
|
|
78
|
+
assistantText: lastAssistant?.text ?? null,
|
|
79
|
+
});
|
|
65
80
|
}
|
|
66
81
|
export async function bridgeWorkerAskUserQuestion(sessionId, questions, requestId) {
|
|
82
|
+
await updateWorkerLifecycle(sessionId, {
|
|
83
|
+
state: "awaiting_question",
|
|
84
|
+
lastStateAt: new Date().toISOString(),
|
|
85
|
+
});
|
|
67
86
|
await bridgeWorkerEvent(sessionId, "worker.ask_user", {
|
|
68
87
|
requestId,
|
|
69
88
|
questionCount: questions.length,
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
// the worker's transcript. Full question detail is in the
|
|
73
|
-
// worker's session, fetched via orchestrate_read_worker.
|
|
89
|
+
// Include the question detail directly so the supervisor can react
|
|
90
|
+
// from the pushed notification without first draining an inbox.
|
|
74
91
|
firstQuestionHeader: questions[0]?.header ?? null,
|
|
75
92
|
firstQuestionText: questions[0]?.question ?? null,
|
|
76
93
|
});
|
|
@@ -96,7 +113,31 @@ export async function bridgeWorkerProcessAlert(sessionId, info, reason) {
|
|
|
96
113
|
success: info.success,
|
|
97
114
|
});
|
|
98
115
|
}
|
|
116
|
+
export async function bridgeWorkerExecutionStopped(sessionId, meta) {
|
|
117
|
+
const rec = await getWorkerRecord(sessionId);
|
|
118
|
+
if (rec?.turnOpen !== true)
|
|
119
|
+
return;
|
|
120
|
+
await updateWorkerLifecycle(sessionId, {
|
|
121
|
+
state: "stopped",
|
|
122
|
+
turnOpen: false,
|
|
123
|
+
lastStateAt: new Date().toISOString(),
|
|
124
|
+
stopReason: meta.reason,
|
|
125
|
+
});
|
|
126
|
+
await bridgeWorkerEvent(sessionId, "worker.execution_stopped_without_agent_end", {
|
|
127
|
+
reason: meta.reason,
|
|
128
|
+
wasLive: meta.wasLive,
|
|
129
|
+
lastAgentStartAt: rec.lastAgentStartAt ?? null,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
99
132
|
export async function bridgeWorkerDeleted(sessionId, meta) {
|
|
133
|
+
const reason = meta.reason ?? "deleted";
|
|
134
|
+
await bridgeWorkerExecutionStopped(sessionId, { wasLive: meta.wasLive, reason });
|
|
135
|
+
await updateWorkerLifecycle(sessionId, {
|
|
136
|
+
state: "deleted",
|
|
137
|
+
turnOpen: false,
|
|
138
|
+
lastStateAt: new Date().toISOString(),
|
|
139
|
+
stopReason: reason,
|
|
140
|
+
});
|
|
100
141
|
await bridgeWorkerEvent(sessionId, "worker.deleted", {
|
|
101
142
|
wasLive: meta.wasLive,
|
|
102
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bridge.js","sourceRoot":"","sources":["../../src/orchestration/event-bridge.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"event-bridge.js","sourceRoot":"","sources":["../../src/orchestration/event-bridge.ts"],"names":[],"mappings":"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"}
|