@monoes/monomindcli 2.13.0 → 2.14.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/.claude/skills/monodesign/scripts/context.mjs +1 -1
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +2 -2
- package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +2 -2
- package/.claude/skills/monodesign/scripts/live-browser.js +1 -1
- package/bin/cli.js +21 -1
- package/bin/mcp-server.js +21 -1
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +23 -0
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/commands/doc-filters.d.ts +19 -0
- package/dist/src/commands/doc-filters.d.ts.map +1 -0
- package/dist/src/commands/doc-filters.js +58 -0
- package/dist/src/commands/doc-filters.js.map +1 -0
- package/dist/src/commands/doc-library.d.ts +21 -0
- package/dist/src/commands/doc-library.d.ts.map +1 -0
- package/dist/src/commands/doc-library.js +390 -0
- package/dist/src/commands/doc-library.js.map +1 -0
- package/dist/src/commands/doc-list.d.ts +9 -0
- package/dist/src/commands/doc-list.d.ts.map +1 -0
- package/dist/src/commands/doc-list.js +99 -0
- package/dist/src/commands/doc-list.js.map +1 -0
- package/dist/src/commands/doc.d.ts.map +1 -1
- package/dist/src/commands/doc.js +49 -37
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-mcp-probe.d.ts +48 -0
- package/dist/src/commands/doctor-mcp-probe.d.ts.map +1 -0
- package/dist/src/commands/doctor-mcp-probe.js +205 -0
- package/dist/src/commands/doctor-mcp-probe.js.map +1 -0
- package/dist/src/commands/doctor-project-checks.d.ts +12 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +55 -4
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +10 -1
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +17 -0
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +4 -3
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +14 -0
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +12 -2
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +2 -1
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +3 -3
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/types.d.ts +6 -0
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +12 -2
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/knowledge/capture-envelope.d.ts +80 -0
- package/dist/src/knowledge/capture-envelope.d.ts.map +1 -0
- package/dist/src/knowledge/capture-envelope.js +165 -0
- package/dist/src/knowledge/capture-envelope.js.map +1 -0
- package/dist/src/knowledge/capture-text.d.ts +23 -0
- package/dist/src/knowledge/capture-text.d.ts.map +1 -0
- package/dist/src/knowledge/capture-text.js +49 -0
- package/dist/src/knowledge/capture-text.js.map +1 -0
- package/dist/src/knowledge/citation.d.ts +121 -0
- package/dist/src/knowledge/citation.d.ts.map +1 -0
- package/dist/src/knowledge/citation.js +252 -0
- package/dist/src/knowledge/citation.js.map +1 -0
- package/dist/src/knowledge/document-pipeline.d.ts +60 -0
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +188 -4
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/knowledge/html-extract.d.ts +43 -0
- package/dist/src/knowledge/html-extract.d.ts.map +1 -0
- package/dist/src/knowledge/html-extract.js +286 -0
- package/dist/src/knowledge/html-extract.js.map +1 -0
- package/dist/src/knowledge/html-tags.d.ts +30 -0
- package/dist/src/knowledge/html-tags.d.ts.map +1 -0
- package/dist/src/knowledge/html-tags.js +229 -0
- package/dist/src/knowledge/html-tags.js.map +1 -0
- package/dist/src/knowledge/library.d.ts +106 -0
- package/dist/src/knowledge/library.d.ts.map +1 -0
- package/dist/src/knowledge/library.js +195 -0
- package/dist/src/knowledge/library.js.map +1 -0
- package/dist/src/knowledge/mhtml.d.ts +60 -0
- package/dist/src/knowledge/mhtml.d.ts.map +1 -0
- package/dist/src/knowledge/mhtml.js +154 -0
- package/dist/src/knowledge/mhtml.js.map +1 -0
- package/dist/src/knowledge/related.d.ts +58 -0
- package/dist/src/knowledge/related.d.ts.map +1 -0
- package/dist/src/knowledge/related.js +222 -0
- package/dist/src/knowledge/related.js.map +1 -0
- package/dist/src/knowledge/section-diff.d.ts +48 -0
- package/dist/src/knowledge/section-diff.d.ts.map +1 -0
- package/dist/src/knowledge/section-diff.js +151 -0
- package/dist/src/knowledge/section-diff.js.map +1 -0
- package/dist/src/knowledge/watch.d.ts +92 -0
- package/dist/src/knowledge/watch.d.ts.map +1 -0
- package/dist/src/knowledge/watch.js +221 -0
- package/dist/src/knowledge/watch.js.map +1 -0
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +44 -87
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/browser-instrument-tools.d.ts +35 -0
- package/dist/src/mcp-tools/browser-instrument-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/browser-instrument-tools.js +359 -0
- package/dist/src/mcp-tools/browser-instrument-tools.js.map +1 -0
- package/dist/src/mcp-tools/browser-metrics.d.ts +42 -0
- package/dist/src/mcp-tools/browser-metrics.d.ts.map +1 -0
- package/dist/src/mcp-tools/browser-metrics.js +91 -0
- package/dist/src/mcp-tools/browser-metrics.js.map +1 -0
- package/dist/src/mcp-tools/browser-profile-tools.d.ts +16 -0
- package/dist/src/mcp-tools/browser-profile-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/browser-profile-tools.js +324 -0
- package/dist/src/mcp-tools/browser-profile-tools.js.map +1 -0
- package/dist/src/mcp-tools/browser-session.d.ts +68 -0
- package/dist/src/mcp-tools/browser-session.d.ts.map +1 -0
- package/dist/src/mcp-tools/browser-session.js +224 -0
- package/dist/src/mcp-tools/browser-session.js.map +1 -0
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +10 -176
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/capture-resource-read.d.ts +115 -0
- package/dist/src/mcp-tools/capture-resource-read.d.ts.map +1 -0
- package/dist/src/mcp-tools/capture-resource-read.js +296 -0
- package/dist/src/mcp-tools/capture-resource-read.js.map +1 -0
- package/dist/src/mcp-tools/capture-resource-tools.d.ts +22 -0
- package/dist/src/mcp-tools/capture-resource-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/capture-resource-tools.js +182 -0
- package/dist/src/mcp-tools/capture-resource-tools.js.map +1 -0
- package/dist/src/mcp-tools/capture-resources.d.ts +142 -0
- package/dist/src/mcp-tools/capture-resources.d.ts.map +1 -0
- package/dist/src/mcp-tools/capture-resources.js +289 -0
- package/dist/src/mcp-tools/capture-resources.js.map +1 -0
- package/dist/src/mcp-tools/index.d.ts +3 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +6 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +9 -1
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/resource-router.d.ts +86 -0
- package/dist/src/mcp-tools/resource-router.d.ts.map +1 -0
- package/dist/src/mcp-tools/resource-router.js +181 -0
- package/dist/src/mcp-tools/resource-router.js.map +1 -0
- package/dist/src/memory/memory-bridge.js +1 -1
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +38 -0
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +47 -0
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +12 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +15 -6
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/completion-gate.d.ts +74 -0
- package/dist/src/orgrt/completion-gate.d.ts.map +1 -1
- package/dist/src/orgrt/completion-gate.js +45 -0
- package/dist/src/orgrt/completion-gate.js.map +1 -1
- package/dist/src/orgrt/cost-tier.d.ts +144 -0
- package/dist/src/orgrt/cost-tier.d.ts.map +1 -0
- package/dist/src/orgrt/cost-tier.js +183 -0
- package/dist/src/orgrt/cost-tier.js.map +1 -0
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +14 -0
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +12 -1
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +216 -49
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +14 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +216 -10
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/file-roots.d.ts +7 -0
- package/dist/src/orgrt/file-roots.d.ts.map +1 -1
- package/dist/src/orgrt/file-roots.js +38 -1
- package/dist/src/orgrt/file-roots.js.map +1 -1
- package/dist/src/orgrt/forwarder.d.ts.map +1 -1
- package/dist/src/orgrt/forwarder.js +16 -2
- package/dist/src/orgrt/forwarder.js.map +1 -1
- package/dist/src/orgrt/idle-deadline.d.ts +74 -1
- package/dist/src/orgrt/idle-deadline.d.ts.map +1 -1
- package/dist/src/orgrt/idle-deadline.js +52 -2
- package/dist/src/orgrt/idle-deadline.js.map +1 -1
- package/dist/src/orgrt/loadouts.d.ts +38 -0
- package/dist/src/orgrt/loadouts.d.ts.map +1 -0
- package/dist/src/orgrt/loadouts.js +129 -0
- package/dist/src/orgrt/loadouts.js.map +1 -0
- package/dist/src/orgrt/mailbox.d.ts +17 -1
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +50 -3
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +42 -2
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +53 -8
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prompt-vars.d.ts +11 -0
- package/dist/src/orgrt/prompt-vars.d.ts.map +1 -0
- package/dist/src/orgrt/prompt-vars.js +49 -0
- package/dist/src/orgrt/prompt-vars.js.map +1 -0
- package/dist/src/orgrt/questions.d.ts +22 -1
- package/dist/src/orgrt/questions.d.ts.map +1 -1
- package/dist/src/orgrt/questions.js +24 -3
- package/dist/src/orgrt/questions.js.map +1 -1
- package/dist/src/orgrt/review-packet.d.ts +29 -0
- package/dist/src/orgrt/review-packet.d.ts.map +1 -0
- package/dist/src/orgrt/review-packet.js +67 -0
- package/dist/src/orgrt/review-packet.js.map +1 -0
- package/dist/src/orgrt/role-sandbox.d.ts.map +1 -1
- package/dist/src/orgrt/role-sandbox.js +16 -3
- package/dist/src/orgrt/role-sandbox.js.map +1 -1
- package/dist/src/orgrt/session-ledger.d.ts +68 -0
- package/dist/src/orgrt/session-ledger.d.ts.map +1 -0
- package/dist/src/orgrt/session-ledger.js +128 -0
- package/dist/src/orgrt/session-ledger.js.map +1 -0
- package/dist/src/orgrt/session.d.ts +45 -5
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +397 -27
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +34 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +58 -7
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/tool-spill.d.ts +94 -0
- package/dist/src/orgrt/tool-spill.d.ts.map +1 -0
- package/dist/src/orgrt/tool-spill.js +180 -0
- package/dist/src/orgrt/tool-spill.js.map +1 -0
- package/dist/src/orgrt/types.d.ts +138 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +148 -0
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/platform-adapters/renderers/mcp.d.ts +20 -2
- package/dist/src/platform-adapters/renderers/mcp.d.ts.map +1 -1
- package/dist/src/platform-adapters/renderers/mcp.js +25 -5
- package/dist/src/platform-adapters/renderers/mcp.js.map +1 -1
- package/dist/src/protocol-capabilities.d.ts +2 -1
- package/dist/src/protocol-capabilities.d.ts.map +1 -1
- package/dist/src/protocol-capabilities.js +2 -1
- package/dist/src/protocol-capabilities.js.map +1 -1
- package/dist/src/ui/dashboard.html +450 -164
- package/dist/src/ui/org-hil.mjs +276 -0
- package/dist/src/ui/org-runtime.mjs +350 -0
- package/dist/src/ui/orgs.html +15 -4
- package/dist/src/ui/routes-org.mjs +290 -541
- package/dist/src/ui/server.mjs +25 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
18
18
|
import type { z } from 'zod';
|
|
19
|
+
import type { OrgEffortLevel } from './cost-tier.js';
|
|
19
20
|
/** A platform-agnostic org tool definition. `schema` is a zod object because
|
|
20
21
|
* both the Claude SDK's `tool()` and opencode's `tool()` consume zod. */
|
|
21
22
|
export interface OrgToolDef {
|
|
@@ -35,6 +36,16 @@ export interface AgentRunArgs {
|
|
|
35
36
|
prompt: AsyncIterable<any>;
|
|
36
37
|
systemPrompt: string;
|
|
37
38
|
model?: string;
|
|
39
|
+
/** ADR-O001 D8: abstract reasoning/thinking effort for this session, set by
|
|
40
|
+
* the role's cost tier (see orgrt/cost-tier.ts). Provider-agnostic on
|
|
41
|
+
* purpose — each runner maps it to its own mechanism, and a runner with no
|
|
42
|
+
* such mechanism ignores it. ClaudeAgentRunner maps it to the SDK's own
|
|
43
|
+
* `effort` option ('off' → `thinking: { type: 'disabled' }`); the vendor
|
|
44
|
+
* CLI runners take only `--model`, so a tier expresses their effort
|
|
45
|
+
* through `cost_tiers.providers.<key>.effort_env` (which arrives in `env`)
|
|
46
|
+
* or by naming an effort-encoding model id per tier. Unset = today's
|
|
47
|
+
* behavior: the provider's own default. */
|
|
48
|
+
effort?: OrgEffortLevel;
|
|
38
49
|
cwd: string;
|
|
39
50
|
env: Record<string, string>;
|
|
40
51
|
/**
|
|
@@ -74,6 +85,12 @@ export interface AgentRunArgs {
|
|
|
74
85
|
sandbox?: Record<string, unknown>;
|
|
75
86
|
disallowedTools?: string[];
|
|
76
87
|
};
|
|
88
|
+
/** ADR-O001 D2: directory for spilled tool-result bodies. When set,
|
|
89
|
+
* ClaudeAgentRunner installs a PostToolUse hook that writes an oversized
|
|
90
|
+
* result here in full and replaces it in the transcript with a bounded
|
|
91
|
+
* digest plus this path (see tool-spill.ts). Claude-only: no vendor CLI
|
|
92
|
+
* exposes an equivalent seam. Unset = today's unbounded behavior. */
|
|
93
|
+
toolSpillDir?: string;
|
|
77
94
|
/** Abort hook. An async generator's return() queues behind its in-flight
|
|
78
95
|
* next(), so a subprocess runner blocked in `for await (child.stdout)`
|
|
79
96
|
* never reaches its finally/kill on return() alone — the child is
|
|
@@ -129,6 +146,27 @@ export interface AgentMessage {
|
|
|
129
146
|
duration_ms?: number;
|
|
130
147
|
input_tokens?: number;
|
|
131
148
|
output_tokens?: number;
|
|
149
|
+
/** ADR-O001 D1: cache tokens are SIBLINGS of input_tokens in the Anthropic
|
|
150
|
+
* API (verified against @anthropic-ai/sdk's BetaUsage), not subsets of it —
|
|
151
|
+
* `input_tokens` is the uncached remainder. Both are billable (~0.1x and
|
|
152
|
+
* ~1.25x the input rate), so a meter that ignores them reports ~0.3% of a
|
|
153
|
+
* well-cached run. A runner whose provider does not report them omits
|
|
154
|
+
* them. */
|
|
155
|
+
cache_read_input_tokens?: number;
|
|
156
|
+
cache_creation_input_tokens?: number;
|
|
157
|
+
/** ADR-O001 D1: result only, and only from runners whose SDK reports
|
|
158
|
+
* whole-pipeline usage — the Claude Agent SDK's `modelUsage`, which covers
|
|
159
|
+
* Task subagents, sidechains and compaction that its `usage` field
|
|
160
|
+
* explicitly excludes ("MAIN AGENT LOOP ONLY ... Prefer modelUsage for
|
|
161
|
+
* token/cost accounting"). Like `cost_usd` it is CUMULATIVE per session,
|
|
162
|
+
* not per turn, so session.ts converts it to a delta against the previous
|
|
163
|
+
* value for the same session_id instead of adding it. */
|
|
164
|
+
cumulative_tokens?: {
|
|
165
|
+
input: number;
|
|
166
|
+
output: number;
|
|
167
|
+
cache_read: number;
|
|
168
|
+
cache_creation: number;
|
|
169
|
+
};
|
|
132
170
|
cost_usd?: number;
|
|
133
171
|
}
|
|
134
172
|
export interface AgentRunner {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/agent-runner.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAsB,KAAK,EAAQ,MAAM,gCAAgC,CAAC;AACjF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/agent-runner.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAsB,KAAK,EAAQ,MAAM,gCAAgC,CAAC;AACjF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrD;0EAC0E;AAC1E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB;8EAC0E;IAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,4EAA4E;IAC5E,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;gDAQ4C;IAC5C,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;iEAE6D;IAC7D,UAAU,CAAC,EAAE,CACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;mCAE+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;+EAE2E;IAC3E,kBAAkB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACvF;;;;0EAIsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;+BAO2B;IAC3B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;2CAK2C;AAC3C,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,KAAK,EAAE;IAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;CAAE,EACjD,OAAO,SAAO,GACb,MAAM,IAAI,CAuBZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;6EAwB6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;gBAKY;IACZ,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC;;;;;;8DAM0D;IAC1D,iBAAiB,CAAC,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;CACtD;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,OAAO;IAA3B,YAAoB,OAAO,GAAE,OAAO,KAAa,EAAI;IAE9C,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAgQ1D;CACF;AAqCD,2DAA2D;AAC3D,eAAO,MAAM,mBAAmB,mBAA0B,CAAC"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { createSdkMcpServer, query, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
19
19
|
import { omitAnthropicManagedKeys } from './provider.js';
|
|
20
|
+
import { toolResultSpillHook } from './tool-spill.js';
|
|
20
21
|
/** Wire `signal` to a child-process kill ladder: SIGTERM on abort, SIGKILL
|
|
21
22
|
* after `graceMs` if the child is still alive. If the signal is already
|
|
22
23
|
* aborted the ladder fires immediately (the runner was asked to stop before
|
|
@@ -97,6 +98,14 @@ export class ClaudeAgentRunner {
|
|
|
97
98
|
options: {
|
|
98
99
|
systemPrompt: args.systemPrompt,
|
|
99
100
|
model: args.model,
|
|
101
|
+
// ADR-O001 D8: the Claude half of the cost tier's effort axis. The
|
|
102
|
+
// SDK's own EffortLevel is 'low'|'medium'|'high'|'xhigh'|'max', which
|
|
103
|
+
// the abstract level maps onto 1:1; 'off' has no SDK effort value and
|
|
104
|
+
// means "no extended thinking", i.e. thinking: { type: 'disabled' }.
|
|
105
|
+
// Both spread conditionally so an untiered session sends neither key
|
|
106
|
+
// and is byte-identical to before.
|
|
107
|
+
...(args.effort && args.effort !== 'off' ? { effort: args.effort } : {}),
|
|
108
|
+
...(args.effort === 'off' ? { thinking: { type: 'disabled' } } : {}),
|
|
100
109
|
cwd: args.cwd,
|
|
101
110
|
// The SDK's own default (`env = {...process.env}`) only applies when
|
|
102
111
|
// this option is omitted entirely — passing `args.env` directly, even
|
|
@@ -160,6 +169,13 @@ export class ClaudeAgentRunner {
|
|
|
160
169
|
...(args.claudeRestrictions?.disallowedTools?.length
|
|
161
170
|
? { disallowedTools: args.claudeRestrictions.disallowedTools }
|
|
162
171
|
: {}),
|
|
172
|
+
// ADR-O001 D2. A PROGRAMMATIC hook, not a filesystem one: these are
|
|
173
|
+
// registered over the SDK's control protocol at initialize() time and
|
|
174
|
+
// so are unaffected by `settingSources: []` above (which only stops
|
|
175
|
+
// the CLI discovering the invoking user's own hooks).
|
|
176
|
+
...(args.toolSpillDir
|
|
177
|
+
? { hooks: { PostToolUse: [{ hooks: [toolResultSpillHook(args.toolSpillDir)] }] } }
|
|
178
|
+
: {}),
|
|
163
179
|
...(args.extras || {}),
|
|
164
180
|
},
|
|
165
181
|
});
|
|
@@ -248,9 +264,14 @@ export class ClaudeAgentRunner {
|
|
|
248
264
|
text,
|
|
249
265
|
input_tokens: m.message?.usage?.input_tokens,
|
|
250
266
|
output_tokens: m.message?.usage?.output_tokens,
|
|
267
|
+
// BetaUsage types both cache fields as `number | null`; normalize
|
|
268
|
+
// null to undefined so `?? 0` downstream reads the same either way.
|
|
269
|
+
cache_read_input_tokens: m.message?.usage?.cache_read_input_tokens ?? undefined,
|
|
270
|
+
cache_creation_input_tokens: m.message?.usage?.cache_creation_input_tokens ?? undefined,
|
|
251
271
|
};
|
|
252
272
|
}
|
|
253
273
|
else if (m.type === 'result') {
|
|
274
|
+
const cumulative = sumModelUsage(m.modelUsage);
|
|
254
275
|
yield {
|
|
255
276
|
type: 'result',
|
|
256
277
|
session_id,
|
|
@@ -258,6 +279,9 @@ export class ClaudeAgentRunner {
|
|
|
258
279
|
is_error: m.is_error,
|
|
259
280
|
input_tokens: m.usage?.input_tokens ?? 0,
|
|
260
281
|
output_tokens: m.usage?.output_tokens ?? 0,
|
|
282
|
+
cache_read_input_tokens: m.usage?.cache_read_input_tokens ?? undefined,
|
|
283
|
+
cache_creation_input_tokens: m.usage?.cache_creation_input_tokens ?? undefined,
|
|
284
|
+
...(cumulative ? { cumulative_tokens: cumulative } : {}),
|
|
261
285
|
cost_usd: m.total_cost_usd,
|
|
262
286
|
};
|
|
263
287
|
}
|
|
@@ -292,6 +316,29 @@ export class ClaudeAgentRunner {
|
|
|
292
316
|
}
|
|
293
317
|
}
|
|
294
318
|
}
|
|
319
|
+
/** ADR-O001 D1: collapse SDKResultMessage.modelUsage (a per-model record whose
|
|
320
|
+
* fields are camelCase: inputTokens / outputTokens / cacheReadInputTokens /
|
|
321
|
+
* cacheCreationInputTokens) into one total. Unlike `usage` it covers Task
|
|
322
|
+
* subagents and other auxiliary calls — on the measured run, 46 subagent
|
|
323
|
+
* calls the main-loop counter never saw. Returns undefined when the SDK
|
|
324
|
+
* reported no modelUsage at all, so session.ts can fall back to `usage`. */
|
|
325
|
+
function sumModelUsage(modelUsage) {
|
|
326
|
+
if (!modelUsage || typeof modelUsage !== 'object')
|
|
327
|
+
return undefined;
|
|
328
|
+
const entries = Object.values(modelUsage);
|
|
329
|
+
if (entries.length === 0)
|
|
330
|
+
return undefined;
|
|
331
|
+
const total = { input: 0, output: 0, cache_read: 0, cache_creation: 0 };
|
|
332
|
+
for (const u of entries) {
|
|
333
|
+
if (!u || typeof u !== 'object')
|
|
334
|
+
continue;
|
|
335
|
+
total.input += Number(u.inputTokens) || 0;
|
|
336
|
+
total.output += Number(u.outputTokens) || 0;
|
|
337
|
+
total.cache_read += Number(u.cacheReadInputTokens) || 0;
|
|
338
|
+
total.cache_creation += Number(u.cacheCreationInputTokens) || 0;
|
|
339
|
+
}
|
|
340
|
+
return total;
|
|
341
|
+
}
|
|
295
342
|
/** #289: a tool_result block's `content` is either a plain string or an array
|
|
296
343
|
* of content blocks; flatten it to the text a reader would actually see. */
|
|
297
344
|
function toolResultText(content) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/orgrt/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../../src/orgrt/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { AgentRuntime, RunningOrg } from './daemon.js';
|
|
2
|
+
import type { TokenUsage } from './policy.js';
|
|
2
3
|
import type { OrgTask } from './task-dag.js';
|
|
3
4
|
/** Checkpoint state for a single agent role */
|
|
4
5
|
export interface RoleCheckpoint {
|
|
@@ -10,8 +11,14 @@ export interface RoleCheckpoint {
|
|
|
10
11
|
* isRecoverableCloseReason in mailbox.ts; resume checks this before
|
|
11
12
|
* re-closing the restored mailbox. */
|
|
12
13
|
mailboxCloseReason?: string;
|
|
13
|
-
/**
|
|
14
|
+
/** Total BILLABLE token usage from the policy engine (ADR-O001 D1: input +
|
|
15
|
+
* output + cache reads + cache writes). Pre-ADR checkpoints hold the old
|
|
16
|
+
* input+output-only number here; `tokenUsage` tells the two apart. */
|
|
14
17
|
tokensUsed: number;
|
|
18
|
+
/** ADR-O001 D1: the four quantities, separately. Absent in checkpoints
|
|
19
|
+
* written before this existed — resume falls back to `tokensUsed` on its
|
|
20
|
+
* original (uncached) basis, so an old file still resumes. */
|
|
21
|
+
tokenUsage?: TokenUsage;
|
|
15
22
|
/** Cost tracking */
|
|
16
23
|
costUsd: number;
|
|
17
24
|
/** Last message ID for threading */
|
|
@@ -45,6 +52,10 @@ export interface RoleCheckpoint {
|
|
|
45
52
|
tokens: number;
|
|
46
53
|
costUsd: number;
|
|
47
54
|
};
|
|
55
|
+
/** ADR-O001 D7: the loadout this role's session was built with, so a
|
|
56
|
+
* resumed session is rebuilt with the same system prompt. Absent when the
|
|
57
|
+
* role had none (and in checkpoints written before D7). */
|
|
58
|
+
loadout?: string;
|
|
48
59
|
}
|
|
49
60
|
/** Full checkpoint state for an org */
|
|
50
61
|
export interface OrgCheckpoint {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../src/orgrt/checkpoint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,aAAa,EAAE,OAAO,CAAC;IACvB;;2CAEuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B
|
|
1
|
+
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../../src/orgrt/checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ export function captureCheckpoint(org, status = 'running') {
|
|
|
40
40
|
mailboxClosed: runtime.mailbox.isClosed,
|
|
41
41
|
mailboxCloseReason: runtime.mailbox.closeReason,
|
|
42
42
|
tokensUsed: runtime.policy.usage,
|
|
43
|
+
tokenUsage: runtime.policy.tokenUsage,
|
|
43
44
|
costUsd: runtime.metrics.costUsd,
|
|
44
45
|
lastMessageId: runtime.lastMessageId,
|
|
45
46
|
sessionId: runtime.sessionId, // P2-13: populated by session layer via onSessionId callback
|
|
@@ -53,6 +54,7 @@ export function captureCheckpoint(org, status = 'running') {
|
|
|
53
54
|
: {},
|
|
54
55
|
queuedDuringSwap: slot?.queuedDuringSwap ?? [],
|
|
55
56
|
retiredUsage: slot?.retiredUsage ?? { tokens: 0, costUsd: 0 },
|
|
57
|
+
...(runtime.loadout ? { loadout: runtime.loadout } : {}),
|
|
56
58
|
};
|
|
57
59
|
}
|
|
58
60
|
// Capture pending roles (lazy spawn list)
|
|
@@ -225,12 +227,19 @@ export function mergeCheckpoint(org, checkpoint, restoreMailboxes = true, restor
|
|
|
225
227
|
!isRecoverableCloseReason(roleState.mailboxCloseReason)) {
|
|
226
228
|
runtime.mailbox.close(roleState.mailboxCloseReason);
|
|
227
229
|
}
|
|
228
|
-
// Restore policy usage counters
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
230
|
+
// Restore policy usage counters. A checkpoint carrying the ADR-O001
|
|
231
|
+
// breakdown restores all four quantities exactly; one without it (written
|
|
232
|
+
// before the breakdown existed) still resumes, with its scalar landing on
|
|
233
|
+
// the uncached basis it was recorded on.
|
|
234
|
+
if (restorePolicy) {
|
|
235
|
+
if (roleState.tokenUsage) {
|
|
236
|
+
runtime.policy.setTokenUsage(roleState.tokenUsage);
|
|
237
|
+
}
|
|
238
|
+
else if (roleState.tokensUsed > 0) {
|
|
239
|
+
const diff = roleState.tokensUsed - runtime.policy.usage;
|
|
240
|
+
if (diff > 0) {
|
|
241
|
+
runtime.policy.addUsage(diff);
|
|
242
|
+
}
|
|
234
243
|
}
|
|
235
244
|
}
|
|
236
245
|
// Restore metadata
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../src/orgrt/checkpoint.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,kFAAkF;AAElF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../../src/orgrt/checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,4 +55,78 @@ export interface CompletionFacts {
|
|
|
55
55
|
/** Decide whether an `org_complete` call is honest, given already-gathered
|
|
56
56
|
* facts. Returns a refusal message, or `null` to allow. */
|
|
57
57
|
export declare function checkCompletion(f: CompletionFacts): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* The gate above asks "is this claim about the RUN honest?".
|
|
60
|
+
* `checkTaskEvidence` asks the same question one level down, about a single
|
|
61
|
+
* item: "may this role close this task, and is there anything but its own
|
|
62
|
+
* opinion saying it is done?".
|
|
63
|
+
*
|
|
64
|
+
* Why: one measured run produced 223 gate verdicts for 15 finished items —
|
|
65
|
+
* ~15 opinions per item — and still shipped five controls that could not
|
|
66
|
+
* fail. Three times the verifier FAILED a sha the reviewer had already
|
|
67
|
+
* APPROVED, and the verifier was right every time. Every one of those
|
|
68
|
+
* verdicts was an LLM judgment with nothing checking it.
|
|
69
|
+
*
|
|
70
|
+
* Ported from Gas Town's `gt done` (internal/cmd/done.go:498-526), which
|
|
71
|
+
* refuses to retire review work unless the item carries a fresh evidence
|
|
72
|
+
* comment. Its five tests map onto this runtime as:
|
|
73
|
+
* 1. posted after work started — STRUCTURAL here, not a check: evidence is
|
|
74
|
+
* an argument OF the org_task_done call, so it cannot predate the call.
|
|
75
|
+
* Gas Town needs `attached_at` because its evidence is a comment that
|
|
76
|
+
* persists on the item independently of the close.
|
|
77
|
+
* 2. authored by the assignee — `caller` is the RUNTIME's view of which
|
|
78
|
+
* role invoked the tool (session.ts binds it per role), compared here
|
|
79
|
+
* against the task's assignee. Deliberately not a self-declared author
|
|
80
|
+
* field, which an agent could simply write.
|
|
81
|
+
* 3. machine-parseable prefix — replaced by something stronger: evidence is
|
|
82
|
+
* a typed {command, exitCode, output} record. There is no prose to
|
|
83
|
+
* regex, and "an acceptance criterion is a command with an exit code"
|
|
84
|
+
* (D5) becomes expressible in the type itself.
|
|
85
|
+
* 4. not machine-generated — n/a, see 3.
|
|
86
|
+
* 5. head_sha equal to the current HEAD — ported as-is, and the
|
|
87
|
+
* load-bearing one: evidence gathered before the last commit is STALE.
|
|
88
|
+
* The work moved; the proof did not.
|
|
89
|
+
*
|
|
90
|
+
* What this does NOT do, stated plainly rather than implied: the runtime does
|
|
91
|
+
* not re-execute the command. A role can still report exitCode 0 for a
|
|
92
|
+
* command it never ran. What the gate buys is that the proof must name a
|
|
93
|
+
* runnable command, must be attributable, and must be pinned to the tree
|
|
94
|
+
* state being closed — so it cannot be recycled across commits, which is the
|
|
95
|
+
* failure actually observed. Re-executing the acceptance commands from the
|
|
96
|
+
* daemon is the strictly stronger version and the obvious next step; it needs
|
|
97
|
+
* a decision about where those commands run (role sandbox vs daemon) that is
|
|
98
|
+
* out of scope here.
|
|
99
|
+
*
|
|
100
|
+
* Opt-in: `run_config.completion_evidence` (default false). Turning it on
|
|
101
|
+
* refuses completions that previously succeeded — that IS the point — so it
|
|
102
|
+
* must never be on by default, or every existing org breaks on upgrade.
|
|
103
|
+
*/
|
|
104
|
+
/** One acceptance criterion: a command, the exit code it actually returned,
|
|
105
|
+
* and what it printed. */
|
|
106
|
+
export interface EvidenceCheck {
|
|
107
|
+
command: string;
|
|
108
|
+
exitCode: number;
|
|
109
|
+
output?: string;
|
|
110
|
+
}
|
|
111
|
+
export interface TaskEvidence {
|
|
112
|
+
/** The commit sha the checks were run against. */
|
|
113
|
+
headSha: string;
|
|
114
|
+
checks: EvidenceCheck[];
|
|
115
|
+
}
|
|
116
|
+
export interface TaskEvidenceFacts {
|
|
117
|
+
/** `run_config.completion_evidence`. False (the default) allows everything. */
|
|
118
|
+
required: boolean;
|
|
119
|
+
evidence?: TaskEvidence;
|
|
120
|
+
/** The workspace's real current commit sha, resolved by the caller.
|
|
121
|
+
* Undefined when the workspace is not a git repository. */
|
|
122
|
+
headSha?: string;
|
|
123
|
+
/** Role id the runtime saw calling org_task_done. */
|
|
124
|
+
caller: string;
|
|
125
|
+
/** The task's recorded assignee. */
|
|
126
|
+
assignee: string;
|
|
127
|
+
}
|
|
128
|
+
/** Decide whether a role may close a task, given already-gathered facts.
|
|
129
|
+
* Returns a refusal message, or `null` to allow. Pure: the caller resolves
|
|
130
|
+
* the head sha and the assignee. */
|
|
131
|
+
export declare function checkTaskEvidence(f: TaskEvidenceFacts): string | null;
|
|
58
132
|
//# sourceMappingURL=completion-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;mFAE+E;IAC/E,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;kEAE8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB;;;;sBAIkB;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAiDD;4DAC4D;AAC5D,wBAAgB,eAAe,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CASjE"}
|
|
1
|
+
{"version":3,"file":"completion-gate.d.ts","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;mFAE+E;IAC/E,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;kEAE8D;IAC9D,cAAc,EAAE,OAAO,CAAC;IACxB;;;;sBAIkB;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAiDD;4DAC4D;AAC5D,wBAAgB,eAAe,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CASjE;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;2BAC2B;AAC3B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;gEAC4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AASD;;qCAEqC;AACrC,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAoCrE"}
|
|
@@ -83,4 +83,49 @@ export function checkCompletion(f) {
|
|
|
83
83
|
}
|
|
84
84
|
return null;
|
|
85
85
|
}
|
|
86
|
+
/** Shortest sha prefix accepted — the git default short length. Below that a
|
|
87
|
+
* prefix identifies nothing. */
|
|
88
|
+
const MIN_SHA_LEN = 7;
|
|
89
|
+
const EVIDENCE_SHAPE = 'Attach evidence: { headSha: "<the current commit sha>", checks: [{ command, exitCode, output }] } — one entry per acceptance criterion, each a command you actually ran, with its real exit code and its output.';
|
|
90
|
+
/** Decide whether a role may close a task, given already-gathered facts.
|
|
91
|
+
* Returns a refusal message, or `null` to allow. Pure: the caller resolves
|
|
92
|
+
* the head sha and the assignee. */
|
|
93
|
+
export function checkTaskEvidence(f) {
|
|
94
|
+
if (!f.required)
|
|
95
|
+
return null;
|
|
96
|
+
if (f.caller !== f.assignee) {
|
|
97
|
+
return `org_task_done refused: this task is assigned to "${f.assignee}", and evidence only counts from the assignee. Ask "${f.assignee}" to close it, or reassign the task first.`;
|
|
98
|
+
}
|
|
99
|
+
const ev = f.evidence;
|
|
100
|
+
if (!ev) {
|
|
101
|
+
return `org_task_done refused (run_config.completion_evidence): closing a task needs verifiable evidence, not a summary. ${EVIDENCE_SHAPE}`;
|
|
102
|
+
}
|
|
103
|
+
if (ev.checks.length === 0) {
|
|
104
|
+
return `org_task_done refused: the evidence names no acceptance command. An acceptance criterion is a command with an exit code — if you cannot write one, the criterion is too vague to close on. ${EVIDENCE_SHAPE}`;
|
|
105
|
+
}
|
|
106
|
+
for (const c of ev.checks) {
|
|
107
|
+
if (!c.command.trim()) {
|
|
108
|
+
return `org_task_done refused: an evidence entry has an empty command. Every check must name the command that was actually run. ${EVIDENCE_SHAPE}`;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const failed = ev.checks.filter((c) => c.exitCode !== 0);
|
|
112
|
+
if (failed.length > 0) {
|
|
113
|
+
const detail = failed
|
|
114
|
+
.map((c) => ` $ ${c.command}\n exit ${c.exitCode}${c.output ? `\n ${c.output}` : ''}`)
|
|
115
|
+
.join('\n');
|
|
116
|
+
return `org_task_done refused: ${failed.length} acceptance command(s) did not exit 0 — the task is not done.\n${detail}\nFix the failure, re-run the checks, and close it again; the task goes back in your queue.`;
|
|
117
|
+
}
|
|
118
|
+
if (!f.headSha) {
|
|
119
|
+
return 'org_task_done refused: evidence must be pinned to a commit, but this workspace has no resolvable git HEAD. Either run this org in a git workspace, or turn run_config.completion_evidence off.';
|
|
120
|
+
}
|
|
121
|
+
const claimed = ev.headSha.trim().toLowerCase();
|
|
122
|
+
const actual = f.headSha.trim().toLowerCase();
|
|
123
|
+
if (claimed.length < MIN_SHA_LEN) {
|
|
124
|
+
return `org_task_done refused: headSha "${ev.headSha}" is too short to identify a commit (at least ${MIN_SHA_LEN} characters). The current head is ${actual}.`;
|
|
125
|
+
}
|
|
126
|
+
if (!actual.startsWith(claimed)) {
|
|
127
|
+
return `org_task_done refused: the evidence is STALE. It is pinned to ${claimed}, but the current head is ${actual} — the tree moved after those checks ran, so they say nothing about the code being closed. Re-run the acceptance commands against the current head and attach the new output.`;
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
86
131
|
//# sourceMappingURL=completion-gate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6BH;yEACyE;AACzE,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B;6CAC6C;AAC7C,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B;4BAC4B;AAC5B,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAE3C,MAAM,UAAU,GACd,ybAAyb,CAAC;AAE5b,SAAS,YAAY,CAAC,CAAkB;IACtC,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAClC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;gBAC3E,OAAO,iGAAiG,cAAc,wOAAwO,CAAC;YACjW,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;gBAC3C,OAAO,sFAAsF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,wJAAwJ,CAAC;YAC7R,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,wOAAwO,CAAC;YAClP,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACtB,OAAO,uOAAuO,CAAC;YACjP,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GACpB,0PAA0P,CAAC;AAE7P;4DAC4D;AAC5D,MAAM,UAAU,eAAe,CAAC,CAAkB;IAChD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;QACxF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"completion-gate.js","sourceRoot":"","sources":["../../../src/orgrt/completion-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-O001 D8 — cost tiers: a named cost level that sets BOTH the model AND
|
|
3
|
+
* the reasoning/thinking effort for a role, on whatever provider that role
|
|
4
|
+
* runs on.
|
|
5
|
+
*
|
|
6
|
+
* Measured on one real org run, holding volume constant: all-Opus $1,744,
|
|
7
|
+
* as-run blended $1,050, all-Sonnet $698, all-Haiku $349. Tiering is roughly
|
|
8
|
+
* a 3x win and is independent of every other D-decision.
|
|
9
|
+
*
|
|
10
|
+
* ──────────────────────────────────────────────────────────────────────────
|
|
11
|
+
* DO NOT TIER A DELIBERATIVE ROLE INTO A WEAK VOICE.
|
|
12
|
+
*
|
|
13
|
+
* ADR-O001, "What this does NOT apply to — deliberation and debate":
|
|
14
|
+
*
|
|
15
|
+
* "do not tier a debate participant into a weak voice. Tier by
|
|
16
|
+
* *difficulty of the judgement*, not by role label. A cheap model in a
|
|
17
|
+
* debate produces cheap arguments and the synthesiser cannot tell."
|
|
18
|
+
*
|
|
19
|
+
* Tier by how hard the judgement is, not by what the role is called. A role
|
|
20
|
+
* whose value is the quality of its disagreement — a design reviewer, a
|
|
21
|
+
* red-teamer, a debate participant, a synthesiser reading every position —
|
|
22
|
+
* belongs at `"exempt"` (see EXEMPT_TIER), which opts it out of tiering
|
|
23
|
+
* entirely and leaves its model exactly as it was. Control its cost with a
|
|
24
|
+
* budget (D1), not with a cheaper model.
|
|
25
|
+
* ──────────────────────────────────────────────────────────────────────────
|
|
26
|
+
*
|
|
27
|
+
* Three properties this deliberately has:
|
|
28
|
+
*
|
|
29
|
+
* - **Defaulted off.** An org that declares no `cost_tiers` resolves to
|
|
30
|
+
* `undefined` here and behaves byte-identically to before. Asserted by
|
|
31
|
+
* org-cost-tier.test.ts, not merely promised by this comment.
|
|
32
|
+
*
|
|
33
|
+
* - **Provider-agnostic.** A tier is a table keyed by *provider key* — a
|
|
34
|
+
* Vercel vendor slug (`glm`, `openai`, …) when the role has one, else the
|
|
35
|
+
* role's runtime id (`codex`, `kimicode`, `claude`, …). The built-in
|
|
36
|
+
* catalog covers Claude only (the default and the only provider whose
|
|
37
|
+
* model ids and effort mechanism this repo can verify); every other
|
|
38
|
+
* provider — including one this code has never heard of — is declared in
|
|
39
|
+
* the org config with no code change.
|
|
40
|
+
*
|
|
41
|
+
* - **Never a silent downgrade.** If a tier has no entry for a role's
|
|
42
|
+
* provider, resolution THROWS (and `validateCostTiers` reports it at org
|
|
43
|
+
* start, before a token is spent) rather than quietly picking something.
|
|
44
|
+
*
|
|
45
|
+
* Effort is abstract here (`off | low | medium | high | xhigh | max`, the
|
|
46
|
+
* Claude Agent SDK's own vocabulary plus an explicit `off`). Each provider
|
|
47
|
+
* expresses it its own way:
|
|
48
|
+
* - Claude: natively — session.ts hands it to the runner, which sets the
|
|
49
|
+
* SDK's `effort` option (or `thinking: {type:'disabled'}` for `off`).
|
|
50
|
+
* - Any other provider: whatever env vars the org declares under
|
|
51
|
+
* `cost_tiers.providers.<key>.effort_env.<level>`, merged into the
|
|
52
|
+
* session env. Providers that encode effort in the model id instead
|
|
53
|
+
* (e.g. `gemini-3.6-flash-high`) need nothing extra — name the model
|
|
54
|
+
* you want per tier.
|
|
55
|
+
* - A provider with no mechanism at all simply ignores the level.
|
|
56
|
+
*/
|
|
57
|
+
import type { OrgDef, OrgRole } from './types.js';
|
|
58
|
+
/** Abstract reasoning-effort level. Mirrors the Claude Agent SDK's
|
|
59
|
+
* `EffortLevel` ('low' | 'medium' | 'high' | 'xhigh' | 'max') plus an
|
|
60
|
+
* explicit 'off' meaning "no extended thinking at all". */
|
|
61
|
+
export declare const ORG_EFFORT_LEVELS: readonly ['off', 'low', 'medium', 'high', 'xhigh', 'max'];
|
|
62
|
+
export type OrgEffortLevel = (typeof ORG_EFFORT_LEVELS)[number];
|
|
63
|
+
/** Reserved tier name: this role is not tiered at all. See the header. */
|
|
64
|
+
export declare const EXEMPT_TIER = "exempt";
|
|
65
|
+
/** What one tier resolves to for one provider. */
|
|
66
|
+
export interface CostTierEntry {
|
|
67
|
+
model: string;
|
|
68
|
+
effort?: OrgEffortLevel;
|
|
69
|
+
}
|
|
70
|
+
/** A tier: provider key → entry. */
|
|
71
|
+
export type CostTierDef = Record<string, CostTierEntry>;
|
|
72
|
+
/** How one provider expresses an effort level, when it can. */
|
|
73
|
+
export interface CostTierProviderDef {
|
|
74
|
+
/** Env vars to set for the session, per effort level. */
|
|
75
|
+
effort_env?: Partial<Record<OrgEffortLevel, Record<string, string>>>;
|
|
76
|
+
}
|
|
77
|
+
/** The org's `cost_tiers` block. */
|
|
78
|
+
export interface CostTiersConfig {
|
|
79
|
+
/** Tier applied to every role that has no entry in `roles`. */
|
|
80
|
+
default?: string;
|
|
81
|
+
/** Per-role assignment. A bare string is a tier name (or `"exempt"`);
|
|
82
|
+
* the object form additionally overrides the tier's effort, which is how
|
|
83
|
+
* "patrol roles drop effort since they do simpler, more repetitive work"
|
|
84
|
+
* is expressed without minting a whole extra tier. */
|
|
85
|
+
roles?: Record<string, string | {
|
|
86
|
+
tier: string;
|
|
87
|
+
effort?: OrgEffortLevel;
|
|
88
|
+
}>;
|
|
89
|
+
/** User catalog. Merged OVER the built-in catalog per tier, per provider —
|
|
90
|
+
* so adding `{economy: {codex: …}}` extends built-in `economy` rather than
|
|
91
|
+
* replacing its `claude` entry. */
|
|
92
|
+
tiers?: Record<string, CostTierDef>;
|
|
93
|
+
/** Per-provider effort expression. */
|
|
94
|
+
providers?: Record<string, CostTierProviderDef>;
|
|
95
|
+
}
|
|
96
|
+
/** Built-in catalog. Claude only, on purpose: these are the model ids and the
|
|
97
|
+
* effort mechanism this repo can actually verify. Tiering a role on any other
|
|
98
|
+
* provider means naming that provider's models in `cost_tiers.tiers` — which
|
|
99
|
+
* is the honest alternative to inventing model ids and downgrading a role
|
|
100
|
+
* onto a string nobody checked. */
|
|
101
|
+
export declare const BUILTIN_COST_TIERS: Record<string, CostTierDef>;
|
|
102
|
+
/** Thrown when a tier cannot resolve a model for a role's provider, or names
|
|
103
|
+
* a tier that does not exist. Never swallowed into a default — see header. */
|
|
104
|
+
export declare class CostTierError extends Error {
|
|
105
|
+
}
|
|
106
|
+
/** The provider key a role tiers under: its Vercel vendor slug when it has
|
|
107
|
+
* one (that is what actually picks the model), else its runtime id, else the
|
|
108
|
+
* org's runtime, else 'claude'. Mirrors resolveModel()'s own vendor-then-
|
|
109
|
+
* runtime precedence in session.ts. */
|
|
110
|
+
export declare function costTierProviderKey(role: Pick<OrgRole, 'runtime' | 'provider'>, orgRuntime?: string, vendor?: string): string;
|
|
111
|
+
/** What a role's tier resolved to. */
|
|
112
|
+
export interface ResolvedCostTier {
|
|
113
|
+
tier: string;
|
|
114
|
+
provider: string;
|
|
115
|
+
model: string;
|
|
116
|
+
effort?: OrgEffortLevel;
|
|
117
|
+
/** Env vars expressing `effort` for this provider; `{}` when the provider
|
|
118
|
+
* has no env mechanism (Claude, which is handled natively, or a provider
|
|
119
|
+
* with none at all). */
|
|
120
|
+
env: Record<string, string>;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolve the cost tier for one role. Returns `undefined` when the org
|
|
124
|
+
* declares no tiers, when the role is assigned none, or when it is
|
|
125
|
+
* `"exempt"` — all of which mean "leave this role exactly as it was".
|
|
126
|
+
*
|
|
127
|
+
* Throws CostTierError when a tier IS assigned but cannot be honoured, so a
|
|
128
|
+
* misconfigured tier is a loud failure rather than a silent downgrade.
|
|
129
|
+
*/
|
|
130
|
+
export declare function resolveRoleCostTier(args: {
|
|
131
|
+
role: OrgRole;
|
|
132
|
+
def?: Pick<OrgDef, 'runtime' | 'cost_tiers'> & Record<string, unknown>;
|
|
133
|
+
/** Vendor override, when the caller already resolved a named provider's
|
|
134
|
+
* vendor (session.ts does). */
|
|
135
|
+
vendor?: string;
|
|
136
|
+
}): ResolvedCostTier | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Every cost-tier problem in an org definition, as human-readable lines.
|
|
139
|
+
* Empty for an org that declares no tiers (the upgrade-safe case). Called by
|
|
140
|
+
* the daemon before it spawns anything — a tier that cannot resolve must fail
|
|
141
|
+
* the run at start, not ten minutes and a wrong model later.
|
|
142
|
+
*/
|
|
143
|
+
export declare function validateCostTiers(def: OrgDef): string[];
|
|
144
|
+
//# sourceMappingURL=cost-tier.d.ts.map
|