@telora/daemon 0.20.9 → 0.20.21
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 +9 -3
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +6 -1
- package/dist/cli/session-state.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +2 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +59 -5
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-shortfall.d.ts +62 -0
- package/dist/completion/review-exit-shortfall.d.ts.map +1 -0
- package/dist/completion/review-exit-shortfall.js +84 -0
- package/dist/completion/review-exit-shortfall.js.map +1 -0
- package/dist/drift-ratify-loop.d.ts +68 -0
- package/dist/drift-ratify-loop.d.ts.map +1 -0
- package/dist/drift-ratify-loop.js +161 -0
- package/dist/drift-ratify-loop.js.map +1 -0
- package/dist/drift-ratify-policy.d.ts +101 -0
- package/dist/drift-ratify-policy.d.ts.map +1 -0
- package/dist/drift-ratify-policy.js +178 -0
- package/dist/drift-ratify-policy.js.map +1 -0
- package/dist/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus-loop-registry.js +49 -0
- package/dist/focus-loop-registry.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +41 -4
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/queries/deliveries.d.ts +22 -0
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +6 -0
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts +9 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +14 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/reality-tree.d.ts +22 -0
- package/dist/queries/reality-tree.d.ts.map +1 -1
- package/dist/queries/reality-tree.js +32 -0
- package/dist/queries/reality-tree.js.map +1 -1
- package/dist/queries/schemas.d.ts +2 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +5 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/resolvers/drift-shortfall-proposals.d.ts +27 -0
- package/dist/resolvers/drift-shortfall-proposals.d.ts.map +1 -0
- package/dist/resolvers/drift-shortfall-proposals.js +90 -0
- package/dist/resolvers/drift-shortfall-proposals.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/shortfall-disposition-config.d.ts +34 -0
- package/dist/shortfall-disposition-config.d.ts.map +1 -0
- package/dist/shortfall-disposition-config.js +46 -0
- package/dist/shortfall-disposition-config.js.map +1 -0
- package/dist/shortfall-disposition-loop.d.ts +86 -0
- package/dist/shortfall-disposition-loop.d.ts.map +1 -0
- package/dist/shortfall-disposition-loop.js +309 -0
- package/dist/shortfall-disposition-loop.js.map +1 -0
- package/dist/unified-shell-status.d.ts.map +1 -1
- package/dist/unified-shell-status.js +5 -1
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/verification-config.d.ts +64 -15
- package/dist/verification-config.d.ts.map +1 -1
- package/dist/verification-config.js +66 -21
- package/dist/verification-config.js.map +1 -1
- package/dist/verification-default-on.d.ts +73 -1
- package/dist/verification-default-on.d.ts.map +1 -1
- package/dist/verification-default-on.js +79 -0
- package/dist/verification-default-on.js.map +1 -1
- package/dist/verification-engine.d.ts +1 -1
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +26 -15
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-manifest.d.ts +110 -0
- package/dist/verification-manifest.d.ts.map +1 -0
- package/dist/verification-manifest.js +150 -0
- package/dist/verification-manifest.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Periodic drift auto-ratification tick.
|
|
3
|
+
*
|
|
4
|
+
* Lists `proposed` drift proposals per product, runs each through the
|
|
5
|
+
* fail-closed policy in `drift-ratify-policy.ts`, and ratifies the ones the
|
|
6
|
+
* daemon is sanctioned to ratify unattended. Proposals the policy routes to a
|
|
7
|
+
* review session (`review_dispose`) or refuses to classify (`hold`) are left
|
|
8
|
+
* in `proposed`, untouched.
|
|
9
|
+
*
|
|
10
|
+
* WHAT THIS CLOSES. Drift proposals pooled in `proposed` faster than a human
|
|
11
|
+
* could ratify them, so the reality tree lagged observed reality and every
|
|
12
|
+
* consumer of the graph (audit assembly, propose_injections, focus.context)
|
|
13
|
+
* computed against a stale intent model. The ledger is unchanged -- this only
|
|
14
|
+
* changes WHO ratifies. Ratified proposals still reach the graph exclusively
|
|
15
|
+
* via the existing realign_crt phase (`applyRatifiedProposals`), which this
|
|
16
|
+
* module does not touch.
|
|
17
|
+
*
|
|
18
|
+
* WHAT THIS MUST NEVER DO. Ratify an inward shortfall. That is the machine
|
|
19
|
+
* rewriting a claim its own work failed to meet. The policy module owns that
|
|
20
|
+
* decision; this tick owns only list -> classify -> ratify-the-safe-ones, and
|
|
21
|
+
* deliberately contains no safe-kind rules of its own. If you find yourself
|
|
22
|
+
* adding kind logic here, it belongs in drift-ratify-policy.ts.
|
|
23
|
+
*
|
|
24
|
+
* ACTOR STAMP. The tick calls `crt_drift_proposal_ratify` with no session id.
|
|
25
|
+
* The edge handler resolves the actor from the caller's credential kind, so a
|
|
26
|
+
* tracker-authenticated daemon call is recorded as `ratified_by_kind='system'`
|
|
27
|
+
* with `ratified_by=NULL` automatically. Passing a session id would instead
|
|
28
|
+
* stamp `review_session` -- that is the review-disposition path, not this one.
|
|
29
|
+
*
|
|
30
|
+
* Activation: opt-out via TELORA_DRIFT_RATIFY_LOOP=0. See `shouldRunLoop()` in
|
|
31
|
+
* focus-engine.ts.
|
|
32
|
+
*
|
|
33
|
+
* @module drift-ratify-loop
|
|
34
|
+
*/
|
|
35
|
+
import { loadEnvConfig } from '@telora/daemon-core';
|
|
36
|
+
import { callApi as defaultCallApi } from './queries/shared.js';
|
|
37
|
+
import { classifyDriftProposal } from './drift-ratify-policy.js';
|
|
38
|
+
import { createLogger } from './log.js';
|
|
39
|
+
const log = createLogger({ module: 'drift-ratify-loop' });
|
|
40
|
+
/**
|
|
41
|
+
* Per-product backoff for list failures, so a persistent server-side failure
|
|
42
|
+
* does not retry-storm every tick. Module-level so the window survives across
|
|
43
|
+
* `runDriftRatifyTick` calls within the daemon process. Keyed productId ->
|
|
44
|
+
* earliest next-attempt epoch ms. Mirrors the drift-eval loop's window
|
|
45
|
+
* (drift-eval-loop.ts:74) and complements the isolated 'drift' circuit breaker
|
|
46
|
+
* in queries/shared.ts, which fails fast once the breaker opens.
|
|
47
|
+
*/
|
|
48
|
+
const listBackoffUntil = new Map();
|
|
49
|
+
/**
|
|
50
|
+
* Resolve the per-product list-failure backoff window (ms).
|
|
51
|
+
*
|
|
52
|
+
* Deliberately REUSES TELORA_DRIFT_LIST_BACKOFF_MS rather than introducing a
|
|
53
|
+
* knob of its own. The knob's meaning -- how long to back off a product after a
|
|
54
|
+
* drift-list failure -- is exactly this loop's need, and both loops fail the
|
|
55
|
+
* same way for the same reasons, so one operator dial covering both is coherent
|
|
56
|
+
* rather than a conflation. It also keeps this loop free of any dependency on a
|
|
57
|
+
* @telora/daemon-core republish: daemon-core is registry-installed, so a new
|
|
58
|
+
* knob added to its source would be invisible to this package until it is
|
|
59
|
+
* published and reinstalled. Injectable via deps for tests.
|
|
60
|
+
*/
|
|
61
|
+
function defaultListBackoffMs() {
|
|
62
|
+
return loadEnvConfig().TELORA_DRIFT_LIST_BACKOFF_MS;
|
|
63
|
+
}
|
|
64
|
+
/** Test-only: clear the per-product list-failure backoff state. */
|
|
65
|
+
export function __resetDriftRatifyBackoffForTesting() {
|
|
66
|
+
listBackoffUntil.clear();
|
|
67
|
+
}
|
|
68
|
+
function defaultDeps() {
|
|
69
|
+
return {
|
|
70
|
+
callApi: defaultCallApi,
|
|
71
|
+
now: () => Date.now(),
|
|
72
|
+
listBackoffMs: defaultListBackoffMs(),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Run one auto-ratification tick across every product in the daemon config.
|
|
77
|
+
*
|
|
78
|
+
* Per-proposal failures are counted and skipped, never aborting the batch --
|
|
79
|
+
* one unratifiable proposal must not strand the rest of the stream (mirrors
|
|
80
|
+
* `applyRatifiedProposals`, realign-apply.ts:403-416).
|
|
81
|
+
*
|
|
82
|
+
* Returns counters useful for log lines and tests.
|
|
83
|
+
*/
|
|
84
|
+
export async function runDriftRatifyTick(config, depOverrides = {}) {
|
|
85
|
+
const deps = { ...defaultDeps(), ...depOverrides };
|
|
86
|
+
const counts = {
|
|
87
|
+
productsScanned: 0,
|
|
88
|
+
productsSkipped: 0,
|
|
89
|
+
proposalsExamined: 0,
|
|
90
|
+
ratified: 0,
|
|
91
|
+
leftForReview: 0,
|
|
92
|
+
held: 0,
|
|
93
|
+
errors: 0,
|
|
94
|
+
};
|
|
95
|
+
for (const product of config.products) {
|
|
96
|
+
counts.productsScanned += 1;
|
|
97
|
+
// Skip a product still inside its list-failure backoff window.
|
|
98
|
+
const nowMs = deps.now();
|
|
99
|
+
const backoffUntil = listBackoffUntil.get(product.id) ?? 0;
|
|
100
|
+
if (nowMs < backoffUntil) {
|
|
101
|
+
counts.productsSkipped += 1;
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
let proposals;
|
|
105
|
+
try {
|
|
106
|
+
// NOTE: crt_drift_proposal_list cannot filter on proposed_metadata
|
|
107
|
+
// (drift-proposals.ts:78-119 supports focusId/productId/realityTreeId/
|
|
108
|
+
// status only), so the shortfall split is decided client-side by the
|
|
109
|
+
// policy below -- not by the query.
|
|
110
|
+
const list = await deps.callApi('crt_drift_proposal_list', {
|
|
111
|
+
productId: product.id,
|
|
112
|
+
status: 'proposed',
|
|
113
|
+
});
|
|
114
|
+
proposals = list.items ?? [];
|
|
115
|
+
// Success clears any prior backoff for this product.
|
|
116
|
+
listBackoffUntil.delete(product.id);
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
counts.errors += 1;
|
|
120
|
+
listBackoffUntil.set(product.id, nowMs + deps.listBackoffMs);
|
|
121
|
+
log.warn(`[drift-ratify-loop] list failed for product ${product.id} (backing off ${deps.listBackoffMs}ms):`, err.message);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
for (const proposal of proposals) {
|
|
125
|
+
counts.proposalsExamined += 1;
|
|
126
|
+
const { disposition, reason } = classifyDriftProposal({
|
|
127
|
+
proposalKind: proposal.proposalKind,
|
|
128
|
+
proposedMetadata: proposal.proposedMetadata,
|
|
129
|
+
});
|
|
130
|
+
if (disposition === 'review_dispose') {
|
|
131
|
+
// The bar-lowering channel. Left in `proposed` for an independent
|
|
132
|
+
// review session; this tick must not touch it.
|
|
133
|
+
counts.leftForReview += 1;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (disposition === 'hold') {
|
|
137
|
+
// Fail-closed: unknown kind, malformed metadata, or an internally
|
|
138
|
+
// inconsistent row. Stays `proposed` so a human sees it.
|
|
139
|
+
counts.held += 1;
|
|
140
|
+
log.info(`[drift-ratify-loop] holding proposal ${proposal.id} (kind=${proposal.proposalKind}, reason=${reason})`);
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
try {
|
|
144
|
+
// No session id: the edge handler stamps ratified_by_kind='system' from
|
|
145
|
+
// the tracker credential. Ratified proposals reach the graph via the
|
|
146
|
+
// existing realign_crt phase; nothing here applies them.
|
|
147
|
+
await deps.callApi('crt_drift_proposal_ratify', { proposalId: proposal.id });
|
|
148
|
+
counts.ratified += 1;
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
counts.errors += 1;
|
|
152
|
+
log.warn(`[drift-ratify-loop] ratify failed for proposal ${proposal.id} (${reason}):`, err.message);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (counts.proposalsExamined > 0 || counts.errors > 0 || counts.productsSkipped > 0) {
|
|
157
|
+
log.info(`[drift-ratify-loop] tick: products=${counts.productsScanned} skipped=${counts.productsSkipped} examined=${counts.proposalsExamined} ratified=${counts.ratified} forReview=${counts.leftForReview} held=${counts.held} errors=${counts.errors}`);
|
|
158
|
+
}
|
|
159
|
+
return counts;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=drift-ratify-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-ratify-loop.js","sourceRoot":"","sources":["../src/drift-ratify-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-ratification policy for CRT drift proposals.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: takes a proposal's kind plus its untrusted `proposed_metadata`
|
|
5
|
+
* JSONB and returns the disposition the daemon owes it. No fs, process, or
|
|
6
|
+
* supabase imports — the auto-ratify tick wires the API and performs the
|
|
7
|
+
* ratification.
|
|
8
|
+
*
|
|
9
|
+
* WHY THIS EXISTS. Per-proposal human ratification cannot keep pace with the
|
|
10
|
+
* rate the machine corrects its own tree, so the safe majority of the drift
|
|
11
|
+
* stream is ratified by the daemon. The lifecycle is unchanged: this decides
|
|
12
|
+
* WHO ratifies, never WHETHER the ledger records it. The
|
|
13
|
+
* proposed -> ratified -> applied path and `realign-apply.ts` run untouched.
|
|
14
|
+
*
|
|
15
|
+
* THE ASYMMETRY THIS PROTECTS. An inward SHORTFALL proposal says "the tree
|
|
16
|
+
* claimed X, and our own work delivered less than X". Auto-applying it would
|
|
17
|
+
* convert a re-code obligation into a silent statement edit — the machine
|
|
18
|
+
* lowering a bar it failed to clear. That channel is never auto-ratified; it
|
|
19
|
+
* routes to an independent review session (`review_dispose`). Everything here
|
|
20
|
+
* turns on that one distinction.
|
|
21
|
+
*
|
|
22
|
+
* FAIL-CLOSED BY CONSTRUCTION. Safety is an ALLOWLIST, not a denylist: a
|
|
23
|
+
* proposal is auto-ratified only when it affirmatively matches a sanctioned
|
|
24
|
+
* shape. Unknown kinds, malformed metadata, and internally inconsistent rows
|
|
25
|
+
* all `hold` — they stay `proposed` and a human sees them. A new proposal_kind
|
|
26
|
+
* added upstream therefore defaults to `hold` until someone deliberately adds
|
|
27
|
+
* it to SAFE_OUTWARD_KINDS. That default is the point; do not replace the
|
|
28
|
+
* allowlist with a denylist.
|
|
29
|
+
*
|
|
30
|
+
* @module drift-ratify-policy
|
|
31
|
+
*/
|
|
32
|
+
/** What the daemon owes a proposal. */
|
|
33
|
+
export type DriftDisposition =
|
|
34
|
+
/** Daemon ratifies with a system actor; flows to applied via realign_crt. */
|
|
35
|
+
'auto_ratify'
|
|
36
|
+
/** The bar-lowering channel: an independent review session must dispose it. */
|
|
37
|
+
| 'review_dispose'
|
|
38
|
+
/** Fail-closed. Stays `proposed`; a human decides. */
|
|
39
|
+
| 'hold';
|
|
40
|
+
/** Machine-readable justification. Stable — logs and the audit surface read it. */
|
|
41
|
+
export type DriftClassificationReason =
|
|
42
|
+
/** inward + shortfall: our work under-delivered against the claim. */
|
|
43
|
+
'inward_shortfall'
|
|
44
|
+
/** inward + legitimate_divergence: delivered, but reality landed differently. */
|
|
45
|
+
| 'inward_legitimate_divergence'
|
|
46
|
+
/** An injection introduces a new UDE; additive and always add_node. */
|
|
47
|
+
| 'negative_branch'
|
|
48
|
+
/** Audit found the tree lagging observed reality; no inward contradiction. */
|
|
49
|
+
| 'outward_audit_drift'
|
|
50
|
+
/** proposed_metadata is not a JSON object (or a flag holds a non-boolean). */
|
|
51
|
+
| 'malformed_metadata'
|
|
52
|
+
/** proposal_kind is absent or not a kind this policy knows. */
|
|
53
|
+
| 'unknown_proposal_kind'
|
|
54
|
+
/** inward:true but verifyClassification is missing/unrecognized. */
|
|
55
|
+
| 'inward_unclassified'
|
|
56
|
+
/** isNegativeBranch:true on a kind negative-branch.ts never emits. */
|
|
57
|
+
| 'inconsistent_negative_branch'
|
|
58
|
+
/** A known kind deliberately outside the sanctioned auto-ratify set. */
|
|
59
|
+
| 'kind_not_auto_ratifiable';
|
|
60
|
+
export interface DriftClassification {
|
|
61
|
+
disposition: DriftDisposition;
|
|
62
|
+
reason: DriftClassificationReason;
|
|
63
|
+
}
|
|
64
|
+
export interface DriftProposalClassificationInput {
|
|
65
|
+
/**
|
|
66
|
+
* Widened to `string` on purpose: an unrecognized kind is a case this policy
|
|
67
|
+
* must CLASSIFY (as hold), not a case it may fail to compile against.
|
|
68
|
+
*/
|
|
69
|
+
proposalKind: string;
|
|
70
|
+
/** Raw `proposed_metadata` JSONB. Untrusted: may be null, absent, or junk. */
|
|
71
|
+
proposedMetadata?: unknown;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Decide the disposition a drift proposal is owed.
|
|
75
|
+
*
|
|
76
|
+
* Precedence is load-bearing and ordered most-specific first:
|
|
77
|
+
* 1. unknown/absent kind -> hold
|
|
78
|
+
* 2. metadata present but not an object -> hold
|
|
79
|
+
* 3. a flag present with a non-boolean -> hold
|
|
80
|
+
* 4. inward:true + shortfall -> review_dispose <- the bar-lowering channel
|
|
81
|
+
* inward:true + legitimate_divergence -> auto_ratify
|
|
82
|
+
* inward:true + anything else -> hold
|
|
83
|
+
* 5. isNegativeBranch:true on add_node -> auto_ratify
|
|
84
|
+
* isNegativeBranch:true on other kinds -> hold (inconsistent provenance)
|
|
85
|
+
* 6. outward + kind in SAFE_OUTWARD_KINDS -> auto_ratify
|
|
86
|
+
* outward + known-but-unsanctioned -> hold
|
|
87
|
+
*
|
|
88
|
+
* Absent metadata means outward BY CONSTRUCTION, not by assumption:
|
|
89
|
+
* `detectInwardDrift` hardcodes `inward: true` (reality-writeback.ts:390) and
|
|
90
|
+
* `proposeNegativeBranchesForInjection` hardcodes `isNegativeBranch: true`
|
|
91
|
+
* (negative-branch.ts:305). Neither flag can be missing from a row that needs
|
|
92
|
+
* it, so absence of both is a sound outward signal.
|
|
93
|
+
*
|
|
94
|
+
* Pure. Total: every input yields a classification; nothing throws.
|
|
95
|
+
*/
|
|
96
|
+
export declare function classifyDriftProposal(input: DriftProposalClassificationInput): DriftClassification;
|
|
97
|
+
/** Convenience predicate for the tick's filter step. */
|
|
98
|
+
export declare function isAutoRatifiable(input: DriftProposalClassificationInput): boolean;
|
|
99
|
+
/** Convenience predicate: does this proposal owe a review-session disposition? */
|
|
100
|
+
export declare function requiresReviewDisposition(input: DriftProposalClassificationInput): boolean;
|
|
101
|
+
//# sourceMappingURL=drift-ratify-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-ratify-policy.d.ts","sourceRoot":"","sources":["../src/drift-ratify-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,uCAAuC;AACvC,MAAM,MAAM,gBAAgB;AAC1B,6EAA6E;AAC3E,aAAa;AACf,+EAA+E;GAC7E,gBAAgB;AAClB,sDAAsD;GACpD,MAAM,CAAC;AAEX,mFAAmF;AACnF,MAAM,MAAM,yBAAyB;AACnC,sEAAsE;AACpE,kBAAkB;AACpB,iFAAiF;GAC/E,8BAA8B;AAChC,uEAAuE;GACrE,iBAAiB;AACnB,8EAA8E;GAC5E,qBAAqB;AACvB,8EAA8E;GAC5E,oBAAoB;AACtB,+DAA+D;GAC7D,uBAAuB;AACzB,oEAAoE;GAClE,qBAAqB;AACvB,sEAAsE;GACpE,8BAA8B;AAChC,wEAAwE;GACtE,0BAA0B,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,gBAAgB,CAAC;IAC9B,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAwED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gCAAgC,GACtC,mBAAmB,CAiErB;AAED,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAEjF;AAED,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gCAAgC,GAAG,OAAO,CAE1F"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-ratification policy for CRT drift proposals.
|
|
3
|
+
*
|
|
4
|
+
* Pure module: takes a proposal's kind plus its untrusted `proposed_metadata`
|
|
5
|
+
* JSONB and returns the disposition the daemon owes it. No fs, process, or
|
|
6
|
+
* supabase imports — the auto-ratify tick wires the API and performs the
|
|
7
|
+
* ratification.
|
|
8
|
+
*
|
|
9
|
+
* WHY THIS EXISTS. Per-proposal human ratification cannot keep pace with the
|
|
10
|
+
* rate the machine corrects its own tree, so the safe majority of the drift
|
|
11
|
+
* stream is ratified by the daemon. The lifecycle is unchanged: this decides
|
|
12
|
+
* WHO ratifies, never WHETHER the ledger records it. The
|
|
13
|
+
* proposed -> ratified -> applied path and `realign-apply.ts` run untouched.
|
|
14
|
+
*
|
|
15
|
+
* THE ASYMMETRY THIS PROTECTS. An inward SHORTFALL proposal says "the tree
|
|
16
|
+
* claimed X, and our own work delivered less than X". Auto-applying it would
|
|
17
|
+
* convert a re-code obligation into a silent statement edit — the machine
|
|
18
|
+
* lowering a bar it failed to clear. That channel is never auto-ratified; it
|
|
19
|
+
* routes to an independent review session (`review_dispose`). Everything here
|
|
20
|
+
* turns on that one distinction.
|
|
21
|
+
*
|
|
22
|
+
* FAIL-CLOSED BY CONSTRUCTION. Safety is an ALLOWLIST, not a denylist: a
|
|
23
|
+
* proposal is auto-ratified only when it affirmatively matches a sanctioned
|
|
24
|
+
* shape. Unknown kinds, malformed metadata, and internally inconsistent rows
|
|
25
|
+
* all `hold` — they stay `proposed` and a human sees them. A new proposal_kind
|
|
26
|
+
* added upstream therefore defaults to `hold` until someone deliberately adds
|
|
27
|
+
* it to SAFE_OUTWARD_KINDS. That default is the point; do not replace the
|
|
28
|
+
* allowlist with a denylist.
|
|
29
|
+
*
|
|
30
|
+
* @module drift-ratify-policy
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Every kind the DB CHECK admits (migration 20260510162518:17) plus
|
|
34
|
+
* `demote_de_to_ude`, which the edge validator accepts but the CHECK rejects.
|
|
35
|
+
* Listed here so it classifies as a KNOWN kind that is nonetheless not
|
|
36
|
+
* auto-ratifiable, rather than falling through as "unknown".
|
|
37
|
+
*/
|
|
38
|
+
const KNOWN_PROPOSAL_KINDS = new Set([
|
|
39
|
+
'update_statement',
|
|
40
|
+
'add_node',
|
|
41
|
+
'retire_node',
|
|
42
|
+
'change_node_type',
|
|
43
|
+
'flip_ude_to_de',
|
|
44
|
+
'demote_de_to_ude',
|
|
45
|
+
]);
|
|
46
|
+
/**
|
|
47
|
+
* Outward kinds the daemon may ratify unattended.
|
|
48
|
+
*
|
|
49
|
+
* `demote_de_to_ude` is deliberately EXCLUDED: realign-apply.ts documents it as
|
|
50
|
+
* human/agent-triggered only — the audit/propose phase never emits it — so an
|
|
51
|
+
* outward one is unexplained provenance, exactly the shape that must reach a
|
|
52
|
+
* human. Adding a kind here is a deliberate act of sanctioning it.
|
|
53
|
+
*/
|
|
54
|
+
const SAFE_OUTWARD_KINDS = new Set([
|
|
55
|
+
'update_statement',
|
|
56
|
+
'add_node',
|
|
57
|
+
'retire_node',
|
|
58
|
+
'change_node_type',
|
|
59
|
+
'flip_ude_to_de',
|
|
60
|
+
]);
|
|
61
|
+
/** The only kind negative-branch.ts emits (negative-branch.ts:295-307). */
|
|
62
|
+
const NEGATIVE_BRANCH_KIND = 'add_node';
|
|
63
|
+
function classified(disposition, reason) {
|
|
64
|
+
return { disposition, reason };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* True only for a plain JSON object. Arrays and null are NOT metadata bags:
|
|
68
|
+
* `typeof null === 'object'` and `typeof [] === 'object'`, so both need an
|
|
69
|
+
* explicit rejection here.
|
|
70
|
+
*/
|
|
71
|
+
function isMetadataBag(value) {
|
|
72
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read a flag that the emitters only ever write as the literal `true`.
|
|
76
|
+
*
|
|
77
|
+
* Returns `undefined` for absent, `true`/`false` for a real boolean, and
|
|
78
|
+
* `'invalid'` for anything else. A truthy non-boolean (`"yes"`, `1`) is NOT
|
|
79
|
+
* silently coerced — coercion is how a malformed row sneaks into the
|
|
80
|
+
* auto-ratify path, and that is the failure this whole module exists to make
|
|
81
|
+
* impossible.
|
|
82
|
+
*/
|
|
83
|
+
function readStrictFlag(bag, key) {
|
|
84
|
+
if (!(key in bag))
|
|
85
|
+
return undefined;
|
|
86
|
+
const value = bag[key];
|
|
87
|
+
if (value === undefined)
|
|
88
|
+
return undefined;
|
|
89
|
+
if (typeof value === 'boolean')
|
|
90
|
+
return value;
|
|
91
|
+
return 'invalid';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Decide the disposition a drift proposal is owed.
|
|
95
|
+
*
|
|
96
|
+
* Precedence is load-bearing and ordered most-specific first:
|
|
97
|
+
* 1. unknown/absent kind -> hold
|
|
98
|
+
* 2. metadata present but not an object -> hold
|
|
99
|
+
* 3. a flag present with a non-boolean -> hold
|
|
100
|
+
* 4. inward:true + shortfall -> review_dispose <- the bar-lowering channel
|
|
101
|
+
* inward:true + legitimate_divergence -> auto_ratify
|
|
102
|
+
* inward:true + anything else -> hold
|
|
103
|
+
* 5. isNegativeBranch:true on add_node -> auto_ratify
|
|
104
|
+
* isNegativeBranch:true on other kinds -> hold (inconsistent provenance)
|
|
105
|
+
* 6. outward + kind in SAFE_OUTWARD_KINDS -> auto_ratify
|
|
106
|
+
* outward + known-but-unsanctioned -> hold
|
|
107
|
+
*
|
|
108
|
+
* Absent metadata means outward BY CONSTRUCTION, not by assumption:
|
|
109
|
+
* `detectInwardDrift` hardcodes `inward: true` (reality-writeback.ts:390) and
|
|
110
|
+
* `proposeNegativeBranchesForInjection` hardcodes `isNegativeBranch: true`
|
|
111
|
+
* (negative-branch.ts:305). Neither flag can be missing from a row that needs
|
|
112
|
+
* it, so absence of both is a sound outward signal.
|
|
113
|
+
*
|
|
114
|
+
* Pure. Total: every input yields a classification; nothing throws.
|
|
115
|
+
*/
|
|
116
|
+
export function classifyDriftProposal(input) {
|
|
117
|
+
const { proposalKind, proposedMetadata } = input;
|
|
118
|
+
// 1. A kind we cannot reason about is not a kind we may ratify.
|
|
119
|
+
if (typeof proposalKind !== 'string' || !KNOWN_PROPOSAL_KINDS.has(proposalKind)) {
|
|
120
|
+
return classified('hold', 'unknown_proposal_kind');
|
|
121
|
+
}
|
|
122
|
+
// Null/absent metadata is legal — an outward audit proposal need not carry a bag.
|
|
123
|
+
const hasMetadata = proposedMetadata !== null && proposedMetadata !== undefined;
|
|
124
|
+
if (hasMetadata && !isMetadataBag(proposedMetadata)) {
|
|
125
|
+
// 2. A string/number/array in the metadata column is a corrupt row.
|
|
126
|
+
return classified('hold', 'malformed_metadata');
|
|
127
|
+
}
|
|
128
|
+
const bag = hasMetadata
|
|
129
|
+
? proposedMetadata
|
|
130
|
+
: {};
|
|
131
|
+
const inward = readStrictFlag(bag, 'inward');
|
|
132
|
+
const isNegativeBranch = readStrictFlag(bag, 'isNegativeBranch');
|
|
133
|
+
// 3. A flag written as a non-boolean means the emitter contract was violated.
|
|
134
|
+
if (inward === 'invalid' || isNegativeBranch === 'invalid') {
|
|
135
|
+
return classified('hold', 'malformed_metadata');
|
|
136
|
+
}
|
|
137
|
+
// 4. The inward channel: reality contradicted a claim the tree made.
|
|
138
|
+
if (inward === true) {
|
|
139
|
+
const classification = bag['verifyClassification'];
|
|
140
|
+
if (classification === 'shortfall') {
|
|
141
|
+
// NEVER auto-ratified. Ratifying this would rewrite a claim our own work
|
|
142
|
+
// failed to meet — the machine grading its own homework downward.
|
|
143
|
+
return classified('review_dispose', 'inward_shortfall');
|
|
144
|
+
}
|
|
145
|
+
if (classification === 'legitimate_divergence') {
|
|
146
|
+
// The work landed; reality just took a different shape than declared.
|
|
147
|
+
// Recording that more accurately raises fidelity, it does not lower a bar.
|
|
148
|
+
return classified('auto_ratify', 'inward_legitimate_divergence');
|
|
149
|
+
}
|
|
150
|
+
// 'match' never produces a proposal (reality-writeback.ts:370), so seeing it
|
|
151
|
+
// here — or seeing anything unrecognized — means the row disagrees with the
|
|
152
|
+
// detector that supposedly made it. Hold.
|
|
153
|
+
return classified('hold', 'inward_unclassified');
|
|
154
|
+
}
|
|
155
|
+
// 5. Negative branches: an injection introduced a new UDE. Additive, and the
|
|
156
|
+
// emitter only ever pairs the flag with add_node.
|
|
157
|
+
if (isNegativeBranch === true) {
|
|
158
|
+
if (proposalKind !== NEGATIVE_BRANCH_KIND) {
|
|
159
|
+
return classified('hold', 'inconsistent_negative_branch');
|
|
160
|
+
}
|
|
161
|
+
return classified('auto_ratify', 'negative_branch');
|
|
162
|
+
}
|
|
163
|
+
// 6. Outward audit drift: the tree lagging observed reality, no self-grading
|
|
164
|
+
// involved. Safe when the kind is one the audit phase is sanctioned to emit.
|
|
165
|
+
if (SAFE_OUTWARD_KINDS.has(proposalKind)) {
|
|
166
|
+
return classified('auto_ratify', 'outward_audit_drift');
|
|
167
|
+
}
|
|
168
|
+
return classified('hold', 'kind_not_auto_ratifiable');
|
|
169
|
+
}
|
|
170
|
+
/** Convenience predicate for the tick's filter step. */
|
|
171
|
+
export function isAutoRatifiable(input) {
|
|
172
|
+
return classifyDriftProposal(input).disposition === 'auto_ratify';
|
|
173
|
+
}
|
|
174
|
+
/** Convenience predicate: does this proposal owe a review-session disposition? */
|
|
175
|
+
export function requiresReviewDisposition(input) {
|
|
176
|
+
return classifyDriftProposal(input).disposition === 'review_dispose';
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=drift-ratify-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-ratify-policy.js","sourceRoot":"","sources":["../src/drift-ratify-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-loop-registry.d.ts","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-loop-registry.d.ts","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqB/C;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,sEAAsE;IACtE,SAAS,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAC;IAC5C,kFAAkF;IAClF,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9D;AAED,eAAO,MAAM,aAAa,EAAE,cAAc,EAmZzC,CAAC"}
|
|
@@ -22,6 +22,8 @@ import { runCascadeProseTick, runNegativeBranchTick } from './cascade-restatemen
|
|
|
22
22
|
import { runPrdControllerTickAll } from './prd/index.js';
|
|
23
23
|
import { runMergeBackTick } from './merge-back-loop.js';
|
|
24
24
|
import { runDriftEvalTick, runPendingDriftEvalRequestsTick } from './drift-eval-loop.js';
|
|
25
|
+
import { runDriftRatifyTick } from './drift-ratify-loop.js';
|
|
26
|
+
import { runShortfallDispositionTick } from './shortfall-disposition-loop.js';
|
|
25
27
|
import { runSensorSweepTick } from './sensor-sweep.js';
|
|
26
28
|
import { runCiSensorTick } from './ci-sensor-loop.js';
|
|
27
29
|
import { reconcileDaemonProducts, buildReconcileDeps } from './config-reconcile.js';
|
|
@@ -210,6 +212,53 @@ export const LOOP_REGISTRY = [
|
|
|
210
212
|
}, 30_000, 'drift-eval-requests', { skipIfRunning: true }));
|
|
211
213
|
},
|
|
212
214
|
},
|
|
215
|
+
// 8b. Drift auto-ratification loop (60 seconds). Ratifies the safe majority
|
|
216
|
+
// of the drift stream (per drift-ratify-policy.ts) with a system actor so
|
|
217
|
+
// the tree tracks observed reality at machine speed instead of pooling in
|
|
218
|
+
// `proposed`. Inward shortfalls and anything unclassifiable are left
|
|
219
|
+
// untouched. Cadence is tight because the whole point is that the queue
|
|
220
|
+
// never pools beyond the current tick; the work per tick is one list plus
|
|
221
|
+
// one ratify per safe proposal.
|
|
222
|
+
{
|
|
223
|
+
guard: 'TELORA_DRIFT_RATIFY_LOOP',
|
|
224
|
+
announce: {
|
|
225
|
+
enabled: 'Drift auto-ratify loop tick: enabled (set TELORA_DRIFT_RATIFY_LOOP=0 to disable)',
|
|
226
|
+
disabled: 'Drift auto-ratify loop tick: disabled (TELORA_DRIFT_RATIFY_LOOP=0)',
|
|
227
|
+
},
|
|
228
|
+
register(engine, config) {
|
|
229
|
+
engine.intervals.push(safeInterval(async () => {
|
|
230
|
+
try {
|
|
231
|
+
await runDriftRatifyTick(config);
|
|
232
|
+
}
|
|
233
|
+
catch (err) {
|
|
234
|
+
log.warn('[drift-ratify-loop] tick failed:', err.message);
|
|
235
|
+
}
|
|
236
|
+
}, 60_000, 'drift-ratify-loop', { skipIfRunning: true }));
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
// 8c. Scoped shortfall-disposition pass (5 minutes). A focus carrying an
|
|
240
|
+
// undisposed shortfall cannot converge -- the completion gate withholds
|
|
241
|
+
// done. This arms a one-shot pass whose only mandate is disposing them, so
|
|
242
|
+
// the hold self-heals instead of wedging. Slower cadence than the ratify
|
|
243
|
+
// tick: arming spawns a team, so this is expensive work, and a held focus
|
|
244
|
+
// is not urgent by the second.
|
|
245
|
+
{
|
|
246
|
+
guard: 'TELORA_SHORTFALL_DISPOSITION_LOOP',
|
|
247
|
+
announce: {
|
|
248
|
+
enabled: 'Shortfall-disposition loop tick: enabled (set TELORA_SHORTFALL_DISPOSITION_LOOP=0 to disable)',
|
|
249
|
+
disabled: 'Shortfall-disposition loop tick: disabled (TELORA_SHORTFALL_DISPOSITION_LOOP=0)',
|
|
250
|
+
},
|
|
251
|
+
register(engine, config) {
|
|
252
|
+
engine.intervals.push(safeInterval(async () => {
|
|
253
|
+
try {
|
|
254
|
+
await runShortfallDispositionTick(config);
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
log.warn('[shortfall-disposition] tick failed:', err.message);
|
|
258
|
+
}
|
|
259
|
+
}, 300_000, 'shortfall-disposition-loop', { skipIfRunning: true }));
|
|
260
|
+
},
|
|
261
|
+
},
|
|
213
262
|
// 9. Artifact-health sensor sweep (30 minutes).
|
|
214
263
|
{
|
|
215
264
|
guard: 'TELORA_SENSOR_SWEEP_LOOP',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-loop-registry.js","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAiCvD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,sEAAsE;IACtE,uEAAuE;IACvE,6EAA6E;IAC7E;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO;YACtB,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,MAAM,sBAAsB,GAAG,aAAa,EAAE,CAAC,gCAAgC,CAAC;YAChF,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,MAAM,MAAM,GAAG,0BAA0B,CAAC;oBACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,WAAW,EAAE,sBAAsB;iBACpC,CAAC,CAAC;gBACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,CACN,oCAAoC,MAAM,CAAC,MAAM,oBAAoB;wBACnE,sBAAsB,sBAAsB,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;gBACJ,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;QACJ,CAAC;KACF;IAED,0DAA0D;IAC1D;QACE,KAAK,EAAE,mBAAmB;QAC1B,QAAQ,EAAE;YACR,OAAO,EAAE,+DAA+D;YACxE,QAAQ,EAAE,iDAAiD;SAC5D;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAClD,CAAC;QACJ,CAAC;KACF;IAED,0EAA0E;IAC1E;QACE,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE;YACR,OAAO,EAAE,6EAA6E;YACtF,QAAQ,EAAE,+DAA+D;SAC1E;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;wBACvB,GAAG,CAAC,IAAI,CACN,gCAAgC,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,WAAW,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,OAAO,cAAc,MAAM,CAAC,SAAS,EAAE,CACzJ,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACzD,CAAC;QACJ,CAAC;KACF;IAED,yEAAyE;IACzE;QACE,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE;YACR,OAAO,EAAE,uEAAuE;YAChF,QAAQ,EAAE,yDAAyD;SACpE;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBACjD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACxB,GAAG,CAAC,IAAI,CACN,kCAAkC,MAAM,CAAC,YAAY,aAAa,MAAM,CAAC,QAAQ,EAAE,CACpF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACtD,CAAC;QACJ,CAAC;KACF;IAED,8DAA8D;IAC9D,uEAAuE;IACvE,4CAA4C;IAC5C;QACE,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACnD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACxB,GAAG,CAAC,IAAI,CACN,wCAAwC,MAAM,CAAC,YAAY,aAAa,MAAM,CAAC,QAAQ,EAAE,CAC1F,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAC;QACJ,CAAC;KACF;IAED,qEAAqE;IACrE;QACE,KAAK,EAAE,iBAAiB;QACxB,QAAQ,EAAE;YACR,OAAO,EAAE,sEAAsE;YAC/E,QAAQ,EAAE,wDAAwD;SACnE;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;oBACrD,IACE,MAAM,CAAC,YAAY,GAAG,CAAC;wBACvB,MAAM,CAAC,KAAK,GAAG,CAAC;wBAChB,MAAM,CAAC,gBAAgB,GAAG,CAAC;wBAC3B,MAAM,CAAC,QAAQ,GAAG,CAAC,EACnB,CAAC;wBACD,GAAG,CAAC,IAAI,CACN,6CAA6C,MAAM,CAAC,kBAAkB,GAAG;4BACvE,oBAAoB,MAAM,CAAC,gBAAgB,iBAAiB,MAAM,CAAC,YAAY,GAAG;4BAClF,SAAS,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,QAAQ,EAAE,CAC5F,CAAC;oBACJ,CAAC;oBACD,sEAAsE;oBACtE,mEAAmE;oBACnE,qEAAqE;oBACrE,0EAA0E;oBAC1E,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;wBAC7B,GAAG,CAAC,IAAI,CACN,oBAAoB,MAAM,CAAC,aAAa,2CAA2C;4BACjF,4FAA4F;4BAC5F,uFAAuF;4BACvF,sBAAsB,MAAM,CAAC,iBAAiB,GAAG,CACpD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,cAAc,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACtD,CAAC;QACJ,CAAC;KACF;IAED,uCAAuC;IACvC;QACE,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE;YACR,OAAO,EAAE,yEAAyE;YAClF,QAAQ,EAAE,2DAA2D;SACtE;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACvD,CAAC;QACJ,CAAC;KACF;IAED,0EAA0E;IAC1E,oEAAoE;IACpE;QACE,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EAAE;YACR,OAAO,EAAE,yEAAyE;YAClF,QAAQ,EAAE,2DAA2D;SACtE;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACxD,CAAC;YAEF,+CAA+C;YAC/C,iEAAiE;YACjE,oEAAoE;YACpE,mDAAmD;YACnD,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,+BAA+B,CAAC,MAAM,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,wCAAwC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC7E,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3D,CAAC;QACJ,CAAC;KACF;IAED,gDAAgD;IAChD;QACE,KAAK,EAAE,0BAA0B;QACjC,QAAQ,EAAE;YACR,OAAO,EAAE,6EAA6E;YACtF,QAAQ,EAAE,+DAA+D;SAC1E;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;oBAChD,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;wBAChC,GAAG,CAAC,IAAI,CACN,wCAAwC,MAAM,CAAC,eAAe,GAAG;4BACjE,oBAAoB,MAAM,CAAC,gBAAgB,qBAAqB,MAAM,CAAC,gBAAgB,EAAE,CAC1F,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;KACF;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,oFAAoF;IACpF;QACE,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE;YACR,OAAO,EAAE,8EAA8E;YACvF,QAAQ,EAAE,gEAAgE;SAC3E;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC7C,IAAI,MAAM,CAAC,gBAAgB,GAAG,CAAC,IAAI,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;wBAClE,GAAG,CAAC,IAAI,CACN,qCAAqC,MAAM,CAAC,eAAe,GAAG;4BAC9D,SAAS,MAAM,CAAC,gBAAgB,aAAa,MAAM,CAAC,mBAAmB,EAAE,CAC1E,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACvD,CAAC;QACJ,CAAC;KACF;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,8EAA8E;IAC9E,6EAA6E;IAC7E;QACE,KAAK,EAAE,2BAA2B;QAClC,QAAQ,EAAE;YACR,QAAQ,EAAE,iEAAiE;SAC5E;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,aAAa,GAAG,aAAa,EAAE,CAAC,mCAAmC,CAAC;YAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CACN,2CAA2C,aAAa,IAAI;gBAC5D,+CAA+C;gBAC/C,yDAAyD;gBACzD,iEAAiE,CAClE,CAAC;YACF,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC9D,qEAAqE;YACrE,oEAAoE;YACpE,kEAAkE;YAClE,iEAAiE;YACjE,iEAAiE;YACjE,6DAA6D;YAC7D,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC/E,CAAC;YAEF,+CAA+C;YAC/C,mEAAmE;YACnE,mEAAmE;YACnE,oEAAoE;YACpE,mEAAmE;YACnE,kDAAkD;YAClD,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,mBAAmB,CAAC,gBAAgB,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CACN,uCAAuC,EACtC,GAAa,CAAC,OAAO,CACvB,CAAC;gBACJ,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC9D,CAAC;QACJ,CAAC;KACF;IAED,uEAAuE;IACvE;QACE,KAAK,EAAE,8BAA8B;QACrC,QAAQ,EAAE;YACR,OAAO,EAAE,qFAAqF;YAC9F,QAAQ,EAAE,uEAAuE;SAClF;QACD,QAAQ,CAAC,MAAM,EAAE,MAAM;YACrB,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,CAAC,SAAS,CAAC,IAAI,CACnB,YAAY,CAAC,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;oBACpE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,GAAG,CAAC,IAAI,CACN,oCAAoC,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG;4BAClF,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,IAAI,EAAE,CACtD,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,iCAAiC,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACxD,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"focus-loop-registry.js","sourceRoot":"","sources":["../src/focus-loop-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persona-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/persona-sections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,oBAAoB,EAAE,MAAM,GAC3B,MAAM,EAAE,CAqBV;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"persona-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/persona-sections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,oBAAoB,EAAE,MAAM,GAC3B,MAAM,EAAE,CAqBV;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkHnF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,EAAE,CA6BxD;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CA8BtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CAuDxD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,EAAE,CAqCV;AAMD,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,aAAa,GAAG,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CA2EvE"}
|