@coderifts/agent-guard 1.1.0 → 1.2.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 (52) hide show
  1. package/README.md +27 -2
  2. package/dist/cjs/artifact-resolver.d.ts +76 -0
  3. package/dist/cjs/artifact-resolver.d.ts.map +1 -0
  4. package/dist/cjs/artifact-resolver.js +413 -0
  5. package/dist/cjs/artifact-resolver.js.map +1 -0
  6. package/dist/cjs/guard.d.ts.map +1 -1
  7. package/dist/cjs/guard.js +31 -0
  8. package/dist/cjs/guard.js.map +1 -1
  9. package/dist/cjs/index.d.ts +5 -0
  10. package/dist/cjs/index.d.ts.map +1 -1
  11. package/dist/cjs/index.js +12 -1
  12. package/dist/cjs/index.js.map +1 -1
  13. package/dist/cjs/resolver-glob.d.ts +15 -0
  14. package/dist/cjs/resolver-glob.d.ts.map +1 -0
  15. package/dist/cjs/resolver-glob.js +65 -0
  16. package/dist/cjs/resolver-glob.js.map +1 -0
  17. package/dist/cjs/resolver-yaml.d.ts +20 -0
  18. package/dist/cjs/resolver-yaml.d.ts.map +1 -0
  19. package/dist/cjs/resolver-yaml.js +235 -0
  20. package/dist/cjs/resolver-yaml.js.map +1 -0
  21. package/dist/cjs/tool-registry.d.ts +88 -0
  22. package/dist/cjs/tool-registry.d.ts.map +1 -0
  23. package/dist/cjs/tool-registry.js +274 -0
  24. package/dist/cjs/tool-registry.js.map +1 -0
  25. package/dist/cjs/types.d.ts +2 -2
  26. package/dist/cjs/types.d.ts.map +1 -1
  27. package/dist/esm/artifact-resolver.d.ts +76 -0
  28. package/dist/esm/artifact-resolver.d.ts.map +1 -0
  29. package/dist/esm/artifact-resolver.js +410 -0
  30. package/dist/esm/artifact-resolver.js.map +1 -0
  31. package/dist/esm/guard.d.ts.map +1 -1
  32. package/dist/esm/guard.js +31 -0
  33. package/dist/esm/guard.js.map +1 -1
  34. package/dist/esm/index.d.ts +5 -0
  35. package/dist/esm/index.d.ts.map +1 -1
  36. package/dist/esm/index.js +6 -0
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/esm/resolver-glob.d.ts +15 -0
  39. package/dist/esm/resolver-glob.d.ts.map +1 -0
  40. package/dist/esm/resolver-glob.js +59 -0
  41. package/dist/esm/resolver-glob.js.map +1 -0
  42. package/dist/esm/resolver-yaml.d.ts +20 -0
  43. package/dist/esm/resolver-yaml.d.ts.map +1 -0
  44. package/dist/esm/resolver-yaml.js +229 -0
  45. package/dist/esm/resolver-yaml.js.map +1 -0
  46. package/dist/esm/tool-registry.d.ts +88 -0
  47. package/dist/esm/tool-registry.d.ts.map +1 -0
  48. package/dist/esm/tool-registry.js +269 -0
  49. package/dist/esm/tool-registry.js.map +1 -0
  50. package/dist/esm/types.d.ts +2 -2
  51. package/dist/esm/types.d.ts.map +1 -1
  52. package/package.json +1 -1
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * guardToolRegistry — the agent-runtime inescapability layer (guard-tool-registry-SPEC v1.0).
4
+ *
5
+ * The layer ABOVE the shipped `guardToolCall`: it takes the host's raw tool list and returns the ONLY
6
+ * tool table the agent is allowed to see — every mutating capability wrapped so it cannot execute
7
+ * without entering `guardToolCall`, and construction FAILS CLOSED if a mutator would remain raw.
8
+ *
9
+ * Scope honesty (enforcement-architecture §1): this secures **Placement A — the agent-host runtime
10
+ * tool boundary ONLY**. It NEVER claims merge (Placement B / sibling #7) or deploy inescapability;
11
+ * `claim.inescapable_merge` / `claim.inescapable_deploy` are ALWAYS false here.
12
+ *
13
+ * Determinism (§7): same tool names + classes + config flags → same registry, coverage, guarded set.
14
+ * Anti-fabrication: unknown tools default to MUTATING (never a false COMPLETE); never invent a tool.
15
+ * Non-leakage (§1.2): each raw `execute` is captured in a NEW closure, is never a property of the
16
+ * returned ProtectedTool, the tools array + each tool are frozen, and raw executors live only in a
17
+ * WeakMap keyed by the protected object. `result.tools` is the sole return surface.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.RegistryConstructionError = void 0;
21
+ exports.guardToolRegistry = guardToolRegistry;
22
+ const guard_js_1 = require("./guard.js");
23
+ /** Fail-closed construction error (§3) — thrown at CONSTRUCTION, never at first agent call. */
24
+ class RegistryConstructionError extends Error {
25
+ code;
26
+ toolName;
27
+ constructor(code, message, toolName) {
28
+ super(message);
29
+ this.name = 'RegistryConstructionError';
30
+ this.code = code;
31
+ this.toolName = toolName;
32
+ }
33
+ }
34
+ exports.RegistryConstructionError = RegistryConstructionError;
35
+ // ── §2.3 conservative name heuristics (case-insensitive substring; subclasses before generic) ─────
36
+ const MUTATING_GENERIC = ['write', 'edit', 'create', 'update', 'delete', 'remove', 'apply_patch', 'applypatch', 'str_replace', 'notebook_edit', 'multi_edit', 'insert'];
37
+ const MUTATING_SHELL = ['bash', 'shell', 'terminal', 'run_command', 'exec', 'powershell'];
38
+ const MUTATING_VCS = ['git_commit', 'git_push', 'git_merge', 'commit', 'push'];
39
+ const MUTATING_DEPLOY = ['deploy', 'kubectl_apply', 'helm_upgrade', 'release'];
40
+ const MUTATING_PUBLISH = ['npm_publish', 'publish_package', 'twine_upload', 'cargo_publish'];
41
+ const MUTATING_SCHEMA = ['register_tools', 'update_manifest', 'mcp_register'];
42
+ const READONLY = ['read', 'grep', 'glob', 'search', 'list', 'ls', 'cat', 'get', 'fetch', 'web_search', 'browser_navigate'];
43
+ const MUTATING_CLASSES = ['mutating', 'mutating_shell', 'mutating_vcs', 'mutating_deploy', 'mutating_publish', 'mutating_schema'];
44
+ function isMutatingClass(cls) {
45
+ return cls !== 'readonly';
46
+ }
47
+ function matchesAny(hay, patterns) {
48
+ return patterns.some((p) => hay.includes(p));
49
+ }
50
+ /**
51
+ * §2.3 heuristic class from the NAME (subclasses checked before the generic table; MUTATING WINS over
52
+ * a readonly substring). Returns null when nothing matches (→ unknownPolicy path §2.1 step 6).
53
+ */
54
+ function heuristicClass(name) {
55
+ const n = String(name || '').toLowerCase();
56
+ if (matchesAny(n, MUTATING_SHELL))
57
+ return 'mutating_shell';
58
+ if (matchesAny(n, MUTATING_VCS) || n.startsWith('git_'))
59
+ return 'mutating_vcs';
60
+ if (matchesAny(n, MUTATING_DEPLOY))
61
+ return 'mutating_deploy';
62
+ if (matchesAny(n, MUTATING_PUBLISH))
63
+ return 'mutating_publish';
64
+ if (matchesAny(n, MUTATING_SCHEMA))
65
+ return 'mutating_schema';
66
+ if (matchesAny(n, MUTATING_GENERIC))
67
+ return 'mutating'; // includes fetch_and_write → 'write' → mutating wins
68
+ if (matchesAny(n, READONLY))
69
+ return 'readonly';
70
+ return null;
71
+ }
72
+ /** §2.1 EXACT resolution order. Throws UNKNOWN_TOOL when unclassified under unknownToolPolicy 'reject'. */
73
+ function resolveClass(tool, config, unknownPolicy) {
74
+ const classify = config.classify || {};
75
+ if (Object.prototype.hasOwnProperty.call(classify, tool.name))
76
+ return { cls: classify[tool.name], source: 'classify' };
77
+ if (tool.mutationClass)
78
+ return { cls: tool.mutationClass, source: 'mutationClass' };
79
+ if (Array.isArray(config.forceReadonly) && config.forceReadonly.includes(tool.name))
80
+ return { cls: 'readonly', source: 'forceReadonly' };
81
+ const h = heuristicClass(tool.name);
82
+ if (h)
83
+ return { cls: h, source: 'heuristic' };
84
+ if (unknownPolicy === 'reject') {
85
+ throw new RegistryConstructionError('UNKNOWN_TOOL', `tool '${tool.name}' is unclassified and unknownToolPolicy='reject'`, tool.name);
86
+ }
87
+ return { cls: unknownPolicy === 'readonly' ? 'readonly' : 'mutating', source: 'unknown' };
88
+ }
89
+ /** §4 — guard operation bound per class (deploy MUST be 'deploy'; §106 T7 a merge receipt is insufficient). */
90
+ function operationForClass(cls, name, guardOperation) {
91
+ switch (cls) {
92
+ case 'mutating_shell': return 'tool_call';
93
+ case 'mutating_vcs': return /merge/i.test(name) ? 'merge' : 'tool_call';
94
+ case 'mutating_deploy': return 'deploy';
95
+ case 'mutating_publish': return 'publish';
96
+ case 'mutating_schema': return 'tool_call';
97
+ case 'mutating':
98
+ default: return guardOperation ?? 'tool_call';
99
+ }
100
+ }
101
+ function defaultBinder(tool, args) {
102
+ return { toolName: tool.name, arguments: args };
103
+ }
104
+ // raw executors kept OFF the protected object (§1.2 opaque handle).
105
+ const RAW_EXECUTORS = new WeakMap();
106
+ function freezeTool(t) {
107
+ Object.freeze(t._coderifts);
108
+ return Object.freeze(t);
109
+ }
110
+ /** readonly passthrough: exposed execute is a NEW closure over raw.execute; guarded=false; no preflight. */
111
+ function passthroughProtected(tool, cls) {
112
+ const rawExecute = tool.execute;
113
+ const protectedTool = {
114
+ name: tool.name,
115
+ description: tool.description,
116
+ inputSchema: tool.inputSchema,
117
+ meta: tool.meta,
118
+ execute: async (args) => rawExecute(args), // new function, not === rawExecute
119
+ _coderifts: { guarded: false, mutationClass: cls },
120
+ };
121
+ RAW_EXECUTORS.set(protectedTool, rawExecute);
122
+ return freezeTool(protectedTool);
123
+ }
124
+ /** §1.4 — mutator wrapped so EVERY invocation enters guardToolCall before raw.execute. guarded=true. */
125
+ function wrapWithGuard(tool, cls, config) {
126
+ const rawExecute = tool.execute;
127
+ const guardBase = config.guard;
128
+ const operation = operationForClass(cls, tool.name, guardBase.operation);
129
+ const guardCfg = { ...guardBase, operation };
130
+ const binder = (config.binders && config.binders[tool.name]) || ((t, a) => defaultBinder(t, a));
131
+ const protectedTool = {
132
+ name: tool.name,
133
+ description: tool.description,
134
+ inputSchema: tool.inputSchema,
135
+ meta: tool.meta,
136
+ execute: async (args) => {
137
+ const call = binder(tool, args, cls);
138
+ return (0, guard_js_1.guardToolCall)(call, async (_envelope, redacted) => rawExecute(redacted ? redacted.arguments : args), guardCfg);
139
+ },
140
+ _coderifts: { guarded: true, mutationClass: cls, operation },
141
+ };
142
+ RAW_EXECUTORS.set(protectedTool, rawExecute);
143
+ return freezeTool(protectedTool);
144
+ }
145
+ /**
146
+ * Construct the frozen, fail-closed protected tool registry (§1.3). Pure + deterministic.
147
+ * @throws {RegistryConstructionError} per §3 (default failOnUnguardedMutator=true).
148
+ */
149
+ function guardToolRegistry(rawTools, config = {}) {
150
+ const failHard = config.failOnUnguardedMutator !== false; // default true
151
+ const unknownPolicy = config.unknownToolPolicy ?? 'mutating';
152
+ const input = Array.isArray(rawTools) ? rawTools : [];
153
+ // §3 INVALID_TOOL — missing execute (not a function) or empty name.
154
+ for (const tool of input) {
155
+ if (!tool || typeof tool.name !== 'string' || tool.name.trim() === '') {
156
+ throw new RegistryConstructionError('INVALID_TOOL', 'a tool has a missing or empty name');
157
+ }
158
+ if (typeof tool.execute !== 'function') {
159
+ throw new RegistryConstructionError('INVALID_TOOL', `tool '${tool.name}' has no execute function`, tool.name);
160
+ }
161
+ }
162
+ // §3 DUPLICATE_TOOL_NAME.
163
+ const seen = new Set();
164
+ for (const tool of input) {
165
+ if (seen.has(tool.name)) {
166
+ throw new RegistryConstructionError('DUPLICATE_TOOL_NAME', `duplicate tool name '${tool.name}'`, tool.name);
167
+ }
168
+ seen.add(tool.name);
169
+ }
170
+ // determinism: sort by name ASC (§1.3).
171
+ const sorted = input.slice().sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
172
+ const guardedMutators = [];
173
+ const readonlyPassthrough = [];
174
+ const warnings = [];
175
+ const staged = [];
176
+ let anyForced = false;
177
+ let anyUnknownReadonly = false;
178
+ for (const tool of sorted) {
179
+ const { cls, source } = resolveClass(tool, config, unknownPolicy); // may throw UNKNOWN_TOOL
180
+ // §1.5 forced-readonly-on-mutator (break-glass): resolved readonly via an OVERRIDE while the NAME
181
+ // heuristic is a real mutator. Trusted self-declaration (tool.mutationClass) is NOT forced.
182
+ const forced = cls === 'readonly'
183
+ && (source === 'classify' || source === 'forceReadonly')
184
+ && isMutating(heuristicClass(tool.name));
185
+ if (forced) {
186
+ anyForced = true;
187
+ warnings.push(`force_readonly_on_mutator_heuristic:${tool.name}`);
188
+ }
189
+ if (source === 'unknown' && cls === 'readonly')
190
+ anyUnknownReadonly = true;
191
+ staged.push({ tool, cls, forced });
192
+ }
193
+ // §3 FORCE_READONLY_MUTATOR — break-glass open under default failHard ⇒ cannot claim inescapability.
194
+ if (anyForced && failHard) {
195
+ throw new RegistryConstructionError('FORCE_READONLY_MUTATOR', `forceReadonly/classify downgraded a heuristic mutator to readonly while failOnUnguardedMutator is true`);
196
+ }
197
+ // §3 GUARD_CONFIG_INVALID — a mutator will be wrapped but no valid guard.client to wrap it with.
198
+ const willWrap = staged.some((s) => isMutating(s.cls) && !s.forced);
199
+ const validGuard = !!(config.guard && config.guard.client);
200
+ if (willWrap && !validGuard) {
201
+ throw new RegistryConstructionError('GUARD_CONFIG_INVALID', 'a mutating tool is present but config.guard.client is missing/invalid');
202
+ }
203
+ // build protected tools.
204
+ const protectedTools = [];
205
+ for (const { tool, cls, forced } of staged) {
206
+ if (cls === 'readonly') {
207
+ readonlyPassthrough.push(tool.name);
208
+ protectedTools.push(passthroughProtected(tool, 'readonly'));
209
+ }
210
+ else {
211
+ guardedMutators.push(tool.name);
212
+ protectedTools.push(wrapWithGuard(tool, cls, config));
213
+ }
214
+ void forced;
215
+ }
216
+ // invariant (§1.3 / G1): no mutating-class protected tool without guarded===true.
217
+ for (const p of protectedTools) {
218
+ if (isMutatingClass(p._coderifts.mutationClass) && p._coderifts.guarded !== true) {
219
+ throw new RegistryConstructionError('GUARD_CONFIG_INVALID', `invariant violated: '${p.name}' is a mutator exposed without a guard`, p.name);
220
+ }
221
+ }
222
+ // §5.1 coverage verdict (mechanical). rawM is empty in this strict impl (every mutator is wrapped);
223
+ // BYPASSED comes only from `forced`; PARTIAL only from unknown→readonly.
224
+ const M = guardedMutators.length; // resolved-mutating count (all wrapped)
225
+ const G = guardedMutators.length;
226
+ let coverage;
227
+ if (anyForced) {
228
+ coverage = 'BYPASSED';
229
+ }
230
+ else if (unknownPolicy === 'readonly' && anyUnknownReadonly) {
231
+ coverage = 'PARTIAL';
232
+ }
233
+ else if (M === G) {
234
+ coverage = 'COMPLETE';
235
+ }
236
+ else {
237
+ coverage = 'PARTIAL';
238
+ }
239
+ if (unknownPolicy === 'readonly' && anyUnknownReadonly && !warnings.includes('unknown_treated_as_readonly')) {
240
+ warnings.push('unknown_treated_as_readonly');
241
+ }
242
+ const inescapableRuntime = coverage === 'COMPLETE' && failHard;
243
+ const report = {
244
+ version: 'guard-tool-registry-report/1.0',
245
+ coverage,
246
+ protected_tools: protectedTools.map((p) => p.name),
247
+ guarded_mutators: guardedMutators.slice(),
248
+ readonly_passthrough: readonlyPassthrough.slice(),
249
+ unguarded_mutators: [], // strict impl: always [] (COMPLETE ⇒ [] by G4; forced tools are readonly)
250
+ unknown_treated_as: unknownPolicy,
251
+ claim: {
252
+ inescapable_runtime: inescapableRuntime,
253
+ inescapable_merge: false,
254
+ inescapable_deploy: false,
255
+ },
256
+ siblings: {
257
+ merge_gate: 'required_separate_#7',
258
+ artifact_resolver: 'sibling_#4',
259
+ },
260
+ warnings,
261
+ };
262
+ Object.freeze(report.claim);
263
+ Object.freeze(report.siblings);
264
+ Object.freeze(report);
265
+ return {
266
+ tools: Object.freeze(protectedTools),
267
+ coverage,
268
+ report,
269
+ };
270
+ }
271
+ function isMutating(cls) {
272
+ return cls != null && cls !== 'readonly';
273
+ }
274
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tool-registry.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ export type UnavailableVerdict = {
142
142
  lkgEnvelope: ReceiptVerifiedEnvelope;
143
143
  });
144
144
  export type AvailabilityCause = 'TIMEOUT' | 'NETWORK' | 'SERVER_ERROR' | 'RATE_LIMITED';
145
- export type IntegrityCause = 'INVALID_RESPONSE' | 'UNSUPPORTED_VERSION' | 'SCHEMA_INVALID' | 'RECEIPT_UNVERIFIED' | 'DETECTOR_ERROR' | 'CONFIG_ERROR' | 'PAYLOAD_TOO_LARGE' | 'REQUEST_REJECTED' | 'RECEIPT_ENVELOPE_MISMATCH' | 'DECISION_INCONSISTENT' | 'ANALYSIS_DEGRADED' | 'ARTIFACT_MISMATCH' | 'RECEIPT_MISSING' | 'MONITORING_UNWIRED';
145
+ export type IntegrityCause = 'INVALID_RESPONSE' | 'UNSUPPORTED_VERSION' | 'SCHEMA_INVALID' | 'RECEIPT_UNVERIFIED' | 'DETECTOR_ERROR' | 'CONFIG_ERROR' | 'PAYLOAD_TOO_LARGE' | 'REQUEST_REJECTED' | 'RECEIPT_ENVELOPE_MISMATCH' | 'DECISION_INCONSISTENT' | 'ANALYSIS_DEGRADED' | 'ARTIFACT_MISMATCH' | 'RECEIPT_MISSING' | 'MONITORING_UNWIRED' | 'MISSING_ARTIFACT_CONTENT';
146
146
  export type UnavailableCause = AvailabilityCause | IntegrityCause;
147
147
  export interface TriggerDetector {
148
148
  version: string;
@@ -158,7 +158,7 @@ export interface LkgStore {
158
158
  put(env: DecisionResultEnvelope): Promise<void>;
159
159
  }
160
160
  export type GuardEvent = {
161
- type: 'preflight_start' | 'preflight_result' | 'preflight_unavailable' | 'detection_skip' | 'execution_started' | 'execution_skipped' | 'monitoring_required' | 'monitoring_unwired' | 'receipt_unverified' | 'breaker_tripped' | 'observe_only_passthrough' | 'factory_error';
161
+ type: 'preflight_start' | 'preflight_result' | 'preflight_unavailable' | 'detection_skip' | 'execution_started' | 'execution_skipped' | 'monitoring_required' | 'monitoring_unwired' | 'receipt_unverified' | 'breaker_tripped' | 'observe_only_passthrough' | 'factory_error' | 'artifact_content_missing';
162
162
  at: string;
163
163
  correlationId?: string;
164
164
  decisionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * artifactResolver — automatic base/head contract artifacts from a pure git snapshot (artifact-
3
+ * resolver-SPEC v1.0). The companion to MISSING_ARTIFACT_CONTENT: it answers "where do before/after
4
+ * come from?" by turning `git diff --name-only` + blob reads into `artifacts[] { id, type, before,
5
+ * after }` ready for preflight — OR honest `unresolved[]` entries. It NEVER decides, scores, or
6
+ * touches the fingerprint (§0.1); `report.claim.produces_verdict` is ALWAYS false.
7
+ *
8
+ * PURE + DETERMINISTIC (§0.3): git I/O is the host's job and enters as the `blobs` input; the same
9
+ * snapshot + changedFiles + config yields byte-identical artifacts/unresolved/coverage.
10
+ *
11
+ * Anti-fabrication (§4.2 / A1/A2): a missing $ref target, unreadable blob, or ambiguous SSOT becomes
12
+ * an `unresolved` entry with a code — NEVER an invented component, stub, or half-bundle.
13
+ */
14
+ export type ArtifactType = 'openapi' | 'graphql' | 'grpc' | 'asyncapi' | 'mcp_manifest';
15
+ export type ResolvedArtifact = {
16
+ id: string;
17
+ type: ArtifactType;
18
+ before: string;
19
+ after: string;
20
+ };
21
+ export type UnresolvedReason = 'unreadable_blob' | 'missing_ref_target' | 'ref_cycle' | 'ref_depth_exceeded' | 'ambiguous_ssot' | 'unsupported_encoding' | 'type_ambiguous' | 'empty_changed_contract' | 'config_ssot_missing' | 'external_ref_forbidden' | 'parse_error';
22
+ export type UnresolvedEntry = {
23
+ path: string;
24
+ reason: UnresolvedReason;
25
+ detail?: string;
26
+ related_paths?: string[];
27
+ };
28
+ export type ResolveCoverage = 'COMPLETE' | 'PARTIAL' | 'UNRESOLVED' | 'EMPTY';
29
+ export type BlobValue = string | null | {
30
+ error: UnresolvedReason;
31
+ detail?: string;
32
+ };
33
+ export type ResolveInput = {
34
+ repository?: string;
35
+ baseRef: string;
36
+ headRef: string;
37
+ changedFiles: string[];
38
+ /** Pure snapshot keyed `${ref}:${path}` → text | null (absent) | { error }. */
39
+ blobs: Record<string, BlobValue>;
40
+ };
41
+ export type ResolveConfig = {
42
+ maxRefDepth?: number;
43
+ followExternalRefs?: boolean;
44
+ ssotPrefer?: string[];
45
+ generatedGlobs?: string[];
46
+ pathTypeHints?: Record<string, ArtifactType>;
47
+ allowBinary?: boolean;
48
+ openApiAssembly?: 'bundle_inline' | 'root_only';
49
+ /** Matrix flags (§5.1 pairing / §5 strict SSOT). */
50
+ forceSameSurfaceGroup?: string[];
51
+ requireSsotIfConfigured?: boolean;
52
+ };
53
+ export type SsotSelection = {
54
+ chosen: string;
55
+ deferred: string[];
56
+ reason: 'ssotPrefer' | 'generated_deprioritized' | 'single';
57
+ };
58
+ export type ResolveResult = {
59
+ artifacts: ResolvedArtifact[];
60
+ unresolved: UnresolvedEntry[];
61
+ coverage: ResolveCoverage;
62
+ report: {
63
+ version: 'artifact-resolver-report/1.0';
64
+ baseRef: string;
65
+ headRef: string;
66
+ contract_paths_discovered: string[];
67
+ ignored_non_contract: string[];
68
+ ssot_selections: SsotSelection[];
69
+ claim: {
70
+ artifacts_ready_for_preflight: boolean;
71
+ produces_verdict: false;
72
+ };
73
+ };
74
+ };
75
+ export declare function resolve(input: ResolveInput, config?: ResolveConfig): ResolveResult;
76
+ //# sourceMappingURL=artifact-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-resolver.d.ts","sourceRoot":"","sources":["../../src/artifact-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,cAAc,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GAAG,oBAAoB,GAAG,WAAW,GAAG,oBAAoB,GAC7E,gBAAgB,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,wBAAwB,GACvF,qBAAqB,GAAG,wBAAwB,GAAG,aAAa,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;AAE9E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC;IAChD,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,YAAY,GAAG,yBAAyB,GAAG,QAAQ,CAAA;CAAE,CAAC;AAEhI,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE;QACN,OAAO,EAAE,8BAA8B,CAAC;QACxC,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,yBAAyB,EAAE,MAAM,EAAE,CAAC;QACpC,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,eAAe,EAAE,aAAa,EAAE,CAAC;QACjC,KAAK,EAAE;YAAE,6BAA6B,EAAE,OAAO,CAAC;YAAC,gBAAgB,EAAE,KAAK,CAAA;SAAE,CAAC;KAC5E,CAAC;CACH,CAAC;AA0PF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,GAAE,aAAkB,GAAG,aAAa,CAgGtF"}