@martinloop/mcp 0.3.8 → 0.5.0

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.
Files changed (161) hide show
  1. package/README.md +90 -106
  2. package/dist/discovery-metadata.d.ts +1 -1
  3. package/dist/discovery-metadata.js +1 -1
  4. package/dist/resources.d.ts +1 -2
  5. package/dist/resources.js +190 -238
  6. package/dist/server-validation.d.ts +1 -1
  7. package/dist/server-validation.js +16 -11
  8. package/dist/server.d.ts +23 -0
  9. package/dist/server.js +152 -7
  10. package/dist/tools/run-dossier.d.ts +3 -1
  11. package/dist/tools/run-dossier.js +40 -2
  12. package/dist/tools/run-loop.d.ts +1 -4
  13. package/dist/tools/run-loop.js +6 -15
  14. package/dist/tools/tool-support.d.ts +2 -1
  15. package/dist/tools/tool-support.js +1 -12
  16. package/dist/vendor/adapters/claude-cli.js +38 -35
  17. package/dist/vendor/adapters/cli-bridge.d.ts +9 -1
  18. package/dist/vendor/adapters/cli-bridge.js +54 -13
  19. package/dist/vendor/adapters/codex-launcher.d.ts +61 -1
  20. package/dist/vendor/adapters/codex-launcher.js +118 -19
  21. package/dist/vendor/adapters/index.d.ts +1 -3
  22. package/dist/vendor/adapters/index.js +1 -3
  23. package/dist/vendor/adapters/openai-compatible.js +57 -18
  24. package/dist/vendor/contracts/adapter-capabilities.d.ts +1 -1
  25. package/dist/vendor/contracts/context-handoff.d.ts +100 -0
  26. package/dist/vendor/contracts/context-handoff.js +11 -0
  27. package/dist/vendor/contracts/context-manifest.d.ts +195 -0
  28. package/dist/vendor/contracts/context-manifest.js +17 -0
  29. package/dist/vendor/contracts/context-shadow.d.ts +75 -0
  30. package/dist/vendor/contracts/context-shadow.js +8 -0
  31. package/dist/vendor/contracts/exits.d.ts +126 -0
  32. package/dist/vendor/contracts/exits.js +32 -0
  33. package/dist/vendor/contracts/index.d.ts +39 -2
  34. package/dist/vendor/contracts/index.js +22 -0
  35. package/dist/vendor/contracts/mission.d.ts +102 -0
  36. package/dist/vendor/contracts/mission.js +64 -0
  37. package/dist/vendor/contracts/operator.d.ts +3 -1
  38. package/dist/vendor/contracts/operator.js +2 -1
  39. package/dist/vendor/contracts/verified-handoff.d.ts +100 -0
  40. package/dist/vendor/contracts/verified-handoff.js +35 -0
  41. package/dist/vendor/core/context-chain-gate.d.ts +89 -0
  42. package/dist/vendor/core/context-chain-gate.js +173 -0
  43. package/dist/vendor/core/context-compiler.d.ts +53 -0
  44. package/dist/vendor/core/context-compiler.js +261 -0
  45. package/dist/vendor/core/context-handoff.d.ts +42 -0
  46. package/dist/vendor/core/context-handoff.js +167 -0
  47. package/dist/vendor/core/context-shadow.d.ts +39 -0
  48. package/dist/vendor/core/context-shadow.js +200 -0
  49. package/dist/vendor/core/exit-signal.d.ts +88 -0
  50. package/dist/vendor/core/exit-signal.js +339 -0
  51. package/dist/vendor/core/exits.d.ts +41 -0
  52. package/dist/vendor/core/exits.js +258 -0
  53. package/dist/vendor/core/index.d.ts +42 -1
  54. package/dist/vendor/core/index.js +1086 -662
  55. package/dist/vendor/core/mission/aggregate.d.ts +27 -0
  56. package/dist/vendor/core/mission/aggregate.js +42 -0
  57. package/dist/vendor/core/mission/index.d.ts +2 -0
  58. package/dist/vendor/core/mission/index.js +1 -0
  59. package/dist/vendor/core/persistence/compiler.d.ts +8 -0
  60. package/dist/vendor/core/persistence/compiler.js +156 -0
  61. package/dist/vendor/core/persistence/context-handoff-store.d.ts +68 -0
  62. package/dist/vendor/core/persistence/context-handoff-store.js +112 -0
  63. package/dist/vendor/core/persistence/index.d.ts +4 -0
  64. package/dist/vendor/core/persistence/index.js +2 -0
  65. package/dist/vendor/core/persistence/ledger.d.ts +1 -1
  66. package/dist/vendor/core/persistence/mission-store.d.ts +56 -0
  67. package/dist/vendor/core/persistence/mission-store.js +281 -0
  68. package/dist/vendor/core/policy.d.ts +2 -0
  69. package/dist/vendor/core/policy.js +5 -2
  70. package/dist/vendor/core/rollback.js +15 -1
  71. package/dist/vendor/core/savings.d.ts +13 -0
  72. package/dist/vendor/core/savings.js +22 -0
  73. package/dist/vendor/core/termination-store.d.ts +15 -0
  74. package/dist/vendor/core/termination-store.js +44 -0
  75. package/dist/vendor/core/verified-handoff.d.ts +67 -0
  76. package/dist/vendor/core/verified-handoff.js +210 -0
  77. package/package.json +76 -83
  78. package/server.json +21 -21
  79. package/LICENSE +0 -216
  80. package/dist/vendor/adapters/adapters/src/claude-cli.d.ts +0 -146
  81. package/dist/vendor/adapters/adapters/src/claude-cli.js +0 -1100
  82. package/dist/vendor/adapters/adapters/src/cli-bridge.d.ts +0 -103
  83. package/dist/vendor/adapters/adapters/src/cli-bridge.js +0 -569
  84. package/dist/vendor/adapters/adapters/src/codex-launcher.d.ts +0 -78
  85. package/dist/vendor/adapters/adapters/src/codex-launcher.js +0 -663
  86. package/dist/vendor/adapters/adapters/src/direct-provider.d.ts +0 -10
  87. package/dist/vendor/adapters/adapters/src/direct-provider.js +0 -40
  88. package/dist/vendor/adapters/adapters/src/index.d.ts +0 -8
  89. package/dist/vendor/adapters/adapters/src/index.js +0 -8
  90. package/dist/vendor/adapters/adapters/src/openai-compatible.d.ts +0 -62
  91. package/dist/vendor/adapters/adapters/src/openai-compatible.js +0 -306
  92. package/dist/vendor/adapters/adapters/src/runtime-support.d.ts +0 -17
  93. package/dist/vendor/adapters/adapters/src/runtime-support.js +0 -59
  94. package/dist/vendor/adapters/adapters/src/stub-agent-cli.d.ts +0 -8
  95. package/dist/vendor/adapters/adapters/src/stub-agent-cli.js +0 -40
  96. package/dist/vendor/adapters/adapters/src/stub-direct-provider.d.ts +0 -8
  97. package/dist/vendor/adapters/adapters/src/stub-direct-provider.js +0 -12
  98. package/dist/vendor/adapters/adapters/src/verifier-only.d.ts +0 -9
  99. package/dist/vendor/adapters/adapters/src/verifier-only.js +0 -63
  100. package/dist/vendor/adapters/contracts/src/context-graph.d.ts +0 -48
  101. package/dist/vendor/adapters/contracts/src/context-graph.js +0 -26
  102. package/dist/vendor/adapters/contracts/src/execution-policy.d.ts +0 -78
  103. package/dist/vendor/adapters/contracts/src/execution-policy.js +0 -43
  104. package/dist/vendor/adapters/contracts/src/governance.d.ts +0 -24
  105. package/dist/vendor/adapters/contracts/src/governance.js +0 -11
  106. package/dist/vendor/adapters/contracts/src/identity.d.ts +0 -29
  107. package/dist/vendor/adapters/contracts/src/identity.js +0 -30
  108. package/dist/vendor/adapters/contracts/src/index.d.ts +0 -412
  109. package/dist/vendor/adapters/contracts/src/index.js +0 -225
  110. package/dist/vendor/adapters/contracts/src/operator.d.ts +0 -19
  111. package/dist/vendor/adapters/contracts/src/operator.js +0 -11
  112. package/dist/vendor/adapters/contracts/src/trajectory.d.ts +0 -26
  113. package/dist/vendor/adapters/contracts/src/trajectory.js +0 -27
  114. package/dist/vendor/adapters/core/src/compiler.d.ts +0 -52
  115. package/dist/vendor/adapters/core/src/compiler.js +0 -52
  116. package/dist/vendor/adapters/core/src/context-graph.d.ts +0 -3
  117. package/dist/vendor/adapters/core/src/context-graph.js +0 -371
  118. package/dist/vendor/adapters/core/src/context-integrity.d.ts +0 -26
  119. package/dist/vendor/adapters/core/src/context-integrity.js +0 -80
  120. package/dist/vendor/adapters/core/src/grounding.d.ts +0 -38
  121. package/dist/vendor/adapters/core/src/grounding.js +0 -273
  122. package/dist/vendor/adapters/core/src/identity.d.ts +0 -20
  123. package/dist/vendor/adapters/core/src/identity.js +0 -86
  124. package/dist/vendor/adapters/core/src/index.d.ts +0 -186
  125. package/dist/vendor/adapters/core/src/index.js +0 -1495
  126. package/dist/vendor/adapters/core/src/leash.d.ts +0 -48
  127. package/dist/vendor/adapters/core/src/leash.js +0 -497
  128. package/dist/vendor/adapters/core/src/persistence/compiler.d.ts +0 -18
  129. package/dist/vendor/adapters/core/src/persistence/compiler.js +0 -34
  130. package/dist/vendor/adapters/core/src/persistence/index.d.ts +0 -10
  131. package/dist/vendor/adapters/core/src/persistence/index.js +0 -5
  132. package/dist/vendor/adapters/core/src/persistence/integrity.d.ts +0 -39
  133. package/dist/vendor/adapters/core/src/persistence/integrity.js +0 -252
  134. package/dist/vendor/adapters/core/src/persistence/ledger.d.ts +0 -23
  135. package/dist/vendor/adapters/core/src/persistence/ledger.js +0 -9
  136. package/dist/vendor/adapters/core/src/persistence/memory-store.d.ts +0 -63
  137. package/dist/vendor/adapters/core/src/persistence/memory-store.js +0 -115
  138. package/dist/vendor/adapters/core/src/persistence/runs-reader.d.ts +0 -66
  139. package/dist/vendor/adapters/core/src/persistence/runs-reader.js +0 -140
  140. package/dist/vendor/adapters/core/src/persistence/store.d.ts +0 -89
  141. package/dist/vendor/adapters/core/src/persistence/store.js +0 -125
  142. package/dist/vendor/adapters/core/src/persistence/trace-store.d.ts +0 -85
  143. package/dist/vendor/adapters/core/src/persistence/trace-store.js +0 -125
  144. package/dist/vendor/adapters/core/src/policy-compiler.d.ts +0 -2
  145. package/dist/vendor/adapters/core/src/policy-compiler.js +0 -195
  146. package/dist/vendor/adapters/core/src/policy.d.ts +0 -156
  147. package/dist/vendor/adapters/core/src/policy.js +0 -704
  148. package/dist/vendor/adapters/core/src/repo-analyzer.d.ts +0 -53
  149. package/dist/vendor/adapters/core/src/repo-analyzer.js +0 -263
  150. package/dist/vendor/adapters/core/src/rollback.d.ts +0 -15
  151. package/dist/vendor/adapters/core/src/rollback.js +0 -253
  152. package/dist/vendor/adapters/core/src/routing.d.ts +0 -82
  153. package/dist/vendor/adapters/core/src/routing.js +0 -336
  154. package/dist/vendor/adapters/core/src/test-integrity.d.ts +0 -64
  155. package/dist/vendor/adapters/core/src/test-integrity.js +0 -197
  156. package/dist/vendor/adapters/core/src/trajectory.d.ts +0 -18
  157. package/dist/vendor/adapters/core/src/trajectory.js +0 -295
  158. package/dist/vendor/adapters/stub-agent-cli.d.ts +0 -8
  159. package/dist/vendor/adapters/stub-agent-cli.js +0 -40
  160. package/dist/vendor/adapters/verifier-only.d.ts +0 -9
  161. package/dist/vendor/adapters/verifier-only.js +0 -63
@@ -1,146 +0,0 @@
1
- /**
2
- * Real agent-CLI adapters.
3
- *
4
- * Exports a generic factory (`createAgentCliAdapter`) and two pre-configured
5
- * factories (`createClaudeCliAdapter`, `createCodexCliAdapter`) that spawn
6
- * the respective AI coding CLI as a child subprocess.
7
- *
8
- * Usage in CLI:
9
- * createClaudeCliAdapter({ workingDirectory: process.cwd() })
10
- * createCodexCliAdapter({ workingDirectory: process.cwd() })
11
- *
12
- * MCP tools and integration tests use the same factories.
13
- */
14
- import type { MartinAdapter, MartinAdapterRequest } from "../../../core/index.js";
15
- import { type SpawnLike } from "./cli-bridge.js";
16
- /**
17
- * Given a prompt string, returns the full argv array to pass to spawn().
18
- * Example for Claude: () => ["--output-format", "json", "--print"]
19
- * Example for Codex: () => ["exec", "--sandbox", "workspace-write", "-"]
20
- */
21
- export type CliArgsBuilder = (prompt: string, request: MartinAdapterRequest) => string[];
22
- export type CliStdinBuilder = (prompt: string) => string | undefined;
23
- export interface AgentCliAdapterOptions {
24
- /** The executable to spawn (e.g. "claude", "codex"). */
25
- command: string;
26
- /** Converts a prompt string into the argv array passed to spawn(). */
27
- argsBuilder: CliArgsBuilder;
28
- /** Optional stdin payload for CLIs that accept prompt input via stdin or `-`. */
29
- stdinBuilder?: CliStdinBuilder;
30
- /** Adapter ID suffix. Defaults to command. */
31
- adapterIdSuffix?: string;
32
- /** Working directory for all subprocesses. Defaults to process.cwd(). */
33
- workingDirectory?: string;
34
- /** Timeout for the agent subprocess in ms. Defaults to 300_000 (5 min). */
35
- timeoutMs?: number;
36
- /** Timeout per verification command in ms. Defaults to 120_000 (2 min). */
37
- verifyTimeoutMs?: number;
38
- /** Human-readable label shown in loop records. */
39
- label?: string;
40
- /** Model name surfaced in adapter metadata (also used for cost estimation). */
41
- model?: string;
42
- /**
43
- * Whether the CLI outputs JSON when --output-format json is passed.
44
- * Set to false for CLIs that don't support this flag (e.g. Codex).
45
- * Defaults to true for Claude.
46
- */
47
- supportsJsonOutput?: boolean;
48
- /**
49
- * Set when `argsBuilder` requests `--output-format stream-json` (newline-
50
- * delimited JSON events) rather than single-blob `json`. Enables (a)
51
- * incremental result parsing that scans for the final `result` event, and
52
- * (b) a live cumulative-cost circuit breaker that terminates the subprocess
53
- * the moment projected spend crosses the remaining per-attempt budget,
54
- * rather than only learning about an overspend after the process exits.
55
- */
56
- streamingUsageCap?: boolean;
57
- /** Test-only override for subprocess spawning. */
58
- spawnImpl?: SpawnLike;
59
- }
60
- export interface ClaudeCliAdapterOptions {
61
- workingDirectory?: string;
62
- timeoutMs?: number;
63
- verifyTimeoutMs?: number;
64
- label?: string;
65
- /** Override the model passed via --model flag. */
66
- model?: string;
67
- /** Extra args appended after core args (before prompt). */
68
- extraArgs?: string[];
69
- spawnImpl?: SpawnLike;
70
- }
71
- export interface CodexCliAdapterOptions {
72
- /** Override the executable or absolute command path used to launch Codex. */
73
- command?: string;
74
- workingDirectory?: string;
75
- timeoutMs?: number;
76
- verifyTimeoutMs?: number;
77
- label?: string;
78
- /** Override the model passed via --model flag. */
79
- model?: string;
80
- /**
81
- * Deprecated no-op retained for compatibility.
82
- *
83
- * Codex CLI's supported non-interactive entrypoint is `codex exec`.
84
- * MartinLoop now uses explicit sandboxing instead of the legacy
85
- * `--full-auto` compatibility path, which can exit before verifier execution.
86
- */
87
- fullAuto?: boolean;
88
- /** Codex sandbox mode for model-generated commands. Defaults to workspace-write. */
89
- sandbox?: "read-only" | "workspace-write" | "danger-full-access";
90
- /** Extra args appended after core args (before prompt). */
91
- extraArgs?: string[];
92
- spawnImpl?: SpawnLike;
93
- }
94
- export interface GeminiCliAdapterOptions {
95
- workingDirectory?: string;
96
- timeoutMs?: number;
97
- verifyTimeoutMs?: number;
98
- label?: string;
99
- /** Override the model passed via --model flag. Defaults to the Gemini `flash` alias. */
100
- model?: string;
101
- /** Approval mode for headless Gemini runs. Defaults to yolo for autonomous execution. */
102
- approvalMode?: "default" | "auto_edit" | "yolo" | "plan";
103
- /** Enable Gemini sandbox mode when the host is configured for it. Disabled by default. */
104
- sandbox?: boolean;
105
- /** Extra args appended after core args. */
106
- extraArgs?: string[];
107
- spawnImpl?: SpawnLike;
108
- }
109
- export declare function createAgentCliAdapter(options: AgentCliAdapterOptions): MartinAdapter;
110
- /**
111
- * Spawns `claude --output-format stream-json --verbose --print "<prompt>" [extraArgs]`.
112
- *
113
- * `stream-json` emits one JSON event per line — including per-turn usage on
114
- * each `assistant` message and a final `result` event carrying the same
115
- * `result`/`usage`/`total_cost_usd` fields as single-blob `json` output — so
116
- * MartinLoop can both (a) recover real token usage/cost as before, and
117
- * (b) watch cumulative spend live and self-terminate the subprocess the
118
- * moment it crosses the remaining per-attempt budget (see
119
- * `streamingUsageCap` / `createStreamingUsageInspector`), instead of only
120
- * discovering an overspend after the whole process has already exited.
121
- *
122
- * Requires the Claude Code CLI to be installed and authenticated:
123
- * https://docs.anthropic.com/claude-code
124
- */
125
- export declare function createClaudeCliAdapter(options?: ClaudeCliAdapterOptions): MartinAdapter;
126
- /**
127
- * Spawns `codex exec --cd <workspace> --sandbox <mode> [--model <model>] [extraArgs] -`.
128
- *
129
- * The prompt is delivered via stdin so Windows shell quoting cannot truncate or
130
- * reinterpret long MartinLoop prompts that contain paths, deny rules, or budget
131
- * context.
132
- *
133
- * Requires the Codex CLI to be installed and authenticated:
134
- * npm install -g @openai/codex
135
- */
136
- export declare function createCodexCliAdapter(options?: CodexCliAdapterOptions): MartinAdapter;
137
- /**
138
- * Spawns `gemini --model <model> --prompt "" --approval-mode <mode> --output-format json [...]`.
139
- *
140
- * The prompt is delivered via stdin while forcing headless mode with `--prompt ""`,
141
- * which keeps large MartinLoop prompts off the command line on Windows.
142
- *
143
- * Requires the Gemini CLI to be installed and authenticated:
144
- * npm install -g @google/gemini-cli
145
- */
146
- export declare function createGeminiCliAdapter(options?: GeminiCliAdapterOptions): MartinAdapter;