@telora/daemon 0.17.59 → 0.17.64
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 +15 -3
- package/dist/cascade-restatement.d.ts +10 -0
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +107 -37
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/ci-escalation.d.ts.map +1 -1
- package/dist/ci-escalation.js +5 -3
- package/dist/ci-escalation.js.map +1 -1
- package/dist/cli/backfill-frt-prose.d.ts +101 -0
- package/dist/cli/backfill-frt-prose.d.ts.map +1 -0
- package/dist/cli/backfill-frt-prose.js +195 -0
- package/dist/cli/backfill-frt-prose.js.map +1 -0
- package/dist/completion/event-escalations.d.ts +4 -11
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +21 -5
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event.d.ts +4 -11
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +6 -2
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/crash-recovery-cleanup.d.ts.map +1 -1
- package/dist/crash-recovery-cleanup.js +7 -1
- package/dist/crash-recovery-cleanup.js.map +1 -1
- package/dist/crash-recovery-types.d.ts +4 -9
- package/dist/crash-recovery-types.d.ts.map +1 -1
- package/dist/crash-recovery-types.js.map +1 -1
- package/dist/crash-recovery.d.ts +4 -9
- package/dist/crash-recovery.d.ts.map +1 -1
- package/dist/crash-recovery.js +5 -1
- package/dist/crash-recovery.js.map +1 -1
- package/dist/delivery-advance-block.d.ts +8 -6
- package/dist/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery-advance-block.js +14 -12
- package/dist/delivery-advance-block.js.map +1 -1
- package/dist/delivery-guards.d.ts.map +1 -1
- package/dist/delivery-guards.js +4 -1
- package/dist/delivery-guards.js.map +1 -1
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +7 -1
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-merge.d.ts.map +1 -1
- package/dist/delivery-merge.js +5 -1
- package/dist/delivery-merge.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +4 -1
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/escalation-provenance.d.ts +60 -0
- package/dist/escalation-provenance.d.ts.map +1 -0
- package/dist/escalation-provenance.js +153 -0
- package/dist/escalation-provenance.js.map +1 -0
- package/dist/escalations.d.ts +33 -3
- package/dist/escalations.d.ts.map +1 -1
- package/dist/escalations.js +58 -12
- package/dist/escalations.js.map +1 -1
- package/dist/focus-executor.js +1 -1
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +3 -1
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +5 -2
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +8 -3
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +6 -0
- package/dist/listener.js.map +1 -1
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +7 -2
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/nexus-escalation-bridge.d.ts +92 -0
- package/dist/nexus-escalation-bridge.d.ts.map +1 -0
- package/dist/nexus-escalation-bridge.js +109 -0
- package/dist/nexus-escalation-bridge.js.map +1 -0
- package/dist/nexus-incoming.d.ts +47 -0
- package/dist/nexus-incoming.d.ts.map +1 -0
- package/dist/nexus-incoming.js +93 -0
- package/dist/nexus-incoming.js.map +1 -0
- package/dist/nexus-return.d.ts +79 -0
- package/dist/nexus-return.d.ts.map +1 -0
- package/dist/nexus-return.js +193 -0
- package/dist/nexus-return.js.map +1 -0
- package/dist/queries/deliveries.d.ts +12 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +17 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/issues.d.ts +62 -12
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +46 -13
- package/dist/queries/issues.js.map +1 -1
- package/dist/resolvers/escalation-answers.d.ts +22 -0
- package/dist/resolvers/escalation-answers.d.ts.map +1 -0
- package/dist/resolvers/escalation-answers.js +98 -0
- package/dist/resolvers/escalation-answers.js.map +1 -0
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +2 -0
- package/dist/resolvers/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus incoming-request poll: the receiving side of the cross-product request
|
|
3
|
+
* channel.
|
|
4
|
+
*
|
|
5
|
+
* Each poll cycle, for every configured product, the daemon looks for OPEN
|
|
6
|
+
* incoming requests (product_requests where target_product_id = this product)
|
|
7
|
+
* and applies the product's accept gate:
|
|
8
|
+
*
|
|
9
|
+
* - auto_with_decline (default): auto-accept + materialize the request as a
|
|
10
|
+
* scoped delivery in a per-product "Nexus Inbox" focus, where the target's
|
|
11
|
+
* AI team picks it up via the normal focus spawn path. (The target can still
|
|
12
|
+
* decline/clarify after the fact via MCP -- "accept with decline".)
|
|
13
|
+
* - human_required: leave the request OPEN; a human accepts it via MCP.
|
|
14
|
+
*
|
|
15
|
+
* The decision is a pure function (decideIncoming) so the gate is unit-tested
|
|
16
|
+
* without any I/O; the side effects (list/accept/materialize/policy read) are
|
|
17
|
+
* injected as deps so the poll wiring is testable with mocks.
|
|
18
|
+
*/
|
|
19
|
+
import { callApi } from './queries/shared.js';
|
|
20
|
+
/**
|
|
21
|
+
* Pure accept gate. human_required holds the request for a human; everything
|
|
22
|
+
* else (the default auto_with_decline) auto-accepts.
|
|
23
|
+
*/
|
|
24
|
+
export function decideIncoming(policy) {
|
|
25
|
+
return policy === 'human_required' ? 'await_human' : 'auto_accept';
|
|
26
|
+
}
|
|
27
|
+
/** Production deps backed by the product-api over callApi. */
|
|
28
|
+
export function defaultNexusIncomingDeps() {
|
|
29
|
+
return {
|
|
30
|
+
listIncomingOpen: async (productId) => {
|
|
31
|
+
const res = await callApi('product_request_list', {
|
|
32
|
+
productId,
|
|
33
|
+
direction: 'incoming',
|
|
34
|
+
status: 'open',
|
|
35
|
+
});
|
|
36
|
+
return res.requests ?? [];
|
|
37
|
+
},
|
|
38
|
+
getAcceptPolicy: async (productId) => {
|
|
39
|
+
const res = await callApi('get', { productId });
|
|
40
|
+
return res.product?.nexusAcceptPolicy === 'human_required' ? 'human_required' : 'auto_with_decline';
|
|
41
|
+
},
|
|
42
|
+
acceptRequest: async (requestId) => {
|
|
43
|
+
await callApi('product_request_accept', { requestId });
|
|
44
|
+
},
|
|
45
|
+
materializeRequest: async (requestId) => {
|
|
46
|
+
await callApi('product_request_materialize', { requestId });
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Poll one product for incoming open requests and apply its accept gate.
|
|
52
|
+
* Safe to call every poll cycle: it is a no-op when there is no incoming work,
|
|
53
|
+
* and individual request failures are logged without aborting the batch.
|
|
54
|
+
*/
|
|
55
|
+
export async function checkIncomingRequests(config, deps = defaultNexusIncomingDeps()) {
|
|
56
|
+
const productId = config.productId;
|
|
57
|
+
if (!productId)
|
|
58
|
+
return;
|
|
59
|
+
const log = deps.log ?? ((msg) => console.log(msg));
|
|
60
|
+
let requests;
|
|
61
|
+
try {
|
|
62
|
+
requests = await deps.listIncomingOpen(productId);
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
log(`[nexus] failed to list incoming requests for ${productId}: ${err.message}`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (requests.length === 0)
|
|
69
|
+
return;
|
|
70
|
+
let policy;
|
|
71
|
+
try {
|
|
72
|
+
policy = await deps.getAcceptPolicy(productId);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
log(`[nexus] failed to read accept policy for ${productId}: ${err.message}`);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (decideIncoming(policy) === 'await_human') {
|
|
79
|
+
log(`[nexus] ${requests.length} incoming request(s) for ${productId} await human approval (policy=human_required)`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
for (const req of requests) {
|
|
83
|
+
try {
|
|
84
|
+
await deps.acceptRequest(req.id);
|
|
85
|
+
await deps.materializeRequest(req.id);
|
|
86
|
+
log(`[nexus] auto-accepted + materialized request ${req.id} for product ${productId}`);
|
|
87
|
+
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
log(`[nexus] failed to accept/materialize request ${req.id}: ${err.message}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=nexus-incoming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-incoming.js","sourceRoot":"","sources":["../src/nexus-incoming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus return-path poll: loop closure to the source.
|
|
3
|
+
*
|
|
4
|
+
* This closes the cross-product request differential. Two sides run each poll
|
|
5
|
+
* cycle, both safe to call every tick (no-op when there is no work):
|
|
6
|
+
*
|
|
7
|
+
* TARGET side -- for every incoming request still in_progress with a
|
|
8
|
+
* materialized delivery, ask the server to resolve it. The server gate
|
|
9
|
+
* (product_request_resolve) advances the request to 'closed' ONLY when the
|
|
10
|
+
* materialized delivery's execution_status is 'done' (it passed the verify
|
|
11
|
+
* gate); any other delivery state is a no-op. So merely calling resolve
|
|
12
|
+
* every tick converges the request the moment B's work lands.
|
|
13
|
+
*
|
|
14
|
+
* SOURCE side -- for every outgoing request in a terminal state
|
|
15
|
+
* ('closed' = completed, 'declined' = rejected) that has not yet notified
|
|
16
|
+
* its source (source_notified_at is null), file an escalation on the
|
|
17
|
+
* source's blocked focus so the human/agent there learns the cross-product
|
|
18
|
+
* dependency resolved, then stamp source_notified_at so it is not
|
|
19
|
+
* re-notified. This is the half that unblocks A without a human chasing it.
|
|
20
|
+
*
|
|
21
|
+
* shouldResolve is a pure predicate so the gate is unit-testable with no I/O;
|
|
22
|
+
* the side effects (list/resolve/notify/stamp) 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
|
+
* Minimal shape of a product_request list row (camelCase from the edge fn).
|
|
28
|
+
* All fields optional + defensive: the daemon must not assume any are present.
|
|
29
|
+
*/
|
|
30
|
+
export interface Req {
|
|
31
|
+
id: string;
|
|
32
|
+
status?: string;
|
|
33
|
+
materializedDeliveryId?: string | null;
|
|
34
|
+
sourceFocusId?: string | null;
|
|
35
|
+
sourceProductId?: string | null;
|
|
36
|
+
targetProductId?: string | null;
|
|
37
|
+
title?: string | null;
|
|
38
|
+
declineReason?: string | null;
|
|
39
|
+
clarificationMessage?: string | null;
|
|
40
|
+
clarificationNotifiedAt?: string | null;
|
|
41
|
+
sourceNotifiedAt?: string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Pure resolution gate. The loop closes only once the materialized delivery has
|
|
45
|
+
* passed the verify gate to 'done'. (The authoritative check is server-side in
|
|
46
|
+
* product_request_resolve; this mirror keeps the gate explicit + unit-tested.)
|
|
47
|
+
*/
|
|
48
|
+
export declare function shouldResolve(deliveryStatus: string | undefined): boolean;
|
|
49
|
+
export interface NexusReturnDeps {
|
|
50
|
+
/** Incoming requests still in_progress, filtered to those with a materialized delivery. */
|
|
51
|
+
listIncomingInProgress: (productId: string) => Promise<Req[]>;
|
|
52
|
+
/** Read a delivery's execution_status (org_nodes). Kept for completeness/testing. */
|
|
53
|
+
getDeliveryStatus: (deliveryId: string) => Promise<string | undefined>;
|
|
54
|
+
/** Ask the server to resolve a request; returns true when it closed the loop. */
|
|
55
|
+
resolveRequest: (requestId: string) => Promise<boolean>;
|
|
56
|
+
/** Outgoing requests for the source product (any status). */
|
|
57
|
+
listOutgoing: (productId: string) => Promise<Req[]>;
|
|
58
|
+
/** Notify the source side (escalation on the blocked focus) about a terminal state. */
|
|
59
|
+
notifySource: (req: Req) => Promise<void>;
|
|
60
|
+
/** Stamp source_notified_at so the request is not re-notified. */
|
|
61
|
+
markSourceNotified: (requestId: string) => Promise<void>;
|
|
62
|
+
/** Notify the source side that the target requested clarification. */
|
|
63
|
+
notifyClarification: (req: Req) => Promise<void>;
|
|
64
|
+
/** Stamp clarification_notified_at so the same clarification is not re-notified. */
|
|
65
|
+
markClarificationNotified: (requestId: string) => Promise<void>;
|
|
66
|
+
log?: (msg: string) => void;
|
|
67
|
+
}
|
|
68
|
+
/** Production deps backed by the product-api over callApi + createEscalation. */
|
|
69
|
+
export declare function defaultNexusReturnDeps(config: DaemonConfig): NexusReturnDeps;
|
|
70
|
+
/**
|
|
71
|
+
* Poll one product for return-path loop closure. Runs both sides:
|
|
72
|
+
* TARGET -- resolve materialized in_progress incoming requests (server gates
|
|
73
|
+
* on delivery 'done').
|
|
74
|
+
* SOURCE -- notify + stamp terminal outgoing requests not yet notified.
|
|
75
|
+
* Each request's work is wrapped in try/catch so one failure does not abort the
|
|
76
|
+
* batch (mirrors nexus-incoming).
|
|
77
|
+
*/
|
|
78
|
+
export declare function checkResolvedRequests(config: DaemonConfig, deps?: NexusReturnDeps): Promise<void>;
|
|
79
|
+
//# sourceMappingURL=nexus-return.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-return.d.ts","sourceRoot":"","sources":["../src/nexus-return.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C;;;GAGG;AACH,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzE;AAED,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,qFAAqF;IACrF,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvE,iFAAiF;IACjF,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,6DAA6D;IAC7D,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,uFAAuF;IACvF,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kEAAkE;IAClE,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,sEAAsE;IACtE,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,oFAAoF;IACpF,yBAAyB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAKD,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAwF5E;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,eAAgD,GACrD,OAAO,CAAC,IAAI,CAAC,CA+Df"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nexus return-path poll: loop closure to the source.
|
|
3
|
+
*
|
|
4
|
+
* This closes the cross-product request differential. Two sides run each poll
|
|
5
|
+
* cycle, both safe to call every tick (no-op when there is no work):
|
|
6
|
+
*
|
|
7
|
+
* TARGET side -- for every incoming request still in_progress with a
|
|
8
|
+
* materialized delivery, ask the server to resolve it. The server gate
|
|
9
|
+
* (product_request_resolve) advances the request to 'closed' ONLY when the
|
|
10
|
+
* materialized delivery's execution_status is 'done' (it passed the verify
|
|
11
|
+
* gate); any other delivery state is a no-op. So merely calling resolve
|
|
12
|
+
* every tick converges the request the moment B's work lands.
|
|
13
|
+
*
|
|
14
|
+
* SOURCE side -- for every outgoing request in a terminal state
|
|
15
|
+
* ('closed' = completed, 'declined' = rejected) that has not yet notified
|
|
16
|
+
* its source (source_notified_at is null), file an escalation on the
|
|
17
|
+
* source's blocked focus so the human/agent there learns the cross-product
|
|
18
|
+
* dependency resolved, then stamp source_notified_at so it is not
|
|
19
|
+
* re-notified. This is the half that unblocks A without a human chasing it.
|
|
20
|
+
*
|
|
21
|
+
* shouldResolve is a pure predicate so the gate is unit-testable with no I/O;
|
|
22
|
+
* the side effects (list/resolve/notify/stamp) 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 { createEscalation } from './queries/issues.js';
|
|
27
|
+
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, ESCALATION_KINDS } from '@telora/daemon-core';
|
|
28
|
+
/**
|
|
29
|
+
* Pure resolution gate. The loop closes only once the materialized delivery has
|
|
30
|
+
* passed the verify gate to 'done'. (The authoritative check is server-side in
|
|
31
|
+
* product_request_resolve; this mirror keeps the gate explicit + unit-tested.)
|
|
32
|
+
*/
|
|
33
|
+
export function shouldResolve(deliveryStatus) {
|
|
34
|
+
return deliveryStatus === 'done';
|
|
35
|
+
}
|
|
36
|
+
/** Terminal statuses on the source side that warrant a notification. */
|
|
37
|
+
const TERMINAL_SOURCE_STATUSES = new Set(['closed', 'declined']);
|
|
38
|
+
/** Production deps backed by the product-api over callApi + createEscalation. */
|
|
39
|
+
export function defaultNexusReturnDeps(config) {
|
|
40
|
+
return {
|
|
41
|
+
listIncomingInProgress: async (productId) => {
|
|
42
|
+
const res = await callApi('product_request_list', {
|
|
43
|
+
productId,
|
|
44
|
+
direction: 'incoming',
|
|
45
|
+
status: 'in_progress',
|
|
46
|
+
});
|
|
47
|
+
return (res.requests ?? []).filter((r) => !!r.materializedDeliveryId);
|
|
48
|
+
},
|
|
49
|
+
getDeliveryStatus: async (deliveryId) => {
|
|
50
|
+
// The server-side gate already reads delivery status during resolve, so
|
|
51
|
+
// this default is a thin convenience: delivery_list returns org_nodes.
|
|
52
|
+
const res = await callApi('delivery_list', { deliveryId });
|
|
53
|
+
const match = (res.deliveries ?? []).find((d) => d.id === deliveryId);
|
|
54
|
+
return match?.executionStatus;
|
|
55
|
+
},
|
|
56
|
+
resolveRequest: async (requestId) => {
|
|
57
|
+
const res = await callApi('product_request_resolve', { requestId });
|
|
58
|
+
return res.resolved === true;
|
|
59
|
+
},
|
|
60
|
+
listOutgoing: async (productId) => {
|
|
61
|
+
const res = await callApi('product_request_list', {
|
|
62
|
+
productId,
|
|
63
|
+
direction: 'outgoing',
|
|
64
|
+
});
|
|
65
|
+
return res.requests ?? [];
|
|
66
|
+
},
|
|
67
|
+
notifySource: async (req) => {
|
|
68
|
+
const declined = req.status === 'declined';
|
|
69
|
+
const reasonPhrase = declined
|
|
70
|
+
? `declined by the target product${req.declineReason ? `: ${req.declineReason}` : ''}`
|
|
71
|
+
: 'completed by the target product';
|
|
72
|
+
// Use BLOCKED_BY_EXTERNAL for declines (the source is still blocked and needs
|
|
73
|
+
// to decide next steps). Use DECISION_NEEDED for resolved (closed) requests:
|
|
74
|
+
// the dependency cleared and the source team can now unblock their work.
|
|
75
|
+
const reasonType = declined
|
|
76
|
+
? ESCALATION_REASONS.BLOCKED_BY_EXTERNAL
|
|
77
|
+
: ESCALATION_REASONS.DECISION_NEEDED;
|
|
78
|
+
const descriptionPrefix = declined
|
|
79
|
+
? '[Nexus dependency declined]'
|
|
80
|
+
: '[Nexus dependency resolved]';
|
|
81
|
+
await createEscalation({
|
|
82
|
+
organizationId: config.organizationId,
|
|
83
|
+
issueId: null,
|
|
84
|
+
reasonType,
|
|
85
|
+
// Disposition routes resolution: a resolved (closed) dependency clears the
|
|
86
|
+
// blocker so an agent on the source focus can act on it automatically; a
|
|
87
|
+
// decline leaves the source still blocked and needing a human to decide
|
|
88
|
+
// next steps.
|
|
89
|
+
disposition: declined
|
|
90
|
+
? ESCALATION_DISPOSITIONS.NEEDS_INTENT
|
|
91
|
+
: ESCALATION_DISPOSITIONS.AGENT_RESOLVABLE,
|
|
92
|
+
escalationKind: ESCALATION_KINDS.NEXUS_REQUEST_RESOLVED,
|
|
93
|
+
// Provenance: the source focus is the anchor; resolver derives productId.
|
|
94
|
+
anchor: { focusId: req.sourceFocusId ?? undefined },
|
|
95
|
+
...(req.sourceProductId ? { productId: req.sourceProductId } : {}),
|
|
96
|
+
description: `${descriptionPrefix} Nexus request "${req.title ?? '(untitled)'}" was ${reasonPhrase}. ` +
|
|
97
|
+
`${declined ? 'Review the decline reason and decide on next steps.' : 'The cross-product dependency is now clear -- you can unblock your work.'}`,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
markSourceNotified: async (requestId) => {
|
|
101
|
+
await callApi('product_request_mark_source_notified', { requestId });
|
|
102
|
+
},
|
|
103
|
+
notifyClarification: async (req) => {
|
|
104
|
+
await createEscalation({
|
|
105
|
+
organizationId: config.organizationId,
|
|
106
|
+
issueId: null,
|
|
107
|
+
reasonType: ESCALATION_REASONS.NEEDS_CLARIFICATION,
|
|
108
|
+
// A human on the source side must provide the clarification response.
|
|
109
|
+
disposition: ESCALATION_DISPOSITIONS.NEEDS_INTENT,
|
|
110
|
+
escalationKind: ESCALATION_KINDS.NEXUS_CLARIFICATION_REQUESTED,
|
|
111
|
+
// Provenance: the source focus is the anchor; resolver derives productId.
|
|
112
|
+
anchor: { focusId: req.sourceFocusId ?? undefined },
|
|
113
|
+
...(req.sourceProductId ? { productId: req.sourceProductId } : {}),
|
|
114
|
+
description: `[Nexus clarification requested] Nexus request "${req.title ?? '(untitled)'}" has a question from the target product: ` +
|
|
115
|
+
`${req.clarificationMessage ?? '(no message)'} -- reply or update the request to unblock the cross-product work.`,
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
markClarificationNotified: async (requestId) => {
|
|
119
|
+
await callApi('product_request_mark_clarification_notified', { requestId });
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Poll one product for return-path loop closure. Runs both sides:
|
|
125
|
+
* TARGET -- resolve materialized in_progress incoming requests (server gates
|
|
126
|
+
* on delivery 'done').
|
|
127
|
+
* SOURCE -- notify + stamp terminal outgoing requests not yet notified.
|
|
128
|
+
* Each request's work is wrapped in try/catch so one failure does not abort the
|
|
129
|
+
* batch (mirrors nexus-incoming).
|
|
130
|
+
*/
|
|
131
|
+
export async function checkResolvedRequests(config, deps = defaultNexusReturnDeps(config)) {
|
|
132
|
+
const productId = config.productId;
|
|
133
|
+
if (!productId)
|
|
134
|
+
return;
|
|
135
|
+
const log = deps.log ?? ((msg) => console.log(msg));
|
|
136
|
+
// --- TARGET side: resolve materialized in_progress incoming requests. ---
|
|
137
|
+
let incoming = [];
|
|
138
|
+
try {
|
|
139
|
+
incoming = await deps.listIncomingInProgress(productId);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
log(`[nexus] failed to list in_progress incoming requests for ${productId}: ${err.message}`);
|
|
143
|
+
}
|
|
144
|
+
for (const req of incoming) {
|
|
145
|
+
try {
|
|
146
|
+
const resolved = await deps.resolveRequest(req.id);
|
|
147
|
+
if (resolved) {
|
|
148
|
+
log(`[nexus] resolved incoming request ${req.id} (materialized delivery done) for ${productId}`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
log(`[nexus] failed to resolve incoming request ${req.id}: ${err.message}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// --- SOURCE side: notify + stamp terminal outgoing requests. ---
|
|
156
|
+
let outgoing = [];
|
|
157
|
+
try {
|
|
158
|
+
outgoing = await deps.listOutgoing(productId);
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
log(`[nexus] failed to list outgoing requests for ${productId}: ${err.message}`);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const pending = outgoing.filter((r) => r.status !== undefined && TERMINAL_SOURCE_STATUSES.has(r.status) && !r.sourceNotifiedAt);
|
|
165
|
+
for (const req of pending) {
|
|
166
|
+
try {
|
|
167
|
+
await deps.notifySource(req);
|
|
168
|
+
await deps.markSourceNotified(req.id);
|
|
169
|
+
log(`[nexus] notified source of resolved request ${req.id} (status=${req.status}) for ${productId}`);
|
|
170
|
+
}
|
|
171
|
+
catch (err) {
|
|
172
|
+
log(`[nexus] failed to notify source for request ${req.id}: ${err.message}`);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// --- SOURCE side: notify about pending clarifications. ---
|
|
176
|
+
// Exclude terminal requests (closed/declined): the edge handler rejects clarify on
|
|
177
|
+
// terminal requests, but guard here too so any pre-existing stale rows don't fire.
|
|
178
|
+
const pendingClarification = outgoing.filter((r) => !!r.clarificationMessage &&
|
|
179
|
+
!r.clarificationNotifiedAt &&
|
|
180
|
+
r.status !== 'closed' &&
|
|
181
|
+
r.status !== 'declined');
|
|
182
|
+
for (const req of pendingClarification) {
|
|
183
|
+
try {
|
|
184
|
+
await deps.notifyClarification(req);
|
|
185
|
+
await deps.markClarificationNotified(req.id);
|
|
186
|
+
log(`[nexus] notified source of clarification request ${req.id} for ${productId}`);
|
|
187
|
+
}
|
|
188
|
+
catch (err) {
|
|
189
|
+
log(`[nexus] failed to notify source about clarification for request ${req.id}: ${err.message}`);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=nexus-return.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nexus-return.js","sourceRoot":"","sources":["../src/nexus-return.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoBpG;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,cAAkC;IAC9D,OAAO,cAAc,KAAK,MAAM,CAAC;AACnC,CAAC;AAsBD,wEAAwE;AACxE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjE,iFAAiF;AACjF,MAAM,UAAU,sBAAsB,CAAC,MAAoB;IACzD,OAAO;QACL,sBAAsB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,sBAAsB,EAAE;gBACtE,SAAS;gBACT,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACxE,CAAC;QACD,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACtC,wEAAwE;YACxE,uEAAuE;YACvE,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,eAAe,EACf,EAAE,UAAU,EAAE,CACf,CAAC;YACF,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;YACtE,OAAO,KAAK,EAAE,eAAe,CAAC;QAChC,CAAC;QACD,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAyB,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5F,OAAO,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC/B,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAChC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAuB,sBAAsB,EAAE;gBACtE,SAAS;gBACT,SAAS,EAAE,UAAU;aACtB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC;YAC3C,MAAM,YAAY,GAAG,QAAQ;gBAC3B,CAAC,CAAC,iCAAiC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtF,CAAC,CAAC,iCAAiC,CAAC;YACtC,8EAA8E;YAC9E,6EAA6E;YAC7E,yEAAyE;YACzE,MAAM,UAAU,GAAG,QAAQ;gBACzB,CAAC,CAAC,kBAAkB,CAAC,mBAAmB;gBACxC,CAAC,CAAC,kBAAkB,CAAC,eAAe,CAAC;YACvC,MAAM,iBAAiB,GAAG,QAAQ;gBAChC,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,6BAA6B,CAAC;YAClC,MAAM,gBAAgB,CAAC;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,OAAO,EAAE,IAAI;gBACb,UAAU;gBACV,2EAA2E;gBAC3E,yEAAyE;gBACzE,wEAAwE;gBACxE,cAAc;gBACd,WAAW,EAAE,QAAQ;oBACnB,CAAC,CAAC,uBAAuB,CAAC,YAAY;oBACtC,CAAC,CAAC,uBAAuB,CAAC,gBAAgB;gBAC5C,cAAc,EAAE,gBAAgB,CAAC,sBAAsB;gBACvD,0EAA0E;gBAC1E,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS,EAAE;gBACnD,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,WAAW,EACT,GAAG,iBAAiB,mBAAmB,GAAG,CAAC,KAAK,IAAI,YAAY,SAAS,YAAY,IAAI;oBACzF,GAAG,QAAQ,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,yEAAyE,EAAE;aACpJ,CAAC,CAAC;QACL,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACtC,MAAM,OAAO,CAAC,sCAAsC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACjC,MAAM,gBAAgB,CAAC;gBACrB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,kBAAkB,CAAC,mBAAmB;gBAClD,sEAAsE;gBACtE,WAAW,EAAE,uBAAuB,CAAC,YAAY;gBACjD,cAAc,EAAE,gBAAgB,CAAC,6BAA6B;gBAC9D,0EAA0E;gBAC1E,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,IAAI,SAAS,EAAE;gBACnD,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,WAAW,EACT,kDAAkD,GAAG,CAAC,KAAK,IAAI,YAAY,4CAA4C;oBACvH,GAAG,GAAG,CAAC,oBAAoB,IAAI,cAAc,oEAAoE;aACpH,CAAC,CAAC;QACL,CAAC;QACD,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC7C,MAAM,OAAO,CAAC,6CAA6C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB,EACpB,OAAwB,sBAAsB,CAAC,MAAM,CAAC;IAEtD,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,2EAA2E;IAC3E,IAAI,QAAQ,GAAU,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,4DAA4D,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,GAAG,CAAC,qCAAqC,GAAG,CAAC,EAAE,qCAAqC,SAAS,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,8CAA8C,GAAG,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,QAAQ,GAAU,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,gDAAgD,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAC/F,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,CAAC,+CAA+C,GAAG,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,SAAS,SAAS,EAAE,CAAC,CAAC;QACvG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,+CAA+C,GAAG,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,mFAAmF;IACnF,mFAAmF;IACnF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,CAAC,oBAAoB;QACxB,CAAC,CAAC,CAAC,uBAAuB;QAC1B,CAAC,CAAC,MAAM,KAAK,QAAQ;QACrB,CAAC,CAAC,MAAM,KAAK,UAAU,CAC1B,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7C,GAAG,CAAC,oDAAoD,GAAG,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,mEAAmE,GAAG,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -214,4 +214,16 @@ export declare function getMergeConflictDeliveries(_organizationId: string, prod
|
|
|
214
214
|
focus_id: string | null;
|
|
215
215
|
pipeline_config: PipelineConfig | null;
|
|
216
216
|
}>>;
|
|
217
|
+
/**
|
|
218
|
+
* Return the delivery_id (and derived focus_id + product_id) for a single
|
|
219
|
+
* issue, for use by resolveProvenance when only an issueId anchor is available.
|
|
220
|
+
*
|
|
221
|
+
* Returns null when the issue is not found or has no delivery.
|
|
222
|
+
* Best-effort: callers must handle null gracefully.
|
|
223
|
+
*/
|
|
224
|
+
export declare function getIssueDelivery(issueId: string): Promise<{
|
|
225
|
+
deliveryId: string;
|
|
226
|
+
productId: string | null;
|
|
227
|
+
focusId: string | null;
|
|
228
|
+
} | null>;
|
|
217
229
|
//# sourceMappingURL=deliveries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../src/queries/deliveries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../src/queries/deliveries.ts"],"names":[],"mappings":"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"}
|
|
@@ -285,4 +285,21 @@ export async function getMergeConflictDeliveries(_organizationId, productId) {
|
|
|
285
285
|
pipeline_config: d.pipelineConfig ?? null,
|
|
286
286
|
}));
|
|
287
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* Return the delivery_id (and derived focus_id + product_id) for a single
|
|
290
|
+
* issue, for use by resolveProvenance when only an issueId anchor is available.
|
|
291
|
+
*
|
|
292
|
+
* Returns null when the issue is not found or has no delivery.
|
|
293
|
+
* Best-effort: callers must handle null gracefully.
|
|
294
|
+
*/
|
|
295
|
+
export async function getIssueDelivery(issueId) {
|
|
296
|
+
const result = await callApi('daemon_get_issue_delivery', { issueId });
|
|
297
|
+
if (!result.deliveryId)
|
|
298
|
+
return null;
|
|
299
|
+
return {
|
|
300
|
+
deliveryId: result.deliveryId,
|
|
301
|
+
productId: result.productId ?? null,
|
|
302
|
+
focusId: result.focusId ?? null,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
288
305
|
//# sourceMappingURL=deliveries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../src/queries/deliveries.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../src/queries/deliveries.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/issues.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Issue and escalation queries.
|
|
3
3
|
*/
|
|
4
4
|
import { DeliveryIssueSchema } from './schemas.js';
|
|
5
|
+
import { type EscalationAnchor } from '../escalation-provenance.js';
|
|
5
6
|
import { z } from 'zod';
|
|
6
7
|
type ApiIssue = z.infer<typeof DeliveryIssueSchema>;
|
|
7
8
|
/**
|
|
@@ -22,7 +23,8 @@ export declare function updateIssueStatus(issueId: string, status: string): Prom
|
|
|
22
23
|
*/
|
|
23
24
|
export interface CreateEscalationParams {
|
|
24
25
|
organizationId: string;
|
|
25
|
-
|
|
26
|
+
/** Session context (informational only -- not forwarded to the edge fn). Optional for daemon-side non-team callers. */
|
|
27
|
+
sessionId?: string;
|
|
26
28
|
issueId: string | null;
|
|
27
29
|
reasonType: string;
|
|
28
30
|
description: string;
|
|
@@ -38,11 +40,55 @@ export interface CreateEscalationParams {
|
|
|
38
40
|
* Persisted on `agent_escalations.metadata` when present.
|
|
39
41
|
*/
|
|
40
42
|
metadata?: Record<string, unknown>;
|
|
43
|
+
/**
|
|
44
|
+
* Optional first-class provenance: where this escalation came from.
|
|
45
|
+
* Persisted on the agent_escalations product_id/focus_id/delivery_id
|
|
46
|
+
* columns. Prefer deriving these via resolveProvenance(anchor) so no
|
|
47
|
+
* site files an anonymous escalation when an anchor is available.
|
|
48
|
+
*/
|
|
49
|
+
productId?: string;
|
|
50
|
+
focusId?: string;
|
|
51
|
+
deliveryId?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Optional disposition: the resolution routing axis (who/what can resolve
|
|
54
|
+
* this). Distinct from escalationKind (the diagnosis). One of
|
|
55
|
+
* EscalationDisposition. Persisted on agent_escalations.disposition.
|
|
56
|
+
*/
|
|
57
|
+
disposition?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Optional cross-product TARGET provenance: the product this escalation is a
|
|
60
|
+
* blocker AGAINST (distinct from productId, which is the SOURCE product the
|
|
61
|
+
* escalation came from). Forwarded to the edge as fields.targetProductId. The
|
|
62
|
+
* edge escalation_create handler may or may not persist this on the
|
|
63
|
+
* agent_escalations.target_product_id column yet -- the escalation -> Nexus
|
|
64
|
+
* bridge does not depend on that, since the audit row also carries the target
|
|
65
|
+
* in metadata.target_product_id.
|
|
66
|
+
*/
|
|
67
|
+
targetProductId?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Optional provenance anchor: whatever the creation site holds (a delivery,
|
|
70
|
+
* focus, issue, session id, or branch). When present, the shared path runs
|
|
71
|
+
* resolveProvenance(anchor) and stamps the derived product/focus/delivery
|
|
72
|
+
* columns -- so no site files an anonymous escalation when an anchor is
|
|
73
|
+
* available. Explicitly-passed productId/focusId/deliveryId on params WIN
|
|
74
|
+
* over the derived values (caller intent beats derivation).
|
|
75
|
+
*/
|
|
76
|
+
anchor?: EscalationAnchor;
|
|
41
77
|
}
|
|
42
78
|
/**
|
|
43
79
|
* Create an escalation request.
|
|
80
|
+
*
|
|
81
|
+
* When `anchor` is supplied, provenance is derived centrally via
|
|
82
|
+
* resolveProvenance and merged with any explicit productId/focusId/deliveryId
|
|
83
|
+
* on params (explicit wins). This is the single stamping point that closes
|
|
84
|
+
* Delivery C: every site routes through here and provenance is guaranteed
|
|
85
|
+
* whenever an anchor is available. resolveProvenance never throws, so a
|
|
86
|
+
* derivation miss degrades to the explicit fields (or none) rather than
|
|
87
|
+
* aborting the escalation.
|
|
44
88
|
*/
|
|
45
|
-
export declare function createEscalation(params: CreateEscalationParams): Promise<
|
|
89
|
+
export declare function createEscalation(params: CreateEscalationParams): Promise<{
|
|
90
|
+
escalationId: string | null;
|
|
91
|
+
}>;
|
|
46
92
|
/**
|
|
47
93
|
* Minimal shape of an escalation row returned by listPendingEscalations.
|
|
48
94
|
* Only includes the fields needed by the merge-back loop.
|
|
@@ -72,31 +118,35 @@ export interface PendingEscalation {
|
|
|
72
118
|
export declare function listPendingEscalations(): Promise<PendingEscalation[]>;
|
|
73
119
|
/**
|
|
74
120
|
* Returns true when an open (status pending or in_review) team_failure
|
|
75
|
-
* escalation exists
|
|
121
|
+
* escalation exists for the given focus.
|
|
76
122
|
*
|
|
77
123
|
* Used by the focus-executor spawn precondition to prevent respawning a
|
|
78
124
|
* team that has already given up on a focus. The escalation row is the
|
|
79
125
|
* signal "this focus is not currently workable"; until a human resolves
|
|
80
126
|
* it, the daemon should not spend cycles re-deriving the same conclusion.
|
|
81
127
|
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
128
|
+
* Dedup matches on the first-class `focus_id` column (stamped via the
|
|
129
|
+
* anchor since Delivery B of the Escalation Signal Richness focus). A
|
|
130
|
+
* metadata.focusId fallback covers any rows that predate the migration's
|
|
131
|
+
* backfill and landed in the deployment window before the daemon restarted.
|
|
84
132
|
*/
|
|
85
133
|
export declare function hasOpenTeamFailureEscalation(focusId: string): Promise<boolean>;
|
|
86
134
|
/**
|
|
87
135
|
* Returns true when an open (status pending or in_review) escalation exists
|
|
88
|
-
*
|
|
89
|
-
* `deliveryId === deliveryId`.
|
|
136
|
+
* for the given delivery + kind discriminator.
|
|
90
137
|
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
138
|
+
* Now that the advance-block class is a first-class `escalation_kind`
|
|
139
|
+
* ('advance_blocked', added to the DB CHECK + ESCALATION_KINDS) and the
|
|
140
|
+
* delivery is a first-class `delivery_id` column, dedup matches on the
|
|
141
|
+
* COLUMNS in preference to the metadata bag. A metadata fallback is retained
|
|
142
|
+
* for back-compat with rows already open at deploy time (filed before this
|
|
143
|
+
* promotion, which carry the discriminator only in metadata.kind /
|
|
144
|
+
* metadata.deliveryId).
|
|
95
145
|
*
|
|
96
146
|
* Used by the delivery advance-block path so a delivery stuck across many
|
|
97
147
|
* polls files exactly one open escalation instead of one per tick.
|
|
98
148
|
*/
|
|
99
|
-
export declare function hasOpenEscalationForDelivery(deliveryId: string,
|
|
149
|
+
export declare function hasOpenEscalationForDelivery(deliveryId: string, escalationKind: string): Promise<boolean>;
|
|
100
150
|
/**
|
|
101
151
|
* Mark an escalation as resolved with optional notes.
|
|
102
152
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAIL,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEpD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAO/E;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjF;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtF;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|