@telora/daemon 0.17.56 → 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 +62 -0
- package/dist/delivery-advance-block.d.ts.map +1 -0
- package/dist/delivery-advance-block.js +91 -0
- package/dist/delivery-advance-block.js.map +1 -0
- 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 +2 -22
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +12 -50
- 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 +69 -5
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +61 -5
- 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/dist/scanners/deps.d.ts +16 -0
- package/dist/scanners/deps.d.ts.map +1 -1
- package/dist/scanners/deps.js +39 -0
- package/dist/scanners/deps.js.map +1 -1
- package/dist/staleness.d.ts.map +1 -1
- package/dist/staleness.js +13 -2
- package/dist/staleness.js.map +1 -1
- package/dist/supabase.d.ts +1 -1
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +1 -1
- package/dist/supabase.js.map +1 -1
- package/package.json +3 -3
|
@@ -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,17 +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>;
|
|
134
|
+
/**
|
|
135
|
+
* Returns true when an open (status pending or in_review) escalation exists
|
|
136
|
+
* for the given delivery + kind discriminator.
|
|
137
|
+
*
|
|
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).
|
|
145
|
+
*
|
|
146
|
+
* Used by the delivery advance-block path so a delivery stuck across many
|
|
147
|
+
* polls files exactly one open escalation instead of one per tick.
|
|
148
|
+
*/
|
|
149
|
+
export declare function hasOpenEscalationForDelivery(deliveryId: string, escalationKind: string): Promise<boolean>;
|
|
86
150
|
/**
|
|
87
151
|
* Mark an escalation as resolved with optional notes.
|
|
88
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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"}
|
package/dist/queries/issues.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { callApi, callApiValidated } from './shared.js';
|
|
5
5
|
import { DeliveryIssuesResponseSchema, DeliverySessionCountResponseSchema, IssueCreateResponseSchema, } from './schemas.js';
|
|
6
|
+
import { resolveProvenance } from '../escalation-provenance.js';
|
|
6
7
|
/**
|
|
7
8
|
* Fetch all issues for a delivery (used by completion guards).
|
|
8
9
|
*/
|
|
@@ -37,9 +38,21 @@ export async function updateIssueStatus(issueId, status) {
|
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
40
|
* Create an escalation request.
|
|
41
|
+
*
|
|
42
|
+
* When `anchor` is supplied, provenance is derived centrally via
|
|
43
|
+
* resolveProvenance and merged with any explicit productId/focusId/deliveryId
|
|
44
|
+
* on params (explicit wins). This is the single stamping point that closes
|
|
45
|
+
* Delivery C: every site routes through here and provenance is guaranteed
|
|
46
|
+
* whenever an anchor is available. resolveProvenance never throws, so a
|
|
47
|
+
* derivation miss degrades to the explicit fields (or none) rather than
|
|
48
|
+
* aborting the escalation.
|
|
40
49
|
*/
|
|
41
50
|
export async function createEscalation(params) {
|
|
42
|
-
await
|
|
51
|
+
const derived = params.anchor ? await resolveProvenance(params.anchor) : {};
|
|
52
|
+
const productId = params.productId ?? derived.productId;
|
|
53
|
+
const focusId = params.focusId ?? derived.focusId;
|
|
54
|
+
const deliveryId = params.deliveryId ?? derived.deliveryId;
|
|
55
|
+
const res = await callApi('escalation_create', {
|
|
43
56
|
issueId: params.issueId,
|
|
44
57
|
fields: {
|
|
45
58
|
reasonType: params.reasonType,
|
|
@@ -48,8 +61,14 @@ export async function createEscalation(params) {
|
|
|
48
61
|
helpNeeded: params.helpNeeded,
|
|
49
62
|
...(params.escalationKind ? { escalationKind: params.escalationKind } : {}),
|
|
50
63
|
...(params.metadata ? { metadata: params.metadata } : {}),
|
|
64
|
+
...(productId ? { productId } : {}),
|
|
65
|
+
...(focusId ? { focusId } : {}),
|
|
66
|
+
...(deliveryId ? { deliveryId } : {}),
|
|
67
|
+
...(params.targetProductId ? { targetProductId: params.targetProductId } : {}),
|
|
68
|
+
...(params.disposition ? { disposition: params.disposition } : {}),
|
|
51
69
|
},
|
|
52
70
|
});
|
|
71
|
+
return { escalationId: res.escalation?.id ?? null };
|
|
53
72
|
}
|
|
54
73
|
/**
|
|
55
74
|
* List open (not-yet-resolved) escalations for the organization.
|
|
@@ -78,25 +97,62 @@ export async function listPendingEscalations() {
|
|
|
78
97
|
}
|
|
79
98
|
/**
|
|
80
99
|
* Returns true when an open (status pending or in_review) team_failure
|
|
81
|
-
* escalation exists
|
|
100
|
+
* escalation exists for the given focus.
|
|
82
101
|
*
|
|
83
102
|
* Used by the focus-executor spawn precondition to prevent respawning a
|
|
84
103
|
* team that has already given up on a focus. The escalation row is the
|
|
85
104
|
* signal "this focus is not currently workable"; until a human resolves
|
|
86
105
|
* it, the daemon should not spend cycles re-deriving the same conclusion.
|
|
87
106
|
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
107
|
+
* Dedup matches on the first-class `focus_id` column (stamped via the
|
|
108
|
+
* anchor since Delivery B of the Escalation Signal Richness focus). A
|
|
109
|
+
* metadata.focusId fallback covers any rows that predate the migration's
|
|
110
|
+
* backfill and landed in the deployment window before the daemon restarted.
|
|
90
111
|
*/
|
|
91
112
|
export async function hasOpenTeamFailureEscalation(focusId) {
|
|
92
113
|
const result = await callApi('escalation_list', {
|
|
93
114
|
fields: {
|
|
94
115
|
statuses: ['pending', 'in_review'],
|
|
95
116
|
escalationKind: 'team_failure',
|
|
117
|
+
focusId,
|
|
96
118
|
},
|
|
97
119
|
limit: 500,
|
|
98
120
|
});
|
|
99
|
-
|
|
121
|
+
// Primary: column-filtered result. Fallback: metadata.focusId for any rows
|
|
122
|
+
// that predate the column backfill (deployment-window back-compat only).
|
|
123
|
+
return (result.escalations ?? []).some((e) => e.focusId === focusId ||
|
|
124
|
+
e.metadata?.focusId === focusId);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Returns true when an open (status pending or in_review) escalation exists
|
|
128
|
+
* for the given delivery + kind discriminator.
|
|
129
|
+
*
|
|
130
|
+
* Now that the advance-block class is a first-class `escalation_kind`
|
|
131
|
+
* ('advance_blocked', added to the DB CHECK + ESCALATION_KINDS) and the
|
|
132
|
+
* delivery is a first-class `delivery_id` column, dedup matches on the
|
|
133
|
+
* COLUMNS in preference to the metadata bag. A metadata fallback is retained
|
|
134
|
+
* for back-compat with rows already open at deploy time (filed before this
|
|
135
|
+
* promotion, which carry the discriminator only in metadata.kind /
|
|
136
|
+
* metadata.deliveryId).
|
|
137
|
+
*
|
|
138
|
+
* Used by the delivery advance-block path so a delivery stuck across many
|
|
139
|
+
* polls files exactly one open escalation instead of one per tick.
|
|
140
|
+
*/
|
|
141
|
+
export async function hasOpenEscalationForDelivery(deliveryId, escalationKind) {
|
|
142
|
+
const result = await callApi('escalation_list', {
|
|
143
|
+
fields: { statuses: ['pending', 'in_review'] },
|
|
144
|
+
limit: 500,
|
|
145
|
+
});
|
|
146
|
+
return (result.escalations ?? []).some((e) => {
|
|
147
|
+
// Preferred: match on the typed columns.
|
|
148
|
+
if (e.escalationKind === escalationKind && e.deliveryId === deliveryId) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
// Back-compat: rows filed before the column promotion carry the
|
|
152
|
+
// discriminator in the metadata bag.
|
|
153
|
+
const meta = e.metadata ?? null;
|
|
154
|
+
return meta?.kind === escalationKind && meta?.deliveryId === deliveryId;
|
|
155
|
+
});
|
|
100
156
|
}
|
|
101
157
|
/**
|
|
102
158
|
* Mark an escalation as resolved with optional notes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,GAE1B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* escalation.answers
|
|
3
|
+
*
|
|
4
|
+
* The directed-answer return: when a human resolves a DIRECTED escalation
|
|
5
|
+
* (disposition needs_intent / needs_clarification -- a question literally
|
|
6
|
+
* addressed to a human) by providing a structured answer, that answer has had
|
|
7
|
+
* nowhere to land back in the agent's context. The daemon's other escalation
|
|
8
|
+
* read paths fetch only OPEN rows (merge-back dedup) or ignore the answer
|
|
9
|
+
* (current-cycle audit), and a freshly-spawned team carries nothing of the
|
|
10
|
+
* prior answer -- so the next cycle re-asks the same question or guesses.
|
|
11
|
+
*
|
|
12
|
+
* This resolver closes that loop. It reads resolved + answered + directed
|
|
13
|
+
* escalations for THIS focus (routed by the provenance focus_id column, so the
|
|
14
|
+
* answer reaches the focus that asked even across the fresh-spawn boundary) and
|
|
15
|
+
* composes an "Answers to your prior questions" section into the spawn prompt.
|
|
16
|
+
*
|
|
17
|
+
* Windowed by the prior audit cycle's lower bound (best effort) so the section
|
|
18
|
+
* surfaces answers given since the last cycle rather than the full history.
|
|
19
|
+
*/
|
|
20
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
21
|
+
export declare function registerEscalationAnswersResolver(): void;
|
|
22
|
+
//# sourceMappingURL=escalation-answers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalation-answers.d.ts","sourceRoot":"","sources":["../../src/resolvers/escalation-answers.ts"],"names":[],"mappings":"AAuEA;;;;;;;;;;;;;;;;;;GAkBG;AACH,oGAAoG;AACpG,wBAAgB,iCAAiC,IAAI,IAAI,CAsCxD"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { callApi } from '../queries/shared.js';
|
|
3
|
+
import { getAuditCycleLowerBound } from './shared/audit.js';
|
|
4
|
+
/**
|
|
5
|
+
* Fetch resolved DIRECTED escalations that a human has ANSWERED for a focus --
|
|
6
|
+
* the directed-answer read-back. Scope-guarded server-side to the two directed
|
|
7
|
+
* dispositions (needs_intent / needs_clarification), status resolved, and a
|
|
8
|
+
* non-null structured answer, routed by the provenance focus_id column.
|
|
9
|
+
*
|
|
10
|
+
* Kept self-contained in the resolver module (calling callApi directly, like
|
|
11
|
+
* the sibling agent_escalations / agent_session_summaries resolvers) so the
|
|
12
|
+
* assembly-registry load chain does not drag in unrelated query modules.
|
|
13
|
+
*
|
|
14
|
+
* `sinceIso` (optional) windows to answers stamped at/after that instant.
|
|
15
|
+
*/
|
|
16
|
+
async function getAnsweredDirectedEscalationsForFocus(focusId, sinceIso) {
|
|
17
|
+
const params = { focusId };
|
|
18
|
+
if (sinceIso)
|
|
19
|
+
params.sinceIso = sinceIso;
|
|
20
|
+
const result = await callApi('daemon_get_answered_directed_escalations_for_focus', params);
|
|
21
|
+
return result.escalations ?? [];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Stamp the given answers consumed once they have been assembled into this
|
|
25
|
+
* spawn's prompt -- the closure that stops a delivered answer re-surfacing as an
|
|
26
|
+
* open ask next cycle. Best-effort: a failure here degrades to at-least-once
|
|
27
|
+
* (the answer re-surfaces) rather than losing it, so we swallow the error.
|
|
28
|
+
*
|
|
29
|
+
* Identity contract: consumption is per escalation id, so a legitimately
|
|
30
|
+
* recurring blocker files a NEW escalation (unconsumed) that still surfaces,
|
|
31
|
+
* while the already-answered question stays consumed -- dedup by question
|
|
32
|
+
* identity, not by answer text.
|
|
33
|
+
*/
|
|
34
|
+
async function markDirectedAnswersConsumed(ids) {
|
|
35
|
+
if (ids.length === 0)
|
|
36
|
+
return;
|
|
37
|
+
try {
|
|
38
|
+
await callApi('daemon_mark_directed_answers_consumed', { ids });
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
console.warn(`[assembly] escalation.answers mark-consumed failed: ${err.message}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* escalation.answers
|
|
46
|
+
*
|
|
47
|
+
* The directed-answer return: when a human resolves a DIRECTED escalation
|
|
48
|
+
* (disposition needs_intent / needs_clarification -- a question literally
|
|
49
|
+
* addressed to a human) by providing a structured answer, that answer has had
|
|
50
|
+
* nowhere to land back in the agent's context. The daemon's other escalation
|
|
51
|
+
* read paths fetch only OPEN rows (merge-back dedup) or ignore the answer
|
|
52
|
+
* (current-cycle audit), and a freshly-spawned team carries nothing of the
|
|
53
|
+
* prior answer -- so the next cycle re-asks the same question or guesses.
|
|
54
|
+
*
|
|
55
|
+
* This resolver closes that loop. It reads resolved + answered + directed
|
|
56
|
+
* escalations for THIS focus (routed by the provenance focus_id column, so the
|
|
57
|
+
* answer reaches the focus that asked even across the fresh-spawn boundary) and
|
|
58
|
+
* composes an "Answers to your prior questions" section into the spawn prompt.
|
|
59
|
+
*
|
|
60
|
+
* Windowed by the prior audit cycle's lower bound (best effort) so the section
|
|
61
|
+
* surfaces answers given since the last cycle rather than the full history.
|
|
62
|
+
*/
|
|
63
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
64
|
+
export function registerEscalationAnswersResolver() {
|
|
65
|
+
registerSourceResolver('escalation.answers', async (context) => {
|
|
66
|
+
try {
|
|
67
|
+
const since = await getAuditCycleLowerBound(context.focusId);
|
|
68
|
+
const answered = await getAnsweredDirectedEscalationsForFocus(context.focusId, since ?? undefined);
|
|
69
|
+
if (answered.length === 0)
|
|
70
|
+
return '';
|
|
71
|
+
const blocks = answered.map((e) => {
|
|
72
|
+
const question = e.description.replace(/\n/g, ' ').trim();
|
|
73
|
+
const truncatedQ = question.length > 400 ? `${question.slice(0, 397)}...` : question;
|
|
74
|
+
const answer = e.answer.trim();
|
|
75
|
+
const when = e.answeredAt ? ` (answered ${e.answeredAt})` : '';
|
|
76
|
+
return `- **You asked** [${e.disposition}]: ${truncatedQ}\n **Answer**${when}: ${answer}`;
|
|
77
|
+
});
|
|
78
|
+
const section = [
|
|
79
|
+
'## Answers to your prior questions',
|
|
80
|
+
'',
|
|
81
|
+
'A human has answered directed questions you raised in earlier cycles.',
|
|
82
|
+
'Treat these as resolved intent/clarification -- act on them and do NOT re-ask.',
|
|
83
|
+
'',
|
|
84
|
+
blocks.join('\n'),
|
|
85
|
+
].join('\n');
|
|
86
|
+
// Consumed once it is in this spawn's prompt -- stops the same answer
|
|
87
|
+
// re-surfacing (no re-ask). After this, the read-back's
|
|
88
|
+
// answer_consumed_at IS NULL filter excludes these ids.
|
|
89
|
+
await markDirectedAnswersConsumed(answered.map((e) => e.id));
|
|
90
|
+
return section;
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
console.warn(`[assembly] escalation.answers failed: ${err.message}`);
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=escalation-answers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"escalation-answers.js","sourceRoot":"","sources":["../../src/resolvers/escalation-answers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAqFH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAgBxC;AAGD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
|
package/dist/resolvers/index.js
CHANGED
|
@@ -50,6 +50,7 @@ import { registerLoopDeliveryIndexResolver } from './loop-delivery-index.js';
|
|
|
50
50
|
import { registerRetiredInjectionsResolver } from './retired-injections.js';
|
|
51
51
|
import { registerAgentSessionSummariesResolver } from './agent-session-summaries.js';
|
|
52
52
|
import { registerAgentEscalationsResolver } from './agent-escalations.js';
|
|
53
|
+
import { registerEscalationAnswersResolver } from './escalation-answers.js';
|
|
53
54
|
import { registerRealityTreeSnapshotResolver } from './reality-tree-snapshot.js';
|
|
54
55
|
import { registerPrdPersonaResolver } from './prd-persona.js';
|
|
55
56
|
import { registerPrdContextResolver } from './prd-context.js';
|
|
@@ -88,6 +89,7 @@ const REGISTER_FUNCTIONS = [
|
|
|
88
89
|
registerRetiredInjectionsResolver,
|
|
89
90
|
registerAgentSessionSummariesResolver,
|
|
90
91
|
registerAgentEscalationsResolver,
|
|
92
|
+
registerEscalationAnswersResolver,
|
|
91
93
|
registerRealityTreeSnapshotResolver,
|
|
92
94
|
registerPrdPersonaResolver,
|
|
93
95
|
registerPrdContextResolver,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/deps.d.ts
CHANGED
|
@@ -58,6 +58,14 @@ export interface NpmAuditResult {
|
|
|
58
58
|
exitCode: number;
|
|
59
59
|
}
|
|
60
60
|
export type NpmAuditRunner = (repoPath: string) => Promise<NpmAuditResult>;
|
|
61
|
+
/** Coverage breadcrumb emitted when the Node-project gate skips the audit. */
|
|
62
|
+
export declare const NO_NODE_PROJECT_SKIP_REASON = "no_node_project_at_repo_root";
|
|
63
|
+
/**
|
|
64
|
+
* True when `repoPath` is a Node project AT its root: a package.json and at
|
|
65
|
+
* least one recognized lockfile both present. This is the precondition for
|
|
66
|
+
* running `npm audit` without it walking up the directory tree.
|
|
67
|
+
*/
|
|
68
|
+
declare function defaultHasNodeProjectAtRoot(repoPath: string): boolean;
|
|
61
69
|
declare function mapSeverity(s: NpmSeverity | undefined): Severity | null;
|
|
62
70
|
declare function parseAuditJson(raw: string): NpmAuditOutput;
|
|
63
71
|
export interface DepsScannerExternalDeps {
|
|
@@ -86,6 +94,13 @@ export interface DepsScannerExternalDeps {
|
|
|
86
94
|
}>;
|
|
87
95
|
/** Optional local IOC feed loader; default reads from security_ioc_feed_entries. */
|
|
88
96
|
loadLocalIocFeed?: (organizationId: string, iocClass?: string) => Promise<IocFeedEntry[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Optional Node-project detector; default checks for package.json + a
|
|
99
|
+
* recognized lockfile at the repo root. When it returns false the scan is
|
|
100
|
+
* skipped (no npm audit run, no walk-up). Injectable so unit tests can
|
|
101
|
+
* exercise both the skip and the normal audit path without a real fs.
|
|
102
|
+
*/
|
|
103
|
+
hasNodeProjectAtRoot?: (repoPath: string) => boolean;
|
|
89
104
|
}
|
|
90
105
|
export declare function createDepsScanner(opts: DepsScannerExternalDeps): Scanner;
|
|
91
106
|
declare function computePackagesAudited(audit: NpmAuditOutput): number;
|
|
@@ -93,6 +108,7 @@ export declare const depsScanner: Scanner;
|
|
|
93
108
|
/** Test seam re-export for unit tests. */
|
|
94
109
|
export declare const _internal: {
|
|
95
110
|
defaultRunNpmAudit: NpmAuditRunner;
|
|
111
|
+
defaultHasNodeProjectAtRoot: typeof defaultHasNodeProjectAtRoot;
|
|
96
112
|
mapSeverity: typeof mapSeverity;
|
|
97
113
|
parseAuditJson: typeof parseAuditJson;
|
|
98
114
|
computePackagesAudited: typeof computePackagesAudited;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"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"}
|
package/dist/scanners/deps.js
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
* @module scanners/deps
|
|
15
15
|
*/
|
|
16
16
|
import { spawn } from 'node:child_process';
|
|
17
|
+
import { existsSync } from 'node:fs';
|
|
18
|
+
import { join } from 'node:path';
|
|
17
19
|
import { queryOsv } from '../feeds/osv.js';
|
|
18
20
|
import { queryGhsa } from '../feeds/ghsa.js';
|
|
19
21
|
import { loadLocalIocFeed, matchesPattern } from '../feeds/local.js';
|
|
@@ -36,6 +38,34 @@ const defaultRunNpmAudit = (repoPath) => new Promise((resolve, reject) => {
|
|
|
36
38
|
});
|
|
37
39
|
});
|
|
38
40
|
// ---------------------------------------------------------------------------
|
|
41
|
+
// Node-project gate
|
|
42
|
+
//
|
|
43
|
+
// `npm audit`, when the cwd has no package.json/lockfile, walks UP the
|
|
44
|
+
// directory tree and audits the nearest Node project it finds. For a
|
|
45
|
+
// non-Node repo (e.g. an Ansible/Docker IaC repo) that misattributes
|
|
46
|
+
// another project's npm advisories to the wrong product. We gate the audit
|
|
47
|
+
// on a Node project being present AT the repo root: package.json plus a
|
|
48
|
+
// recognized lockfile. Absent either, the scan is skipped entirely.
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
const RECOGNIZED_LOCKFILES = [
|
|
51
|
+
'package-lock.json',
|
|
52
|
+
'npm-shrinkwrap.json',
|
|
53
|
+
'pnpm-lock.yaml',
|
|
54
|
+
'yarn.lock',
|
|
55
|
+
];
|
|
56
|
+
/** Coverage breadcrumb emitted when the Node-project gate skips the audit. */
|
|
57
|
+
export const NO_NODE_PROJECT_SKIP_REASON = 'no_node_project_at_repo_root';
|
|
58
|
+
/**
|
|
59
|
+
* True when `repoPath` is a Node project AT its root: a package.json and at
|
|
60
|
+
* least one recognized lockfile both present. This is the precondition for
|
|
61
|
+
* running `npm audit` without it walking up the directory tree.
|
|
62
|
+
*/
|
|
63
|
+
function defaultHasNodeProjectAtRoot(repoPath) {
|
|
64
|
+
if (!existsSync(join(repoPath, 'package.json')))
|
|
65
|
+
return false;
|
|
66
|
+
return RECOGNIZED_LOCKFILES.some((lockfile) => existsSync(join(repoPath, lockfile)));
|
|
67
|
+
}
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
39
69
|
// Severity mapping
|
|
40
70
|
// ---------------------------------------------------------------------------
|
|
41
71
|
function mapSeverity(s) {
|
|
@@ -88,9 +118,17 @@ export function createDepsScanner(opts) {
|
|
|
88
118
|
const osv = opts.queryOsv ?? ((input) => queryOsv({ packages: input.packages }));
|
|
89
119
|
const ghsa = opts.queryGhsa ?? ((input) => queryGhsa({ packages: input.packages, githubToken: input.githubToken }));
|
|
90
120
|
const local = opts.loadLocalIocFeed ?? loadLocalIocFeed;
|
|
121
|
+
const hasNodeProjectAtRoot = opts.hasNodeProjectAtRoot ?? defaultHasNodeProjectAtRoot;
|
|
91
122
|
return {
|
|
92
123
|
iocClass: 'deps',
|
|
93
124
|
async scan(ctx) {
|
|
125
|
+
// Gate on a Node project at the repo root BEFORE spawning npm audit.
|
|
126
|
+
// A non-Node repo (no package.json + lockfile) would otherwise let
|
|
127
|
+
// npm audit walk UP the tree and misattribute another project's
|
|
128
|
+
// advisories to this product.
|
|
129
|
+
if (!hasNodeProjectAtRoot(ctx.repoPath)) {
|
|
130
|
+
return { findings: [], coverage: { skipped: NO_NODE_PROJECT_SKIP_REASON } };
|
|
131
|
+
}
|
|
94
132
|
const { stdout, exitCode } = await opts.runNpmAudit(ctx.repoPath);
|
|
95
133
|
let audit;
|
|
96
134
|
try {
|
|
@@ -235,6 +273,7 @@ export const depsScanner = createDepsScanner({
|
|
|
235
273
|
/** Test seam re-export for unit tests. */
|
|
236
274
|
export const _internal = {
|
|
237
275
|
defaultRunNpmAudit,
|
|
276
|
+
defaultHasNodeProjectAtRoot,
|
|
238
277
|
mapSeverity,
|
|
239
278
|
parseAuditJson,
|
|
240
279
|
computePackagesAudited,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/scanners/deps.ts"],"names":[],"mappings":"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"}
|