@cat-factory/kernel 0.194.0 → 0.196.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/domain/context-references.d.ts +61 -0
- package/dist/domain/context-references.d.ts.map +1 -0
- package/dist/domain/context-references.js +126 -0
- package/dist/domain/context-references.js.map +1 -0
- package/dist/domain/infra-reachability.d.ts +93 -0
- package/dist/domain/infra-reachability.d.ts.map +1 -0
- package/dist/domain/infra-reachability.js +66 -0
- package/dist/domain/infra-reachability.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/ports/execution-events.d.ts +10 -1
- package/dist/ports/execution-events.d.ts.map +1 -1
- package/dist/ports/execution-events.js +7 -0
- package/dist/ports/execution-events.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/** `error.details.reason` for a reference that resolved to a page with no readable content. */
|
|
2
|
+
export declare const CONTEXT_DOCUMENT_UNREADABLE = "context_document_unreadable";
|
|
3
|
+
/** `error.details.reason` for a corpus that overflows the materialised-context byte budget. */
|
|
4
|
+
export declare const CONTEXT_DOCUMENTS_OVER_BUDGET = "context_documents_over_budget";
|
|
5
|
+
/** The little that is needed to NAME a context reference in a refusal. */
|
|
6
|
+
export interface ContextReferenceRef {
|
|
7
|
+
title: string;
|
|
8
|
+
url: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Whether a stored document has anything an agent could actually read. The materialised file (and
|
|
12
|
+
* the inline injection) is `body || excerpt`, so a row where BOTH are blank delivers a filename, a
|
|
13
|
+
* URL the agent cannot open, and nothing else.
|
|
14
|
+
*
|
|
15
|
+
* An empty page is not a hypothetical: `import` persists whatever the provider returned, and a
|
|
16
|
+
* permission-limited Confluence page, an empty Notion page and a design node whose extraction
|
|
17
|
+
* yielded nothing all project to a blank body.
|
|
18
|
+
*/
|
|
19
|
+
export declare function hasReadableContent(doc: {
|
|
20
|
+
body?: string | null;
|
|
21
|
+
excerpt?: string | null;
|
|
22
|
+
}): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The readable text an EXCERPT-ONLY caller actually puts in front of its model: the stored
|
|
25
|
+
* excerpt, else one derived from the body. Empty ⇒ that caller has nothing to show.
|
|
26
|
+
*
|
|
27
|
+
* {@link hasReadableContent} is the right test where the RAW body is delivered — a container agent
|
|
28
|
+
* opens the materialised markdown source and can at least see what is in it. A caller with no
|
|
29
|
+
* checkout renders this projection instead, and it can come back empty from a body that is NOT
|
|
30
|
+
* blank: `import` stores `buildExcerpt(body)`, i.e. `markdownToText`, so a body that is pure
|
|
31
|
+
* MARKUP — the empty fenced block an extractor emits for an embed it cannot render — collapses to
|
|
32
|
+
* nothing. Asserting over the body and then rendering this is how such a caller would re-open the
|
|
33
|
+
* very hole this module closes, one field narrower — so it asserts over what it renders.
|
|
34
|
+
*/
|
|
35
|
+
export declare function contextExcerptFor(doc: {
|
|
36
|
+
body?: string | null;
|
|
37
|
+
excerpt?: string | null;
|
|
38
|
+
}): string;
|
|
39
|
+
/**
|
|
40
|
+
* Refuse the run when any referenced context document resolved to an unreadable page, naming each
|
|
41
|
+
* one plus the two remedies. Nothing to report ⇒ a no-op, so every caller can assert
|
|
42
|
+
* unconditionally.
|
|
43
|
+
*/
|
|
44
|
+
export declare function assertContextDocumentsReadable(unreadable: readonly ContextReferenceRef[]): void;
|
|
45
|
+
/**
|
|
46
|
+
* Refuse the run when the referenced context does not fit the materialised-context byte budget,
|
|
47
|
+
* naming what did not fit and how far over the corpus is. Dropping the overflow instead would put
|
|
48
|
+
* an agent in front of a partial corpus it has no way to notice is partial — and unlike an
|
|
49
|
+
* unreadable page, there is nothing to re-import here: the human has to decide what this task
|
|
50
|
+
* actually needs.
|
|
51
|
+
*
|
|
52
|
+
* The remedy is worded for LINKED CONTEXT rather than for documents, because linked TRACKER ISSUES
|
|
53
|
+
* are sized into the same budget and can be what overflows it: "re-import a shorter page" is
|
|
54
|
+
* nonsense advice about an issue, and the message names the items, so the reader can already see
|
|
55
|
+
* which kind each one is.
|
|
56
|
+
*/
|
|
57
|
+
export declare function assertContextReferencesFit(omitted: readonly ContextReferenceRef[], sizes: {
|
|
58
|
+
totalBytes: number;
|
|
59
|
+
budgetBytes: number;
|
|
60
|
+
}): void;
|
|
61
|
+
//# sourceMappingURL=context-references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-references.d.ts","sourceRoot":"","sources":["../../src/domain/context-references.ts"],"names":[],"mappings":"AA6BA,+FAA+F;AAC/F,eAAO,MAAM,2BAA2B,gCAAgC,CAAA;AAExE,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,kCAAkC,CAAA;AAE5E,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,GAAG,OAAO,CAEV;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,MAAM,CAEhG;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,GAAG,IAAI,CAU/F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EACvC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAgBN"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { buildExcerpt } from '../shared/markdown.logic.js';
|
|
2
|
+
import { redactSecrets } from '../shared/redact-secrets.logic.js';
|
|
3
|
+
import { ValidationError } from './errors.js';
|
|
4
|
+
// A task's REFERENCED CONTEXT DOCUMENTS — the requirements / RFCs / PRDs a human attached to a
|
|
5
|
+
// block (plus anything its description names outright that resolves against the imported corpus)
|
|
6
|
+
// — carry the intent the agent is supposed to build against. The invariant this module owns:
|
|
7
|
+
//
|
|
8
|
+
// a referenced context document either reaches the agent WHOLE, or the run breaks loudly
|
|
9
|
+
// naming the ones that cannot be delivered.
|
|
10
|
+
//
|
|
11
|
+
// The failure mode it removes is silent: a reference that resolves to an empty page, or a corpus
|
|
12
|
+
// that overflows the job body's byte budget, used to be dropped on the floor. The run then looked
|
|
13
|
+
// completely healthy while the agent worked from a spec nobody noticed it never read — the exact
|
|
14
|
+
// "'absent' and 'zero' must never render the same" hazard, one layer up.
|
|
15
|
+
//
|
|
16
|
+
// Both refusals are `ValidationError`s carrying a machine-readable `reason`, and both land on the
|
|
17
|
+
// run as a `preflight` failure — the honest kind, since no agent ran. They refuse at DIFFERENT
|
|
18
|
+
// depths and are therefore classified by different seams, which must agree:
|
|
19
|
+
// `buildContextFiles` refuses inside `startJob`, so `classifyDispatchFailure` sees the throw;
|
|
20
|
+
// `resolveLinkedContext` refuses earlier, inside the context builder, so the throw leaves
|
|
21
|
+
// `advanceInstance` and the driver's `failureFromAdvanceError` sees it. Both map a `DomainError`
|
|
22
|
+
// to `preflight` + its `details.reason`, so the run's failure record keeps the cause code
|
|
23
|
+
// alongside the prose either way.
|
|
24
|
+
//
|
|
25
|
+
// Both remedies are the human's, and both are named in the message: make the reference readable
|
|
26
|
+
// (re-import the page), or detach it from the task — a task is allowed to proceed without a
|
|
27
|
+
// document, it is just never allowed to do so silently.
|
|
28
|
+
/** `error.details.reason` for a reference that resolved to a page with no readable content. */
|
|
29
|
+
export const CONTEXT_DOCUMENT_UNREADABLE = 'context_document_unreadable';
|
|
30
|
+
/** `error.details.reason` for a corpus that overflows the materialised-context byte budget. */
|
|
31
|
+
export const CONTEXT_DOCUMENTS_OVER_BUDGET = 'context_documents_over_budget';
|
|
32
|
+
/**
|
|
33
|
+
* `"Payments RFC" (https://…)`, or just the title when the reference carries no URL. Both halves
|
|
34
|
+
* are source-authored text landing on a persisted failure record and a rendered surface, and a
|
|
35
|
+
* document URL can legitimately carry a signed/`?token=` query, so it is scrubbed here — at the
|
|
36
|
+
* one site that composes it, before any caller can copy it onward.
|
|
37
|
+
*/
|
|
38
|
+
function describeRef(ref) {
|
|
39
|
+
const title = redactSecrets(ref.title.trim()) || 'untitled';
|
|
40
|
+
const url = redactSecrets(ref.url.trim());
|
|
41
|
+
return url ? `"${title}" (${url})` : `"${title}"`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The machine-readable `details.references` list: the URL where there is one, else the title.
|
|
45
|
+
* TRIMMED on the same rule {@link describeRef} uses, so the prose and the machine-readable list
|
|
46
|
+
* can never disagree about whether a reference carries a URL.
|
|
47
|
+
*/
|
|
48
|
+
function referenceIds(refs) {
|
|
49
|
+
return refs.map((r) => redactSecrets(r.url.trim() || r.title.trim()) ?? '');
|
|
50
|
+
}
|
|
51
|
+
/** `a`, `b` and `c` — an oxford-comma-free list for a one-line refusal. */
|
|
52
|
+
function joinRefs(refs) {
|
|
53
|
+
const described = refs.map(describeRef);
|
|
54
|
+
if (described.length <= 1)
|
|
55
|
+
return described.join('');
|
|
56
|
+
return `${described.slice(0, -1).join(', ')} and ${described[described.length - 1]}`;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Whether a stored document has anything an agent could actually read. The materialised file (and
|
|
60
|
+
* the inline injection) is `body || excerpt`, so a row where BOTH are blank delivers a filename, a
|
|
61
|
+
* URL the agent cannot open, and nothing else.
|
|
62
|
+
*
|
|
63
|
+
* An empty page is not a hypothetical: `import` persists whatever the provider returned, and a
|
|
64
|
+
* permission-limited Confluence page, an empty Notion page and a design node whose extraction
|
|
65
|
+
* yielded nothing all project to a blank body.
|
|
66
|
+
*/
|
|
67
|
+
export function hasReadableContent(doc) {
|
|
68
|
+
return !!(doc.body?.trim() || doc.excerpt?.trim());
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The readable text an EXCERPT-ONLY caller actually puts in front of its model: the stored
|
|
72
|
+
* excerpt, else one derived from the body. Empty ⇒ that caller has nothing to show.
|
|
73
|
+
*
|
|
74
|
+
* {@link hasReadableContent} is the right test where the RAW body is delivered — a container agent
|
|
75
|
+
* opens the materialised markdown source and can at least see what is in it. A caller with no
|
|
76
|
+
* checkout renders this projection instead, and it can come back empty from a body that is NOT
|
|
77
|
+
* blank: `import` stores `buildExcerpt(body)`, i.e. `markdownToText`, so a body that is pure
|
|
78
|
+
* MARKUP — the empty fenced block an extractor emits for an embed it cannot render — collapses to
|
|
79
|
+
* nothing. Asserting over the body and then rendering this is how such a caller would re-open the
|
|
80
|
+
* very hole this module closes, one field narrower — so it asserts over what it renders.
|
|
81
|
+
*/
|
|
82
|
+
export function contextExcerptFor(doc) {
|
|
83
|
+
return doc.excerpt?.trim() || buildExcerpt(doc.body ?? '').trim();
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Refuse the run when any referenced context document resolved to an unreadable page, naming each
|
|
87
|
+
* one plus the two remedies. Nothing to report ⇒ a no-op, so every caller can assert
|
|
88
|
+
* unconditionally.
|
|
89
|
+
*/
|
|
90
|
+
export function assertContextDocumentsReadable(unreadable) {
|
|
91
|
+
if (!unreadable.length)
|
|
92
|
+
return;
|
|
93
|
+
const plural = unreadable.length === 1 ? 'document' : 'documents';
|
|
94
|
+
throw new ValidationError(`This task references ${unreadable.length} context ${plural} with no readable content, so the ` +
|
|
95
|
+
`agent would run without ${unreadable.length === 1 ? 'it' : 'them'}: ${joinRefs(unreadable)}. ` +
|
|
96
|
+
`Re-import the page (its source may have returned an empty body), or detach it from the task ` +
|
|
97
|
+
`to run without it.`, { reason: CONTEXT_DOCUMENT_UNREADABLE, references: referenceIds(unreadable) });
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Refuse the run when the referenced context does not fit the materialised-context byte budget,
|
|
101
|
+
* naming what did not fit and how far over the corpus is. Dropping the overflow instead would put
|
|
102
|
+
* an agent in front of a partial corpus it has no way to notice is partial — and unlike an
|
|
103
|
+
* unreadable page, there is nothing to re-import here: the human has to decide what this task
|
|
104
|
+
* actually needs.
|
|
105
|
+
*
|
|
106
|
+
* The remedy is worded for LINKED CONTEXT rather than for documents, because linked TRACKER ISSUES
|
|
107
|
+
* are sized into the same budget and can be what overflows it: "re-import a shorter page" is
|
|
108
|
+
* nonsense advice about an issue, and the message names the items, so the reader can already see
|
|
109
|
+
* which kind each one is.
|
|
110
|
+
*/
|
|
111
|
+
export function assertContextReferencesFit(omitted, sizes) {
|
|
112
|
+
if (!omitted.length)
|
|
113
|
+
return;
|
|
114
|
+
const kb = (bytes) => `${Math.ceil(bytes / 1024)} KB`;
|
|
115
|
+
const plural = omitted.length === 1 ? 'item' : 'items';
|
|
116
|
+
throw new ValidationError(`The context attached to this task totals ${kb(sizes.totalBytes)}, over the ` +
|
|
117
|
+
`${kb(sizes.budgetBytes)} an agent's checkout can carry, so ${omitted.length} ${plural} ` +
|
|
118
|
+
`would not reach it: ${joinRefs(omitted)}. Detach the linked context this task does not ` +
|
|
119
|
+
`need to unblock the run.`, {
|
|
120
|
+
reason: CONTEXT_DOCUMENTS_OVER_BUDGET,
|
|
121
|
+
references: referenceIds(omitted),
|
|
122
|
+
totalBytes: sizes.totalBytes,
|
|
123
|
+
budgetBytes: sizes.budgetBytes,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=context-references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-references.js","sourceRoot":"","sources":["../../src/domain/context-references.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { type ConnectionTestResult, type InfraSetup, type InfraSetupArea, type Notification } from '@cat-factory/contracts';
|
|
2
|
+
/** What one area's live probe reported. `indeterminate` is NOT a verdict — see {@link ProbeOutcome}. */
|
|
3
|
+
export type ProbeVerdict = 'reachable' | 'unreachable' | 'indeterminate' | 'not_configured';
|
|
4
|
+
/**
|
|
5
|
+
* One area's probe result.
|
|
6
|
+
*
|
|
7
|
+
* `indeterminate` is deliberately distinct from `unreachable`: it means the probe never got to
|
|
8
|
+
* ask (the connection could not be resolved, its secret bundle would not decrypt, the provider
|
|
9
|
+
* exposes no connection test). Reporting that as an outage would turn a LOCAL fault — the
|
|
10
|
+
* classic one being a node with no access to the sealing key — into a banner blaming the
|
|
11
|
+
* operator's cluster. An indeterminate area is left exactly as it was recorded, so a genuine
|
|
12
|
+
* outage already on the card survives and a healthy area is never falsely accused.
|
|
13
|
+
*
|
|
14
|
+
* `not_configured` is distinct from BOTH, and the distinction is what stops an outage card
|
|
15
|
+
* outliving the thing it reports on: nothing is registered for the area any more, which is
|
|
16
|
+
* knowably NOT an outage. Collapsing it into `indeterminate` (as "there was nothing to probe"
|
|
17
|
+
* once did) meant an operator who fixed a dead runner pool by UN-REGISTERING it kept the open
|
|
18
|
+
* `infra_unreachable` card forever — no probe could ever clear a record that only a probe
|
|
19
|
+
* clears, and the staleness sweep escalated it red. So it drops the recorded area while
|
|
20
|
+
* announcing NOTHING: the honest live state is the `not_defined` setup gap the snapshot
|
|
21
|
+
* recomputes, never a "recovered" push for a connection that no longer exists.
|
|
22
|
+
*/
|
|
23
|
+
export interface ProbeOutcome {
|
|
24
|
+
area: InfraSetupArea;
|
|
25
|
+
verdict: ProbeVerdict;
|
|
26
|
+
/** The probe's operator-facing reason, when it reported one. Never persisted; see {@link InfraSetupTransition}. */
|
|
27
|
+
detail?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* What probing a workspace's SAVED connection found, as the connection services report it.
|
|
31
|
+
*
|
|
32
|
+
* Three states, not "a result or null", because the three need three different dispositions and
|
|
33
|
+
* only one of them is an outage. `absent` is a deployment/operator FACT (nothing is registered);
|
|
34
|
+
* `unprobeable` is our own inability to ask (a de-registered backend kind, an unparseable config
|
|
35
|
+
* blob, a provider with no connection test); `answered` carries the provider's verdict. Collapsing
|
|
36
|
+
* the first two — which the `ConnectionTestResult | null` shape forced — is what let an outage card
|
|
37
|
+
* outlive the connection it reported on.
|
|
38
|
+
*/
|
|
39
|
+
export type SavedConnectionProbe = {
|
|
40
|
+
state: 'absent';
|
|
41
|
+
} | {
|
|
42
|
+
state: 'unprobeable';
|
|
43
|
+
reason: string;
|
|
44
|
+
} | {
|
|
45
|
+
state: 'answered';
|
|
46
|
+
result: ConnectionTestResult;
|
|
47
|
+
};
|
|
48
|
+
/** One area's reachability transition, as published on the `infraSetup` realtime event. */
|
|
49
|
+
export interface InfraSetupTransition {
|
|
50
|
+
area: InfraSetupArea;
|
|
51
|
+
/** `unreachable` when the area just started failing; `configured` when it recovered. */
|
|
52
|
+
status: 'unreachable' | 'configured';
|
|
53
|
+
detail?: string;
|
|
54
|
+
}
|
|
55
|
+
/** What one sweep pass concluded for a workspace. */
|
|
56
|
+
export interface ReachabilityDecision {
|
|
57
|
+
/** The areas to record on the card, sorted — the card's dedup identity. Empty ⇒ clear the card. */
|
|
58
|
+
unreachableAreas: InfraSetupArea[];
|
|
59
|
+
/** The transitions to publish. Empty ⇒ nothing changed, so nothing is announced. */
|
|
60
|
+
transitions: InfraSetupTransition[];
|
|
61
|
+
/**
|
|
62
|
+
* Whether the recorded set differs from `previous`, i.e. whether the card needs writing.
|
|
63
|
+
*
|
|
64
|
+
* Deliberately NOT derivable from `transitions.length`: a `not_configured` area drops out of the
|
|
65
|
+
* record while announcing nothing, so a pass that short-circuits on "no transitions" would leave
|
|
66
|
+
* the stale card in place — exactly the bug that verdict exists to fix.
|
|
67
|
+
*/
|
|
68
|
+
recordChanged: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* The areas recorded as unreachable on a workspace's open `infra_unreachable` card, or an empty
|
|
72
|
+
* list when there is none. Filtered to the known probed areas so a card written by a newer
|
|
73
|
+
* deployment (or a hand-edited payload) can never inject an area this build does not model.
|
|
74
|
+
*/
|
|
75
|
+
export declare function recordedUnreachableAreas(card: Notification | null | undefined): InfraSetupArea[];
|
|
76
|
+
/**
|
|
77
|
+
* Decide one workspace's reachability outcome: the set to record and the transitions to announce.
|
|
78
|
+
*
|
|
79
|
+
* `previous` is what the card recorded; `observed` is this pass's probes. An area with no probe in
|
|
80
|
+
* `observed` — or an `indeterminate` one — keeps its previous state, so a pass that could only
|
|
81
|
+
* reach half the areas neither invents a recovery nor drops an ongoing outage.
|
|
82
|
+
*/
|
|
83
|
+
export declare function decideReachability(previous: readonly InfraSetupArea[], observed: readonly ProbeOutcome[]): ReachabilityDecision;
|
|
84
|
+
/**
|
|
85
|
+
* Fold the recorded unreachable areas into a setup projection, for the board snapshot.
|
|
86
|
+
*
|
|
87
|
+
* A pure fold over contracts' `applyInfraSetupTransition`, which owns the rule about which prior
|
|
88
|
+
* state a probe verdict may overwrite (only a `configured` area may become `unreachable`). Sharing
|
|
89
|
+
* it with the SPA's live event patch is the point: the two paths render the same banner, so a rule
|
|
90
|
+
* implemented twice is a rule that eventually disagrees with itself.
|
|
91
|
+
*/
|
|
92
|
+
export declare function applyInfraReachability(projection: InfraSetup, unreachableAreas: readonly InfraSetupArea[]): InfraSetup;
|
|
93
|
+
//# sourceMappingURL=infra-reachability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-reachability.d.ts","sourceRoot":"","sources":["../../src/domain/infra-reachability.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAA;AAmB/B,wGAAwG;AACxG,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,gBAAgB,CAAA;AAE3F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,mHAAmH;IACnH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GACnB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAA;AAEvD,2FAA2F;AAC3F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,CAAA;IACpB,wFAAwF;IACxF,MAAM,EAAE,aAAa,GAAG,YAAY,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,mGAAmG;IACnG,gBAAgB,EAAE,cAAc,EAAE,CAAA;IAClC,oFAAoF;IACpF,WAAW,EAAE,oBAAoB,EAAE,CAAA;IACnC;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,EAAE,CAKhG;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,cAAc,EAAE,EACnC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,oBAAoB,CA6BtB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,SAAS,cAAc,EAAE,GAC1C,UAAU,CAKZ"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { applyInfraSetupTransition, INFRA_SETUP_PROBED_AREAS, } from '@cat-factory/contracts';
|
|
2
|
+
/**
|
|
3
|
+
* The areas recorded as unreachable on a workspace's open `infra_unreachable` card, or an empty
|
|
4
|
+
* list when there is none. Filtered to the known probed areas so a card written by a newer
|
|
5
|
+
* deployment (or a hand-edited payload) can never inject an area this build does not model.
|
|
6
|
+
*/
|
|
7
|
+
export function recordedUnreachableAreas(card) {
|
|
8
|
+
const raw = card?.payload?.unreachableAreas;
|
|
9
|
+
if (!raw)
|
|
10
|
+
return [];
|
|
11
|
+
const probed = INFRA_SETUP_PROBED_AREAS;
|
|
12
|
+
return raw.filter((area) => probed.includes(area));
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Decide one workspace's reachability outcome: the set to record and the transitions to announce.
|
|
16
|
+
*
|
|
17
|
+
* `previous` is what the card recorded; `observed` is this pass's probes. An area with no probe in
|
|
18
|
+
* `observed` — or an `indeterminate` one — keeps its previous state, so a pass that could only
|
|
19
|
+
* reach half the areas neither invents a recovery nor drops an ongoing outage.
|
|
20
|
+
*/
|
|
21
|
+
export function decideReachability(previous, observed) {
|
|
22
|
+
const was = new Set(previous);
|
|
23
|
+
const next = new Set(previous);
|
|
24
|
+
const transitions = [];
|
|
25
|
+
for (const probe of observed) {
|
|
26
|
+
if (probe.verdict === 'indeterminate')
|
|
27
|
+
continue;
|
|
28
|
+
// Nothing is registered for the area any more: forget any recorded outage (so the card clears
|
|
29
|
+
// instead of outliving the connection) but announce NOTHING — see {@link ProbeOutcome}.
|
|
30
|
+
if (probe.verdict === 'not_configured') {
|
|
31
|
+
next.delete(probe.area);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const failing = probe.verdict === 'unreachable';
|
|
35
|
+
if (failing === was.has(probe.area))
|
|
36
|
+
continue;
|
|
37
|
+
if (failing)
|
|
38
|
+
next.add(probe.area);
|
|
39
|
+
else
|
|
40
|
+
next.delete(probe.area);
|
|
41
|
+
transitions.push({
|
|
42
|
+
area: probe.area,
|
|
43
|
+
status: failing ? 'unreachable' : 'configured',
|
|
44
|
+
...(failing && probe.detail ? { detail: probe.detail } : {}),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
// Sorted so the recorded set is a STABLE identity: two passes that observe the same outage in
|
|
49
|
+
// a different probe order must not read as a content change and re-deliver the card.
|
|
50
|
+
unreachableAreas: [...next].sort(),
|
|
51
|
+
transitions,
|
|
52
|
+
recordChanged: next.size !== was.size || [...next].some((area) => !was.has(area)),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Fold the recorded unreachable areas into a setup projection, for the board snapshot.
|
|
57
|
+
*
|
|
58
|
+
* A pure fold over contracts' `applyInfraSetupTransition`, which owns the rule about which prior
|
|
59
|
+
* state a probe verdict may overwrite (only a `configured` area may become `unreachable`). Sharing
|
|
60
|
+
* it with the SPA's live event patch is the point: the two paths render the same banner, so a rule
|
|
61
|
+
* implemented twice is a rule that eventually disagrees with itself.
|
|
62
|
+
*/
|
|
63
|
+
export function applyInfraReachability(projection, unreachableAreas) {
|
|
64
|
+
return unreachableAreas.reduce((folded, area) => applyInfraSetupTransition(folded, area, 'unreachable'), projection);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=infra-reachability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-reachability.js","sourceRoot":"","sources":["../../src/domain/infra-reachability.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,wBAAwB,GAIzB,MAAM,wBAAwB,CAAA;AAuF/B;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAqC;IAC5E,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAA;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,MAAM,MAAM,GAAsB,wBAAwB,CAAA;IAC1D,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAmC,EACnC,QAAiC;IAEjC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC9B,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,eAAe;YAAE,SAAQ;QAC/C,8FAA8F;QAC9F,wFAAwF;QACxF,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACvB,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,aAAa,CAAA;QAC/C,IAAI,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC7C,IAAI,OAAO;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;;YAC5B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;YAC9C,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAA;IACJ,CAAC;IACD,OAAO;QACL,8FAA8F;QAC9F,qFAAqF;QACrF,gBAAgB,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE;QAClC,WAAW;QACX,aAAa,EAAE,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KAClF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,UAAsB,EACtB,gBAA2C;IAE3C,OAAO,gBAAgB,CAAC,MAAM,CAC5B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,EACxE,UAAU,CACX,CAAA;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -33,7 +33,10 @@ export { type VcsHttpErrorContext, describeVcsApiError, VCS_DOC_URLS, GITHUB_SET
|
|
|
33
33
|
export { DispatchError, DISPATCH_DOC_URLS, harnessDispatchError, harnessDispatchFailureMessage, isDispatchFailure, } from './domain/dispatch-errors.js';
|
|
34
34
|
export { HARNESS_FAILURE_CAUSES, type HarnessFailureCause, isHarnessFailureCause, failureKindFromHarnessCause, } from './domain/harness-failure.js';
|
|
35
35
|
export { CI_AGENT_KIND, CI_FIXER_AGENT_KIND, CONFLICTS_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, POST_RELEASE_HEALTH_AGENT_KIND, ON_CALL_AGENT_KIND, HUMAN_REVIEW_AGENT_KIND, FIXER_AGENT_KIND, DOC_QUALITY_AGENT_KIND, DOC_FIXER_AGENT_KIND, type CiVerdict, type ReleaseGateVerdict, aggregateCi, aggregateRepoCi, headFields, isCiGreen, listFailingChecks, listFailingChecksAcrossRepos, describeFailingChecks, describeFailingRepos, classifyReleaseHealth, describeRegressedSignals, renderReleaseEvidence, } from './domain/gate-logic.js';
|
|
36
|
+
export type { InfraSetupTransition, ProbeOutcome, ProbeVerdict, ReachabilityDecision, SavedConnectionProbe, } from './domain/infra-reachability.js';
|
|
37
|
+
export { applyInfraReachability, decideReachability, recordedUnreachableAreas, } from './domain/infra-reachability.js';
|
|
36
38
|
export { normalizeComposeFileRef, normalizeComposeFileRefs, composePathDir, composeProjectDir, composeBaseDepth, materializedComposePath, composeSourcesNeedPrimaryRepo, describeComposeSource, } from './domain/compose-sources.js';
|
|
39
|
+
export { CONTEXT_DOCUMENT_UNREADABLE, CONTEXT_DOCUMENTS_OVER_BUDGET, type ContextReferenceRef, hasReadableContent, contextExcerptFor, assertContextDocumentsReadable, assertContextReferencesFit, } from './domain/context-references.js';
|
|
37
40
|
export { clearsConsensusBar, consensusGroupBar, selectConsensusGroup, applyConsensusGroup, } from './domain/consensus-groups.js';
|
|
38
41
|
export { PR_REPORT_MARKER_START, PR_REPORT_MARKER_END, spliceManagedSection, readManagedSection, } from './domain/pr-report.js';
|
|
39
42
|
export { type DocStructureInput, type DocStructureAnalysis, type Heading, analyzeDocStructure, documentHeadings, hasDocStructureIssues, resolveDocLinkPath, } from './domain/doc-quality-logic.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -70,10 +70,15 @@ export { HARNESS_FAILURE_CAUSES, isHarnessFailureCause, failureKindFromHarnessCa
|
|
|
70
70
|
// Pure gate logic + gate/helper agent-kind constants, shared by the built-in gate suite
|
|
71
71
|
// (`@cat-factory/gates`) and the engine. See `domain/gate-logic.ts`.
|
|
72
72
|
export { CI_AGENT_KIND, CI_FIXER_AGENT_KIND, CONFLICTS_AGENT_KIND, CONFLICT_RESOLVER_AGENT_KIND, POST_RELEASE_HEALTH_AGENT_KIND, ON_CALL_AGENT_KIND, HUMAN_REVIEW_AGENT_KIND, FIXER_AGENT_KIND, DOC_QUALITY_AGENT_KIND, DOC_FIXER_AGENT_KIND, aggregateCi, aggregateRepoCi, headFields, isCiGreen, listFailingChecks, listFailingChecksAcrossRepos, describeFailingChecks, describeFailingRepos, classifyReleaseHealth, describeRegressedSignals, renderReleaseEvidence, } from './domain/gate-logic.js';
|
|
73
|
+
export { applyInfraReachability, decideReachability, recordedUnreachableAreas, } from './domain/infra-reachability.js';
|
|
73
74
|
// Where an ordered `-f` compose layer's text comes from (the primary repo, a directly-supplied
|
|
74
75
|
// document, or another repo), and the pure placement rules both consumers share — the compose
|
|
75
76
|
// environment provider and the shared-stack bring-up. See `domain/compose-sources.ts`.
|
|
76
77
|
export { normalizeComposeFileRef, normalizeComposeFileRefs, composePathDir, composeProjectDir, composeBaseDepth, materializedComposePath, composeSourcesNeedPrimaryRepo, describeComposeSource, } from './domain/compose-sources.js';
|
|
78
|
+
// The "a referenced context document reaches the agent whole, or the run breaks loudly naming it"
|
|
79
|
+
// invariant, shared by the engine's resolution path and the container's materialiser. See
|
|
80
|
+
// `domain/context-references.ts`.
|
|
81
|
+
export { CONTEXT_DOCUMENT_UNREADABLE, CONTEXT_DOCUMENTS_OVER_BUDGET, hasReadableContent, contextExcerptFor, assertContextDocumentsReadable, assertContextReferencesFit, } from './domain/context-references.js';
|
|
77
82
|
// Tiered consensus selection: which of a step's candidate model groups a task's estimate earns.
|
|
78
83
|
export { clearsConsensusBar, consensusGroupBar, selectConsensusGroup, applyConsensusGroup, } from './domain/consensus-groups.js';
|
|
79
84
|
// The marker-delimited splice that makes the engine's PR verification report idempotent.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Block, BootstrapJob, BrainstormSession, ConsensusSession, ClarityReview, DocInterviewSession, EnvConfigRepairJob, EnvironmentTestRun, ExecutionInstance, Initiative, KaizenGrading, LlmCallActivity, Notification, RequirementReview } from '../domain/types.js';
|
|
2
|
+
import type { InfraSetupTransition } from '../domain/infra-reachability.js';
|
|
2
3
|
export interface ExecutionEventPublisher {
|
|
3
4
|
/** A run advanced: push the updated instance and its rolled-up block. */
|
|
4
5
|
executionChanged(workspaceId: string, instance: ExecutionInstance, block?: Block | null): Promise<void>;
|
|
@@ -40,6 +41,13 @@ export interface ExecutionEventPublisher {
|
|
|
40
41
|
* that predate notifications need no change.
|
|
41
42
|
*/
|
|
42
43
|
notificationChanged?(workspaceId: string, notification: Notification): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* One infrastructure area's reachability changed: push the delta so the setup banner appears
|
|
46
|
+
* (or clears) the moment the reachability watcher notices, instead of on whoever's next reload.
|
|
47
|
+
* Called on TRANSITION only — an outage is announced once, not once per sweep. Optional; a
|
|
48
|
+
* runtime with no real-time transport wired leaves it a no-op.
|
|
49
|
+
*/
|
|
50
|
+
infraSetupChanged?(workspaceId: string, change: InfraSetupTransition): Promise<void>;
|
|
43
51
|
/**
|
|
44
52
|
* One container-agent LLM call completed at the proxy: push its compact summary
|
|
45
53
|
* (no prompt/response bodies) so an open "Model activity" view updates live,
|
|
@@ -106,13 +114,14 @@ export interface ExecutionEventPublisher {
|
|
|
106
114
|
* as before — no events are pushed (tests, and any deployment without the
|
|
107
115
|
* WORKSPACE_EVENTS binding).
|
|
108
116
|
*/
|
|
109
|
-
export declare class NoopEventPublisher implements ExecutionEventPublisher {
|
|
117
|
+
export declare class NoopEventPublisher implements Required<ExecutionEventPublisher> {
|
|
110
118
|
executionChanged(): Promise<void>;
|
|
111
119
|
boardChanged(): Promise<void>;
|
|
112
120
|
bootstrapChanged(): Promise<void>;
|
|
113
121
|
envConfigRepairChanged(): Promise<void>;
|
|
114
122
|
envTestChanged(): Promise<void>;
|
|
115
123
|
notificationChanged(): Promise<void>;
|
|
124
|
+
infraSetupChanged(): Promise<void>;
|
|
116
125
|
llmCallObserved(): Promise<void>;
|
|
117
126
|
requirementReviewChanged(): Promise<void>;
|
|
118
127
|
consensusSessionChanged(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-events.d.ts","sourceRoot":"","sources":["../../src/ports/execution-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"execution-events.d.ts","sourceRoot":"","sources":["../../src/ports/execution-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,YAAY,EACZ,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAc3E,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GACnB,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB;;;;;;;;;OASG;IACH,YAAY,CACV,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,EACvB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GACjC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB;;;;;OAKG;IACH,gBAAgB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9F;;;;;OAKG;IACH,sBAAsB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpF;;;;;OAKG;IACH,cAAc,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5E;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpF;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpF;;;;;;OAMG;IACH,eAAe,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/E;;;;;;OAMG;IACH,wBAAwB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxF;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvF;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChF;;;;;OAKG;IACH,wBAAwB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzF;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjF;;;;;OAKG;IACH,iBAAiB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED;;;;GAIG;AAOH,qBAAa,kBAAmB,YAAW,QAAQ,CAAC,uBAAuB,CAAC;IACpE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACpC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAChC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACpC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAC1C,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAClC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACrC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACnC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAC5C,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAC3C,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACxC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IAC5C,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACxC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;IACrC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;CAC9C"}
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
* as before — no events are pushed (tests, and any deployment without the
|
|
4
4
|
* WORKSPACE_EVENTS binding).
|
|
5
5
|
*/
|
|
6
|
+
// `Required<…>` rather than the bare port, and that is load-bearing beyond this class: because
|
|
7
|
+
// every publisher method is OPTIONAL, a new event added to the port compiles fine with no
|
|
8
|
+
// implementation anywhere — and `FanOutEventPublisher` (which delegates method-by-method) would
|
|
9
|
+
// then DROP it silently for every deployment wiring the in-org fan-out. Its drift guard reflects
|
|
10
|
+
// this class's surface, so pinning this one to the port's FULL surface is what makes the next
|
|
11
|
+
// added event fail at compile time here instead of in production.
|
|
6
12
|
export class NoopEventPublisher {
|
|
7
13
|
async executionChanged() { }
|
|
8
14
|
async boardChanged() { }
|
|
@@ -10,6 +16,7 @@ export class NoopEventPublisher {
|
|
|
10
16
|
async envConfigRepairChanged() { }
|
|
11
17
|
async envTestChanged() { }
|
|
12
18
|
async notificationChanged() { }
|
|
19
|
+
async infraSetupChanged() { }
|
|
13
20
|
async llmCallObserved() { }
|
|
14
21
|
async requirementReviewChanged() { }
|
|
15
22
|
async consensusSessionChanged() { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-events.js","sourceRoot":"","sources":["../../src/ports/execution-events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution-events.js","sourceRoot":"","sources":["../../src/ports/execution-events.ts"],"names":[],"mappings":"AAqJA;;;;GAIG;AACH,+FAA+F;AAC/F,0FAA0F;AAC1F,gGAAgG;AAChG,iGAAiG;AACjG,8FAA8F;AAC9F,kEAAkE;AAClE,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAC,gBAAgB,KAAmB,CAAC;IAC1C,KAAK,CAAC,YAAY,KAAmB,CAAC;IACtC,KAAK,CAAC,gBAAgB,KAAmB,CAAC;IAC1C,KAAK,CAAC,sBAAsB,KAAmB,CAAC;IAChD,KAAK,CAAC,cAAc,KAAmB,CAAC;IACxC,KAAK,CAAC,mBAAmB,KAAmB,CAAC;IAC7C,KAAK,CAAC,iBAAiB,KAAmB,CAAC;IAC3C,KAAK,CAAC,eAAe,KAAmB,CAAC;IACzC,KAAK,CAAC,wBAAwB,KAAmB,CAAC;IAClD,KAAK,CAAC,uBAAuB,KAAmB,CAAC;IACjD,KAAK,CAAC,oBAAoB,KAAmB,CAAC;IAC9C,KAAK,CAAC,wBAAwB,KAAmB,CAAC;IAClD,KAAK,CAAC,oBAAoB,KAAmB,CAAC;IAC9C,KAAK,CAAC,iBAAiB,KAAmB,CAAC;IAC3C,KAAK,CAAC,mBAAmB,KAAmB,CAAC;CAC9C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.196.0",
|
|
4
4
|
"description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"ai": "^7.0.37",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/contracts": "0.198.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@vitest/coverage-v8": "^4.1.10",
|