opensquid 0.5.407 → 0.5.426
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/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/functions/event.d.ts.map +1 -1
- package/dist/functions/event.js +30 -0
- package/dist/functions/event.js.map +1 -1
- package/dist/functions/handoff_session_start.d.ts.map +1 -1
- package/dist/functions/handoff_session_start.js +4 -6
- package/dist/functions/handoff_session_start.js.map +1 -1
- package/dist/functions/index.d.ts +4 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +5 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/functions/read_rubric.d.ts +27 -0
- package/dist/functions/read_rubric.d.ts.map +1 -0
- package/dist/functions/read_rubric.js +53 -0
- package/dist/functions/read_rubric.js.map +1 -0
- package/dist/functions/reset_scope_track_state.d.ts +20 -0
- package/dist/functions/reset_scope_track_state.d.ts.map +1 -0
- package/dist/functions/reset_scope_track_state.js +53 -0
- package/dist/functions/reset_scope_track_state.js.map +1 -0
- package/dist/functions/rubric_pre_inject.d.ts +22 -0
- package/dist/functions/rubric_pre_inject.d.ts.map +1 -0
- package/dist/functions/rubric_pre_inject.js +58 -0
- package/dist/functions/rubric_pre_inject.js.map +1 -0
- package/dist/functions/session_tool_history.d.ts +3 -3
- package/dist/functions/session_tool_history.js +1 -1
- package/dist/functions/session_tool_history.js.map +1 -1
- package/dist/functions/shell_parse.d.ts +41 -0
- package/dist/functions/shell_parse.d.ts.map +1 -0
- package/dist/functions/shell_parse.js +185 -0
- package/dist/functions/shell_parse.js.map +1 -0
- package/dist/functions/staged_docs_only.d.ts +23 -0
- package/dist/functions/staged_docs_only.d.ts.map +1 -0
- package/dist/functions/staged_docs_only.js +57 -0
- package/dist/functions/staged_docs_only.js.map +1 -0
- package/dist/mcp/server.js +14 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/ralph.d.ts +21 -0
- package/dist/mcp/tools/ralph.d.ts.map +1 -0
- package/dist/mcp/tools/ralph.js +18 -0
- package/dist/mcp/tools/ralph.js.map +1 -0
- package/dist/mcp/tools/workgraph.d.ts +11 -0
- package/dist/mcp/tools/workgraph.d.ts.map +1 -1
- package/dist/mcp/tools/workgraph.js +7 -0
- package/dist/mcp/tools/workgraph.js.map +1 -1
- package/dist/rag/backend_factory.d.ts.map +1 -1
- package/dist/rag/backend_factory.js +4 -0
- package/dist/rag/backend_factory.js.map +1 -1
- package/dist/rag/backends/libsql_lexical.d.ts.map +1 -1
- package/dist/rag/backends/libsql_lexical.js +21 -5
- package/dist/rag/backends/libsql_lexical.js.map +1 -1
- package/dist/rag/backends/libsql_store.d.ts.map +1 -1
- package/dist/rag/backends/libsql_store.js +33 -6
- package/dist/rag/backends/libsql_store.js.map +1 -1
- package/dist/rag/backends/perfile_source.d.ts.map +1 -1
- package/dist/rag/backends/perfile_source.js +3 -0
- package/dist/rag/backends/perfile_source.js.map +1 -1
- package/dist/rag/memory/consolidate.d.ts +3 -2
- package/dist/rag/memory/consolidate.d.ts.map +1 -1
- package/dist/rag/memory/consolidate.js +7 -4
- package/dist/rag/memory/consolidate.js.map +1 -1
- package/dist/rag/types.d.ts +2 -0
- package/dist/rag/types.d.ts.map +1 -1
- package/dist/rag/types.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts.map +1 -1
- package/dist/runtime/bootstrap.js +8 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/coding_flow_keys.d.ts +17 -0
- package/dist/runtime/coding_flow_keys.d.ts.map +1 -0
- package/dist/runtime/coding_flow_keys.js +21 -0
- package/dist/runtime/coding_flow_keys.js.map +1 -0
- package/dist/runtime/handoff/collect.d.ts.map +1 -1
- package/dist/runtime/handoff/collect.js +3 -1
- package/dist/runtime/handoff/collect.js.map +1 -1
- package/dist/runtime/hooks/session-start.js +5 -1
- package/dist/runtime/hooks/session-start.js.map +1 -1
- package/dist/runtime/hooks/session_id.d.ts +7 -0
- package/dist/runtime/hooks/session_id.d.ts.map +1 -1
- package/dist/runtime/hooks/session_id.js +30 -12
- package/dist/runtime/hooks/session_id.js.map +1 -1
- package/dist/runtime/protected_paths.d.ts +18 -0
- package/dist/runtime/protected_paths.d.ts.map +1 -0
- package/dist/runtime/protected_paths.js +18 -0
- package/dist/runtime/protected_paths.js.map +1 -0
- package/dist/runtime/ralph/decision_classifier.d.ts +18 -0
- package/dist/runtime/ralph/decision_classifier.d.ts.map +1 -0
- package/dist/runtime/ralph/decision_classifier.js +72 -0
- package/dist/runtime/ralph/decision_classifier.js.map +1 -0
- package/dist/runtime/ralph/escalate_lap.d.ts +31 -0
- package/dist/runtime/ralph/escalate_lap.d.ts.map +1 -0
- package/dist/runtime/ralph/escalate_lap.js +22 -0
- package/dist/runtime/ralph/escalate_lap.js.map +1 -0
- package/dist/runtime/ralph/escalator.d.ts +34 -0
- package/dist/runtime/ralph/escalator.d.ts.map +1 -0
- package/dist/runtime/ralph/escalator.js +19 -0
- package/dist/runtime/ralph/escalator.js.map +1 -0
- package/dist/runtime/ralph/lap_outcome.d.ts +43 -0
- package/dist/runtime/ralph/lap_outcome.d.ts.map +1 -0
- package/dist/runtime/ralph/lap_outcome.js +119 -0
- package/dist/runtime/ralph/lap_outcome.js.map +1 -0
- package/dist/runtime/ralph/orchestrator.d.ts +71 -0
- package/dist/runtime/ralph/orchestrator.d.ts.map +1 -0
- package/dist/runtime/ralph/orchestrator.js +74 -0
- package/dist/runtime/ralph/orchestrator.js.map +1 -0
- package/dist/runtime/ralph/ralph_template.d.ts +18 -0
- package/dist/runtime/ralph/ralph_template.d.ts.map +1 -0
- package/dist/runtime/ralph/ralph_template.js +61 -0
- package/dist/runtime/ralph/ralph_template.js.map +1 -0
- package/dist/runtime/ralph/supervisor.d.ts +30 -0
- package/dist/runtime/ralph/supervisor.d.ts.map +1 -0
- package/dist/runtime/ralph/supervisor.js +24 -0
- package/dist/runtime/ralph/supervisor.js.map +1 -0
- package/dist/runtime/session_state.d.ts +9 -1
- package/dist/runtime/session_state.d.ts.map +1 -1
- package/dist/runtime/session_state.js +25 -3
- package/dist/runtime/session_state.js.map +1 -1
- package/dist/runtime/wedge/compression_deps.d.ts.map +1 -1
- package/dist/runtime/wedge/compression_deps.js +9 -1
- package/dist/runtime/wedge/compression_deps.js.map +1 -1
- package/dist/setup/cli/gate.d.ts +7 -2
- package/dist/setup/cli/gate.d.ts.map +1 -1
- package/dist/setup/cli/gate.js +7 -3
- package/dist/setup/cli/gate.js.map +1 -1
- package/dist/setup/cli/ralph.d.ts +20 -0
- package/dist/setup/cli/ralph.d.ts.map +1 -0
- package/dist/setup/cli/ralph.js +168 -0
- package/dist/setup/cli/ralph.js.map +1 -0
- package/dist/setup/wizard/ralph_writer.d.ts +98 -0
- package/dist/setup/wizard/ralph_writer.d.ts.map +1 -0
- package/dist/setup/wizard/ralph_writer.js +114 -0
- package/dist/setup/wizard/ralph_writer.js.map +1 -0
- package/dist/workgraph/audience.d.ts +12 -0
- package/dist/workgraph/audience.d.ts.map +1 -0
- package/dist/workgraph/audience.js +10 -0
- package/dist/workgraph/audience.js.map +1 -0
- package/dist/workgraph/events.d.ts.map +1 -1
- package/dist/workgraph/events.js +34 -0
- package/dist/workgraph/events.js.map +1 -1
- package/dist/workgraph/store.d.ts.map +1 -1
- package/dist/workgraph/store.js +86 -12
- package/dist/workgraph/store.js.map +1 -1
- package/dist/workgraph/types.d.ts +33 -2
- package/dist/workgraph/types.d.ts.map +1 -1
- package/docs/rubric/author.md +17 -0
- package/docs/rubric/scope.md +16 -0
- package/package.json +3 -2
- package/packs/builtin/coding-flow/skills/entry-and-handoffs/skill.yaml +15 -0
- package/packs/builtin/coding-flow/skills/execute-gate/skill.yaml +9 -10
- package/packs/builtin/coding-flow/skills/scope-lifecycle/skill.yaml +72 -51
- package/packs/builtin/default-discipline/manifest.yaml +6 -3
- package/packs/builtin/default-discipline/skills/workflow/skill.yaml +19 -6
- package/packs/builtin/pack-architect/SKILL.md +10 -0
- package/packs/builtin/pack-architect/skills/skill-yaml-author-walkthrough/skill.yaml +7 -0
- package/packs/builtin/scope-architect/team.yaml +5 -2
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { superviseLap } from './supervisor.js';
|
|
2
|
+
import { escalateLap } from './escalate_lap.js';
|
|
3
|
+
/** Resource pauses END the run; everything else is per-item decision-residual that parks + continues. */
|
|
4
|
+
const RESOURCE_PAUSES = ['BUDGET', 'RATE_BUDGET', 'BOARD_EMPTY'];
|
|
5
|
+
const isResourcePause = (r) => RESOURCE_PAUSES.includes(r);
|
|
6
|
+
export async function runRalphLoop(cfg, deps) {
|
|
7
|
+
const { wg } = deps;
|
|
8
|
+
const closed = [];
|
|
9
|
+
const parked = [];
|
|
10
|
+
let spent = 0;
|
|
11
|
+
// THE single uniform stop-layer (Inv 5): every reason chat-escalates through ONE path — no per-trigger
|
|
12
|
+
// code paths (rejects Alt D). Two SEPARATE, explicit decisions ride alongside it: (a) wedge-mark ONLY the
|
|
13
|
+
// per-item residual (IRREVERSIBLE_BOUNDARY/SCOPE_FORK/UNRECOVERABLE_WEDGE) — a resource pause
|
|
14
|
+
// (BUDGET/RATE_BUDGET/BOARD_EMPTY) is TRANSIENT, so the item stays in `ready` to retry after the
|
|
15
|
+
// window/budget resets (wedge-marking it would PERMANENTLY park healthy work); (b) continue-vs-stop is
|
|
16
|
+
// isResourcePause at the call sites.
|
|
17
|
+
const parkAndEscalate = async (reason, item) => {
|
|
18
|
+
if (item !== undefined && !isResourcePause(reason)) {
|
|
19
|
+
await wg.wedgeMark(item.id, reason); // a marked item SKIPS on re-attempt (residual only — GR.3)
|
|
20
|
+
parked.push({ id: item.id, reason });
|
|
21
|
+
}
|
|
22
|
+
// GR.3 — undroppable. Omit `item` entirely when absent (exactOptionalPropertyTypes: no explicit undefined).
|
|
23
|
+
await escalateLap(reason, item === undefined ? { escalate: deps.escalate } : { item: item.id, escalate: deps.escalate });
|
|
24
|
+
};
|
|
25
|
+
for (;;) {
|
|
26
|
+
const ready = await wg.listReady(); // GR.1 ordering, claim+wedge aware (live-claimed items excluded)
|
|
27
|
+
if (ready.length === 0) {
|
|
28
|
+
await parkAndEscalate('BOARD_EMPTY'); // resource pause → escalate + STOP
|
|
29
|
+
return { stopped: 'BOARD_EMPTY', spent, closed, parked };
|
|
30
|
+
}
|
|
31
|
+
const item = ready[0]; // oldest-first (shipped listReady ORDER BY created_at; no priority column)
|
|
32
|
+
if (item === undefined)
|
|
33
|
+
continue; // unreachable (length checked) — narrows for strict indexing
|
|
34
|
+
const { won } = await wg.claimIssue(item.id, deps.claimAudience(), cfg.claimTtlSec); // GR.1 atomic CAS
|
|
35
|
+
if (!won)
|
|
36
|
+
continue; // another runner/harness won it — it now carries a live claim, excluded next pass
|
|
37
|
+
const outcome = await superviseLap(() => deps.runLap(item), cfg.supervise); // GR.3 → LapResult
|
|
38
|
+
spent += outcome.costUsd; // GR.3 propagates costUsd across retries
|
|
39
|
+
if (outcome.kind === 'SHIPPED') {
|
|
40
|
+
await wg.updateIssue(item.id, { status: 'closed' });
|
|
41
|
+
closed.push(item.id);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Non-SHIPPED → the ONE uniform path. HUMAN_REQUIRED carries its reason; WEDGE (and the
|
|
45
|
+
// post-supervision CRASH/TIMEOUT the type allows but superviseLap never returns — it exhausts
|
|
46
|
+
// them to HUMAN_REQUIRED{UNRECOVERABLE_WEDGE}) map to UNRECOVERABLE_WEDGE.
|
|
47
|
+
const reason = outcome.kind === 'HUMAN_REQUIRED' ? outcome.reason : 'UNRECOVERABLE_WEDGE';
|
|
48
|
+
await parkAndEscalate(reason, item);
|
|
49
|
+
if (isResourcePause(reason))
|
|
50
|
+
return { stopped: reason, spent, closed, parked }; // e.g. lap-emitted RATE_BUDGET
|
|
51
|
+
// else (IRREVERSIBLE_BOUNDARY / SCOPE_FORK / UNRECOVERABLE_WEDGE): parked, take the next item
|
|
52
|
+
}
|
|
53
|
+
if (cfg.authMode === 'api' && spent > cfg.maxBudgetUsd) {
|
|
54
|
+
await parkAndEscalate('BUDGET'); // Inv 11 API bound (verified total_cost_usd) → resource pause → STOP
|
|
55
|
+
return { stopped: 'BUDGET', spent, closed, parked };
|
|
56
|
+
}
|
|
57
|
+
if (cfg.once)
|
|
58
|
+
return { stopped: 'once', spent, closed, parked };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `opensquid loop resolve <itemId> --misclassified` — the human-override INPUT (post-hoc residual-shrink
|
|
63
|
+
* path; NOT the hot loop). The human marks a parked escalation as principle-settleable: we record the
|
|
64
|
+
* misclassification (the heuristic said ESCALATE, the correct verdict was DECIDE) and un-wedge the item so
|
|
65
|
+
* it re-enters `ready` for another lap. The SOLE caller of GR.2's recordMisclassification.
|
|
66
|
+
*/
|
|
67
|
+
export async function resolveParked(itemId, deps) {
|
|
68
|
+
const item = await deps.wg.getIssue(itemId);
|
|
69
|
+
if (item?.wedgeReason === undefined)
|
|
70
|
+
throw new Error(`resolveParked: not a parked item: ${itemId}`);
|
|
71
|
+
await deps.recordMisclassification(deps.sessionId, 'DECIDE', 'ESCALATE', item.title, deps.nowIso);
|
|
72
|
+
await deps.wg.clearWedge(itemId); // un-wedge → re-enters listReady
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=orchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/runtime/ralph/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GR.4 — the RALPH.md per-lap directive (the "Ralph constant").
|
|
3
|
+
*
|
|
4
|
+
* This is the STABLE prompt every lap runs (Brodie's Ralph: the same prompt, fresh context, every
|
|
5
|
+
* iteration — Inv 1 dumb-loop + Inv 2 fresh-context). It is NOT the orchestrator's logic; it is the
|
|
6
|
+
* instruction the spawned `claude -p` lap reads. The orchestrator stays a thin non-LLM loop; ALL the
|
|
7
|
+
* intelligence lives in the lap running this directive against the reloaded wedge-gated lessons.
|
|
8
|
+
*
|
|
9
|
+
* The one hard contract between lap and orchestrator: the lap MUST end by emitting a single greppable
|
|
10
|
+
* `RALPH-EXIT: {json}` line whose JSON is a `LapOutcome` (parsed by GR.2 `extractTypedExit`). Everything
|
|
11
|
+
* else (resume, lean load, the 7-phase flow, DECIDE-vs-ESCALATE) is the same discipline a human-driven
|
|
12
|
+
* session follows — the lap is gated identically (the gate is harness-agnostic, GDC).
|
|
13
|
+
*
|
|
14
|
+
* Exported as a string constant (not a shipped file) so the wizard (`ralph_writer.ts`) writes it to
|
|
15
|
+
* `~/.opensquid/RALPH.md` idempotently — no build-time file-copy-to-dist concern.
|
|
16
|
+
*/
|
|
17
|
+
export declare const RALPH_MD = "# RALPH.md \u2014 the gated-ralph per-lap directive\n\nYou are ONE lap of an autonomous gated loop. A thin orchestrator handed you exactly one already-claimed\nwork-item id via `--item <id>`. Your context is FRESH \u2014 nothing carried over from the previous lap\nexcept the durable disk (the work-graph + the wedge-gated lesson store). That is by design: you are the\ndumb loop's smart body (Inv 1/2). Do the item, then exit with a typed verdict. Do not try to do the\nwhole board \u2014 the orchestrator takes the next item.\n\n## What to do\n\n1. **Resume + load lean.** Read the item (`workgraph_get`) and recall only the lessons/memories relevant\n to it (scoped recall). Do NOT bulk-load the whole store \u2014 fresh context is the point.\n2. **Run the flow.** Drive SCOPE \u2192 AUTHOR \u2192 the 7-phase exactly as an interactive session would. The gate\n is identical for you (it is harness-agnostic). You CANNOT route around it \u2014 `--no-verify` is futile\n (the PreToolUse + git-owned gates both hold), and that is the safety floor that lets you run unattended.\n3. **DECIDE, don't ask.** Surface decisions are yours to settle by the locked principles (rename, format,\n file location, refactor \u2014 Simplicity). Decide and proceed. Permission-fishing is drift, not diligence.\n4. **ESCALATE only the genuine residual.** Stop and emit `HUMAN_REQUIRED` ONLY for: an irreversible /\n outward boundary you cannot cross (npm publish, OTP, force-push, prod deploy, drop table) \u2192\n `IRREVERSIBLE_BOUNDARY`; a genuine product/UX fork the principles cannot settle \u2192 `SCOPE_FORK`. These\n are the things only the human can own. Everything else, you own.\n5. **Ship gated.** Land the work only through the flow (tests + gates green, commit, push if configured).\n Flush any durable lessons learned.\n\n## How to exit (the ONE hard contract)\n\nEnd your run by printing EXACTLY ONE line of the form:\n\n```\nRALPH-EXIT: {\"kind\":\"SHIPPED\"}\n```\n\nThe JSON must be one of:\n\n- `{\"kind\":\"SHIPPED\"}` \u2014 the item is done, gated, committed.\n- `{\"kind\":\"HUMAN_REQUIRED\",\"reason\":\"IRREVERSIBLE_BOUNDARY\",\"payload\":{...}}` \u2014 parked for the human;\n `reason` is one of IRREVERSIBLE_BOUNDARY | SCOPE_FORK | UNRECOVERABLE_WEDGE | BUDGET | RATE_BUDGET |\n BOARD_EMPTY (you will normally only emit the first two; the orchestrator owns the resource reasons).\n- `{\"kind\":\"WEDGE\"}` \u2014 you are genuinely stuck and a fresh lap on the SAME item would not help (the\n orchestrator wedge-marks it so it is not re-attempted, and escalates UNRECOVERABLE_WEDGE).\n\nIf you crash or time out, say nothing special \u2014 the orchestrator's supervisor treats a missing/erroring\nexit as a transient CRASH/TIMEOUT and bounds the retries itself. A clean run with NO tag = `SHIPPED`.\n";
|
|
18
|
+
//# sourceMappingURL=ralph_template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralph_template.d.ts","sourceRoot":"","sources":["../../../src/runtime/ralph/ralph_template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,QAAQ,ixFA2CpB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GR.4 — the RALPH.md per-lap directive (the "Ralph constant").
|
|
3
|
+
*
|
|
4
|
+
* This is the STABLE prompt every lap runs (Brodie's Ralph: the same prompt, fresh context, every
|
|
5
|
+
* iteration — Inv 1 dumb-loop + Inv 2 fresh-context). It is NOT the orchestrator's logic; it is the
|
|
6
|
+
* instruction the spawned `claude -p` lap reads. The orchestrator stays a thin non-LLM loop; ALL the
|
|
7
|
+
* intelligence lives in the lap running this directive against the reloaded wedge-gated lessons.
|
|
8
|
+
*
|
|
9
|
+
* The one hard contract between lap and orchestrator: the lap MUST end by emitting a single greppable
|
|
10
|
+
* `RALPH-EXIT: {json}` line whose JSON is a `LapOutcome` (parsed by GR.2 `extractTypedExit`). Everything
|
|
11
|
+
* else (resume, lean load, the 7-phase flow, DECIDE-vs-ESCALATE) is the same discipline a human-driven
|
|
12
|
+
* session follows — the lap is gated identically (the gate is harness-agnostic, GDC).
|
|
13
|
+
*
|
|
14
|
+
* Exported as a string constant (not a shipped file) so the wizard (`ralph_writer.ts`) writes it to
|
|
15
|
+
* `~/.opensquid/RALPH.md` idempotently — no build-time file-copy-to-dist concern.
|
|
16
|
+
*/
|
|
17
|
+
export const RALPH_MD = `# RALPH.md — the gated-ralph per-lap directive
|
|
18
|
+
|
|
19
|
+
You are ONE lap of an autonomous gated loop. A thin orchestrator handed you exactly one already-claimed
|
|
20
|
+
work-item id via \`--item <id>\`. Your context is FRESH — nothing carried over from the previous lap
|
|
21
|
+
except the durable disk (the work-graph + the wedge-gated lesson store). That is by design: you are the
|
|
22
|
+
dumb loop's smart body (Inv 1/2). Do the item, then exit with a typed verdict. Do not try to do the
|
|
23
|
+
whole board — the orchestrator takes the next item.
|
|
24
|
+
|
|
25
|
+
## What to do
|
|
26
|
+
|
|
27
|
+
1. **Resume + load lean.** Read the item (\`workgraph_get\`) and recall only the lessons/memories relevant
|
|
28
|
+
to it (scoped recall). Do NOT bulk-load the whole store — fresh context is the point.
|
|
29
|
+
2. **Run the flow.** Drive SCOPE → AUTHOR → the 7-phase exactly as an interactive session would. The gate
|
|
30
|
+
is identical for you (it is harness-agnostic). You CANNOT route around it — \`--no-verify\` is futile
|
|
31
|
+
(the PreToolUse + git-owned gates both hold), and that is the safety floor that lets you run unattended.
|
|
32
|
+
3. **DECIDE, don't ask.** Surface decisions are yours to settle by the locked principles (rename, format,
|
|
33
|
+
file location, refactor — Simplicity). Decide and proceed. Permission-fishing is drift, not diligence.
|
|
34
|
+
4. **ESCALATE only the genuine residual.** Stop and emit \`HUMAN_REQUIRED\` ONLY for: an irreversible /
|
|
35
|
+
outward boundary you cannot cross (npm publish, OTP, force-push, prod deploy, drop table) →
|
|
36
|
+
\`IRREVERSIBLE_BOUNDARY\`; a genuine product/UX fork the principles cannot settle → \`SCOPE_FORK\`. These
|
|
37
|
+
are the things only the human can own. Everything else, you own.
|
|
38
|
+
5. **Ship gated.** Land the work only through the flow (tests + gates green, commit, push if configured).
|
|
39
|
+
Flush any durable lessons learned.
|
|
40
|
+
|
|
41
|
+
## How to exit (the ONE hard contract)
|
|
42
|
+
|
|
43
|
+
End your run by printing EXACTLY ONE line of the form:
|
|
44
|
+
|
|
45
|
+
\`\`\`
|
|
46
|
+
RALPH-EXIT: {"kind":"SHIPPED"}
|
|
47
|
+
\`\`\`
|
|
48
|
+
|
|
49
|
+
The JSON must be one of:
|
|
50
|
+
|
|
51
|
+
- \`{"kind":"SHIPPED"}\` — the item is done, gated, committed.
|
|
52
|
+
- \`{"kind":"HUMAN_REQUIRED","reason":"IRREVERSIBLE_BOUNDARY","payload":{...}}\` — parked for the human;
|
|
53
|
+
\`reason\` is one of IRREVERSIBLE_BOUNDARY | SCOPE_FORK | UNRECOVERABLE_WEDGE | BUDGET | RATE_BUDGET |
|
|
54
|
+
BOARD_EMPTY (you will normally only emit the first two; the orchestrator owns the resource reasons).
|
|
55
|
+
- \`{"kind":"WEDGE"}\` — you are genuinely stuck and a fresh lap on the SAME item would not help (the
|
|
56
|
+
orchestrator wedge-marks it so it is not re-attempted, and escalates UNRECOVERABLE_WEDGE).
|
|
57
|
+
|
|
58
|
+
If you crash or time out, say nothing special — the orchestrator's supervisor treats a missing/erroring
|
|
59
|
+
exit as a transient CRASH/TIMEOUT and bounds the retries itself. A clean run with NO tag = \`SHIPPED\`.
|
|
60
|
+
`;
|
|
61
|
+
//# sourceMappingURL=ralph_template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralph_template.js","sourceRoot":"","sources":["../../../src/runtime/ralph/ralph_template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GR.3 — the lap-supervisor: bounded respawn + observable heartbeat (Inv 6: no silent death, no
|
|
3
|
+
* unbounded retry).
|
|
4
|
+
*
|
|
5
|
+
* `superviseLap` runs a lap, retrying ONLY on CRASH/TIMEOUT (every other outcome — SHIPPED,
|
|
6
|
+
* HUMAN_REQUIRED, WEDGE — is terminal and returned as-is). Retries are BOUNDED by `maxRetries`; on
|
|
7
|
+
* exhaustion it returns a typed `HUMAN_REQUIRED{UNRECOVERABLE_WEDGE}` rather than looping forever or
|
|
8
|
+
* dying quietly. The `heartbeat` callback is the OBSERVABLE liveness tick (the orchestrator passes a
|
|
9
|
+
* lease-refresh, the `live_session_lease` freshness model) — liveness is a signal, not a hope.
|
|
10
|
+
*
|
|
11
|
+
* Cost propagates: each attempt bills `costUsd`, accumulated across retries, so GR.4 can sum the Inv 11
|
|
12
|
+
* running budget even when a crash-then-ship spent on both attempts.
|
|
13
|
+
*
|
|
14
|
+
* Imported by: src/runtime/ralph/orchestrator.ts (GR.4).
|
|
15
|
+
*/
|
|
16
|
+
import type { LapOutcome } from './lap_outcome.js';
|
|
17
|
+
export type LapResult = LapOutcome & {
|
|
18
|
+
costUsd: number;
|
|
19
|
+
};
|
|
20
|
+
export interface SuperviseOpts {
|
|
21
|
+
maxRetries: number;
|
|
22
|
+
/** Backoff before the n-th retry (n is 0-based attempt index just completed). */
|
|
23
|
+
backoffMs: (attempt: number) => number;
|
|
24
|
+
/** Observable liveness tick, fired once per attempt (e.g. refreshLease). */
|
|
25
|
+
heartbeat: () => void;
|
|
26
|
+
/** Injectable sleep (tests pass a no-op); defaults to a real timer. */
|
|
27
|
+
sleep?: (ms: number) => Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export declare function superviseLap(run: () => Promise<LapResult>, opts: SuperviseOpts): Promise<LapResult>;
|
|
30
|
+
//# sourceMappingURL=supervisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../../../src/runtime/ralph/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,uEAAuE;IACvE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAID,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC7B,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,SAAS,CAAC,CAmBpB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const realSleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
2
|
+
export async function superviseLap(run, opts) {
|
|
3
|
+
const sleep = opts.sleep ?? realSleep;
|
|
4
|
+
let costUsd = 0;
|
|
5
|
+
for (let attempt = 0; attempt <= opts.maxRetries; attempt++) {
|
|
6
|
+
opts.heartbeat();
|
|
7
|
+
let out = null;
|
|
8
|
+
try {
|
|
9
|
+
out = await run();
|
|
10
|
+
costUsd += out.costUsd;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
out = null; // a thrown run is treated as CRASH (retryable)
|
|
14
|
+
}
|
|
15
|
+
if (out !== null && out.kind !== 'CRASH' && out.kind !== 'TIMEOUT') {
|
|
16
|
+
return { ...out, costUsd }; // terminal: SHIPPED / HUMAN_REQUIRED / WEDGE
|
|
17
|
+
}
|
|
18
|
+
if (attempt < opts.maxRetries)
|
|
19
|
+
await sleep(opts.backoffMs(attempt));
|
|
20
|
+
}
|
|
21
|
+
// bounded → escalate, never silent
|
|
22
|
+
return { kind: 'HUMAN_REQUIRED', reason: 'UNRECOVERABLE_WEDGE', costUsd };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=supervisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../../src/runtime/ralph/supervisor.ts"],"names":[],"mappings":"AA6BA,MAAM,SAAS,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEvF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAA6B,EAC7B,IAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;IACtC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,GAAG,GAAqB,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,GAAG,EAAE,CAAC;YAClB,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,IAAI,CAAC,CAAC,+CAA+C;QAC7D,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACnE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,6CAA6C;QAC3E,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU;YAAE,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,mCAAmC;IACnC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -42,6 +42,10 @@ export declare const SESSION_LEDGER_CAP = 200;
|
|
|
42
42
|
export interface ToolLedger {
|
|
43
43
|
turn: string[];
|
|
44
44
|
session: string[];
|
|
45
|
+
/** wg-3e241144f441: per-track research window. Reset at scope_start (the re-arm,
|
|
46
|
+
* via reset_scope_track_state), SURVIVES turn resets — so the SCOPE depth gate
|
|
47
|
+
* counts research across all of a track's scoping turns, not just the write-turn. */
|
|
48
|
+
sinceScope: string[];
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
51
|
* Conservative, fail-closed: true only if EVERY pipeline/sequence segment is an allowlisted
|
|
@@ -67,13 +71,17 @@ export declare function readSessionCwd(sessionId: string): Promise<string | null
|
|
|
67
71
|
* A missing ledger is created with an empty `turn` (no-op semantically).
|
|
68
72
|
*/
|
|
69
73
|
export declare function resetTurnLedger(sessionId: string): Promise<void>;
|
|
74
|
+
/** wg-3e241144f441: zero the per-track research window at scope_start (the re-arm).
|
|
75
|
+
* Called by reset_scope_track_state — `sinceScope` survives turn resets but resets
|
|
76
|
+
* when a NEW track begins, so the SCOPE depth gate measures research for THIS track. */
|
|
77
|
+
export declare function resetScopeWindow(sessionId: string): Promise<void>;
|
|
70
78
|
/**
|
|
71
79
|
* Read the tool ledger for the given scope. `current_turn` returns names
|
|
72
80
|
* since the last `UserPromptSubmit`; `session` returns up to the most-recent
|
|
73
81
|
* 200 names across the whole session. Returns `{ tools: [] }` on missing
|
|
74
82
|
* or unreadable state.
|
|
75
83
|
*/
|
|
76
|
-
export declare function readSessionToolLedger(sessionId: string, scope: 'current_turn' | 'session'): Promise<{
|
|
84
|
+
export declare function readSessionToolLedger(sessionId: string, scope: 'current_turn' | 'session' | 'since_scope_start'): Promise<{
|
|
77
85
|
tools: string[];
|
|
78
86
|
}>;
|
|
79
87
|
export interface ActiveTask {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_state.d.ts","sourceRoot":"","sources":["../../src/runtime/session_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAQH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAKtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"session_state.d.ts","sourceRoot":"","sources":["../../src/runtime/session_state.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export const SESSION_LEDGER_CAP = 200;
|
|
|
44
44
|
/** Well-known session-state key for the tool-call ledger. */
|
|
45
45
|
const LEDGER_KEY = 'tool-ledger';
|
|
46
46
|
function emptyLedger() {
|
|
47
|
-
return { turn: [], session: [] };
|
|
47
|
+
return { turn: [], session: [], sinceScope: [] };
|
|
48
48
|
}
|
|
49
49
|
async function readLedger(sessionId) {
|
|
50
50
|
try {
|
|
@@ -58,7 +58,12 @@ async function readLedger(sessionId) {
|
|
|
58
58
|
Array.isArray(parsed.session)) {
|
|
59
59
|
const turn = parsed.turn.filter((x) => typeof x === 'string');
|
|
60
60
|
const session = parsed.session.filter((x) => typeof x === 'string');
|
|
61
|
-
|
|
61
|
+
// Backward-compatible: a pre-upgrade ledger has no `sinceScope` → default [].
|
|
62
|
+
const rawSince = parsed.sinceScope;
|
|
63
|
+
const sinceScope = Array.isArray(rawSince)
|
|
64
|
+
? rawSince.filter((x) => typeof x === 'string')
|
|
65
|
+
: [];
|
|
66
|
+
return { turn, session, sinceScope };
|
|
62
67
|
}
|
|
63
68
|
return emptyLedger();
|
|
64
69
|
}
|
|
@@ -144,6 +149,7 @@ export async function appendTool(sessionId, toolName, command) {
|
|
|
144
149
|
const push = (name) => {
|
|
145
150
|
ledger.turn.push(name);
|
|
146
151
|
ledger.session.push(name);
|
|
152
|
+
ledger.sinceScope.push(name);
|
|
147
153
|
};
|
|
148
154
|
push(toolName);
|
|
149
155
|
if (toolName === 'Bash' && typeof command === 'string' && isReadOnlyBash(command)) {
|
|
@@ -152,6 +158,9 @@ export async function appendTool(sessionId, toolName, command) {
|
|
|
152
158
|
if (ledger.session.length > SESSION_LEDGER_CAP) {
|
|
153
159
|
ledger.session = ledger.session.slice(-SESSION_LEDGER_CAP);
|
|
154
160
|
}
|
|
161
|
+
if (ledger.sinceScope.length > SESSION_LEDGER_CAP) {
|
|
162
|
+
ledger.sinceScope = ledger.sinceScope.slice(-SESSION_LEDGER_CAP);
|
|
163
|
+
}
|
|
155
164
|
await writeLedger(sessionId, ledger);
|
|
156
165
|
}
|
|
157
166
|
// ---------------------------------------------------------------------------
|
|
@@ -189,6 +198,14 @@ export async function resetTurnLedger(sessionId) {
|
|
|
189
198
|
ledger.turn = [];
|
|
190
199
|
await writeLedger(sessionId, ledger);
|
|
191
200
|
}
|
|
201
|
+
/** wg-3e241144f441: zero the per-track research window at scope_start (the re-arm).
|
|
202
|
+
* Called by reset_scope_track_state — `sinceScope` survives turn resets but resets
|
|
203
|
+
* when a NEW track begins, so the SCOPE depth gate measures research for THIS track. */
|
|
204
|
+
export async function resetScopeWindow(sessionId) {
|
|
205
|
+
const ledger = await readLedger(sessionId);
|
|
206
|
+
ledger.sinceScope = [];
|
|
207
|
+
await writeLedger(sessionId, ledger);
|
|
208
|
+
}
|
|
192
209
|
/**
|
|
193
210
|
* Read the tool ledger for the given scope. `current_turn` returns names
|
|
194
211
|
* since the last `UserPromptSubmit`; `session` returns up to the most-recent
|
|
@@ -197,7 +214,12 @@ export async function resetTurnLedger(sessionId) {
|
|
|
197
214
|
*/
|
|
198
215
|
export async function readSessionToolLedger(sessionId, scope) {
|
|
199
216
|
const ledger = await readLedger(sessionId);
|
|
200
|
-
|
|
217
|
+
const tools = scope === 'current_turn'
|
|
218
|
+
? ledger.turn
|
|
219
|
+
: scope === 'since_scope_start'
|
|
220
|
+
? ledger.sinceScope
|
|
221
|
+
: ledger.session;
|
|
222
|
+
return { tools: [...tools] };
|
|
201
223
|
}
|
|
202
224
|
/** Write the active-task signal (called by the AP.1 PreToolUse mirror). */
|
|
203
225
|
export async function writeActiveTask(sessionId, task) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_state.js","sourceRoot":"","sources":["../../src/runtime/session_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIpD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,UAAU,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"session_state.js","sourceRoot":"","sources":["../../src/runtime/session_state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAIpD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,UAAU,GAAG,aAAa,CAAC;AAWjC,SAAS,WAAW;IAClB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,SAAiB;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,MAAM,IAAI,MAAM;YAChB,SAAS,IAAI,MAAM;YACnB,KAAK,CAAC,OAAO,CAAE,MAA4B,CAAC,IAAI,CAAC;YACjD,KAAK,CAAC,OAAO,CAAE,MAA+B,CAAC,OAAO,CAAC,EACvD,CAAC;YACD,MAAM,IAAI,GAAI,MAA8B,CAAC,IAAI,CAAC,MAAM,CACtD,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;YACF,MAAM,OAAO,GAAI,MAAiC,CAAC,OAAO,CAAC,MAAM,CAC/D,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;YACF,8EAA8E;YAC9E,MAAM,QAAQ,GAAI,MAAmC,CAAC,UAAU,CAAC;YACjE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACxC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,SAAiB,EAAE,MAAkB;IAC9D,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrD,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACtC,MAAM;IACN,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH,kGAAkG;AAClG,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtF,IACE,IAAI,KAAK,MAAM;QACf,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CACvF;QAED,OAAO,IAAI,CAAC;IACd,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,gDAAgD;IACvF,MAAM,QAAQ,GAAG,OAAO;SACrB,KAAK,CAAC,cAAc,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACnE,IAAI,cAAc,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,QAAgB,EAChB,OAAgB;IAEhB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,CAAC;IACf,IAAI,QAAQ,KAAK,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAC/C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QAClD,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,EAAE;AACF,+EAA+E;AAC/E,gEAAgE;AAChE,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAE9E,MAAM,OAAO,GAAG,KAAK,CAAC;AAEtB,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAW;IACnE,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClF,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;yFAEyF;AACzF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,MAAM,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,KAAuD;IAEvD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,KAAK,GACT,KAAK,KAAK,cAAc;QACtB,CAAC,CAAC,MAAM,CAAC,IAAI;QACb,CAAC,CAAC,KAAK,KAAK,mBAAmB;YAC7B,CAAC,CAAC,MAAM,CAAC,UAAU;YACnB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;AAC/B,CAAC;AA2BD,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,IAAgB;IACvE,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;QACxF,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,OAAQ,MAA0B,CAAC,EAAE,KAAK,QAAQ;YAClD,OAAQ,MAA+B,CAAC,OAAO,KAAK,QAAQ;YAC5D,OAAQ,MAAkC,CAAC,UAAU,KAAK,QAAQ,EAClE,CAAC;YACD,MAAM,CAAC,GAAG,MAAiC,CAAC;YAC5C,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAY;gBAClB,OAAO,EAAE,CAAC,CAAC,OAAiB;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAoB;gBAClC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,SAAiB;IACvD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;IAAC,MAAM,CAAC;QACP,2EAA2E;IAC7E,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,yEAAyE;AACzE,+EAA+E;AAC/E,yEAAyE;AACzE,yDAAyD;AACzD,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,yEAAyE;AACzE,4EAA4E;AAC5E,8EAA8E;AAE9E,+DAA+D;AAC/D,MAAM,SAAS,GAAG,aAAa,CAAC;AAKhC,mFAAmF;AACnF,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAe,CAAC,oBAAoB,KAAK,QAAQ;QACzD,OAAQ,CAAe,CAAC,aAAa,KAAK,SAAS;QACnD,OAAQ,CAAe,CAAC,YAAY,KAAK,SAAS,CACnD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CACvB,MAAM,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CACpD,CAAC;QACb,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QACtF,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;YACvE,IAAI,WAAW,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,SAAiB,EACjB,KAAY,EACZ,cAAiC,EACjC,cAAmC,IAAI,GAAG,EAAE;IAE5C,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression_deps.d.ts","sourceRoot":"","sources":["../../../src/runtime/wedge/compression_deps.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAIzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"compression_deps.d.ts","sourceRoot":"","sources":["../../../src/runtime/wedge/compression_deps.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAIzC,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAoDxE"}
|
|
@@ -42,7 +42,15 @@ export async function makeConsolidateRunner() {
|
|
|
42
42
|
getMemoryById: (id) => getMemoryById(client, id),
|
|
43
43
|
insertMemory: (m) => insertMemory(client, m, sourceDir),
|
|
44
44
|
recallIds: (query, k) => resolveRecallScope().then((scope) => backend.recall(query, k, scope).then((hits) => hits.map((h) => h.lesson.id))),
|
|
45
|
-
|
|
45
|
+
demoteMemory: (id) => {
|
|
46
|
+
// wg-9e4f4eb2a40f: DEMOTE (retire), not hard-delete — retain the rollback floor. The live
|
|
47
|
+
// libsql-fastembed store always implements demoteLesson (like the dbUrl guard above); fail
|
|
48
|
+
// loud if a non-consolidating backend is ever wired here.
|
|
49
|
+
if (backend.demoteLesson === undefined) {
|
|
50
|
+
return Promise.reject(new Error('compression: backend has no demoteLesson — cannot consolidate'));
|
|
51
|
+
}
|
|
52
|
+
return backend.demoteLesson(id);
|
|
53
|
+
},
|
|
46
54
|
summarize: (prompt) => {
|
|
47
55
|
if (reasoningCfg === undefined) {
|
|
48
56
|
return Promise.reject(new Error('compression: no "reasoning" model alias configured'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression_deps.js","sourceRoot":"","sources":["../../../src/runtime/wedge/compression_deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EACL,WAAW,GAGZ,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOlG;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,MAAM,GAAG,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACzC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,IAAI,qCAAqC,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,iCAAiC;IAC1D,8FAA8F;IAC9F,kEAAkE;IAClE,MAAM,SAAS,GAAG,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,MAAM,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtC,MAAM,IAAI,GAAoB;QAC5B,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAChD,YAAY,EAAE,CAAC,CAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC;QAClE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CACtB,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC7E;QACH,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"compression_deps.js","sourceRoot":"","sources":["../../../src/runtime/wedge/compression_deps.ts"],"names":[],"mappings":"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"}
|
package/dist/setup/cli/gate.d.ts
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* Imported by: src/cli.ts (registerGate); the installed git hooks (`exec opensquid gate …`).
|
|
26
26
|
*/
|
|
27
27
|
import type { Command } from 'commander';
|
|
28
|
+
import { PROTECTED_PREFIXES } from '../../runtime/protected_paths.js';
|
|
28
29
|
/** GDC.2 — is this invocation gated? The gate binds to the AGENT, not to a
|
|
29
30
|
* location (user directive 2026-06-11: "all agents in any harness; git on
|
|
30
31
|
* the terminal behaves normally"): `coding-flow` in the USER scope
|
|
@@ -41,8 +42,12 @@ export declare function isGatedRepo(cwd: string): Promise<boolean>;
|
|
|
41
42
|
* A change touching NONE of these is not the flow's subject (README, banner,
|
|
42
43
|
* docs/, LICENSE, CI config…) → allowed, attested under the existing
|
|
43
44
|
* `docs_only` wire reason (now meaning "non-code"). [] still fails closed
|
|
44
|
-
* (commitFiles' git-error contract).
|
|
45
|
-
|
|
45
|
+
* (commitFiles' git-error contract). The predicate now lives in one home —
|
|
46
|
+
* `runtime/protected_paths.ts` — shared with the in-session `staged_docs_only`
|
|
47
|
+
* primitive so the boundary and the nudge can never diverge. Imported for local
|
|
48
|
+
* use AND re-exported because gate.test.ts's drift pin imports
|
|
49
|
+
* `PROTECTED_PREFIXES` from this module. */
|
|
50
|
+
export { PROTECTED_PREFIXES };
|
|
46
51
|
/** GDC.1 — the gate's subject is the AGENT, never the human (user directive
|
|
47
52
|
* 2026-06-11: "I should be able to use the commands naturally"). Agent hosts
|
|
48
53
|
* mark their spawned shells (live-probed: Claude Code sets CLAUDECODE +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/setup/cli/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../../src/setup/cli/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAE,kBAAkB,EAAc,MAAM,kCAAkC,CAAC;AAUlF;;;;;;kCAMkC;AAClC,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAa/D;AAyBD;;;;;;;;;;;;6CAY6C;AAC7C,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;8DAK8D;AAC9D,eAAO,MAAM,iBAAiB,wDAAyD,CAAC;AACxF,eAAO,MAAM,iBAAiB,GAAI,MAAK,MAAM,CAAC,UAAwB,KAAG,OACnB,CAAC;AAOvD;;kEAEkE;AAClE,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,KAAK,EAAE,MAAM,EAAE,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,CAWpF;AAoCD,2EAA2E;AAC3E,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAC3B,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CA8CjB;AAYD;;;4EAG4E;AAC5E,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,0EAA0E;AAC1E,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOjE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqCnD"}
|
package/dist/setup/cli/gate.js
CHANGED
|
@@ -30,6 +30,7 @@ import { join } from 'node:path';
|
|
|
30
30
|
import { promisify } from 'node:util';
|
|
31
31
|
import { resolveMcpSessionId } from '../../runtime/hooks/session_id.js';
|
|
32
32
|
import { OPENSQUID_HOME, resolveProjectScopeRoot } from '../../runtime/paths.js';
|
|
33
|
+
import { PROTECTED_PREFIXES, isDocsOnly } from '../../runtime/protected_paths.js';
|
|
33
34
|
import { readFsmStateRaw } from '../../runtime/fsm_state.js';
|
|
34
35
|
import { readActiveTask } from '../../runtime/session_state.js';
|
|
35
36
|
import { isComplete, readPhaseState } from '../../runtime/workflow_phases.js';
|
|
@@ -90,9 +91,12 @@ async function changedFiles(boundary, cwd) {
|
|
|
90
91
|
* A change touching NONE of these is not the flow's subject (README, banner,
|
|
91
92
|
* docs/, LICENSE, CI config…) → allowed, attested under the existing
|
|
92
93
|
* `docs_only` wire reason (now meaning "non-code"). [] still fails closed
|
|
93
|
-
* (commitFiles' git-error contract).
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
* (commitFiles' git-error contract). The predicate now lives in one home —
|
|
95
|
+
* `runtime/protected_paths.ts` — shared with the in-session `staged_docs_only`
|
|
96
|
+
* primitive so the boundary and the nudge can never diverge. Imported for local
|
|
97
|
+
* use AND re-exported because gate.test.ts's drift pin imports
|
|
98
|
+
* `PROTECTED_PREFIXES` from this module. */
|
|
99
|
+
export { PROTECTED_PREFIXES };
|
|
96
100
|
/** GDC.1 — the gate's subject is the AGENT, never the human (user directive
|
|
97
101
|
* 2026-06-11: "I should be able to use the commands naturally"). Agent hosts
|
|
98
102
|
* mark their spawned shells (live-probed: Claude Code sets CLAUDECODE +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/setup/cli/gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACtC,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC;;;;;;kCAMkC;AAClC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,UAAU,GAAa,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAwB,CAAC;YAC/E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;YACP,8CAA8C;QAChD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;mFACmF;AACnF,KAAK,UAAU,YAAY,CAAC,QAA2B,EAAE,GAAW;IAClE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAY,EAAE,CACpC,CAAC;SACE,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,yEAAyE;QACzE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE;YAC/E,GAAG;SACJ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../../src/setup/cli/gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import { runOneShotCli } from '../../runtime/spawn_lifecycle.js';
|
|
3
|
+
import type { Issue } from '../../workgraph/types.js';
|
|
4
|
+
import { type RalphConfig } from '../../runtime/ralph/orchestrator.js';
|
|
5
|
+
import type { LapResult } from '../../runtime/ralph/supervisor.js';
|
|
6
|
+
import { type ChatSend } from '../../runtime/ralph/escalator.js';
|
|
7
|
+
import { type RalphConfigFile } from '../wizard/ralph_writer.js';
|
|
8
|
+
/** Hydrate the persisted scalar config into the orchestrator's runtime `RalphConfig` (closures rebuilt). */
|
|
9
|
+
export declare function buildRalphConfig(file: RalphConfigFile, opts: {
|
|
10
|
+
once: boolean;
|
|
11
|
+
maxBudgetUsd?: number;
|
|
12
|
+
}): RalphConfig;
|
|
13
|
+
/** Build the per-lap runner: spawn `claude -p RALPH.md --item <id>`, parse the typed exit. A deadline
|
|
14
|
+
* overrun (group-SIGKILL) becomes the typed TIMEOUT, NOT a CRASH; a genuine spawn failure rethrows → CRASH. */
|
|
15
|
+
export declare function makeSpawnLap(cfg: RalphConfig, file: RalphConfigFile, runCli?: typeof runOneShotCli): (item: Issue) => Promise<LapResult>;
|
|
16
|
+
/** The real chat transport: a one-shot UDS JSON-RPC `send` to the chat-daemon (the live Telegram path
|
|
17
|
+
* `chat_send` uses). `ok:false` on any unreachable/error so the escalator stays undroppable. */
|
|
18
|
+
export declare const daemonChatSend: ChatSend;
|
|
19
|
+
export declare function registerRalph(program: Command): Command;
|
|
20
|
+
//# sourceMappingURL=ralph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ralph.d.ts","sourceRoot":"","sources":["../../../src/setup/cli/ralph.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAGnE,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAElF,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C,WAAW,CAYb;AAED;+GAC+G;AAC/G,wBAAgB,YAAY,CAC1B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,OAAO,aAA6B,GAC3C,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,SAAS,CAAC,CA6BrC;AAED;gGACgG;AAChG,eAAO,MAAM,cAAc,EAAE,QAwCzB,CAAC;AAEL,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAqEvD"}
|