@telora/daemon 0.18.37 → 0.18.40
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/build-info.json +4 -3
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +5 -0
- package/dist/listener.js.map +1 -1
- package/dist/nexus-incoming.d.ts +8 -7
- package/dist/nexus-incoming.d.ts.map +1 -1
- package/dist/nexus-incoming.js +10 -12
- package/dist/nexus-incoming.js.map +1 -1
- package/dist/nexus-intake-spawn.d.ts +57 -0
- package/dist/nexus-intake-spawn.d.ts.map +1 -0
- package/dist/nexus-intake-spawn.js +158 -0
- package/dist/nexus-intake-spawn.js.map +1 -0
- package/dist/nexus-intake.d.ts +94 -0
- package/dist/nexus-intake.d.ts.map +1 -0
- package/dist/nexus-intake.js +160 -0
- package/dist/nexus-intake.js.map +1 -0
- package/package.json +2 -2
package/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"commitSha": "
|
|
3
|
-
"builtAt": "2026-06-
|
|
2
|
+
"commitSha": "10f4d490",
|
|
3
|
+
"builtAt": "2026-06-22T02:07:07.677Z",
|
|
4
4
|
"expectedMigrations": [
|
|
5
5
|
"20250829113330_create_org_nodes_table.sql",
|
|
6
6
|
"20250829113402_fix_function_security_search_path.sql",
|
|
@@ -667,6 +667,7 @@
|
|
|
667
667
|
"20260620194038_unique_reality_tree_node_seq.sql",
|
|
668
668
|
"20260620210359_strengthen_service_definitions_rls.sql",
|
|
669
669
|
"20260621021153_increment_delivery_iteration_count_on_verify_failed.sql",
|
|
670
|
-
"20260621022145_agent_escalations_kind_stall_detectors.sql"
|
|
670
|
+
"20260621022145_agent_escalations_kind_stall_detectors.sql",
|
|
671
|
+
"20260621155052_nexus_intake_pending_and_inbox_decompose.sql"
|
|
671
672
|
]
|
|
672
673
|
}
|
package/dist/listener.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,YAAY,CAAC;AAsC1D;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AA8BD;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4D5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAgF5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6JzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CA0GhE;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoIxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAGnC"}
|
package/dist/listener.js
CHANGED
|
@@ -25,6 +25,7 @@ import { checkControlStateChanges } from './control-state.js';
|
|
|
25
25
|
import { isDaemonShuttingDown } from './shutdown-state.js';
|
|
26
26
|
import { configForProduct, findProduct } from './config.js';
|
|
27
27
|
import { checkIncomingRequests } from './nexus-incoming.js';
|
|
28
|
+
import { checkIntakePendingRequests } from './nexus-intake.js';
|
|
28
29
|
import { checkResolvedRequests } from './nexus-return.js';
|
|
29
30
|
import { checkEndpointClearance } from './nexus-endpoint-clearance.js';
|
|
30
31
|
import { checkDirectives, seedLastProcessedStage, getPendingSpawnFocusIds } from './directive-executor.js';
|
|
@@ -153,6 +154,10 @@ export function startDeliveryListener() {
|
|
|
153
154
|
await runReconcilerShadow(pc);
|
|
154
155
|
// Nexus: pick up incoming cross-product requests and apply the accept gate.
|
|
155
156
|
await checkIncomingRequests(pc);
|
|
157
|
+
// Nexus: spawn a target-side scoping agent for each accepted, not-yet-
|
|
158
|
+
// materialized request so the receiving team authors a per-request focus
|
|
159
|
+
// (no server-side authoring, no dead-letter inbox).
|
|
160
|
+
await checkIntakePendingRequests(pc);
|
|
156
161
|
// Nexus: close the loop -- resolve done deliveries + notify blocked sources.
|
|
157
162
|
await checkResolvedRequests(pc);
|
|
158
163
|
// Nexus: clear externally-owned obstacles whose endpoint-typed request has
|
package/dist/listener.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../src/listener.ts"],"names":[],"mappings":"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"}
|
package/dist/nexus-incoming.d.ts
CHANGED
|
@@ -6,15 +6,17 @@
|
|
|
6
6
|
* incoming requests (product_requests where target_product_id = this product)
|
|
7
7
|
* and applies the product's accept gate:
|
|
8
8
|
*
|
|
9
|
-
* - auto_with_decline (default): auto-accept
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* decline/clarify after the fact via MCP -- "accept with
|
|
9
|
+
* - auto_with_decline (default): auto-accept the request. It then sits
|
|
10
|
+
* status='accepted' (intake-pending) for the daemon nexus-intake poll, which
|
|
11
|
+
* spawns a target-side scoping agent that authors a per-request focus. (The
|
|
12
|
+
* target can still decline/clarify after the fact via MCP -- "accept with
|
|
13
|
+
* decline".) Accept does NOT author work server-side; authoring is scoping,
|
|
14
|
+
* which only the target product's agent team can do.
|
|
13
15
|
* - human_required: leave the request OPEN; a human accepts it via MCP.
|
|
14
16
|
*
|
|
15
17
|
* The decision is a pure function (decideIncoming) so the gate is unit-tested
|
|
16
|
-
* without any I/O; the side effects (list/accept/
|
|
17
|
-
*
|
|
18
|
+
* without any I/O; the side effects (list/accept/policy read) are injected as
|
|
19
|
+
* deps so the poll wiring is testable with mocks.
|
|
18
20
|
*/
|
|
19
21
|
import type { DaemonConfig } from './types.js';
|
|
20
22
|
export type NexusAcceptPolicy = 'auto_with_decline' | 'human_required';
|
|
@@ -33,7 +35,6 @@ export interface NexusIncomingDeps {
|
|
|
33
35
|
listIncomingOpen: (productId: string) => Promise<IncomingRequest[]>;
|
|
34
36
|
getAcceptPolicy: (productId: string) => Promise<NexusAcceptPolicy>;
|
|
35
37
|
acceptRequest: (requestId: string) => Promise<void>;
|
|
36
|
-
materializeRequest: (requestId: string) => Promise<void>;
|
|
37
38
|
log?: (msg: string) => void;
|
|
38
39
|
}
|
|
39
40
|
/** Production deps backed by the product-api over callApi. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-incoming.d.ts","sourceRoot":"","sources":["../src/nexus-incoming.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nexus-incoming.d.ts","sourceRoot":"","sources":["../src/nexus-incoming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,aAAa,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,gBAAgB,CAE1E;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACpE,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,8DAA8D;AAC9D,wBAAgB,wBAAwB,IAAI,iBAAiB,CAkB5D;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,iBAA8C,GACnD,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
package/dist/nexus-incoming.js
CHANGED
|
@@ -6,15 +6,17 @@
|
|
|
6
6
|
* incoming requests (product_requests where target_product_id = this product)
|
|
7
7
|
* and applies the product's accept gate:
|
|
8
8
|
*
|
|
9
|
-
* - auto_with_decline (default): auto-accept
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* decline/clarify after the fact via MCP -- "accept with
|
|
9
|
+
* - auto_with_decline (default): auto-accept the request. It then sits
|
|
10
|
+
* status='accepted' (intake-pending) for the daemon nexus-intake poll, which
|
|
11
|
+
* spawns a target-side scoping agent that authors a per-request focus. (The
|
|
12
|
+
* target can still decline/clarify after the fact via MCP -- "accept with
|
|
13
|
+
* decline".) Accept does NOT author work server-side; authoring is scoping,
|
|
14
|
+
* which only the target product's agent team can do.
|
|
13
15
|
* - human_required: leave the request OPEN; a human accepts it via MCP.
|
|
14
16
|
*
|
|
15
17
|
* The decision is a pure function (decideIncoming) so the gate is unit-tested
|
|
16
|
-
* without any I/O; the side effects (list/accept/
|
|
17
|
-
*
|
|
18
|
+
* without any I/O; the side effects (list/accept/policy read) are injected as
|
|
19
|
+
* deps so the poll wiring is testable with mocks.
|
|
18
20
|
*/
|
|
19
21
|
import { callApi } from './queries/shared.js';
|
|
20
22
|
/**
|
|
@@ -42,9 +44,6 @@ export function defaultNexusIncomingDeps() {
|
|
|
42
44
|
acceptRequest: async (requestId) => {
|
|
43
45
|
await callApi('product_request_accept', { requestId });
|
|
44
46
|
},
|
|
45
|
-
materializeRequest: async (requestId) => {
|
|
46
|
-
await callApi('product_request_materialize', { requestId });
|
|
47
|
-
},
|
|
48
47
|
};
|
|
49
48
|
}
|
|
50
49
|
/**
|
|
@@ -82,11 +81,10 @@ export async function checkIncomingRequests(config, deps = defaultNexusIncomingD
|
|
|
82
81
|
for (const req of requests) {
|
|
83
82
|
try {
|
|
84
83
|
await deps.acceptRequest(req.id);
|
|
85
|
-
|
|
86
|
-
log(`[nexus] auto-accepted + materialized request ${req.id} for product ${productId}`);
|
|
84
|
+
log(`[nexus] auto-accepted request ${req.id} for product ${productId} (intake-pending; scoping spawn owns authoring)`);
|
|
87
85
|
}
|
|
88
86
|
catch (err) {
|
|
89
|
-
log(`[nexus] failed to accept
|
|
87
|
+
log(`[nexus] failed to accept request ${req.id}: ${err.message}`);
|
|
90
88
|
}
|
|
91
89
|
}
|
|
92
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus-incoming.js","sourceRoot":"","sources":["../src/nexus-incoming.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"nexus-incoming.js","sourceRoot":"","sources":["../src/nexus-incoming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAY9C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB;IACtD,OAAO,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;AACrE,CAAC;AASD,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,gBAAgB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACpC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAmC,sBAAsB,EAAE;gBAClF,SAAS;gBACT,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAA+C,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9F,OAAO,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACtG,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACjC,MAAM,OAAO,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB,EACpB,OAA0B,wBAAwB,EAAE;IAEpD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5D,IAAI,QAA2B,CAAC;IAChC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,gDAAgD,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,IAAI,MAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,4CAA4C,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,aAAa,EAAE,CAAC;QAC7C,GAAG,CAAC,WAAW,QAAQ,CAAC,MAAM,4BAA4B,SAAS,+CAA+C,CAAC,CAAC;QACpH,OAAO;IACT,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,GAAG,CAAC,iCAAiC,GAAG,CAAC,EAAE,gBAAgB,SAAS,iDAAiD,CAAC,CAAC;QACzH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,oCAAoC,GAAG,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus intake scoping-agent spawn.
|
|
3
|
+
*
|
|
4
|
+
* Spawns a short-lived, single-purpose Claude Code agent that authors a focus
|
|
5
|
+
* from an accepted cross-product request -- the work the materialize edge
|
|
6
|
+
* handler structurally could not do. The agent is seeded with the request + its
|
|
7
|
+
* acceptanceContract and the role UUID to assign; its sole job is:
|
|
8
|
+
*
|
|
9
|
+
* 1. telora_product_focus create -- a per-request focus named from the request,
|
|
10
|
+
* then assign it the intake role so the spawn loop picks it up.
|
|
11
|
+
* 2. telora_reality_tree create + author nodes/edges -- the acceptanceContract
|
|
12
|
+
* becomes the goal / desired-effect the tree drives toward.
|
|
13
|
+
* 3. telora_product_delivery create -- injection-anchored deliveries.
|
|
14
|
+
* 4. telora_product_request materialize -- stamp the new focus (+ a
|
|
15
|
+
* representative delivery) back on the request so it leaves the
|
|
16
|
+
* intake-pending set and advances accepted -> in_progress.
|
|
17
|
+
* 5. exit.
|
|
18
|
+
*
|
|
19
|
+
* Mirrors spawner/resolution.ts (the merge-conflict resolution agent): a
|
|
20
|
+
* one-shot `--print` Claude Code process, prompt passed as a CLI arg, cleaned
|
|
21
|
+
* env, a kill timeout, no team mode and no streaming. It makes NO git changes
|
|
22
|
+
* (MCP calls only), so it runs in the product repo (config.repoPath) where the
|
|
23
|
+
* per-product .mcp.json + CLAUDE.md live -- no isolated worktree required.
|
|
24
|
+
*
|
|
25
|
+
* FIRE-AND-FORGET: the scoping agent runs for minutes; spawnScopingAgent resolves
|
|
26
|
+
* the moment the process has spawned (the 'spawn' event), NOT on close, so the
|
|
27
|
+
* daemon poll loop is never blocked. The close/error handlers only log; the
|
|
28
|
+
* intake_scoping_started_at stamp (written by the caller before this spawn) is
|
|
29
|
+
* the in-flight guard that prevents a re-spawn until the staleness window.
|
|
30
|
+
*/
|
|
31
|
+
import type { DaemonConfig } from './types.js';
|
|
32
|
+
import type { IntakePendingRequest } from './nexus-intake.js';
|
|
33
|
+
/** Kill the scoping agent if it has not exited within this window (15 minutes). */
|
|
34
|
+
export declare const INTAKE_SCOPING_TIMEOUT_MS: number;
|
|
35
|
+
/**
|
|
36
|
+
* Build the scoping prompt seeded with the request + acceptanceContract + the
|
|
37
|
+
* role to assign. Pure (string) so it is unit-tested without spawning a process.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildIntakeScopingPrompt(req: IntakePendingRequest, roleId: string): string;
|
|
40
|
+
/** Injectable process spawn seam (overridable in tests). */
|
|
41
|
+
export interface ScopingSpawnSeam {
|
|
42
|
+
spawnProcess: (command: string, args: string[], cwd: string, env: NodeJS.ProcessEnv) => {
|
|
43
|
+
pid?: number;
|
|
44
|
+
on: (event: string, cb: (arg?: unknown) => void) => void;
|
|
45
|
+
stdin?: {
|
|
46
|
+
end: () => void;
|
|
47
|
+
} | null;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Spawn the intake scoping agent for one accepted request. Resolves once the
|
|
52
|
+
* process has SPAWNED (fire-and-forget -- the agent runs for minutes); rejects
|
|
53
|
+
* only if the process fails to spawn. The close/error handlers log the outcome
|
|
54
|
+
* and the kill timeout bounds a hung agent.
|
|
55
|
+
*/
|
|
56
|
+
export declare function spawnScopingAgent(config: DaemonConfig, req: IntakePendingRequest, roleId: string, seam?: ScopingSpawnSeam): Promise<void>;
|
|
57
|
+
//# sourceMappingURL=nexus-intake-spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-intake-spawn.d.ts","sourceRoot":"","sources":["../src/nexus-intake-spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,mFAAmF;AACnF,eAAO,MAAM,yBAAyB,QAAiB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAsC1F;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,KAAK;QACtF,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;QACzD,KAAK,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KACpC,CAAC;CACH;AAOD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,gBAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CA4Df"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus intake scoping-agent spawn.
|
|
3
|
+
*
|
|
4
|
+
* Spawns a short-lived, single-purpose Claude Code agent that authors a focus
|
|
5
|
+
* from an accepted cross-product request -- the work the materialize edge
|
|
6
|
+
* handler structurally could not do. The agent is seeded with the request + its
|
|
7
|
+
* acceptanceContract and the role UUID to assign; its sole job is:
|
|
8
|
+
*
|
|
9
|
+
* 1. telora_product_focus create -- a per-request focus named from the request,
|
|
10
|
+
* then assign it the intake role so the spawn loop picks it up.
|
|
11
|
+
* 2. telora_reality_tree create + author nodes/edges -- the acceptanceContract
|
|
12
|
+
* becomes the goal / desired-effect the tree drives toward.
|
|
13
|
+
* 3. telora_product_delivery create -- injection-anchored deliveries.
|
|
14
|
+
* 4. telora_product_request materialize -- stamp the new focus (+ a
|
|
15
|
+
* representative delivery) back on the request so it leaves the
|
|
16
|
+
* intake-pending set and advances accepted -> in_progress.
|
|
17
|
+
* 5. exit.
|
|
18
|
+
*
|
|
19
|
+
* Mirrors spawner/resolution.ts (the merge-conflict resolution agent): a
|
|
20
|
+
* one-shot `--print` Claude Code process, prompt passed as a CLI arg, cleaned
|
|
21
|
+
* env, a kill timeout, no team mode and no streaming. It makes NO git changes
|
|
22
|
+
* (MCP calls only), so it runs in the product repo (config.repoPath) where the
|
|
23
|
+
* per-product .mcp.json + CLAUDE.md live -- no isolated worktree required.
|
|
24
|
+
*
|
|
25
|
+
* FIRE-AND-FORGET: the scoping agent runs for minutes; spawnScopingAgent resolves
|
|
26
|
+
* the moment the process has spawned (the 'spawn' event), NOT on close, so the
|
|
27
|
+
* daemon poll loop is never blocked. The close/error handlers only log; the
|
|
28
|
+
* intake_scoping_started_at stamp (written by the caller before this spawn) is
|
|
29
|
+
* the in-flight guard that prevents a re-spawn until the staleness window.
|
|
30
|
+
*/
|
|
31
|
+
import { spawn } from 'node:child_process';
|
|
32
|
+
import { stripClaudeCodeEnvVars } from '@telora/daemon-core';
|
|
33
|
+
/** Kill the scoping agent if it has not exited within this window (15 minutes). */
|
|
34
|
+
export const INTAKE_SCOPING_TIMEOUT_MS = 15 * 60 * 1000;
|
|
35
|
+
/**
|
|
36
|
+
* Build the scoping prompt seeded with the request + acceptanceContract + the
|
|
37
|
+
* role to assign. Pure (string) so it is unit-tested without spawning a process.
|
|
38
|
+
*/
|
|
39
|
+
export function buildIntakeScopingPrompt(req, roleId) {
|
|
40
|
+
const title = req.title ?? '(untitled request)';
|
|
41
|
+
const acceptanceContract = req.acceptanceContract ?? '(no acceptance contract supplied)';
|
|
42
|
+
const description = req.description ?? '(no description supplied)';
|
|
43
|
+
// Stable marker embedded in the focus description so a re-spawn (after a
|
|
44
|
+
// crashed prior run) can find and REUSE the focus this request already
|
|
45
|
+
// authored instead of creating a duplicate.
|
|
46
|
+
const marker = `Nexus request: ${req.id}`;
|
|
47
|
+
return [
|
|
48
|
+
`You are the nexus-intake SCOPING agent for an accepted cross-product (Nexus) request.`,
|
|
49
|
+
`Your SOLE job is to author a per-request focus for this product's team to execute, then exit.`,
|
|
50
|
+
`You author intent + structure via the telora_* MCP tools only -- you write NO application code here.`,
|
|
51
|
+
``,
|
|
52
|
+
`## The accepted request`,
|
|
53
|
+
`- requestId: ${req.id}`,
|
|
54
|
+
`- targetProductId (THIS product -- author the focus here): ${req.targetProductId ?? '(unknown)'}`,
|
|
55
|
+
`- title: ${title}`,
|
|
56
|
+
`- description: ${description}`,
|
|
57
|
+
``,
|
|
58
|
+
`## Acceptance contract (the goal / definition of done -- this seeds the focus reality tree)`,
|
|
59
|
+
acceptanceContract,
|
|
60
|
+
``,
|
|
61
|
+
`## IDEMPOTENCY (read first -- a previous scoping run for this request may have crashed)`,
|
|
62
|
+
`Before creating anything, telora_product_focus list (productId = ${req.targetProductId ?? '<targetProductId>'}) and look for a focus whose description carries the marker "${marker}".`,
|
|
63
|
+
`- If one EXISTS, a prior run already created it. REUSE it: skip step 1 (create), and resume from whichever later step is unfinished (role assigned? materialized? tree built? deliveries scoped?). Do NOT create a second focus.`,
|
|
64
|
+
`- If none exists, start at step 1.`,
|
|
65
|
+
``,
|
|
66
|
+
`## Steps (do these in order, verifying each with a follow-up read)`,
|
|
67
|
+
`1. telora_product_focus create -- name the focus from the request title ("${title}"), productId = ${req.targetProductId ?? '<targetProductId>'}. The description MUST include, verbatim, the marker line "${marker}" AND the full acceptance contract above (so any follow-up team has the goal even if the tree is not yet built).`,
|
|
68
|
+
` Then telora_product_focus update to set assignedAgentRoleId = ${roleId} so the spawn loop will pick the focus up (no dead-letter).`,
|
|
69
|
+
`2. telora_product_request materialize -- requestId = ${req.id}, materializedFocusId = <the focus id you created>. Do this NOW, immediately after the focus exists and is role-assigned -- BEFORE building the tree or deliveries. This stamps the focus back on the request (accepted -> in_progress) so it leaves the intake-pending set and a second scoping agent can never be spawned for it. If your run crashes after this point, the per-request focus already exists and the normal loop finishes scoping it; if it crashed before this point, the idempotency check above reuses the focus.`,
|
|
70
|
+
`3. telora_reality_tree create on the focus, then author the CRT: capture the current undesired effects, and set the FRT goal / desired-effect FROM the acceptance contract above. Build at least one injection that drives the tree toward that goal.`,
|
|
71
|
+
`4. telora_product_delivery create -- decompose the work into one or more deliveries, EACH anchored to an injection (injectionNodeId) and carrying a workFacing label ("outward" for new ground / a capability not had before, "inward" for improving existing ground). Scope deliveries by the phases the work naturally has. Create deliveries LAST: a queued delivery is the signal that arms the normal spawn loop, so leaving it until the tree is built avoids the loop picking up a half-scoped focus.`,
|
|
72
|
+
` Then call telora_product_request materialize ONCE MORE with the SAME materializedFocusId plus materializedDeliveryId = <the representative delivery id>. The request is already in_progress at this point, which is fine -- materialize is idempotent for the same focus and just records the delivery the return-path loop watches to resolve this request when it reaches done.`,
|
|
73
|
+
`5. Stop. Do NOT begin implementing the deliveries -- the role-assigned focus runs the normal differential loop after you exit.`,
|
|
74
|
+
``,
|
|
75
|
+
`Refer to focuses/deliveries/issues by title in any prose, never by UUID. Follow CLAUDE.md.`,
|
|
76
|
+
].join('\n');
|
|
77
|
+
}
|
|
78
|
+
const defaultSeam = {
|
|
79
|
+
spawnProcess: (command, args, cwd, env) => spawn(command, args, { cwd, env, stdio: ['pipe', 'pipe', 'pipe'] }),
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Spawn the intake scoping agent for one accepted request. Resolves once the
|
|
83
|
+
* process has SPAWNED (fire-and-forget -- the agent runs for minutes); rejects
|
|
84
|
+
* only if the process fails to spawn. The close/error handlers log the outcome
|
|
85
|
+
* and the kill timeout bounds a hung agent.
|
|
86
|
+
*/
|
|
87
|
+
export function spawnScopingAgent(config, req, roleId, seam = defaultSeam) {
|
|
88
|
+
const prompt = buildIntakeScopingPrompt(req, roleId);
|
|
89
|
+
const args = [
|
|
90
|
+
'--print',
|
|
91
|
+
'--dangerously-skip-permissions',
|
|
92
|
+
'--setting-sources', 'project,local',
|
|
93
|
+
prompt,
|
|
94
|
+
];
|
|
95
|
+
const env = stripClaudeCodeEnvVars(process.env);
|
|
96
|
+
const cwd = config.repoPath ?? process.cwd();
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
let settled = false;
|
|
99
|
+
let proc;
|
|
100
|
+
try {
|
|
101
|
+
proc = seam.spawnProcess(config.claudeCodePath, args, cwd, env);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
reject(err instanceof Error ? err : new Error(String(err)));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// Prompt is a CLI arg; close stdin immediately.
|
|
108
|
+
proc.stdin?.end?.();
|
|
109
|
+
const timeout = setTimeout(() => {
|
|
110
|
+
console.warn(`[nexus-intake] scoping agent for request ${req.id} timed out after ${INTAKE_SCOPING_TIMEOUT_MS / 1000}s, killing`);
|
|
111
|
+
if (proc.pid) {
|
|
112
|
+
try {
|
|
113
|
+
process.kill(proc.pid, 'SIGTERM');
|
|
114
|
+
}
|
|
115
|
+
catch { /* ignore */ }
|
|
116
|
+
setTimeout(() => {
|
|
117
|
+
if (proc.pid) {
|
|
118
|
+
try {
|
|
119
|
+
process.kill(proc.pid, 'SIGKILL');
|
|
120
|
+
}
|
|
121
|
+
catch { /* ignore */ }
|
|
122
|
+
}
|
|
123
|
+
}, 10_000);
|
|
124
|
+
}
|
|
125
|
+
}, INTAKE_SCOPING_TIMEOUT_MS);
|
|
126
|
+
// Do not let the kill timer keep the daemon event loop alive.
|
|
127
|
+
timeout.unref?.();
|
|
128
|
+
proc.on('spawn', () => {
|
|
129
|
+
// Process is up -- the daemon poll continues; the agent runs to completion
|
|
130
|
+
// in the background.
|
|
131
|
+
console.log(`[nexus-intake] scoping agent spawned for request ${req.id} (PID: ${proc.pid ?? '?'})`);
|
|
132
|
+
if (!settled) {
|
|
133
|
+
settled = true;
|
|
134
|
+
resolve();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
proc.on('close', (code) => {
|
|
138
|
+
clearTimeout(timeout);
|
|
139
|
+
console.log(`[nexus-intake] scoping agent for request ${req.id} exited (code: ${code ?? '?'})`);
|
|
140
|
+
// If 'spawn' never fired (very early exit), still resolve -- the stamp guard
|
|
141
|
+
// already prevents an immediate re-spawn.
|
|
142
|
+
if (!settled) {
|
|
143
|
+
settled = true;
|
|
144
|
+
resolve();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
proc.on('error', (err) => {
|
|
148
|
+
clearTimeout(timeout);
|
|
149
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
150
|
+
console.error(`[nexus-intake] scoping agent spawn error for request ${req.id}: ${message}`);
|
|
151
|
+
if (!settled) {
|
|
152
|
+
settled = true;
|
|
153
|
+
reject(new Error(message));
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=nexus-intake-spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-intake-spawn.js","sourceRoot":"","sources":["../src/nexus-intake-spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus intake poll: the target-product side of authoring work from an accepted
|
|
3
|
+
* cross-product request.
|
|
4
|
+
*
|
|
5
|
+
* An accepted Nexus request (status 'accepted', materialized_focus_id NULL) is
|
|
6
|
+
* "intake-pending": accepted, but not yet scoped into work. Authoring a focus
|
|
7
|
+
* from that request IS scoping work -- read the acceptanceContract, build a
|
|
8
|
+
* reality tree, decompose into injection-anchored deliveries -- which the
|
|
9
|
+
* row-stamping materialize edge handler structurally cannot do. So the TARGET
|
|
10
|
+
* product's agent team owns it: each poll cycle the daemon finds intake-pending
|
|
11
|
+
* requests and spawns a dedicated, short-lived nexus-intake SCOPING agent whose
|
|
12
|
+
* sole job is to create the per-request focus + reality tree + deliveries and
|
|
13
|
+
* stamp materialized_focus_id back.
|
|
14
|
+
*
|
|
15
|
+
* The in-flight guard is intake_scoping_started_at: stamped when a scoping agent
|
|
16
|
+
* is spawned so the same request is not re-spawned every poll while the run is in
|
|
17
|
+
* flight; the scoping agent stamping materialized_focus_id removes the request
|
|
18
|
+
* from the intake-pending set permanently; a STALE stamp (older than staleMs)
|
|
19
|
+
* lets the daemon re-spawn after a crashed scoping run.
|
|
20
|
+
*
|
|
21
|
+
* decideIntakeSpawn is a pure gate so it is unit-tested without any I/O; the side
|
|
22
|
+
* effects (list / role-resolve / mark / spawn) are injected as deps so the poll
|
|
23
|
+
* wiring is testable with mocks. Mirrors nexus-incoming.ts.
|
|
24
|
+
*/
|
|
25
|
+
import type { DaemonConfig } from './types.js';
|
|
26
|
+
/**
|
|
27
|
+
* Default staleness window for an in-flight scoping spawn (20 minutes).
|
|
28
|
+
*
|
|
29
|
+
* MUST be strictly greater than the scoping spawn's kill timeout
|
|
30
|
+
* (INTAKE_SCOPING_TIMEOUT_MS, 15m) plus its SIGKILL grace (10s) so a healthy
|
|
31
|
+
* long-running scoping agent is never treated as stale and re-spawned while it
|
|
32
|
+
* is still finishing (or being torn down). If this equalled the kill timeout a
|
|
33
|
+
* run that legitimately took ~15m could cross the staleness threshold right as
|
|
34
|
+
* it materialized, double-spawning a second scoping agent.
|
|
35
|
+
*/
|
|
36
|
+
export declare const DEFAULT_INTAKE_STALE_MS: number;
|
|
37
|
+
/**
|
|
38
|
+
* Max scoping agents spawned per poll cycle, per product. Each spawn is a full
|
|
39
|
+
* Claude Code process; an unbounded accepted backlog would otherwise fork a
|
|
40
|
+
* process per request in a single tick. The remainder stays intake-pending
|
|
41
|
+
* (unstamped) and drains on subsequent cycles -- nothing is dropped, only
|
|
42
|
+
* rate-limited. Surfaced via a log line so the cap is never silent.
|
|
43
|
+
*/
|
|
44
|
+
export declare const MAX_INTAKE_SPAWNS_PER_CYCLE = 5;
|
|
45
|
+
/**
|
|
46
|
+
* Minimal shape of an intake-pending product_request (camelCase from the edge
|
|
47
|
+
* fn). Defensive: the daemon must not assume any optional field is present.
|
|
48
|
+
*/
|
|
49
|
+
export interface IntakePendingRequest {
|
|
50
|
+
id: string;
|
|
51
|
+
targetProductId?: string | null;
|
|
52
|
+
status?: string;
|
|
53
|
+
materializedFocusId?: string | null;
|
|
54
|
+
intakeScopingStartedAt?: string | null;
|
|
55
|
+
title?: string | null;
|
|
56
|
+
description?: string | null;
|
|
57
|
+
acceptanceContract?: string | null;
|
|
58
|
+
}
|
|
59
|
+
/** What the gate decides for one request. */
|
|
60
|
+
export type IntakeDecision = 'spawn' | 'in_flight' | 'skip';
|
|
61
|
+
/**
|
|
62
|
+
* Pure intake gate. A request needs a scoping spawn when it is accepted, not yet
|
|
63
|
+
* materialized, and either has never been spawned or its last spawn is stale.
|
|
64
|
+
* A recent in-flight stamp holds (no re-spawn). Anything else is skipped.
|
|
65
|
+
*/
|
|
66
|
+
export declare function decideIntakeSpawn(req: IntakePendingRequest, nowMs: number, staleMs?: number): IntakeDecision;
|
|
67
|
+
export interface NexusIntakeDeps {
|
|
68
|
+
/** Incoming accepted requests for the product, filtered to the not-yet-materialized set. */
|
|
69
|
+
listIntakePending: (productId: string) => Promise<IntakePendingRequest[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve the agent role UUID assigned to the scoping spawn AND to the
|
|
72
|
+
* per-request focus it creates. null when no intake role is configured -- the
|
|
73
|
+
* poll then skips spawning (a role-less focus would be a dead-letter, the very
|
|
74
|
+
* thing this change removes).
|
|
75
|
+
*/
|
|
76
|
+
resolveIntakeRoleId: () => Promise<string | null>;
|
|
77
|
+
/** Stamp intake_scoping_started_at so the request is not re-spawned while in flight. */
|
|
78
|
+
markIntakeScoping: (requestId: string) => Promise<void>;
|
|
79
|
+
/** Spawn the short-lived scoping agent for the request under the given role. */
|
|
80
|
+
spawnScopingAgent: (req: IntakePendingRequest, roleId: string) => Promise<void>;
|
|
81
|
+
log?: (msg: string) => void;
|
|
82
|
+
}
|
|
83
|
+
/** Production deps backed by the product-api over callApi + the real spawn. */
|
|
84
|
+
export declare function defaultNexusIntakeDeps(config: DaemonConfig): NexusIntakeDeps;
|
|
85
|
+
/**
|
|
86
|
+
* Poll one product for intake-pending requests and spawn a scoping agent for
|
|
87
|
+
* each. Safe to call every poll cycle: it is a no-op when there is no
|
|
88
|
+
* intake-pending work, the intake role is resolved once per cycle (and skips the
|
|
89
|
+
* whole batch when unset), and individual request failures are logged without
|
|
90
|
+
* aborting the batch. The intake_scoping_started_at stamp is written BEFORE the
|
|
91
|
+
* spawn so a slow/failed spawn does not re-fire on the next tick.
|
|
92
|
+
*/
|
|
93
|
+
export declare function checkIntakePendingRequests(config: DaemonConfig, deps?: NexusIntakeDeps, staleMs?: number): Promise<void>;
|
|
94
|
+
//# sourceMappingURL=nexus-intake.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-intake.d.ts","sourceRoot":"","sources":["../src/nexus-intake.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,MAAgC,GACxC,cAAc,CAShB;AAED,MAAM,WAAW,eAAe;IAC9B,4FAA4F;IAC5F,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC1E;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,wFAAwF;IACxF,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CA6B5E;AAED;;;;;;;GAOG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,eAAgD,EACtD,OAAO,GAAE,MAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus intake poll: the target-product side of authoring work from an accepted
|
|
3
|
+
* cross-product request.
|
|
4
|
+
*
|
|
5
|
+
* An accepted Nexus request (status 'accepted', materialized_focus_id NULL) is
|
|
6
|
+
* "intake-pending": accepted, but not yet scoped into work. Authoring a focus
|
|
7
|
+
* from that request IS scoping work -- read the acceptanceContract, build a
|
|
8
|
+
* reality tree, decompose into injection-anchored deliveries -- which the
|
|
9
|
+
* row-stamping materialize edge handler structurally cannot do. So the TARGET
|
|
10
|
+
* product's agent team owns it: each poll cycle the daemon finds intake-pending
|
|
11
|
+
* requests and spawns a dedicated, short-lived nexus-intake SCOPING agent whose
|
|
12
|
+
* sole job is to create the per-request focus + reality tree + deliveries and
|
|
13
|
+
* stamp materialized_focus_id back.
|
|
14
|
+
*
|
|
15
|
+
* The in-flight guard is intake_scoping_started_at: stamped when a scoping agent
|
|
16
|
+
* is spawned so the same request is not re-spawned every poll while the run is in
|
|
17
|
+
* flight; the scoping agent stamping materialized_focus_id removes the request
|
|
18
|
+
* from the intake-pending set permanently; a STALE stamp (older than staleMs)
|
|
19
|
+
* lets the daemon re-spawn after a crashed scoping run.
|
|
20
|
+
*
|
|
21
|
+
* decideIntakeSpawn is a pure gate so it is unit-tested without any I/O; the side
|
|
22
|
+
* effects (list / role-resolve / mark / spawn) are injected as deps so the poll
|
|
23
|
+
* wiring is testable with mocks. Mirrors nexus-incoming.ts.
|
|
24
|
+
*/
|
|
25
|
+
import { callApi } from './queries/shared.js';
|
|
26
|
+
import { spawnScopingAgent as defaultSpawnScopingAgent } from './nexus-intake-spawn.js';
|
|
27
|
+
/**
|
|
28
|
+
* Default staleness window for an in-flight scoping spawn (20 minutes).
|
|
29
|
+
*
|
|
30
|
+
* MUST be strictly greater than the scoping spawn's kill timeout
|
|
31
|
+
* (INTAKE_SCOPING_TIMEOUT_MS, 15m) plus its SIGKILL grace (10s) so a healthy
|
|
32
|
+
* long-running scoping agent is never treated as stale and re-spawned while it
|
|
33
|
+
* is still finishing (or being torn down). If this equalled the kill timeout a
|
|
34
|
+
* run that legitimately took ~15m could cross the staleness threshold right as
|
|
35
|
+
* it materialized, double-spawning a second scoping agent.
|
|
36
|
+
*/
|
|
37
|
+
export const DEFAULT_INTAKE_STALE_MS = 20 * 60 * 1000;
|
|
38
|
+
/**
|
|
39
|
+
* Max scoping agents spawned per poll cycle, per product. Each spawn is a full
|
|
40
|
+
* Claude Code process; an unbounded accepted backlog would otherwise fork a
|
|
41
|
+
* process per request in a single tick. The remainder stays intake-pending
|
|
42
|
+
* (unstamped) and drains on subsequent cycles -- nothing is dropped, only
|
|
43
|
+
* rate-limited. Surfaced via a log line so the cap is never silent.
|
|
44
|
+
*/
|
|
45
|
+
export const MAX_INTAKE_SPAWNS_PER_CYCLE = 5;
|
|
46
|
+
/**
|
|
47
|
+
* Pure intake gate. A request needs a scoping spawn when it is accepted, not yet
|
|
48
|
+
* materialized, and either has never been spawned or its last spawn is stale.
|
|
49
|
+
* A recent in-flight stamp holds (no re-spawn). Anything else is skipped.
|
|
50
|
+
*/
|
|
51
|
+
export function decideIntakeSpawn(req, nowMs, staleMs = DEFAULT_INTAKE_STALE_MS) {
|
|
52
|
+
if (req.status !== 'accepted')
|
|
53
|
+
return 'skip';
|
|
54
|
+
if (req.materializedFocusId)
|
|
55
|
+
return 'skip';
|
|
56
|
+
const startedAt = req.intakeScopingStartedAt;
|
|
57
|
+
if (!startedAt)
|
|
58
|
+
return 'spawn';
|
|
59
|
+
const startedMs = Date.parse(startedAt);
|
|
60
|
+
// Unparseable timestamp -> treat as no stamp (spawn) rather than wedge forever.
|
|
61
|
+
if (Number.isNaN(startedMs))
|
|
62
|
+
return 'spawn';
|
|
63
|
+
return nowMs - startedMs >= staleMs ? 'spawn' : 'in_flight';
|
|
64
|
+
}
|
|
65
|
+
/** Production deps backed by the product-api over callApi + the real spawn. */
|
|
66
|
+
export function defaultNexusIntakeDeps(config) {
|
|
67
|
+
return {
|
|
68
|
+
listIntakePending: async (productId) => {
|
|
69
|
+
// Pull the full accepted page (max limit), not the default 50, so a larger
|
|
70
|
+
// backlog is visible to the gate; per-cycle spawning is rate-limited by
|
|
71
|
+
// MAX_INTAKE_SPAWNS_PER_CYCLE rather than by an accidental page boundary.
|
|
72
|
+
const res = await callApi('product_request_list', {
|
|
73
|
+
productId,
|
|
74
|
+
direction: 'incoming',
|
|
75
|
+
status: 'accepted',
|
|
76
|
+
limit: 500,
|
|
77
|
+
});
|
|
78
|
+
// accepted + no materialized focus = intake-pending (not yet scoped).
|
|
79
|
+
return (res.requests ?? []).filter((r) => !r.materializedFocusId);
|
|
80
|
+
},
|
|
81
|
+
resolveIntakeRoleId: async () => {
|
|
82
|
+
// Read directly from process.env: the installed daemon-core can be
|
|
83
|
+
// registry-stale, so the env knob is resolved here rather than through
|
|
84
|
+
// loadEnvConfig() (same seam the no-progress-watchdog thresholds use).
|
|
85
|
+
const roleId = process.env.TELORA_NEXUS_INTAKE_ROLE_ID?.trim();
|
|
86
|
+
return roleId ? roleId : null;
|
|
87
|
+
},
|
|
88
|
+
markIntakeScoping: async (requestId) => {
|
|
89
|
+
await callApi('product_request_mark_intake_scoping', { requestId });
|
|
90
|
+
},
|
|
91
|
+
spawnScopingAgent: async (req, roleId) => {
|
|
92
|
+
await defaultSpawnScopingAgent(config, req, roleId);
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Poll one product for intake-pending requests and spawn a scoping agent for
|
|
98
|
+
* each. Safe to call every poll cycle: it is a no-op when there is no
|
|
99
|
+
* intake-pending work, the intake role is resolved once per cycle (and skips the
|
|
100
|
+
* whole batch when unset), and individual request failures are logged without
|
|
101
|
+
* aborting the batch. The intake_scoping_started_at stamp is written BEFORE the
|
|
102
|
+
* spawn so a slow/failed spawn does not re-fire on the next tick.
|
|
103
|
+
*/
|
|
104
|
+
export async function checkIntakePendingRequests(config, deps = defaultNexusIntakeDeps(config), staleMs = DEFAULT_INTAKE_STALE_MS) {
|
|
105
|
+
const productId = config.productId;
|
|
106
|
+
if (!productId)
|
|
107
|
+
return;
|
|
108
|
+
const log = deps.log ?? ((msg) => console.log(msg));
|
|
109
|
+
let requests;
|
|
110
|
+
try {
|
|
111
|
+
requests = await deps.listIntakePending(productId);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
log(`[nexus-intake] failed to list intake-pending requests for ${productId}: ${err.message}`);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (requests.length === 0)
|
|
118
|
+
return;
|
|
119
|
+
const nowMs = Date.now();
|
|
120
|
+
const spawnable = requests.filter((r) => decideIntakeSpawn(r, nowMs, staleMs) === 'spawn');
|
|
121
|
+
if (spawnable.length === 0)
|
|
122
|
+
return;
|
|
123
|
+
// Rate-limit spawns per cycle: each is a full process. The remainder stays
|
|
124
|
+
// unstamped (intake-pending) and is picked up next cycle. Never silent.
|
|
125
|
+
const batch = spawnable.slice(0, MAX_INTAKE_SPAWNS_PER_CYCLE);
|
|
126
|
+
if (spawnable.length > batch.length) {
|
|
127
|
+
log(`[nexus-intake] ${spawnable.length} spawnable request(s) for ${productId}; ` +
|
|
128
|
+
`capping to ${batch.length} this cycle (${spawnable.length - batch.length} deferred to next tick)`);
|
|
129
|
+
}
|
|
130
|
+
let roleId;
|
|
131
|
+
try {
|
|
132
|
+
roleId = await deps.resolveIntakeRoleId();
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
log(`[nexus-intake] failed to resolve intake role for ${productId}: ${err.message}`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (!roleId) {
|
|
139
|
+
// No role -> no spawn. Surfacing this is important: without it the accepted
|
|
140
|
+
// requests would sit intake-pending forever (mirrors the PRD loop's
|
|
141
|
+
// skippedNoRole). Set TELORA_NEXUS_INTAKE_ROLE_ID to the target product's
|
|
142
|
+
// execution role to arm intake scoping.
|
|
143
|
+
log(`[nexus-intake] ${spawnable.length} intake-pending request(s) for ${productId} but ` +
|
|
144
|
+
`TELORA_NEXUS_INTAKE_ROLE_ID is unset -- skipping (set it to arm intake scoping)`);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
for (const req of batch) {
|
|
148
|
+
try {
|
|
149
|
+
// Stamp BEFORE the spawn so a slow/failed spawn does not re-fire next tick;
|
|
150
|
+
// a stale stamp re-arms it after staleMs.
|
|
151
|
+
await deps.markIntakeScoping(req.id);
|
|
152
|
+
await deps.spawnScopingAgent(req, roleId);
|
|
153
|
+
log(`[nexus-intake] spawned scoping agent for accepted request ${req.id} (product ${productId})`);
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
log(`[nexus-intake] failed to spawn scoping agent for request ${req.id}: ${err.message}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=nexus-intake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-intake.js","sourceRoot":"","sources":["../src/nexus-intake.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telora/daemon",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.40",
|
|
4
4
|
"description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"//testRunner": "Uses Node.js built-in test runner (node:test) via tsx for TypeScript support. The root package uses Vitest; this is a deliberate choice for the daemon package to avoid framework dependencies. See src/__tests__/ for test files.",
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@telora/daemon-core": "^0.2.49",
|
|
40
|
-
"@telora/mcp-products": "^0.22.
|
|
40
|
+
"@telora/mcp-products": "^0.22.81",
|
|
41
41
|
"commander": "^14.0.3",
|
|
42
42
|
"yaml": "^2.4.0",
|
|
43
43
|
"zod": "^4.3.6"
|