@isaacriehm/cairn-core 0.2.0 → 0.3.1
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/.tsbuildinfo +1 -1
- package/dist/claude/runner.d.ts +1 -1
- package/dist/claude/runner.js +62 -1
- package/dist/claude/runner.js.map +1 -1
- package/dist/claude/types.d.ts +14 -7
- package/dist/claude/types.js +5 -7
- package/dist/claude/types.js.map +1 -1
- package/dist/context/index.d.ts +4 -4
- package/dist/context/index.js +3 -4
- package/dist/context/index.js.map +1 -1
- package/dist/context/spec-delta.js +2 -3
- package/dist/context/spec-delta.js.map +1 -1
- package/dist/context/task-summary.d.ts +18 -0
- package/dist/context/task-summary.js +89 -0
- package/dist/context/task-summary.js.map +1 -0
- package/dist/decision-capture/id.d.ts +21 -4
- package/dist/decision-capture/id.js +56 -5
- package/dist/decision-capture/id.js.map +1 -1
- package/dist/decision-capture/index.d.ts +7 -22
- package/dist/decision-capture/index.js +7 -17
- package/dist/decision-capture/index.js.map +1 -1
- package/dist/doctor/index.d.ts +1 -1
- package/dist/doctor/index.js +1 -1
- package/dist/events/index.d.ts +1 -1
- package/dist/events/index.js +1 -1
- package/dist/events/writer.d.ts +1 -1
- package/dist/events/writer.js +1 -1
- package/dist/gc/canary.d.ts +13 -23
- package/dist/gc/canary.js +36 -92
- package/dist/gc/canary.js.map +1 -1
- package/dist/gc/citation-integrity.d.ts +6 -6
- package/dist/gc/citation-integrity.js +64 -20
- package/dist/gc/citation-integrity.js.map +1 -1
- package/dist/gc/frontmatter.js +1 -1
- package/dist/gc/generator-drift.js +1 -1
- package/dist/gc/generator-drift.js.map +1 -1
- package/dist/gc/index.d.ts +2 -2
- package/dist/gc/index.js +1 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/gc/quality-update.js +1 -1
- package/dist/gc/quality-update.js.map +1 -1
- package/dist/gc/types.d.ts +1 -30
- package/dist/ground/index.d.ts +2 -2
- package/dist/ground/index.js +1 -1
- package/dist/ground/index.js.map +1 -1
- package/dist/ground/ledgers.d.ts +0 -4
- package/dist/ground/ledgers.js +10 -8
- package/dist/ground/ledgers.js.map +1 -1
- package/dist/ground/manifest.js +0 -2
- package/dist/ground/manifest.js.map +1 -1
- package/dist/ground/quality-grades.js +3 -1
- package/dist/ground/quality-grades.js.map +1 -1
- package/dist/ground/schemas.d.ts +2 -7
- package/dist/ground/schemas.js +7 -2
- package/dist/ground/schemas.js.map +1 -1
- package/dist/ground/scope-index.d.ts +59 -12
- package/dist/ground/scope-index.js +212 -43
- package/dist/ground/scope-index.js.map +1 -1
- package/dist/hooks/bypass-detection.js +4 -2
- package/dist/hooks/bypass-detection.js.map +1 -1
- package/dist/hooks/post-tool-use/citation-scanner.d.ts +7 -5
- package/dist/hooks/post-tool-use/citation-scanner.js +15 -9
- package/dist/hooks/post-tool-use/citation-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js +1 -1
- package/dist/hooks/post-tool-use/copy-scanner.js.map +1 -1
- package/dist/hooks/post-tool-use/ledger-cache.d.ts +8 -0
- package/dist/hooks/post-tool-use/ledger-cache.js +53 -0
- package/dist/hooks/post-tool-use/ledger-cache.js.map +1 -1
- package/dist/hooks/post-tool-use/legend-builder.d.ts +3 -3
- package/dist/hooks/post-tool-use/legend-builder.js +30 -8
- package/dist/hooks/post-tool-use/legend-builder.js.map +1 -1
- package/dist/hooks/post-tool-use/read-enricher.d.ts +1 -1
- package/dist/hooks/post-tool-use/read-enricher.js +68 -21
- package/dist/hooks/post-tool-use/read-enricher.js.map +1 -1
- package/dist/hooks/post-tool-use/write-guardian.js +148 -18
- package/dist/hooks/post-tool-use/write-guardian.js.map +1 -1
- package/dist/hooks/runners/index.d.ts +1 -0
- package/dist/hooks/runners/index.js +1 -0
- package/dist/hooks/runners/index.js.map +1 -1
- package/dist/hooks/runners/payload.d.ts +1 -1
- package/dist/hooks/runners/payload.js +27 -12
- package/dist/hooks/runners/payload.js.map +1 -1
- package/dist/hooks/runners/session-start.js +212 -66
- package/dist/hooks/runners/session-start.js.map +1 -1
- package/dist/hooks/runners/stop.d.ts +9 -12
- package/dist/hooks/runners/stop.js +67 -36
- package/dist/hooks/runners/stop.js.map +1 -1
- package/dist/hooks/runners/user-prompt-submit.d.ts +15 -0
- package/dist/hooks/runners/user-prompt-submit.js +149 -0
- package/dist/hooks/runners/user-prompt-submit.js.map +1 -0
- package/dist/hooks/user-prompt-submit.d.ts +7 -0
- package/dist/hooks/user-prompt-submit.js +12 -0
- package/dist/hooks/user-prompt-submit.js.map +1 -0
- package/dist/index.d.ts +1 -6
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/init/baseline-audit.d.ts +5 -1
- package/dist/init/baseline-audit.js +25 -2
- package/dist/init/baseline-audit.js.map +1 -1
- package/dist/init/glob-inference.d.ts +16 -0
- package/dist/init/glob-inference.js +108 -0
- package/dist/init/glob-inference.js.map +1 -0
- package/dist/init/index.d.ts +2 -0
- package/dist/init/index.js +1 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/ingest-docs.d.ts +1 -1
- package/dist/init/ingest-docs.js +19 -6
- package/dist/init/ingest-docs.js.map +1 -1
- package/dist/init/init.js +12 -7
- package/dist/init/init.js.map +1 -1
- package/dist/init/mapper-merge.d.ts +8 -2
- package/dist/init/mapper-merge.js +50 -32
- package/dist/init/mapper-merge.js.map +1 -1
- package/dist/init/mapper-parallel.d.ts +2 -3
- package/dist/init/mapper-parallel.js +9 -38
- package/dist/init/mapper-parallel.js.map +1 -1
- package/dist/init/mapper-prompts.js +1 -1
- package/dist/init/mapper-prompts.js.map +1 -1
- package/dist/init/mapper.d.ts +6 -127
- package/dist/init/mapper.js +30 -7
- package/dist/init/mapper.js.map +1 -1
- package/dist/init/module-slicer.d.ts +1 -1
- package/dist/init/module-slicer.js +1 -1
- package/dist/init/multi-dev/install.d.ts +5 -11
- package/dist/init/multi-dev/install.js +4 -6
- package/dist/init/multi-dev/install.js.map +1 -1
- package/dist/init/overlay.d.ts +2 -2
- package/dist/init/overlay.js +1 -1
- package/dist/init/overlay.js.map +1 -1
- package/dist/init/phases/10-strip.js +1 -2
- package/dist/init/phases/10-strip.js.map +1 -1
- package/dist/init/phases/12-multidev.d.ts +1 -6
- package/dist/init/phases/12-multidev.js +1 -6
- package/dist/init/phases/12-multidev.js.map +1 -1
- package/dist/init/phases/3b-seed.d.ts +1 -10
- package/dist/init/phases/3b-seed.js +1 -10
- package/dist/init/phases/3b-seed.js.map +1 -1
- package/dist/init/phases/4-pilot.js +53 -15
- package/dist/init/phases/4-pilot.js.map +1 -1
- package/dist/init/phases/5-brand.js +10 -10
- package/dist/init/phases/5-brand.js.map +1 -1
- package/dist/init/prompts.d.ts +6 -8
- package/dist/init/prompts.js +3 -6
- package/dist/init/prompts.js.map +1 -1
- package/dist/init/rules-merge/ingest.js +1 -1
- package/dist/init/source-comments/classify.d.ts +1 -41
- package/dist/init/source-comments/classify.js +68 -37
- package/dist/init/source-comments/classify.js.map +1 -1
- package/dist/init/source-comments/index.d.ts +2 -2
- package/dist/init/source-comments/index.js +2 -2
- package/dist/init/source-comments/index.js.map +1 -1
- package/dist/init/source-comments/ingest.d.ts +38 -2
- package/dist/init/source-comments/ingest.js +237 -4
- package/dist/init/source-comments/ingest.js.map +1 -1
- package/dist/init/source-comments/strip-replace.d.ts +10 -19
- package/dist/init/source-comments/strip-replace.js +26 -2
- package/dist/init/source-comments/strip-replace.js.map +1 -1
- package/dist/init/source-comments/walker.d.ts +9 -2
- package/dist/init/source-comments/walker.js +38 -19
- package/dist/init/source-comments/walker.js.map +1 -1
- package/dist/init/submodules.d.ts +3 -2
- package/dist/init/types.d.ts +3 -5
- package/dist/init/types.js +3 -5
- package/dist/init/types.js.map +1 -1
- package/dist/init/visual.d.ts +4 -9
- package/dist/init/visual.js +1 -16
- package/dist/init/visual.js.map +1 -1
- package/dist/logger.d.ts +0 -1
- package/dist/logger.js +0 -1
- package/dist/logger.js.map +1 -1
- package/dist/mcp/context.d.ts +2 -3
- package/dist/mcp/context.js.map +1 -1
- package/dist/mcp/errors.d.ts +1 -1
- package/dist/mcp/errors.js.map +1 -1
- package/dist/mcp/history/prompt.d.ts +2 -1
- package/dist/mcp/history/walker.js +1 -1
- package/dist/mcp/history/walker.js.map +1 -1
- package/dist/mcp/path-allowlist.d.ts +0 -6
- package/dist/mcp/path-allowlist.js +0 -10
- package/dist/mcp/path-allowlist.js.map +1 -1
- package/dist/mcp/schemas.d.ts +15 -72
- package/dist/mcp/schemas.js +21 -70
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/serve.d.ts +1 -1
- package/dist/mcp/serve.js +2 -5
- package/dist/mcp/serve.js.map +1 -1
- package/dist/mcp/server.js +10 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/telemetry.d.ts +8 -1
- package/dist/mcp/telemetry.js +16 -0
- package/dist/mcp/telemetry.js.map +1 -1
- package/dist/mcp/tools/decision-get.js +37 -29
- package/dist/mcp/tools/decision-get.js.map +1 -1
- package/dist/mcp/tools/decisions-in-scope.js +22 -3
- package/dist/mcp/tools/decisions-in-scope.js.map +1 -1
- package/dist/mcp/tools/index.js +2 -2
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/invariant-get.js +1 -1
- package/dist/mcp/tools/invariant-get.js.map +1 -1
- package/dist/mcp/tools/invariants-in-scope.js +26 -7
- package/dist/mcp/tools/invariants-in-scope.js.map +1 -1
- package/dist/mcp/tools/query-history.js +3 -3
- package/dist/mcp/tools/query-history.js.map +1 -1
- package/dist/mcp/tools/resolve-attention.d.ts +3 -3
- package/dist/mcp/tools/resolve-attention.js +40 -28
- package/dist/mcp/tools/resolve-attention.js.map +1 -1
- package/dist/mcp/tools/search.js +3 -4
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/task-create.d.ts +15 -0
- package/dist/mcp/tools/task-create.js +96 -0
- package/dist/mcp/tools/task-create.js.map +1 -0
- package/dist/mcp/tools/timeline.js +3 -7
- package/dist/mcp/tools/timeline.js.map +1 -1
- package/dist/profiles/types.d.ts +1 -1
- package/dist/profiles/types.js +1 -1
- package/dist/session/id.d.ts +1 -3
- package/dist/session/id.js +1 -1
- package/dist/session/id.js.map +1 -1
- package/dist/session-start/build.d.ts +12 -14
- package/dist/session-start/build.js +68 -38
- package/dist/session-start/build.js.map +1 -1
- package/dist/session-start/index.d.ts +2 -2
- package/dist/session-start/index.js +2 -2
- package/dist/session-start/index.js.map +1 -1
- package/dist/session-start/templates.d.ts +20 -4
- package/dist/session-start/templates.js +45 -35
- package/dist/session-start/templates.js.map +1 -1
- package/dist/status-line/format.d.ts +19 -11
- package/dist/status-line/format.js +44 -36
- package/dist/status-line/format.js.map +1 -1
- package/dist/status-line/index.d.ts +3 -1
- package/dist/status-line/index.js +1 -1
- package/dist/status-line/index.js.map +1 -1
- package/dist/status-line/reader.d.ts +9 -6
- package/dist/status-line/reader.js +50 -15
- package/dist/status-line/reader.js.map +1 -1
- package/dist/status-line/writer.d.ts +5 -0
- package/dist/status-line/writer.js +9 -0
- package/dist/status-line/writer.js.map +1 -1
- package/dist/trace/index.d.ts +44 -0
- package/dist/trace/index.js +51 -0
- package/dist/trace/index.js.map +1 -0
- package/package.json +2 -3
- package/templates/.archive/README.md +3 -3
- package/templates/.cairn/config/sensors.yaml +16 -19
- package/templates/.cairn/config/stub-patterns.yaml +4 -4
- package/templates/.cairn/config/trust-policy.yaml +3 -35
- package/templates/.cairn/config/workflow.md +13 -194
- package/templates/.cairn/git-hooks/commit-msg +1 -1
- package/templates/.cairn/ground/canonical-map/topics.yaml +3 -26
- package/templates/.cairn/ground/capabilities/snippets.yaml +0 -1
- package/templates/.cairn/ground/manifest.yaml +5 -8
- package/templates/.cairn/ground/product/personas.yaml +0 -1
- package/templates/.github/workflows/cairn-check.yml +3 -5
- package/dist/context/checkpoint.d.ts +0 -11
- package/dist/context/checkpoint.js +0 -30
- package/dist/context/checkpoint.js.map +0 -1
- package/dist/decision-capture/capture.d.ts +0 -57
- package/dist/decision-capture/capture.js +0 -186
- package/dist/decision-capture/capture.js.map +0 -1
- package/dist/decision-capture/extractor.d.ts +0 -20
- package/dist/decision-capture/extractor.js +0 -103
- package/dist/decision-capture/extractor.js.map +0 -1
- package/dist/decision-capture/prompt.d.ts +0 -15
- package/dist/decision-capture/prompt.js +0 -68
- package/dist/decision-capture/prompt.js.map +0 -1
- package/dist/decision-capture/refinement-prompt.d.ts +0 -25
- package/dist/decision-capture/refinement-prompt.js +0 -146
- package/dist/decision-capture/refinement-prompt.js.map +0 -1
- package/dist/decision-capture/refinement-schema.d.ts +0 -52
- package/dist/decision-capture/refinement-schema.js +0 -61
- package/dist/decision-capture/refinement-schema.js.map +0 -1
- package/dist/decision-capture/refinement.d.ts +0 -60
- package/dist/decision-capture/refinement.js +0 -439
- package/dist/decision-capture/refinement.js.map +0 -1
- package/dist/decision-capture/schema.d.ts +0 -70
- package/dist/decision-capture/schema.js +0 -71
- package/dist/decision-capture/schema.js.map +0 -1
- package/dist/decision-capture/types.d.ts +0 -201
- package/dist/decision-capture/types.js +0 -20
- package/dist/decision-capture/types.js.map +0 -1
- package/dist/decision-capture/writer.d.ts +0 -90
- package/dist/decision-capture/writer.js +0 -267
- package/dist/decision-capture/writer.js.map +0 -1
- package/dist/frontend-types.d.ts +0 -243
- package/dist/frontend-types.js +0 -15
- package/dist/frontend-types.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -14
- package/dist/hooks/index.js +0 -14
- package/dist/hooks/index.js.map +0 -1
- package/dist/inbox.d.ts +0 -17
- package/dist/inbox.js +0 -30
- package/dist/inbox.js.map +0 -1
- package/dist/mcp/tools/append-run-note.d.ts +0 -18
- package/dist/mcp/tools/append-run-note.js +0 -54
- package/dist/mcp/tools/append-run-note.js.map +0 -1
- package/dist/mcp/tools/append.d.ts +0 -8
- package/dist/mcp/tools/append.js +0 -37
- package/dist/mcp/tools/append.js.map +0 -1
- package/dist/mcp/tools/ask-operator.d.ts +0 -34
- package/dist/mcp/tools/ask-operator.js +0 -97
- package/dist/mcp/tools/ask-operator.js.map +0 -1
- package/dist/mcp/tools/drop-task.d.ts +0 -12
- package/dist/mcp/tools/drop-task.js +0 -68
- package/dist/mcp/tools/drop-task.js.map +0 -1
- package/dist/mcp/tools/record-run-event.d.ts +0 -10
- package/dist/mcp/tools/record-run-event.js +0 -32
- package/dist/mcp/tools/record-run-event.js.map +0 -1
- package/dist/prompt.d.ts +0 -19
- package/dist/prompt.js +0 -50
- package/dist/prompt.js.map +0 -1
- package/dist/tier0/classify.d.ts +0 -10
- package/dist/tier0/classify.js +0 -110
- package/dist/tier0/classify.js.map +0 -1
- package/dist/tier0/index.d.ts +0 -2
- package/dist/tier0/index.js +0 -2
- package/dist/tier0/index.js.map +0 -1
- package/dist/tier0/types.d.ts +0 -24
- package/dist/tier0/types.js +0 -9
- package/dist/tier0/types.js.map +0 -1
- package/dist/tightener/index.d.ts +0 -4
- package/dist/tightener/index.js +0 -4
- package/dist/tightener/index.js.map +0 -1
- package/dist/tightener/prompt.d.ts +0 -3
- package/dist/tightener/prompt.js +0 -67
- package/dist/tightener/prompt.js.map +0 -1
- package/dist/tightener/schema.d.ts +0 -68
- package/dist/tightener/schema.js +0 -44
- package/dist/tightener/schema.js.map +0 -1
- package/dist/tightener/tighten.d.ts +0 -2
- package/dist/tightener/tighten.js +0 -66
- package/dist/tightener/tighten.js.map +0 -1
- package/dist/tightener/types.d.ts +0 -74
- package/dist/tightener/types.js +0 -6
- package/dist/tightener/types.js.map +0 -1
- package/templates/.claude/settings.json +0 -57
- package/templates/.mcp.json +0 -8
package/dist/claude/runner.d.ts
CHANGED
|
@@ -6,6 +6,6 @@ export declare function claudeIsAvailable(): boolean;
|
|
|
6
6
|
*
|
|
7
7
|
* Auth path: relies on the operator's existing Claude Code login (OAuth /
|
|
8
8
|
* keychain). No `--bare`, no `ANTHROPIC_API_KEY`. The whole point is to use
|
|
9
|
-
* the operator's coding-plan subscription quota
|
|
9
|
+
* the operator's Claude Code coding-plan subscription quota.
|
|
10
10
|
*/
|
|
11
11
|
export declare function runClaude(opts: RunClaudeOptions): Promise<RunClaudeResult>;
|
package/dist/claude/runner.js
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { spawn, spawnSync } from "node:child_process";
|
|
2
2
|
import { logger } from "../logger.js";
|
|
3
|
+
import { appendTrace } from "../trace/index.js";
|
|
3
4
|
import { ClaudeError, classifyClaudeError } from "./error.js";
|
|
4
5
|
const log = logger("claude.runner");
|
|
6
|
+
/** Cap previewed text in trace so payloads stay scannable (full body still in stderr/stdout if needed). */
|
|
7
|
+
const TRACE_PREVIEW_CHARS = 600;
|
|
8
|
+
function preview(s) {
|
|
9
|
+
if (s.length <= TRACE_PREVIEW_CHARS)
|
|
10
|
+
return s;
|
|
11
|
+
return `${s.slice(0, TRACE_PREVIEW_CHARS)}…(+${s.length - TRACE_PREVIEW_CHARS} chars)`;
|
|
12
|
+
}
|
|
5
13
|
/** Tier → model alias passed to `claude --model`. */
|
|
6
14
|
const TIER_MODEL = {
|
|
7
15
|
haiku: "haiku",
|
|
@@ -23,7 +31,7 @@ export function claudeIsAvailable() {
|
|
|
23
31
|
*
|
|
24
32
|
* Auth path: relies on the operator's existing Claude Code login (OAuth /
|
|
25
33
|
* keychain). No `--bare`, no `ANTHROPIC_API_KEY`. The whole point is to use
|
|
26
|
-
* the operator's coding-plan subscription quota
|
|
34
|
+
* the operator's Claude Code coding-plan subscription quota.
|
|
27
35
|
*/
|
|
28
36
|
export async function runClaude(opts) {
|
|
29
37
|
const model = TIER_MODEL[opts.tier];
|
|
@@ -48,6 +56,23 @@ export async function runClaude(opts) {
|
|
|
48
56
|
const ctrl = new AbortController();
|
|
49
57
|
const timeoutMs = opts.timeoutMs ?? 120_000;
|
|
50
58
|
const timer = setTimeout(() => ctrl.abort(), timeoutMs);
|
|
59
|
+
appendTrace({
|
|
60
|
+
ts: new Date().toISOString(),
|
|
61
|
+
source: "claude",
|
|
62
|
+
kind: "request",
|
|
63
|
+
repo_root: opts.repoRoot ?? null,
|
|
64
|
+
session_id: opts.sessionId ?? null,
|
|
65
|
+
payload: {
|
|
66
|
+
tier: opts.tier,
|
|
67
|
+
model,
|
|
68
|
+
purpose: opts.purpose ?? null,
|
|
69
|
+
prompt_chars: opts.prompt.length,
|
|
70
|
+
system_chars: opts.system?.length ?? 0,
|
|
71
|
+
json_schema: opts.jsonSchema !== undefined,
|
|
72
|
+
prompt_preview: preview(opts.prompt),
|
|
73
|
+
...(opts.system !== undefined ? { system_preview: preview(opts.system) } : {}),
|
|
74
|
+
},
|
|
75
|
+
});
|
|
51
76
|
return new Promise((resolve, reject) => {
|
|
52
77
|
const child = spawn("claude", args, {
|
|
53
78
|
cwd: opts.cwd ?? process.cwd(),
|
|
@@ -69,6 +94,23 @@ export async function runClaude(opts) {
|
|
|
69
94
|
if (code !== 0) {
|
|
70
95
|
const message = `claude exited ${code}${stderr ? `: ${stderr.trim()}` : ""}`;
|
|
71
96
|
const kind = classifyClaudeError({ message, exitCode: code, stderr });
|
|
97
|
+
appendTrace({
|
|
98
|
+
ts: new Date().toISOString(),
|
|
99
|
+
source: "claude",
|
|
100
|
+
kind: "response",
|
|
101
|
+
repo_root: opts.repoRoot ?? null,
|
|
102
|
+
session_id: opts.sessionId ?? null,
|
|
103
|
+
duration_ms: Date.now() - startedAt,
|
|
104
|
+
ok: false,
|
|
105
|
+
payload: {
|
|
106
|
+
tier: opts.tier,
|
|
107
|
+
model,
|
|
108
|
+
purpose: opts.purpose ?? null,
|
|
109
|
+
error_kind: kind,
|
|
110
|
+
exit_code: code,
|
|
111
|
+
stderr_preview: preview(stderr),
|
|
112
|
+
},
|
|
113
|
+
});
|
|
72
114
|
reject(new ClaudeError({ message, kind, exitCode: code, stderr }));
|
|
73
115
|
return;
|
|
74
116
|
}
|
|
@@ -115,6 +157,25 @@ export async function runClaude(opts) {
|
|
|
115
157
|
input_tokens: usage?.["input_tokens"],
|
|
116
158
|
output_tokens: usage?.["output_tokens"],
|
|
117
159
|
}, "claude call complete");
|
|
160
|
+
appendTrace({
|
|
161
|
+
ts: new Date().toISOString(),
|
|
162
|
+
source: "claude",
|
|
163
|
+
kind: "response",
|
|
164
|
+
repo_root: opts.repoRoot ?? null,
|
|
165
|
+
session_id: opts.sessionId ?? null,
|
|
166
|
+
duration_ms: durationMs,
|
|
167
|
+
ok: true,
|
|
168
|
+
payload: {
|
|
169
|
+
tier: opts.tier,
|
|
170
|
+
model,
|
|
171
|
+
purpose: opts.purpose ?? null,
|
|
172
|
+
input_tokens: usage?.["input_tokens"] ?? null,
|
|
173
|
+
output_tokens: usage?.["output_tokens"] ?? null,
|
|
174
|
+
response_chars: text.length,
|
|
175
|
+
response_preview: preview(text),
|
|
176
|
+
parsed_present: parsed !== undefined,
|
|
177
|
+
},
|
|
178
|
+
});
|
|
118
179
|
resolve({
|
|
119
180
|
text,
|
|
120
181
|
...(parsed !== undefined ? { parsed } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/claude/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/claude/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/claude/types.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subprocess wrapper for the `claude` CLI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Every LLM call goes through the operator's Claude Code coding-plan
|
|
5
|
+
* subscription via `claude --print --model <tier> --output-format json`.
|
|
6
|
+
* No direct Anthropic SDK calls.
|
|
7
7
|
*
|
|
8
|
-
* Tier mapping is hardcoded (no env vars
|
|
9
|
-
*
|
|
10
|
-
* for that family — we don't pin specific snapshots here so the wrapper
|
|
11
|
-
* keeps tracking newer models as Anthropic ships them.
|
|
8
|
+
* Tier mapping is hardcoded (no env vars). The CLI's model alias resolution
|
|
9
|
+
* maps `haiku|sonnet|opus` to the latest model for that family.
|
|
12
10
|
*/
|
|
13
11
|
export type ClaudeTier = "haiku" | "sonnet" | "opus";
|
|
14
12
|
export interface RunClaudeOptions {
|
|
@@ -31,6 +29,15 @@ export interface RunClaudeOptions {
|
|
|
31
29
|
* etc. when the caller knows what they want.
|
|
32
30
|
*/
|
|
33
31
|
extraArgs?: string[];
|
|
32
|
+
/**
|
|
33
|
+
* Free-form purpose tag (e.g. "init.mapper", "decision-extractor",
|
|
34
|
+
* "tier0.classify") for trace logs. Helps the operator find which
|
|
35
|
+
* call surface emitted a given subprocess invocation.
|
|
36
|
+
*/
|
|
37
|
+
purpose?: string;
|
|
38
|
+
/** Repo root + Claude Code session id for trace correlation, when known. */
|
|
39
|
+
repoRoot?: string;
|
|
40
|
+
sessionId?: string;
|
|
34
41
|
}
|
|
35
42
|
export interface ClaudeUsage {
|
|
36
43
|
input_tokens?: number;
|
package/dist/claude/types.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Subprocess wrapper for the `claude` CLI.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Every LLM call goes through the operator's Claude Code coding-plan
|
|
5
|
+
* subscription via `claude --print --model <tier> --output-format json`.
|
|
6
|
+
* No direct Anthropic SDK calls.
|
|
7
7
|
*
|
|
8
|
-
* Tier mapping is hardcoded (no env vars
|
|
9
|
-
*
|
|
10
|
-
* for that family — we don't pin specific snapshots here so the wrapper
|
|
11
|
-
* keeps tracking newer models as Anthropic ships them.
|
|
8
|
+
* Tier mapping is hardcoded (no env vars). The CLI's model alias resolution
|
|
9
|
+
* maps `haiku|sonnet|opus` to the latest model for that family.
|
|
12
10
|
*/
|
|
13
11
|
export {};
|
|
14
12
|
//# sourceMappingURL=types.js.map
|
package/dist/claude/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Context module — handoff builder,
|
|
3
|
-
*
|
|
4
|
-
* Stop hook checkpoint pass.
|
|
2
|
+
* Context module — handoff builder, spec-delta computation, active-task
|
|
3
|
+
* summary. Consumed by the SessionStart Section-0 injector + statusline.
|
|
5
4
|
*
|
|
6
5
|
* Spec: docs/CONTEXT_CONTINUITY_SPEC.md §2.2 (handoff) + §10 (spec delta).
|
|
7
6
|
*/
|
|
8
7
|
export { buildHandoffBlock } from "./handoff-builder.js";
|
|
9
|
-
export { writeCheckpoint } from "./checkpoint.js";
|
|
10
8
|
export { buildSpecDelta } from "./spec-delta.js";
|
|
11
9
|
export type { SpecDelta } from "./spec-delta.js";
|
|
10
|
+
export { readActiveTaskSummary } from "./task-summary.js";
|
|
11
|
+
export type { ActiveTaskSummary } from "./task-summary.js";
|
package/dist/context/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Context module — handoff builder,
|
|
3
|
-
*
|
|
4
|
-
* Stop hook checkpoint pass.
|
|
2
|
+
* Context module — handoff builder, spec-delta computation, active-task
|
|
3
|
+
* summary. Consumed by the SessionStart Section-0 injector + statusline.
|
|
5
4
|
*
|
|
6
5
|
* Spec: docs/CONTEXT_CONTINUITY_SPEC.md §2.2 (handoff) + §10 (spec delta).
|
|
7
6
|
*/
|
|
8
7
|
export { buildHandoffBlock } from "./handoff-builder.js";
|
|
9
|
-
export { writeCheckpoint } from "./checkpoint.js";
|
|
10
8
|
export { buildSpecDelta } from "./spec-delta.js";
|
|
9
|
+
export { readActiveTaskSummary } from "./task-summary.js";
|
|
11
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -143,9 +143,9 @@ export async function buildSpecDelta(repoRoot, taskScopePaths) {
|
|
|
143
143
|
// Scope via the cutoff inv's source_decision → look up in HEAD decisions.
|
|
144
144
|
const invariantsSuperseded = [];
|
|
145
145
|
for (const inv of cutoffInvariants) {
|
|
146
|
+
const headEntry = headInvariants.find((h) => h.id === inv.id);
|
|
146
147
|
const droppedFromHead = !headInvariantIds.has(inv.id);
|
|
147
|
-
const supersededInHead =
|
|
148
|
-
headInvariants.find((h) => h.id === inv.id)?.superseded_by !== null;
|
|
148
|
+
const supersededInHead = headEntry?.superseded_by !== undefined && headEntry?.superseded_by !== null;
|
|
149
149
|
if (!droppedFromHead && !supersededInHead)
|
|
150
150
|
continue;
|
|
151
151
|
const sourceDecision = inv.source_decision ?? null;
|
|
@@ -158,7 +158,6 @@ export async function buildSpecDelta(repoRoot, taskScopePaths) {
|
|
|
158
158
|
const overlaps = paths.some((p) => matchAnyGlob(p, scope));
|
|
159
159
|
if (!overlaps)
|
|
160
160
|
continue;
|
|
161
|
-
const headEntry = headInvariants.find((h) => h.id === inv.id);
|
|
162
161
|
invariantsSuperseded.push({
|
|
163
162
|
id: inv.id,
|
|
164
163
|
supersededBy: headEntry?.superseded_by ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-delta.js","sourceRoot":"","sources":["../../src/context/spec-delta.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"spec-delta.js","sourceRoot":"","sources":["../../src/context/spec-delta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Active-task summary reader for the per-session statusline + Section-0
|
|
3
|
+
* resume payload. Walks `.cairn/tasks/active/` and returns the first
|
|
4
|
+
* task whose `status.yaml` is in flight.
|
|
5
|
+
*
|
|
6
|
+
* Phase mapping aligns `status.yaml`'s vocabulary with the StatusJson
|
|
7
|
+
* `task_state` enum. Terminal phases (succeeded/failed/aborted) and
|
|
8
|
+
* unrecognized values collapse to `idle` so the surface stays quiet
|
|
9
|
+
* when nothing is actually in flight.
|
|
10
|
+
*/
|
|
11
|
+
import type { TaskState } from "../status-line/index.js";
|
|
12
|
+
export interface ActiveTaskSummary {
|
|
13
|
+
taskId: string;
|
|
14
|
+
taskState: TaskState;
|
|
15
|
+
/** Title pulled from spec.tightened.md `# Heading`; falls back to taskId. */
|
|
16
|
+
taskModule: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function readActiveTaskSummary(repoRoot: string): ActiveTaskSummary | null;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Active-task summary reader for the per-session statusline + Section-0
|
|
3
|
+
* resume payload. Walks `.cairn/tasks/active/` and returns the first
|
|
4
|
+
* task whose `status.yaml` is in flight.
|
|
5
|
+
*
|
|
6
|
+
* Phase mapping aligns `status.yaml`'s vocabulary with the StatusJson
|
|
7
|
+
* `task_state` enum. Terminal phases (succeeded/failed/aborted) and
|
|
8
|
+
* unrecognized values collapse to `idle` so the surface stays quiet
|
|
9
|
+
* when nothing is actually in flight.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readFileSync, readdirSync } from "node:fs";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import { parse as parseYaml } from "yaml";
|
|
14
|
+
import { parseFrontmatter } from "../ground/index.js";
|
|
15
|
+
const ACTIVE_PHASES = new Set([
|
|
16
|
+
"queued",
|
|
17
|
+
"tightening",
|
|
18
|
+
"running",
|
|
19
|
+
"sensor_check",
|
|
20
|
+
"reviewing",
|
|
21
|
+
"backprop",
|
|
22
|
+
]);
|
|
23
|
+
function mapPhase(phase) {
|
|
24
|
+
switch (phase) {
|
|
25
|
+
case "queued":
|
|
26
|
+
case "tightening":
|
|
27
|
+
case "running":
|
|
28
|
+
case "reviewing":
|
|
29
|
+
case "backprop":
|
|
30
|
+
return phase;
|
|
31
|
+
case "sensor_check":
|
|
32
|
+
return "sensing";
|
|
33
|
+
default:
|
|
34
|
+
return "idle";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export function readActiveTaskSummary(repoRoot) {
|
|
38
|
+
const activeDir = join(repoRoot, ".cairn", "tasks", "active");
|
|
39
|
+
if (!existsSync(activeDir))
|
|
40
|
+
return null;
|
|
41
|
+
let dirents;
|
|
42
|
+
try {
|
|
43
|
+
dirents = readdirSync(activeDir, { withFileTypes: true, encoding: "utf8" });
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
for (const e of dirents) {
|
|
49
|
+
if (!e.isDirectory())
|
|
50
|
+
continue;
|
|
51
|
+
const taskDir = join(activeDir, e.name);
|
|
52
|
+
const statusPath = join(taskDir, "status.yaml");
|
|
53
|
+
if (!existsSync(statusPath))
|
|
54
|
+
continue;
|
|
55
|
+
let parsed;
|
|
56
|
+
try {
|
|
57
|
+
parsed = parseYaml(readFileSync(statusPath, "utf8"));
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
63
|
+
continue;
|
|
64
|
+
const phase = parsed.phase;
|
|
65
|
+
if (typeof phase !== "string" || !ACTIVE_PHASES.has(phase))
|
|
66
|
+
continue;
|
|
67
|
+
let title = e.name;
|
|
68
|
+
const specPath = join(taskDir, "spec.tightened.md");
|
|
69
|
+
if (existsSync(specPath)) {
|
|
70
|
+
try {
|
|
71
|
+
const specText = readFileSync(specPath, "utf8");
|
|
72
|
+
const body = parseFrontmatter(specText).body;
|
|
73
|
+
const m = body.match(/^#\s+(.+)$/m);
|
|
74
|
+
if (m && m[1])
|
|
75
|
+
title = m[1].trim();
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// fall through to taskId
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
taskId: e.name,
|
|
83
|
+
taskState: mapPhase(phase),
|
|
84
|
+
taskModule: title,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=task-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-summary.js","sourceRoot":"","sources":["../../src/context/task-summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Decision id
|
|
2
|
+
* Decision + invariant id allocators. Monotonic, never reused.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Decisions: scan `.cairn/ground/decisions/` for accepted decisions AND
|
|
5
5
|
* `.cairn/ground/decisions/_inbox/` for outstanding drafts. Either counts
|
|
6
6
|
* toward the high-water mark — a draft that's pending operator confirmation
|
|
7
7
|
* still owns its id; rejecting a draft does NOT recycle the id.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Invariants: scan `.cairn/ground/invariants/INV-<NNNN>.md`. Phase 7b writes
|
|
10
|
+
* invariants directly to ground state (no `_inbox/` flow — they auto-promote
|
|
11
|
+
* from the constraint classifier; operator edits / supersedes after the
|
|
12
|
+
* fact).
|
|
13
|
+
*
|
|
14
|
+
* Single source of truth for id allocation. The MCP write tools and the
|
|
15
|
+
* init pipeline call these helpers; do NOT re-implement the scan elsewhere.
|
|
11
16
|
*/
|
|
12
17
|
/**
|
|
13
18
|
* Scan both the canonical decisions dir and the `_inbox/` for
|
|
@@ -19,3 +24,15 @@ export declare function scanExistingDecisionIds(repoRoot: string): Set<string>;
|
|
|
19
24
|
* caller-supplied set (e.g. ids the MCP tool just validated against).
|
|
20
25
|
*/
|
|
21
26
|
export declare function allocateDecisionId(repoRoot: string, existing?: Set<string>): string;
|
|
27
|
+
/**
|
|
28
|
+
* Scan `.cairn/ground/invariants/` for INV-<NNNN>-prefixed files; return the
|
|
29
|
+
* set of ids found.
|
|
30
|
+
*/
|
|
31
|
+
export declare function scanExistingInvariantIds(repoRoot: string): Set<string>;
|
|
32
|
+
/**
|
|
33
|
+
* Return the next free `INV-<NNNN>` id — matches the schema regex
|
|
34
|
+
* at packages/cairn-core/src/ground/schemas.ts. Optionally factor in
|
|
35
|
+
* a caller-supplied set so a batch of allocations doesn't collide on
|
|
36
|
+
* disk before any are written.
|
|
37
|
+
*/
|
|
38
|
+
export declare function allocateInvariantId(repoRoot: string, existing?: Set<string>): string;
|
|
@@ -1,18 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Decision id
|
|
2
|
+
* Decision + invariant id allocators. Monotonic, never reused.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Decisions: scan `.cairn/ground/decisions/` for accepted decisions AND
|
|
5
5
|
* `.cairn/ground/decisions/_inbox/` for outstanding drafts. Either counts
|
|
6
6
|
* toward the high-water mark — a draft that's pending operator confirmation
|
|
7
7
|
* still owns its id; rejecting a draft does NOT recycle the id.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Invariants: scan `.cairn/ground/invariants/INV-<NNNN>.md`. Phase 7b writes
|
|
10
|
+
* invariants directly to ground state (no `_inbox/` flow — they auto-promote
|
|
11
|
+
* from the constraint classifier; operator edits / supersedes after the
|
|
12
|
+
* fact).
|
|
13
|
+
*
|
|
14
|
+
* Single source of truth for id allocation. The MCP write tools and the
|
|
15
|
+
* init pipeline call these helpers; do NOT re-implement the scan elsewhere.
|
|
11
16
|
*/
|
|
12
17
|
import { existsSync, readdirSync } from "node:fs";
|
|
13
18
|
import { join } from "node:path";
|
|
14
|
-
import { decisionsDir } from "../ground/paths.js";
|
|
19
|
+
import { decisionsDir, invariantsDir } from "../ground/paths.js";
|
|
15
20
|
const FILENAME_RE = /^DEC-(\d{4,})(?:\.draft|\.rejected)?\.md$/;
|
|
21
|
+
// Invariant filename: `INV-<NNNN>.md` — matches the schema id
|
|
22
|
+
// regex /^INV-\d{4,}$/ at packages/cairn-core/src/ground/schemas.ts.
|
|
23
|
+
const INVARIANT_FILENAME_RE = /^INV-(\d{4,})\.md$/;
|
|
16
24
|
/**
|
|
17
25
|
* Scan both the canonical decisions dir and the `_inbox/` for
|
|
18
26
|
* DEC-NNNN-prefixed files; return the set of ids found.
|
|
@@ -57,4 +65,47 @@ export function allocateDecisionId(repoRoot, existing) {
|
|
|
57
65
|
}
|
|
58
66
|
return `DEC-${(max + 1).toString().padStart(4, "0")}`;
|
|
59
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Scan `.cairn/ground/invariants/` for INV-<NNNN>-prefixed files; return the
|
|
70
|
+
* set of ids found.
|
|
71
|
+
*/
|
|
72
|
+
export function scanExistingInvariantIds(repoRoot) {
|
|
73
|
+
const dir = invariantsDir(repoRoot);
|
|
74
|
+
const ids = new Set();
|
|
75
|
+
if (!existsSync(dir))
|
|
76
|
+
return ids;
|
|
77
|
+
let entries;
|
|
78
|
+
try {
|
|
79
|
+
entries = readdirSync(dir, { encoding: "utf8" });
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return ids;
|
|
83
|
+
}
|
|
84
|
+
for (const name of entries) {
|
|
85
|
+
const match = name.match(INVARIANT_FILENAME_RE);
|
|
86
|
+
if (!match || !match[1])
|
|
87
|
+
continue;
|
|
88
|
+
ids.add(`INV-${match[1].padStart(4, "0")}`);
|
|
89
|
+
}
|
|
90
|
+
return ids;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Return the next free `INV-<NNNN>` id — matches the schema regex
|
|
94
|
+
* at packages/cairn-core/src/ground/schemas.ts. Optionally factor in
|
|
95
|
+
* a caller-supplied set so a batch of allocations doesn't collide on
|
|
96
|
+
* disk before any are written.
|
|
97
|
+
*/
|
|
98
|
+
export function allocateInvariantId(repoRoot, existing) {
|
|
99
|
+
const ids = existing ?? scanExistingInvariantIds(repoRoot);
|
|
100
|
+
let max = 0;
|
|
101
|
+
for (const id of ids) {
|
|
102
|
+
const m = id.match(/^INV-(\d+)$/);
|
|
103
|
+
if (!m?.[1])
|
|
104
|
+
continue;
|
|
105
|
+
const n = Number.parseInt(m[1], 10);
|
|
106
|
+
if (Number.isFinite(n) && n > max)
|
|
107
|
+
max = n;
|
|
108
|
+
}
|
|
109
|
+
return `INV-${(max + 1).toString().padStart(4, "0")}`;
|
|
110
|
+
}
|
|
60
111
|
//# sourceMappingURL=id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/decision-capture/id.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/decision-capture/id.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Decision-capture surface.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - DECISION_EXTRACTOR_OUTPUT_SCHEMA, DECISION_EXTRACTOR_SYSTEM_PROMPT — for
|
|
10
|
-
* consumers that want to call `runClaude` directly
|
|
4
|
+
* Only the monotonic id allocators remain — the Tier-1 LLM extractor +
|
|
5
|
+
* refinement pipeline was orchestrator-era code (auto-extract DECs from
|
|
6
|
+
* sessions) that is no longer wired into the plugin flow. Operator-driven
|
|
7
|
+
* DEC creation lives in the `cairn-direction` skill + the
|
|
8
|
+
* `cairn_record_decision` MCP tool now.
|
|
11
9
|
*/
|
|
12
|
-
export
|
|
13
|
-
export { allocateDecisionId, scanExistingDecisionIds } from "./id.js";
|
|
14
|
-
export { DECISION_EXTRACTOR_SYSTEM_PROMPT, buildDecisionExtractorUserPrompt, } from "./prompt.js";
|
|
15
|
-
export { DECISION_EXTRACTOR_OUTPUT_SCHEMA } from "./schema.js";
|
|
16
|
-
export { runDecisionExtractor } from "./extractor.js";
|
|
17
|
-
export type { ExtractorResult } from "./extractor.js";
|
|
18
|
-
export { acceptDraft, liftCandidatesToAssertions, rejectDraft, writeDecisionDraft, } from "./writer.js";
|
|
19
|
-
export type { AcceptDraftResult, LiftResult, LiftVerdict, WriteDecisionDraftArgs, } from "./writer.js";
|
|
20
|
-
export { runDecisionCapture } from "./capture.js";
|
|
21
|
-
export type { RunDecisionCaptureArgs } from "./capture.js";
|
|
22
|
-
export { REFINEMENT_PROPOSER_SYSTEM_PROMPT, buildRefinementProposerUserPrompt, } from "./refinement-prompt.js";
|
|
23
|
-
export { REFINEMENT_PROPOSER_OUTPUT_SCHEMA } from "./refinement-schema.js";
|
|
24
|
-
export { proposeStrictAssertions, runDecisionRefinement, } from "./refinement.js";
|
|
25
|
-
export type { ProposerResult, RunDecisionRefinementArgs, } from "./refinement.js";
|
|
10
|
+
export { allocateDecisionId, allocateInvariantId, scanExistingDecisionIds, scanExistingInvariantIds, } from "./id.js";
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Decision-capture surface.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - DECISION_EXTRACTOR_OUTPUT_SCHEMA, DECISION_EXTRACTOR_SYSTEM_PROMPT — for
|
|
10
|
-
* consumers that want to call `runClaude` directly
|
|
4
|
+
* Only the monotonic id allocators remain — the Tier-1 LLM extractor +
|
|
5
|
+
* refinement pipeline was orchestrator-era code (auto-extract DECs from
|
|
6
|
+
* sessions) that is no longer wired into the plugin flow. Operator-driven
|
|
7
|
+
* DEC creation lives in the `cairn-direction` skill + the
|
|
8
|
+
* `cairn_record_decision` MCP tool now.
|
|
11
9
|
*/
|
|
12
|
-
export { allocateDecisionId, scanExistingDecisionIds } from "./id.js";
|
|
13
|
-
export { DECISION_EXTRACTOR_SYSTEM_PROMPT, buildDecisionExtractorUserPrompt, } from "./prompt.js";
|
|
14
|
-
export { DECISION_EXTRACTOR_OUTPUT_SCHEMA } from "./schema.js";
|
|
15
|
-
export { runDecisionExtractor } from "./extractor.js";
|
|
16
|
-
export { acceptDraft, liftCandidatesToAssertions, rejectDraft, writeDecisionDraft, } from "./writer.js";
|
|
17
|
-
export { runDecisionCapture } from "./capture.js";
|
|
18
|
-
export { REFINEMENT_PROPOSER_SYSTEM_PROMPT, buildRefinementProposerUserPrompt, } from "./refinement-prompt.js";
|
|
19
|
-
export { REFINEMENT_PROPOSER_OUTPUT_SCHEMA } from "./refinement-schema.js";
|
|
20
|
-
export { proposeStrictAssertions, runDecisionRefinement, } from "./refinement.js";
|
|
10
|
+
export { allocateDecisionId, allocateInvariantId, scanExistingDecisionIds, scanExistingInvariantIds, } from "./id.js";
|
|
21
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decision-capture/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decision-capture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,SAAS,CAAC"}
|
package/dist/doctor/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* 1 — at least one error (missing core file, broken layout)
|
|
8
8
|
* 2 — at least one warning (drafty brand, empty scope, GC overdue, …)
|
|
9
9
|
*
|
|
10
|
-
* Spec:
|
|
10
|
+
* Spec: docs/PLUGIN_ARCHITECTURE.md §6 (adoption output).
|
|
11
11
|
*/
|
|
12
12
|
export type DoctorStatus = "ok" | "warn" | "error" | "info";
|
|
13
13
|
export interface DoctorCheck {
|