@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,48 +0,0 @@
1
- export type ContextGraphNodeKind = "source_file" | "document" | "manifest" | "script" | "config";
2
- export type ContextGraphEdgeKind = "imports" | "documents";
3
- export interface ContextGraphNode {
4
- nodeId: string;
5
- path: string;
6
- kind: ContextGraphNodeKind;
7
- language?: string;
8
- sizeBytes: number;
9
- headings: string[];
10
- symbols: string[];
11
- keywords: string[];
12
- imports: string[];
13
- }
14
- export interface ContextGraphEdge {
15
- fromNodeId: string;
16
- toNodeId: string;
17
- kind: ContextGraphEdgeKind;
18
- }
19
- export interface ContextGraphSnapshot {
20
- schemaVersion: "martin.context-graph.v1";
21
- repoRoot: string;
22
- createdAt: string;
23
- nodeCount: number;
24
- edgeCount: number;
25
- truncated: boolean;
26
- nodes: ContextGraphNode[];
27
- edges: ContextGraphEdge[];
28
- }
29
- export interface ContextQuery {
30
- text?: string;
31
- terms?: string[];
32
- pathPrefix?: string;
33
- kinds?: ContextGraphNodeKind[];
34
- limit?: number;
35
- }
36
- export interface ContextGraphBuildOptions {
37
- maxFiles?: number;
38
- maxFileBytes?: number;
39
- }
40
- export interface ContextGraphHit {
41
- nodeId: string;
42
- path: string;
43
- kind: ContextGraphNodeKind;
44
- score: number;
45
- matchedTerms: string[];
46
- reasons: string[];
47
- }
48
- export declare function cloneContextGraphSnapshot(snapshot: ContextGraphSnapshot): ContextGraphSnapshot;
@@ -1,26 +0,0 @@
1
- export function cloneContextGraphSnapshot(snapshot) {
2
- return {
3
- schemaVersion: snapshot.schemaVersion,
4
- repoRoot: snapshot.repoRoot,
5
- createdAt: snapshot.createdAt,
6
- nodeCount: snapshot.nodeCount,
7
- edgeCount: snapshot.edgeCount,
8
- truncated: snapshot.truncated,
9
- nodes: snapshot.nodes.map((node) => ({
10
- nodeId: node.nodeId,
11
- path: node.path,
12
- kind: node.kind,
13
- ...(node.language ? { language: node.language } : {}),
14
- sizeBytes: node.sizeBytes,
15
- headings: [...node.headings],
16
- symbols: [...node.symbols],
17
- keywords: [...node.keywords],
18
- imports: [...node.imports]
19
- })),
20
- edges: snapshot.edges.map((edge) => ({
21
- fromNodeId: edge.fromNodeId,
22
- toNodeId: edge.toNodeId,
23
- kind: edge.kind
24
- }))
25
- };
26
- }
@@ -1,78 +0,0 @@
1
- import type { ApprovalPolicy, LoopBudget, LoopTask, MutationMode } from "./index.js";
2
- import type { DestructiveActionPolicy, PolicyProfile, TelemetryDestination } from "./governance.js";
3
- export interface ExecutionPolicy {
4
- configPath: string;
5
- budget: LoopBudget;
6
- governance: {
7
- policyProfile: PolicyProfile;
8
- telemetryDestination: TelemetryDestination;
9
- destructiveActionPolicy: DestructiveActionPolicy;
10
- };
11
- task: {
12
- verificationPlan: string[];
13
- mutationMode?: MutationMode;
14
- repoRoot?: string;
15
- allowedPaths?: string[];
16
- deniedPaths?: string[];
17
- acceptanceCriteria?: string[];
18
- approvalPolicy?: ApprovalPolicy;
19
- };
20
- provenance: ExecutionPolicyProvenanceEntry[];
21
- }
22
- export interface ExecutionPolicyProvenanceEntry {
23
- field: string;
24
- source: "default" | "config" | "request";
25
- value: string;
26
- }
27
- export interface ExecutionPolicyDefaults {
28
- budget: LoopBudget;
29
- policyProfile: PolicyProfile;
30
- telemetryDestination: TelemetryDestination;
31
- destructiveActionPolicy: DestructiveActionPolicy;
32
- verifierRules: string[];
33
- }
34
- export interface ExecutionPolicyConfigInput {
35
- policyProfile?: string;
36
- budget?: Partial<LoopBudget>;
37
- governance?: {
38
- destructiveActionPolicy?: string;
39
- telemetryDestination?: string;
40
- verifierRules?: string[];
41
- };
42
- }
43
- export interface ExecutionPolicyRequestInput {
44
- budget: LoopBudget;
45
- budgetOverrides?: Partial<Record<keyof LoopBudget, true>>;
46
- policyProfile?: string;
47
- telemetryDestination?: string;
48
- verificationPlan?: string[];
49
- mutationMode?: LoopTask["mutationMode"];
50
- repoRoot?: string;
51
- allowedPaths?: string[];
52
- deniedPaths?: string[];
53
- acceptanceCriteria?: string[];
54
- approvalPolicy?: ApprovalPolicy;
55
- }
56
- export interface ExecutionPolicyCompileInput {
57
- configPath: string;
58
- defaults: ExecutionPolicyDefaults;
59
- config?: ExecutionPolicyConfigInput;
60
- request: ExecutionPolicyRequestInput;
61
- }
62
- export type RoutingMode = "direct" | "manager" | "adaptive" | "consensus";
63
- export interface RoutingPolicy {
64
- enabled: boolean;
65
- mode: RoutingMode;
66
- /** Max percentage of total budget that can be spent before first code change. */
67
- maxPreworkBudgetPct: number;
68
- /** Hard dollar cap on pre-work spend. */
69
- maxPreworkCostUsd: number;
70
- /** Max model calls allowed for manager/router/planner before worker starts. */
71
- maxManagerCalls: number;
72
- /** Skip orchestration entirely if task confidence is above this threshold (0-1). */
73
- skipOrchestrationIfConfidenceAbove: number;
74
- /** Force direct execution for tasks classified as simple. */
75
- requireDirectForSimpleTasks: boolean;
76
- }
77
- export declare const DEFAULT_ROUTING_POLICY: RoutingPolicy;
78
- export declare function cloneExecutionPolicy(policy: ExecutionPolicy): ExecutionPolicy;
@@ -1,43 +0,0 @@
1
- export const DEFAULT_ROUTING_POLICY = {
2
- enabled: true,
3
- mode: "adaptive",
4
- maxPreworkBudgetPct: 25,
5
- maxPreworkCostUsd: 2.0,
6
- maxManagerCalls: 2,
7
- skipOrchestrationIfConfidenceAbove: 0.85,
8
- requireDirectForSimpleTasks: true
9
- };
10
- export function cloneExecutionPolicy(policy) {
11
- return {
12
- configPath: policy.configPath,
13
- budget: {
14
- maxUsd: policy.budget.maxUsd,
15
- softLimitUsd: policy.budget.softLimitUsd,
16
- maxIterations: policy.budget.maxIterations,
17
- maxTokens: policy.budget.maxTokens
18
- },
19
- governance: {
20
- policyProfile: policy.governance.policyProfile,
21
- telemetryDestination: policy.governance.telemetryDestination,
22
- destructiveActionPolicy: policy.governance.destructiveActionPolicy
23
- },
24
- task: {
25
- verificationPlan: [...policy.task.verificationPlan],
26
- ...(policy.task.mutationMode ? { mutationMode: policy.task.mutationMode } : {}),
27
- ...(policy.task.repoRoot ? { repoRoot: policy.task.repoRoot } : {}),
28
- ...(policy.task.allowedPaths ? { allowedPaths: [...policy.task.allowedPaths] } : {}),
29
- ...(policy.task.deniedPaths ? { deniedPaths: [...policy.task.deniedPaths] } : {}),
30
- ...(policy.task.acceptanceCriteria
31
- ? { acceptanceCriteria: [...policy.task.acceptanceCriteria] }
32
- : {}),
33
- ...(policy.task.approvalPolicy
34
- ? {
35
- approvalPolicy: {
36
- ...policy.task.approvalPolicy
37
- }
38
- }
39
- : {})
40
- },
41
- provenance: policy.provenance.map((entry) => ({ ...entry }))
42
- };
43
- }
@@ -1,24 +0,0 @@
1
- export type PolicyProfile = "strict" | "balanced" | "overnight" | "debug";
2
- export type DestructiveActionPolicy = "never" | "approval" | "allowed";
3
- export type TelemetryDestination = "local-only" | "control-plane";
4
- export type GovernanceSnapshot = {
5
- policyProfile: PolicyProfile;
6
- maxUsd: number;
7
- softLimitUsd: number;
8
- maxTokens: number;
9
- maxIterations: number;
10
- allowedAdapters: string[];
11
- allowedModels: string[];
12
- destructiveActionPolicy: DestructiveActionPolicy;
13
- approvalRequired: boolean;
14
- verifierRules: string[];
15
- escalationRoute: string;
16
- telemetryDestination: TelemetryDestination;
17
- retentionPolicy: string;
18
- provenance: Array<{
19
- field: string;
20
- value: string;
21
- source: string;
22
- }>;
23
- };
24
- export declare function createGovernanceSnapshot(snapshot: GovernanceSnapshot): GovernanceSnapshot;
@@ -1,11 +0,0 @@
1
- export function createGovernanceSnapshot(snapshot) {
2
- return {
3
- ...snapshot,
4
- allowedAdapters: [...snapshot.allowedAdapters],
5
- allowedModels: [...snapshot.allowedModels],
6
- verifierRules: [...snapshot.verifierRules],
7
- provenance: snapshot.provenance.map((entry) => ({
8
- ...entry
9
- }))
10
- };
11
- }
@@ -1,29 +0,0 @@
1
- export type IdentityAlgorithm = "ed25519";
2
- export type IdentityRole = "governor" | "verifier" | "worker" | "reviewer" | "observer";
3
- export interface IdentityClaims {
4
- subject: string;
5
- issuer: string;
6
- role: IdentityRole;
7
- scopes: string[];
8
- issuedAt: string;
9
- expiresAt?: string;
10
- workspaceId?: string;
11
- sessionId?: string;
12
- metadata?: Record<string, string>;
13
- }
14
- export interface IdentityToken {
15
- schemaVersion: "martin.identity.v1";
16
- algorithm: IdentityAlgorithm;
17
- keyId: string;
18
- claims: IdentityClaims;
19
- signature: string;
20
- }
21
- export interface IdentityAttestation {
22
- valid: boolean;
23
- verifiedAt: string;
24
- reason: string;
25
- token: IdentityToken;
26
- }
27
- export declare function cloneIdentityClaims(claims: IdentityClaims): IdentityClaims;
28
- export declare function cloneIdentityToken(token: IdentityToken): IdentityToken;
29
- export declare function cloneIdentityAttestation(attestation: IdentityAttestation): IdentityAttestation;
@@ -1,30 +0,0 @@
1
- export function cloneIdentityClaims(claims) {
2
- return {
3
- subject: claims.subject,
4
- issuer: claims.issuer,
5
- role: claims.role,
6
- scopes: [...claims.scopes],
7
- issuedAt: claims.issuedAt,
8
- ...(claims.expiresAt ? { expiresAt: claims.expiresAt } : {}),
9
- ...(claims.workspaceId ? { workspaceId: claims.workspaceId } : {}),
10
- ...(claims.sessionId ? { sessionId: claims.sessionId } : {}),
11
- ...(claims.metadata ? { metadata: { ...claims.metadata } } : {})
12
- };
13
- }
14
- export function cloneIdentityToken(token) {
15
- return {
16
- schemaVersion: token.schemaVersion,
17
- algorithm: token.algorithm,
18
- keyId: token.keyId,
19
- claims: cloneIdentityClaims(token.claims),
20
- signature: token.signature
21
- };
22
- }
23
- export function cloneIdentityAttestation(attestation) {
24
- return {
25
- valid: attestation.valid,
26
- verifiedAt: attestation.verifiedAt,
27
- reason: attestation.reason,
28
- token: cloneIdentityToken(attestation.token)
29
- };
30
- }