instar 1.3.877 → 1.3.879
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/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/core/ApprenticeshipMatrixAcceptance.d.ts +124 -0
- package/dist/core/ApprenticeshipMatrixAcceptance.d.ts.map +1 -0
- package/dist/core/ApprenticeshipMatrixAcceptance.js +240 -0
- package/dist/core/ApprenticeshipMatrixAcceptance.js.map +1 -0
- package/dist/core/ApprenticeshipProgram.d.ts +25 -3
- package/dist/core/ApprenticeshipProgram.d.ts.map +1 -1
- package/dist/core/ApprenticeshipProgram.js +72 -25
- package/dist/core/ApprenticeshipProgram.js.map +1 -1
- package/dist/core/ApprenticeshipStallGate.d.ts +297 -0
- package/dist/core/ApprenticeshipStallGate.d.ts.map +1 -0
- package/dist/core/ApprenticeshipStallGate.js +935 -0
- package/dist/core/ApprenticeshipStallGate.js.map +1 -0
- package/dist/core/MessagingToneGate.d.ts +33 -1
- package/dist/core/MessagingToneGate.d.ts.map +1 -1
- package/dist/core/MessagingToneGate.js +47 -9
- package/dist/core/MessagingToneGate.js.map +1 -1
- package/dist/core/PostUpdateMigrator.d.ts +8 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +75 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/apprenticeshipStallGate.worker.d.ts +13 -0
- package/dist/core/apprenticeshipStallGate.worker.d.ts.map +1 -0
- package/dist/core/apprenticeshipStallGate.worker.js +23 -0
- package/dist/core/apprenticeshipStallGate.worker.js.map +1 -0
- package/dist/core/types.d.ts +13 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/monitoring/SelfUnblockChecklist.d.ts +1 -1
- package/dist/monitoring/SelfUnblockChecklist.d.ts.map +1 -1
- package/dist/monitoring/SelfUnblockChecklist.js +2 -0
- package/dist/monitoring/SelfUnblockChecklist.js.map +1 -1
- package/dist/monitoring/SelfUnblockProbeProviders.d.ts +19 -1
- package/dist/monitoring/SelfUnblockProbeProviders.d.ts.map +1 -1
- package/dist/monitoring/SelfUnblockProbeProviders.js +187 -2
- package/dist/monitoring/SelfUnblockProbeProviders.js.map +1 -1
- package/dist/monitoring/guardManifest.d.ts.map +1 -1
- package/dist/monitoring/guardManifest.js +22 -0
- package/dist/monitoring/guardManifest.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +4 -2
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +22 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +2 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +3 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +281 -5
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/scripts/stall-matrix-live-check.mjs +309 -0
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates/jobs/instar/stall-matrix-live-check.md +32 -0
- package/src/scaffold/templates.ts +4 -2
- package/upgrades/1.3.878.md +67 -0
- package/upgrades/1.3.879.md +62 -0
- package/upgrades/side-effects/correction-derived-hardening.md +188 -0
- package/upgrades/side-effects/stall-coverage-matrix-pr-b.md +154 -0
- package/upgrades/1.3.877.md +0 -53
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprenticeshipMatrixAcceptance.d.ts","sourceRoot":"","sources":["../../src/core/ApprenticeshipMatrixAcceptance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ApprenticeshipMatrixAcceptance — the §2.2 acceptance-authority machinery for
|
|
3
|
+
* the stall-coverage matrix gate (PR-B).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/framework-stall-coverage-matrix.md §2.2, Frontloaded
|
|
6
|
+
* Decisions 14 + 20.
|
|
7
|
+
*
|
|
8
|
+
* ONE acceptance artifact shape everywhere:
|
|
9
|
+
* { contentHash, enumerated row ids, authenticated principal, challenge ref }
|
|
10
|
+
* minted via the SAME server-enumerates → operator-replies challenge mechanic
|
|
11
|
+
* as the existing autonomous ratify-deferral flow (ScopeAccretionRatifier):
|
|
12
|
+
* the server renders the exact enumerated set, the operator's authenticated
|
|
13
|
+
* reply (dashboard-PIN route OR a reply-anchored verified-operator Telegram
|
|
14
|
+
* confirmation) binds exactly that set, and the challenge is SINGLE-USE —
|
|
15
|
+
* replay refused.
|
|
16
|
+
*
|
|
17
|
+
* Binding granularity (Decision 20): a ROW-SCOPED acceptance binds its
|
|
18
|
+
* contentHash to the canonical serialization of exactly the accepted rows (a
|
|
19
|
+
* codemod adding UNRELATED rows does not void it); a WHOLE-SET transition
|
|
20
|
+
* acceptance binds the whole-matrix content hash (re-review on ANY change is
|
|
21
|
+
* the intent); a per-instance OVERRIDE additionally binds to the named
|
|
22
|
+
* rule/row and expires on any change to that row.
|
|
23
|
+
*
|
|
24
|
+
* Requester ≠ acceptor STRUCTURALLY (Decision 14): binding requires an
|
|
25
|
+
* authenticated principal kind — 'operator-pin' (the dashboard-PIN route) or
|
|
26
|
+
* 'verified-operator' (the reply-anchored Telegram path). A 'bearer' principal
|
|
27
|
+
* — the transition caller's own token — is REFUSED at the bind chokepoint, so
|
|
28
|
+
* self-approval cannot be recorded by construction.
|
|
29
|
+
*
|
|
30
|
+
* Persistence: pending challenges live in
|
|
31
|
+
* `.instar/apprenticeship/matrix-acceptance.json`; BOUND acceptance artifacts
|
|
32
|
+
* are appended tamper-evidently to logs/apprenticeship-decisions.jsonl (the
|
|
33
|
+
* gate machine's acceptance store — Decision 20).
|
|
34
|
+
*/
|
|
35
|
+
import { randomBytes, createHash } from 'node:crypto';
|
|
36
|
+
import fs from 'node:fs';
|
|
37
|
+
import path from 'node:path';
|
|
38
|
+
import { appendTamperEvidentDecisionRow, readDecisionRows, rowIntegrityHash, } from './ApprenticeshipStallGate.js';
|
|
39
|
+
import { parseRatificationConfirmation } from './ScopeAccretionRatifier.js';
|
|
40
|
+
const CHALLENGE_CAP = 100;
|
|
41
|
+
const ACCEPTANCE_GATE = 'matrix-acceptance';
|
|
42
|
+
export class MatrixAcceptanceStore {
|
|
43
|
+
storePath;
|
|
44
|
+
decisionLogPath;
|
|
45
|
+
now;
|
|
46
|
+
log;
|
|
47
|
+
constructor(deps) {
|
|
48
|
+
this.storePath = path.join(deps.stateDir, 'apprenticeship', 'matrix-acceptance.json');
|
|
49
|
+
this.decisionLogPath =
|
|
50
|
+
deps.decisionLogPath ?? path.join(deps.stateDir, 'logs', 'apprenticeship-decisions.jsonl');
|
|
51
|
+
this.now = deps.now ?? (() => new Date());
|
|
52
|
+
this.log = deps.log;
|
|
53
|
+
}
|
|
54
|
+
// ── Challenge persistence ──
|
|
55
|
+
loadStore() {
|
|
56
|
+
try {
|
|
57
|
+
const raw = JSON.parse(fs.readFileSync(this.storePath, 'utf8'));
|
|
58
|
+
if (raw && raw.version === 1 && Array.isArray(raw.challenges))
|
|
59
|
+
return raw;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// fresh/corrupt store starts empty — challenges are short-lived mint
|
|
63
|
+
// records, never the acceptance artifacts themselves.
|
|
64
|
+
}
|
|
65
|
+
return { version: 1, challenges: [] };
|
|
66
|
+
}
|
|
67
|
+
saveStore(store) {
|
|
68
|
+
fs.mkdirSync(path.dirname(this.storePath), { recursive: true });
|
|
69
|
+
const tmp = `${this.storePath}.${process.pid}.tmp`;
|
|
70
|
+
fs.writeFileSync(tmp, JSON.stringify(store, null, 2) + '\n');
|
|
71
|
+
fs.renameSync(tmp, this.storePath);
|
|
72
|
+
}
|
|
73
|
+
// ── Mint (server-enumerates) ──
|
|
74
|
+
mintChallenge(input) {
|
|
75
|
+
const challenge = {
|
|
76
|
+
challengeId: `MAC-${randomBytes(8).toString('hex')}`,
|
|
77
|
+
instanceId: input.instanceId,
|
|
78
|
+
framework: input.framework,
|
|
79
|
+
scope: input.scope,
|
|
80
|
+
contentHash: input.contentHash,
|
|
81
|
+
rowIds: [...input.rowIds],
|
|
82
|
+
...(input.rule ? { rule: input.rule } : {}),
|
|
83
|
+
createdAt: this.now().toISOString(),
|
|
84
|
+
used: false,
|
|
85
|
+
};
|
|
86
|
+
const store = this.loadStore();
|
|
87
|
+
store.challenges.push(challenge);
|
|
88
|
+
if (store.challenges.length > CHALLENGE_CAP) {
|
|
89
|
+
store.challenges = store.challenges.slice(-CHALLENGE_CAP);
|
|
90
|
+
}
|
|
91
|
+
this.saveStore(store);
|
|
92
|
+
return challenge;
|
|
93
|
+
}
|
|
94
|
+
getChallenge(challengeId) {
|
|
95
|
+
return this.loadStore().challenges.find((c) => c.challengeId === challengeId) ?? null;
|
|
96
|
+
}
|
|
97
|
+
/** Record where the conversational enumeration message landed (reply anchor). */
|
|
98
|
+
attachMessage(challengeId, ref) {
|
|
99
|
+
const store = this.loadStore();
|
|
100
|
+
const c = store.challenges.find((c) => c.challengeId === challengeId);
|
|
101
|
+
if (!c)
|
|
102
|
+
return;
|
|
103
|
+
c.topicId = ref.topicId;
|
|
104
|
+
c.messageId = ref.messageId;
|
|
105
|
+
this.saveStore(store);
|
|
106
|
+
}
|
|
107
|
+
// ── Bind (operator-replies; single-use; hash re-checked at bind time) ──
|
|
108
|
+
bind(input) {
|
|
109
|
+
// Requester ≠ acceptor, structurally (Decision 14): the transition caller
|
|
110
|
+
// holds the Bearer token, so a bearer-principal "acceptance" is
|
|
111
|
+
// self-approval and is refused at this single chokepoint.
|
|
112
|
+
if (input.principal.kind !== 'operator-pin' && input.principal.kind !== 'verified-operator') {
|
|
113
|
+
return { ok: false, reason: 'acceptance principal must be operator-pin or verified-operator (requester ≠ acceptor)' };
|
|
114
|
+
}
|
|
115
|
+
const store = this.loadStore();
|
|
116
|
+
const challenge = store.challenges.find((c) => c.challengeId === input.challengeId);
|
|
117
|
+
if (!challenge)
|
|
118
|
+
return { ok: false, reason: 'unknown challenge' };
|
|
119
|
+
if (challenge.used)
|
|
120
|
+
return { ok: false, reason: 'challenge already used (single-use — replay refused)' };
|
|
121
|
+
if (input.currentContentHash === null || input.currentContentHash !== challenge.contentHash) {
|
|
122
|
+
return { ok: false, reason: 'content hash mismatch — the enumerated content changed since the challenge was minted (accept-then-edit voids it)' };
|
|
123
|
+
}
|
|
124
|
+
challenge.used = true;
|
|
125
|
+
this.saveStore(store);
|
|
126
|
+
const artifact = {
|
|
127
|
+
ts: this.now().toISOString(),
|
|
128
|
+
gate: ACCEPTANCE_GATE,
|
|
129
|
+
instanceId: challenge.instanceId,
|
|
130
|
+
framework: challenge.framework,
|
|
131
|
+
scope: challenge.scope,
|
|
132
|
+
contentHash: challenge.contentHash,
|
|
133
|
+
rowIds: challenge.rowIds,
|
|
134
|
+
...(challenge.rule ? { rule: challenge.rule } : {}),
|
|
135
|
+
principal: { kind: input.principal.kind, id: input.principal.id },
|
|
136
|
+
challengeRef: challenge.challengeId,
|
|
137
|
+
};
|
|
138
|
+
appendTamperEvidentDecisionRow(this.decisionLogPath, artifact);
|
|
139
|
+
return { ok: true, reason: 'acceptance recorded', artifact };
|
|
140
|
+
}
|
|
141
|
+
// ── Read side (the gate's AcceptanceChecker surface) ──
|
|
142
|
+
/** All integrity-valid acceptance artifacts (invalid-integrity rows are
|
|
143
|
+
* tamper-EVIDENT: skipped, never honored). */
|
|
144
|
+
listAcceptances() {
|
|
145
|
+
return readDecisionRows(this.decisionLogPath).filter((r) => {
|
|
146
|
+
if (r.gate !== ACCEPTANCE_GATE)
|
|
147
|
+
return false;
|
|
148
|
+
return typeof r.integrity === 'string' && r.integrity === rowIntegrityHash(r);
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
principalAuthorized(r) {
|
|
152
|
+
const p = r.principal;
|
|
153
|
+
return !!p && (p.kind === 'operator-pin' || p.kind === 'verified-operator');
|
|
154
|
+
}
|
|
155
|
+
hasWholeSetAcceptance(instanceId, contentHash) {
|
|
156
|
+
return this.listAcceptances().some((r) => (r.scope === 'whole-set' || r.scope === 'degraded') &&
|
|
157
|
+
r.instanceId === instanceId &&
|
|
158
|
+
r.contentHash === contentHash &&
|
|
159
|
+
this.principalAuthorized(r));
|
|
160
|
+
}
|
|
161
|
+
rowAcceptanceValid(ref, rowId, resolveRowSetHash) {
|
|
162
|
+
return this.listAcceptances().some((r) => {
|
|
163
|
+
if (r.challengeRef !== ref || r.scope !== 'rows')
|
|
164
|
+
return false;
|
|
165
|
+
if (!Array.isArray(r.rowIds) || !r.rowIds.includes(rowId))
|
|
166
|
+
return false;
|
|
167
|
+
if (!this.principalAuthorized(r))
|
|
168
|
+
return false;
|
|
169
|
+
// Re-derive the joint hash over exactly the ACCEPTED rowIds from the
|
|
170
|
+
// CURRENT matrix (Decision 20): unrelated codemod additions leave it
|
|
171
|
+
// unchanged; any change to an accepted row — or its removal — voids.
|
|
172
|
+
const current = resolveRowSetHash(r.rowIds.filter((x) => typeof x === 'string'));
|
|
173
|
+
return current !== null && current === r.contentHash;
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
overrideExcuses(instanceId, rule, rowId, rowHash) {
|
|
177
|
+
return this.listAcceptances().some((r) => r.scope === 'override' &&
|
|
178
|
+
r.instanceId === instanceId &&
|
|
179
|
+
r.rule === rule &&
|
|
180
|
+
Array.isArray(r.rowIds) &&
|
|
181
|
+
r.rowIds.includes(rowId) &&
|
|
182
|
+
r.contentHash === rowHash &&
|
|
183
|
+
this.principalAuthorized(r));
|
|
184
|
+
}
|
|
185
|
+
// ── Conversational arm (mirrors ScopeAccretionRatifier's reply-anchor) ──
|
|
186
|
+
/**
|
|
187
|
+
* Observe one inbound topic message from the LIVE receive path. When the
|
|
188
|
+
* VERIFIED operator reply-anchors an affirmative onto a recorded
|
|
189
|
+
* enumeration message, the corresponding challenge binds — with the current
|
|
190
|
+
* content hash re-resolved so accept-then-edit still voids it. Signal-only:
|
|
191
|
+
* never blocks the receive path; errors are swallowed after logging.
|
|
192
|
+
*/
|
|
193
|
+
async observeInbound(evt, deps) {
|
|
194
|
+
try {
|
|
195
|
+
if (typeof evt.replyToMessageId !== 'number')
|
|
196
|
+
return;
|
|
197
|
+
const candidates = this.loadStore().challenges.filter((c) => !c.used && c.topicId === evt.topicId && typeof c.messageId === 'number');
|
|
198
|
+
if (candidates.length === 0)
|
|
199
|
+
return;
|
|
200
|
+
// Know Your Principal: only the VERIFIED operator of this topic binds.
|
|
201
|
+
const operatorUid = deps.getOperatorUid(evt.topicId);
|
|
202
|
+
if (!operatorUid || operatorUid !== String(evt.senderUid))
|
|
203
|
+
return;
|
|
204
|
+
const match = parseRatificationConfirmation({ text: evt.text, replyToMessageId: evt.replyToMessageId }, candidates.map((c) => ({ setHash: c.challengeId, messageId: c.messageId })));
|
|
205
|
+
if (!match.boundSetHash || !match.replyAnchored)
|
|
206
|
+
return;
|
|
207
|
+
const challenge = candidates.find((c) => c.challengeId === match.boundSetHash);
|
|
208
|
+
if (!challenge)
|
|
209
|
+
return;
|
|
210
|
+
const bound = this.bind({
|
|
211
|
+
challengeId: challenge.challengeId,
|
|
212
|
+
principal: {
|
|
213
|
+
kind: 'verified-operator',
|
|
214
|
+
id: createHash('sha256').update(String(evt.senderUid)).digest('hex'),
|
|
215
|
+
},
|
|
216
|
+
currentContentHash: deps.resolveCurrentContentHash(challenge),
|
|
217
|
+
});
|
|
218
|
+
if (bound.ok) {
|
|
219
|
+
await deps.ack?.(evt.topicId, `Stall-coverage matrix acceptance recorded for instance '${challenge.instanceId}' (${challenge.scope}, ${challenge.rowIds.length} row id(s)).`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
this.log?.(`[matrix-acceptance] observe error (ignored): ${err instanceof Error ? err.message : String(err)}`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// ── Enumeration rendering (server-authored — the operator approves EXACTLY this) ──
|
|
227
|
+
renderEnumeration(challenge) {
|
|
228
|
+
const lines = [
|
|
229
|
+
`Accept the stall-coverage matrix ${challenge.scope === 'degraded' ? 'DEGRADED verdict (matrix-unverifiable-no-source)' : `enumeration (${challenge.scope})`} for instance '${challenge.instanceId}' (framework ${challenge.framework})?`,
|
|
230
|
+
...challenge.rowIds.slice(0, 50).map((id) => `- ${id}`),
|
|
231
|
+
...(challenge.rowIds.length > 50 ? [`…and ${challenge.rowIds.length - 50} more`] : []),
|
|
232
|
+
...(challenge.rule ? [`Override rule: ${challenge.rule}`] : []),
|
|
233
|
+
'',
|
|
234
|
+
`Content hash: ${challenge.contentHash.slice(0, 16)}… — challenge ${challenge.challengeId} (single-use).`,
|
|
235
|
+
'Reply to THIS message with yes/approve, or bind via the dashboard-PIN acceptance route.',
|
|
236
|
+
];
|
|
237
|
+
return lines.join('\n');
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=ApprenticeshipMatrixAcceptance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApprenticeshipMatrixAcceptance.js","sourceRoot":"","sources":["../../src/core/ApprenticeshipMatrixAcceptance.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
* `allow:false`, never "no prior instance → open the gate".
|
|
31
31
|
*/
|
|
32
32
|
import { type ValidateResult } from './retroHarvestValidator.js';
|
|
33
|
+
import { ApprenticeshipStallGate, type StallGateReport } from './ApprenticeshipStallGate.js';
|
|
33
34
|
export type InstanceType = 'apprenticeship' | 'mentorship';
|
|
34
35
|
export type InstanceStatus = 'pending' | 'active' | 'complete' | 'blocked' | 'abandoned';
|
|
35
36
|
/** A tracked program-need with its target step + a resolvable honoredBy slot (§4). */
|
|
@@ -104,6 +105,11 @@ export interface CompletionGateVerdict {
|
|
|
104
105
|
allow: boolean;
|
|
105
106
|
reason: string;
|
|
106
107
|
missing: string[];
|
|
108
|
+
/** Non-blocking advisories (e.g. the grandfathered stall-matrix warning row
|
|
109
|
+
* on can-complete — stall-coverage spec Decision 10). */
|
|
110
|
+
warnings?: string[];
|
|
111
|
+
/** The stall-coverage matrix gate report (stall-coverage spec §3.2). */
|
|
112
|
+
stallMatrix?: StallGateReport;
|
|
107
113
|
}
|
|
108
114
|
/**
|
|
109
115
|
* Injected dependencies for the gates (§3.3). Truth is re-derived from these
|
|
@@ -151,6 +157,12 @@ export interface ApprenticeshipProgramConfig {
|
|
|
151
157
|
decisionLogPath?: string;
|
|
152
158
|
/** Override gate deps (tests). Defaults read the real fs + validator. */
|
|
153
159
|
deps?: Partial<GateDeps>;
|
|
160
|
+
/**
|
|
161
|
+
* The stall-coverage matrix gate (stall-coverage spec §2.3). `undefined` ⇒
|
|
162
|
+
* construct the default gate (live-read config, worker-bounded validation);
|
|
163
|
+
* explicit `null` disables the branch entirely (tests of the legacy gates).
|
|
164
|
+
*/
|
|
165
|
+
stallGate?: ApprenticeshipStallGate | null;
|
|
154
166
|
}
|
|
155
167
|
export declare class ApprenticeshipProgram {
|
|
156
168
|
private storePath;
|
|
@@ -160,6 +172,7 @@ export declare class ApprenticeshipProgram {
|
|
|
160
172
|
/** True when the on-disk store was unparseable → gates fail closed. */
|
|
161
173
|
private corrupt;
|
|
162
174
|
private deps;
|
|
175
|
+
private stallGate;
|
|
163
176
|
constructor(config: ApprenticeshipProgramConfig);
|
|
164
177
|
/** Default harvest reader — resolves the confined relative path under projectDir. */
|
|
165
178
|
private defaultReadHarvest;
|
|
@@ -177,6 +190,8 @@ export declare class ApprenticeshipProgram {
|
|
|
177
190
|
get(id: string): ApprenticeshipInstance | null;
|
|
178
191
|
/** True when the on-disk store was present but unparseable (gates fail closed). */
|
|
179
192
|
isCorrupt(): boolean;
|
|
193
|
+
/** The stall-coverage matrix gate wired into this program (null = disabled). */
|
|
194
|
+
getStallGate(): ApprenticeshipStallGate | null;
|
|
180
195
|
/**
|
|
181
196
|
* Create an instance. Charset-clamps id/overseer/mentor/mentee/framework to
|
|
182
197
|
* ^[a-z0-9-]+$, rejects a duplicate id, computes harvestFrom=mentor /
|
|
@@ -200,8 +215,15 @@ export declare class ApprenticeshipProgram {
|
|
|
200
215
|
* harvestExists+validates, an instance-scoped ledger count ≥1, detectorAudit
|
|
201
216
|
* present. A stored requiredArtifacts:true is NEVER treated as evidence of
|
|
202
217
|
* presence.
|
|
218
|
+
*
|
|
219
|
+
* Async since PR-B: the stall-coverage matrix check (stall-coverage spec
|
|
220
|
+
* §2.3 — "a SINGLE new branch inside the existing completion gate") runs
|
|
221
|
+
* bounded validation + loopback liveness checks. The matrix requirement is
|
|
222
|
+
* derived from the canonical checklist function of (instanceType,
|
|
223
|
+
* createdAt) — deliberately NOT from the per-instance requiredArtifacts
|
|
224
|
+
* flags (spec §2.3's named design change for this artifact class).
|
|
203
225
|
*/
|
|
204
|
-
evaluateCompletionGate(instance: ApprenticeshipInstance): CompletionGateVerdict
|
|
226
|
+
evaluateCompletionGate(instance: ApprenticeshipInstance): Promise<CompletionGateVerdict>;
|
|
205
227
|
/**
|
|
206
228
|
* The ONLY way status changes (§3.4). pending→active runs evaluateStartGate
|
|
207
229
|
* and refuses on !allow; active→complete runs evaluateCompletionGate;
|
|
@@ -211,11 +233,11 @@ export declare class ApprenticeshipProgram {
|
|
|
211
233
|
* Any transition not in the table is rejected with a reason. Every gate
|
|
212
234
|
* verdict is appended to the decision audit.
|
|
213
235
|
*/
|
|
214
|
-
transition(id: string, to: InstanceStatus): {
|
|
236
|
+
transition(id: string, to: InstanceStatus): Promise<{
|
|
215
237
|
ok: boolean;
|
|
216
238
|
reason: string;
|
|
217
239
|
instance?: ApprenticeshipInstance;
|
|
218
|
-
}
|
|
240
|
+
}>;
|
|
219
241
|
/** Evidence-gated, adjacent independence-ladder transition (§5.1). */
|
|
220
242
|
transitionRung(id: string, to: number, evidenceRef: string): {
|
|
221
243
|
ok: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprenticeshipProgram.d.ts","sourceRoot":"","sources":["../../src/core/ApprenticeshipProgram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"ApprenticeshipProgram.d.ts","sourceRoot":"","sources":["../../src/core/ApprenticeshipProgram.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
import fs from 'node:fs';
|
|
33
33
|
import path from 'node:path';
|
|
34
34
|
import { validateRetroHarvest, parseArtifact, safeArtifactPath, } from './retroHarvestValidator.js';
|
|
35
|
+
import { ApprenticeshipStallGate, appendApprenticeshipDecisionRow, } from './ApprenticeshipStallGate.js';
|
|
35
36
|
/** The typed no-op overseer stub (§2). */
|
|
36
37
|
export const noopApprenticeshipOverseer = {
|
|
37
38
|
computeDifferential(_instance) {
|
|
@@ -56,11 +57,20 @@ export class ApprenticeshipProgram {
|
|
|
56
57
|
/** True when the on-disk store was unparseable → gates fail closed. */
|
|
57
58
|
corrupt = false;
|
|
58
59
|
deps;
|
|
60
|
+
stallGate;
|
|
59
61
|
constructor(config) {
|
|
60
62
|
this.storePath = path.join(config.stateDir, 'apprenticeship', 'instances.json');
|
|
61
63
|
this.decisionLogPath =
|
|
62
64
|
config.decisionLogPath ?? path.join(config.stateDir, 'logs', 'apprenticeship-decisions.jsonl');
|
|
63
65
|
this.projectDir = config.projectDir;
|
|
66
|
+
this.stallGate =
|
|
67
|
+
config.stallGate === undefined
|
|
68
|
+
? new ApprenticeshipStallGate({
|
|
69
|
+
projectDir: config.projectDir,
|
|
70
|
+
stateDir: config.stateDir,
|
|
71
|
+
decisionLogPath: this.decisionLogPath,
|
|
72
|
+
})
|
|
73
|
+
: config.stallGate;
|
|
64
74
|
this.deps = {
|
|
65
75
|
readHarvest: config.deps?.readHarvest ?? ((rel) => this.defaultReadHarvest(rel)),
|
|
66
76
|
validate: config.deps?.validate ?? validateRetroHarvest,
|
|
@@ -193,6 +203,10 @@ export class ApprenticeshipProgram {
|
|
|
193
203
|
isCorrupt() {
|
|
194
204
|
return this.corrupt;
|
|
195
205
|
}
|
|
206
|
+
/** The stall-coverage matrix gate wired into this program (null = disabled). */
|
|
207
|
+
getStallGate() {
|
|
208
|
+
return this.stallGate;
|
|
209
|
+
}
|
|
196
210
|
// ── Create ─────────────────────────────────────────────────────────
|
|
197
211
|
/**
|
|
198
212
|
* Create an instance. Charset-clamps id/overseer/mentor/mentee/framework to
|
|
@@ -354,8 +368,15 @@ export class ApprenticeshipProgram {
|
|
|
354
368
|
* harvestExists+validates, an instance-scoped ledger count ≥1, detectorAudit
|
|
355
369
|
* present. A stored requiredArtifacts:true is NEVER treated as evidence of
|
|
356
370
|
* presence.
|
|
371
|
+
*
|
|
372
|
+
* Async since PR-B: the stall-coverage matrix check (stall-coverage spec
|
|
373
|
+
* §2.3 — "a SINGLE new branch inside the existing completion gate") runs
|
|
374
|
+
* bounded validation + loopback liveness checks. The matrix requirement is
|
|
375
|
+
* derived from the canonical checklist function of (instanceType,
|
|
376
|
+
* createdAt) — deliberately NOT from the per-instance requiredArtifacts
|
|
377
|
+
* flags (spec §2.3's named design change for this artifact class).
|
|
357
378
|
*/
|
|
358
|
-
evaluateCompletionGate(instance) {
|
|
379
|
+
async evaluateCompletionGate(instance) {
|
|
359
380
|
if (this.corrupt) {
|
|
360
381
|
return { allow: false, reason: 'instance store is corrupt — fail closed', missing: ['store-corrupt'] };
|
|
361
382
|
}
|
|
@@ -388,14 +409,36 @@ export class ApprenticeshipProgram {
|
|
|
388
409
|
if (!this.deps.detectorAuditExists(instance))
|
|
389
410
|
missing.push('detectorAudit:absent');
|
|
390
411
|
}
|
|
412
|
+
// ── Stall-coverage matrix branch (stall-coverage spec §2.3 full gate) ──
|
|
413
|
+
let warnings;
|
|
414
|
+
let stallMatrix;
|
|
415
|
+
let stallReason = null;
|
|
416
|
+
if (this.stallGate) {
|
|
417
|
+
const verdict = await this.stallGate.evaluateForTransition(instance, 'full');
|
|
418
|
+
stallMatrix = verdict.report;
|
|
419
|
+
if (verdict.report.warnings.length > 0)
|
|
420
|
+
warnings = [...verdict.report.warnings];
|
|
421
|
+
if (!verdict.allow) {
|
|
422
|
+
missing.push(`stallMatrix:${verdict.report.verdict}`);
|
|
423
|
+
stallReason = verdict.reason; // class ids + rule names only (Decision 16)
|
|
424
|
+
}
|
|
425
|
+
}
|
|
391
426
|
if (missing.length > 0) {
|
|
392
427
|
return {
|
|
393
428
|
allow: false,
|
|
394
|
-
reason: `completion blocked — missing live artifacts: ${missing.join(', ')}`,
|
|
429
|
+
reason: `completion blocked — missing live artifacts: ${missing.join(', ')}${stallReason ? ` (stall-coverage: ${stallReason})` : ''}`,
|
|
395
430
|
missing,
|
|
431
|
+
...(warnings ? { warnings } : {}),
|
|
432
|
+
...(stallMatrix ? { stallMatrix } : {}),
|
|
396
433
|
};
|
|
397
434
|
}
|
|
398
|
-
return {
|
|
435
|
+
return {
|
|
436
|
+
allow: true,
|
|
437
|
+
reason: 'all declared-required artifacts verified present from live state',
|
|
438
|
+
missing: [],
|
|
439
|
+
...(warnings ? { warnings } : {}),
|
|
440
|
+
...(stallMatrix ? { stallMatrix } : {}),
|
|
441
|
+
};
|
|
399
442
|
}
|
|
400
443
|
// ── Status transitions (the gates are not advisory) ─────────────────
|
|
401
444
|
/**
|
|
@@ -407,7 +450,7 @@ export class ApprenticeshipProgram {
|
|
|
407
450
|
* Any transition not in the table is rejected with a reason. Every gate
|
|
408
451
|
* verdict is appended to the decision audit.
|
|
409
452
|
*/
|
|
410
|
-
transition(id, to) {
|
|
453
|
+
async transition(id, to) {
|
|
411
454
|
if (this.corrupt) {
|
|
412
455
|
return { ok: false, reason: 'instance store is corrupt — fail closed' };
|
|
413
456
|
}
|
|
@@ -427,6 +470,16 @@ export class ApprenticeshipProgram {
|
|
|
427
470
|
this.recordDecision({ gate: 'start', instanceId: id, allow: verdict.allow, reason: verdict.reason });
|
|
428
471
|
if (!verdict.allow)
|
|
429
472
|
return { ok: false, reason: `start gate refused: ${verdict.reason}` };
|
|
473
|
+
// Sibling branch (stall-coverage spec §2.3): a PROVISIONAL matrix must
|
|
474
|
+
// exist before live/on-task operation — hermetic depth only. dryRun
|
|
475
|
+
// suppresses identically to the completion arm (would-refuse logged by
|
|
476
|
+
// the gate itself).
|
|
477
|
+
if (this.stallGate) {
|
|
478
|
+
const matrix = await this.stallGate.evaluateForTransition(instance, 'provisional');
|
|
479
|
+
if (!matrix.allow) {
|
|
480
|
+
return { ok: false, reason: `provisional stall-coverage matrix gate refused: ${matrix.reason}` };
|
|
481
|
+
}
|
|
482
|
+
}
|
|
430
483
|
}
|
|
431
484
|
if (instance.status === 'blocked' && to === 'active') {
|
|
432
485
|
// Re-gate on resume from blocked.
|
|
@@ -436,7 +489,7 @@ export class ApprenticeshipProgram {
|
|
|
436
489
|
return { ok: false, reason: `start gate refused (re-gate): ${verdict.reason}` };
|
|
437
490
|
}
|
|
438
491
|
if (instance.status === 'active' && to === 'complete') {
|
|
439
|
-
const verdict = this.evaluateCompletionGate(instance);
|
|
492
|
+
const verdict = await this.evaluateCompletionGate(instance);
|
|
440
493
|
this.recordDecision({
|
|
441
494
|
gate: 'completion',
|
|
442
495
|
instanceId: id,
|
|
@@ -488,26 +541,20 @@ export class ApprenticeshipProgram {
|
|
|
488
541
|
}
|
|
489
542
|
// ── Decision audit (§3.6) ───────────────────────────────────────────
|
|
490
543
|
recordDecision(entry) {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
fs.appendFileSync(this.decisionLogPath, line);
|
|
506
|
-
}
|
|
507
|
-
catch {
|
|
508
|
-
// @silent-fallback-ok — the audit is observability; a write failure must
|
|
509
|
-
// not block the (already-decided) transition.
|
|
510
|
-
}
|
|
544
|
+
// Funnel through the shared recordDecision primitive (PR-B): the
|
|
545
|
+
// stall-matrix gate, acceptance artifacts, and install-provenance rows
|
|
546
|
+
// append through the same helper, so the audit has ONE write path.
|
|
547
|
+
appendApprenticeshipDecisionRow(this.decisionLogPath, {
|
|
548
|
+
ts: new Date().toISOString(),
|
|
549
|
+
gate: entry.gate,
|
|
550
|
+
instanceId: entry.instanceId,
|
|
551
|
+
allow: entry.allow,
|
|
552
|
+
reason: entry.reason,
|
|
553
|
+
...(entry.missing && entry.missing.length ? { missing: entry.missing } : {}),
|
|
554
|
+
...(entry.fromRung !== undefined ? { fromRung: entry.fromRung } : {}),
|
|
555
|
+
...(entry.toRung !== undefined ? { toRung: entry.toRung } : {}),
|
|
556
|
+
...(entry.evidenceRef ? { evidenceRef: entry.evidenceRef } : {}),
|
|
557
|
+
});
|
|
511
558
|
}
|
|
512
559
|
}
|
|
513
560
|
//# sourceMappingURL=ApprenticeshipProgram.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprenticeshipProgram.js","sourceRoot":"","sources":["../../src/core/ApprenticeshipProgram.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApprenticeshipProgram.js","sourceRoot":"","sources":["../../src/core/ApprenticeshipProgram.ts"],"names":[],"mappings":"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"}
|