@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.
- package/README.md +90 -106
- package/dist/discovery-metadata.d.ts +1 -1
- package/dist/discovery-metadata.js +1 -1
- package/dist/resources.d.ts +1 -2
- package/dist/resources.js +190 -238
- package/dist/server-validation.d.ts +1 -1
- package/dist/server-validation.js +16 -11
- package/dist/server.d.ts +23 -0
- package/dist/server.js +152 -7
- package/dist/tools/run-dossier.d.ts +3 -1
- package/dist/tools/run-dossier.js +40 -2
- package/dist/tools/run-loop.d.ts +1 -4
- package/dist/tools/run-loop.js +6 -15
- package/dist/tools/tool-support.d.ts +2 -1
- package/dist/tools/tool-support.js +1 -12
- package/dist/vendor/adapters/claude-cli.js +38 -35
- package/dist/vendor/adapters/cli-bridge.d.ts +9 -1
- package/dist/vendor/adapters/cli-bridge.js +54 -13
- package/dist/vendor/adapters/codex-launcher.d.ts +61 -1
- package/dist/vendor/adapters/codex-launcher.js +118 -19
- package/dist/vendor/adapters/index.d.ts +1 -3
- package/dist/vendor/adapters/index.js +1 -3
- package/dist/vendor/adapters/openai-compatible.js +57 -18
- package/dist/vendor/contracts/adapter-capabilities.d.ts +1 -1
- package/dist/vendor/contracts/context-handoff.d.ts +100 -0
- package/dist/vendor/contracts/context-handoff.js +11 -0
- package/dist/vendor/contracts/context-manifest.d.ts +195 -0
- package/dist/vendor/contracts/context-manifest.js +17 -0
- package/dist/vendor/contracts/context-shadow.d.ts +75 -0
- package/dist/vendor/contracts/context-shadow.js +8 -0
- package/dist/vendor/contracts/exits.d.ts +126 -0
- package/dist/vendor/contracts/exits.js +32 -0
- package/dist/vendor/contracts/index.d.ts +39 -2
- package/dist/vendor/contracts/index.js +22 -0
- package/dist/vendor/contracts/mission.d.ts +102 -0
- package/dist/vendor/contracts/mission.js +64 -0
- package/dist/vendor/contracts/operator.d.ts +3 -1
- package/dist/vendor/contracts/operator.js +2 -1
- package/dist/vendor/contracts/verified-handoff.d.ts +100 -0
- package/dist/vendor/contracts/verified-handoff.js +35 -0
- package/dist/vendor/core/context-chain-gate.d.ts +89 -0
- package/dist/vendor/core/context-chain-gate.js +173 -0
- package/dist/vendor/core/context-compiler.d.ts +53 -0
- package/dist/vendor/core/context-compiler.js +261 -0
- package/dist/vendor/core/context-handoff.d.ts +42 -0
- package/dist/vendor/core/context-handoff.js +167 -0
- package/dist/vendor/core/context-shadow.d.ts +39 -0
- package/dist/vendor/core/context-shadow.js +200 -0
- package/dist/vendor/core/exit-signal.d.ts +88 -0
- package/dist/vendor/core/exit-signal.js +339 -0
- package/dist/vendor/core/exits.d.ts +41 -0
- package/dist/vendor/core/exits.js +258 -0
- package/dist/vendor/core/index.d.ts +42 -1
- package/dist/vendor/core/index.js +1086 -662
- package/dist/vendor/core/mission/aggregate.d.ts +27 -0
- package/dist/vendor/core/mission/aggregate.js +42 -0
- package/dist/vendor/core/mission/index.d.ts +2 -0
- package/dist/vendor/core/mission/index.js +1 -0
- package/dist/vendor/core/persistence/compiler.d.ts +8 -0
- package/dist/vendor/core/persistence/compiler.js +156 -0
- package/dist/vendor/core/persistence/context-handoff-store.d.ts +68 -0
- package/dist/vendor/core/persistence/context-handoff-store.js +112 -0
- package/dist/vendor/core/persistence/index.d.ts +4 -0
- package/dist/vendor/core/persistence/index.js +2 -0
- package/dist/vendor/core/persistence/ledger.d.ts +1 -1
- package/dist/vendor/core/persistence/mission-store.d.ts +56 -0
- package/dist/vendor/core/persistence/mission-store.js +281 -0
- package/dist/vendor/core/policy.d.ts +2 -0
- package/dist/vendor/core/policy.js +5 -2
- package/dist/vendor/core/rollback.js +15 -1
- package/dist/vendor/core/savings.d.ts +13 -0
- package/dist/vendor/core/savings.js +22 -0
- package/dist/vendor/core/termination-store.d.ts +15 -0
- package/dist/vendor/core/termination-store.js +44 -0
- package/dist/vendor/core/verified-handoff.d.ts +67 -0
- package/dist/vendor/core/verified-handoff.js +210 -0
- package/package.json +76 -83
- package/server.json +21 -21
- package/LICENSE +0 -216
- package/dist/vendor/adapters/adapters/src/claude-cli.d.ts +0 -146
- package/dist/vendor/adapters/adapters/src/claude-cli.js +0 -1100
- package/dist/vendor/adapters/adapters/src/cli-bridge.d.ts +0 -103
- package/dist/vendor/adapters/adapters/src/cli-bridge.js +0 -569
- package/dist/vendor/adapters/adapters/src/codex-launcher.d.ts +0 -78
- package/dist/vendor/adapters/adapters/src/codex-launcher.js +0 -663
- package/dist/vendor/adapters/adapters/src/direct-provider.d.ts +0 -10
- package/dist/vendor/adapters/adapters/src/direct-provider.js +0 -40
- package/dist/vendor/adapters/adapters/src/index.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/index.js +0 -8
- package/dist/vendor/adapters/adapters/src/openai-compatible.d.ts +0 -62
- package/dist/vendor/adapters/adapters/src/openai-compatible.js +0 -306
- package/dist/vendor/adapters/adapters/src/runtime-support.d.ts +0 -17
- package/dist/vendor/adapters/adapters/src/runtime-support.js +0 -59
- package/dist/vendor/adapters/adapters/src/stub-agent-cli.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/stub-agent-cli.js +0 -40
- package/dist/vendor/adapters/adapters/src/stub-direct-provider.d.ts +0 -8
- package/dist/vendor/adapters/adapters/src/stub-direct-provider.js +0 -12
- package/dist/vendor/adapters/adapters/src/verifier-only.d.ts +0 -9
- package/dist/vendor/adapters/adapters/src/verifier-only.js +0 -63
- package/dist/vendor/adapters/contracts/src/context-graph.d.ts +0 -48
- package/dist/vendor/adapters/contracts/src/context-graph.js +0 -26
- package/dist/vendor/adapters/contracts/src/execution-policy.d.ts +0 -78
- package/dist/vendor/adapters/contracts/src/execution-policy.js +0 -43
- package/dist/vendor/adapters/contracts/src/governance.d.ts +0 -24
- package/dist/vendor/adapters/contracts/src/governance.js +0 -11
- package/dist/vendor/adapters/contracts/src/identity.d.ts +0 -29
- package/dist/vendor/adapters/contracts/src/identity.js +0 -30
- package/dist/vendor/adapters/contracts/src/index.d.ts +0 -412
- package/dist/vendor/adapters/contracts/src/index.js +0 -225
- package/dist/vendor/adapters/contracts/src/operator.d.ts +0 -19
- package/dist/vendor/adapters/contracts/src/operator.js +0 -11
- package/dist/vendor/adapters/contracts/src/trajectory.d.ts +0 -26
- package/dist/vendor/adapters/contracts/src/trajectory.js +0 -27
- package/dist/vendor/adapters/core/src/compiler.d.ts +0 -52
- package/dist/vendor/adapters/core/src/compiler.js +0 -52
- package/dist/vendor/adapters/core/src/context-graph.d.ts +0 -3
- package/dist/vendor/adapters/core/src/context-graph.js +0 -371
- package/dist/vendor/adapters/core/src/context-integrity.d.ts +0 -26
- package/dist/vendor/adapters/core/src/context-integrity.js +0 -80
- package/dist/vendor/adapters/core/src/grounding.d.ts +0 -38
- package/dist/vendor/adapters/core/src/grounding.js +0 -273
- package/dist/vendor/adapters/core/src/identity.d.ts +0 -20
- package/dist/vendor/adapters/core/src/identity.js +0 -86
- package/dist/vendor/adapters/core/src/index.d.ts +0 -186
- package/dist/vendor/adapters/core/src/index.js +0 -1495
- package/dist/vendor/adapters/core/src/leash.d.ts +0 -48
- package/dist/vendor/adapters/core/src/leash.js +0 -497
- package/dist/vendor/adapters/core/src/persistence/compiler.d.ts +0 -18
- package/dist/vendor/adapters/core/src/persistence/compiler.js +0 -34
- package/dist/vendor/adapters/core/src/persistence/index.d.ts +0 -10
- package/dist/vendor/adapters/core/src/persistence/index.js +0 -5
- package/dist/vendor/adapters/core/src/persistence/integrity.d.ts +0 -39
- package/dist/vendor/adapters/core/src/persistence/integrity.js +0 -252
- package/dist/vendor/adapters/core/src/persistence/ledger.d.ts +0 -23
- package/dist/vendor/adapters/core/src/persistence/ledger.js +0 -9
- package/dist/vendor/adapters/core/src/persistence/memory-store.d.ts +0 -63
- package/dist/vendor/adapters/core/src/persistence/memory-store.js +0 -115
- package/dist/vendor/adapters/core/src/persistence/runs-reader.d.ts +0 -66
- package/dist/vendor/adapters/core/src/persistence/runs-reader.js +0 -140
- package/dist/vendor/adapters/core/src/persistence/store.d.ts +0 -89
- package/dist/vendor/adapters/core/src/persistence/store.js +0 -125
- package/dist/vendor/adapters/core/src/persistence/trace-store.d.ts +0 -85
- package/dist/vendor/adapters/core/src/persistence/trace-store.js +0 -125
- package/dist/vendor/adapters/core/src/policy-compiler.d.ts +0 -2
- package/dist/vendor/adapters/core/src/policy-compiler.js +0 -195
- package/dist/vendor/adapters/core/src/policy.d.ts +0 -156
- package/dist/vendor/adapters/core/src/policy.js +0 -704
- package/dist/vendor/adapters/core/src/repo-analyzer.d.ts +0 -53
- package/dist/vendor/adapters/core/src/repo-analyzer.js +0 -263
- package/dist/vendor/adapters/core/src/rollback.d.ts +0 -15
- package/dist/vendor/adapters/core/src/rollback.js +0 -253
- package/dist/vendor/adapters/core/src/routing.d.ts +0 -82
- package/dist/vendor/adapters/core/src/routing.js +0 -336
- package/dist/vendor/adapters/core/src/test-integrity.d.ts +0 -64
- package/dist/vendor/adapters/core/src/test-integrity.js +0 -197
- package/dist/vendor/adapters/core/src/trajectory.d.ts +0 -18
- package/dist/vendor/adapters/core/src/trajectory.js +0 -295
- package/dist/vendor/adapters/stub-agent-cli.d.ts +0 -8
- package/dist/vendor/adapters/stub-agent-cli.js +0 -40
- package/dist/vendor/adapters/verifier-only.d.ts +0 -9
- 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
|
-
}
|