@uppercut-labs/agent-native 0.0.0-stage → 1.1.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 (187) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -2
  3. package/agent/agent-prompt-short.md +1 -0
  4. package/agent/agent-prompt.md +26 -0
  5. package/bin/agent-native-site.mjs +269 -0
  6. package/bin/discover-routes.mjs +162 -0
  7. package/bin/verify-publication.mjs +317 -0
  8. package/dist/adapters/zod.d.ts +4 -0
  9. package/dist/adapters/zod.d.ts.map +1 -0
  10. package/dist/adapters/zod.js +20 -0
  11. package/dist/adapters/zod.js.map +1 -0
  12. package/dist/astro.d.ts +13 -0
  13. package/dist/astro.d.ts.map +1 -0
  14. package/dist/astro.js +41 -0
  15. package/dist/astro.js.map +1 -0
  16. package/dist/auth.d.ts +52 -0
  17. package/dist/auth.d.ts.map +1 -0
  18. package/dist/auth.js +128 -0
  19. package/dist/auth.js.map +1 -0
  20. package/dist/browser.d.ts +47 -0
  21. package/dist/browser.d.ts.map +1 -0
  22. package/dist/browser.js +219 -0
  23. package/dist/browser.js.map +1 -0
  24. package/dist/cli.d.ts +80 -0
  25. package/dist/cli.d.ts.map +1 -0
  26. package/dist/cli.js +484 -0
  27. package/dist/cli.js.map +1 -0
  28. package/dist/core/assert-never.d.ts +2 -0
  29. package/dist/core/assert-never.d.ts.map +1 -0
  30. package/dist/core/assert-never.js +5 -0
  31. package/dist/core/assert-never.js.map +1 -0
  32. package/dist/core/binding-internal.d.ts +10 -0
  33. package/dist/core/binding-internal.d.ts.map +1 -0
  34. package/dist/core/binding-internal.js +15 -0
  35. package/dist/core/binding-internal.js.map +1 -0
  36. package/dist/core/composition.d.ts +119 -0
  37. package/dist/core/composition.d.ts.map +1 -0
  38. package/dist/core/composition.js +545 -0
  39. package/dist/core/composition.js.map +1 -0
  40. package/dist/core/contracts.d.ts +55 -0
  41. package/dist/core/contracts.d.ts.map +1 -0
  42. package/dist/core/contracts.js +271 -0
  43. package/dist/core/contracts.js.map +1 -0
  44. package/dist/core/diagnostics.d.ts +14 -0
  45. package/dist/core/diagnostics.d.ts.map +1 -0
  46. package/dist/core/diagnostics.js +29 -0
  47. package/dist/core/diagnostics.js.map +1 -0
  48. package/dist/core/executor.d.ts +52 -0
  49. package/dist/core/executor.d.ts.map +1 -0
  50. package/dist/core/executor.js +98 -0
  51. package/dist/core/executor.js.map +1 -0
  52. package/dist/core/registry.d.ts +37 -0
  53. package/dist/core/registry.d.ts.map +1 -0
  54. package/dist/core/registry.js +75 -0
  55. package/dist/core/registry.js.map +1 -0
  56. package/dist/core/schema.d.ts +9 -0
  57. package/dist/core/schema.d.ts.map +1 -0
  58. package/dist/core/schema.js +36 -0
  59. package/dist/core/schema.js.map +1 -0
  60. package/dist/discovery.d.ts +16 -0
  61. package/dist/discovery.d.ts.map +1 -0
  62. package/dist/discovery.js +23 -0
  63. package/dist/discovery.js.map +1 -0
  64. package/dist/doctor.d.ts +200 -0
  65. package/dist/doctor.d.ts.map +1 -0
  66. package/dist/doctor.js +287 -0
  67. package/dist/doctor.js.map +1 -0
  68. package/dist/harness-codex.d.ts +17 -0
  69. package/dist/harness-codex.d.ts.map +1 -0
  70. package/dist/harness-codex.js +485 -0
  71. package/dist/harness-codex.js.map +1 -0
  72. package/dist/harness-mcp-bridge.d.ts +14 -0
  73. package/dist/harness-mcp-bridge.d.ts.map +1 -0
  74. package/dist/harness-mcp-bridge.js +159 -0
  75. package/dist/harness-mcp-bridge.js.map +1 -0
  76. package/dist/harness.d.ts +72 -0
  77. package/dist/harness.d.ts.map +1 -0
  78. package/dist/harness.js +101 -0
  79. package/dist/harness.js.map +1 -0
  80. package/dist/http.d.ts +20 -0
  81. package/dist/http.d.ts.map +1 -0
  82. package/dist/http.js +537 -0
  83. package/dist/http.js.map +1 -0
  84. package/dist/index.d.ts +16 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +8 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/init.d.ts +73 -0
  89. package/dist/init.d.ts.map +1 -0
  90. package/dist/init.js +1039 -0
  91. package/dist/init.js.map +1 -0
  92. package/dist/mcp-apps.d.ts +9 -0
  93. package/dist/mcp-apps.d.ts.map +1 -0
  94. package/dist/mcp-apps.js +171 -0
  95. package/dist/mcp-apps.js.map +1 -0
  96. package/dist/mcp-core.d.ts +64 -0
  97. package/dist/mcp-core.d.ts.map +1 -0
  98. package/dist/mcp-core.js +358 -0
  99. package/dist/mcp-core.js.map +1 -0
  100. package/dist/mcp.d.ts +3 -0
  101. package/dist/mcp.d.ts.map +1 -0
  102. package/dist/mcp.js +2 -0
  103. package/dist/mcp.js.map +1 -0
  104. package/dist/next-browser.d.ts +14 -0
  105. package/dist/next-browser.d.ts.map +1 -0
  106. package/dist/next-browser.js +14 -0
  107. package/dist/next-browser.js.map +1 -0
  108. package/dist/next.d.ts +24 -0
  109. package/dist/next.d.ts.map +1 -0
  110. package/dist/next.js +28 -0
  111. package/dist/next.js.map +1 -0
  112. package/dist/package-version.d.ts +2 -0
  113. package/dist/package-version.d.ts.map +1 -0
  114. package/dist/package-version.js +3 -0
  115. package/dist/package-version.js.map +1 -0
  116. package/dist/publication.d.ts +115 -0
  117. package/dist/publication.d.ts.map +1 -0
  118. package/dist/publication.js +441 -0
  119. package/dist/publication.js.map +1 -0
  120. package/dist/registry.d.ts +3 -0
  121. package/dist/registry.d.ts.map +1 -0
  122. package/dist/registry.js +2 -0
  123. package/dist/registry.js.map +1 -0
  124. package/docs/adopt-existing-site.md +189 -0
  125. package/docs/browser.md +70 -0
  126. package/docs/capabilities-and-bindings.md +141 -0
  127. package/docs/cli.md +88 -0
  128. package/docs/compatibility.md +32 -0
  129. package/docs/composition-and-versioning.md +113 -0
  130. package/docs/doctor-and-troubleshooting.md +58 -0
  131. package/docs/evidence/GHSA-ch52-4w7c-c8xp-2026-10-03.md +17 -0
  132. package/docs/evidence/GHSA-ch52-4w7c-c8xp-2026-10-10.md +30 -0
  133. package/docs/evidence/GHSA-ch52-4w7c-c8xp-2026-10-12.md +10 -0
  134. package/docs/evidence/UAN-002-house-style-review.md +29 -0
  135. package/docs/evidence/UAN-007-astro.md +43 -0
  136. package/docs/evidence/UAN-008-worker-sidecar.md +56 -0
  137. package/docs/evidence/UAN-009-init.md +43 -0
  138. package/docs/evidence/UAN-010-auth.md +17 -0
  139. package/docs/evidence/UAN-011-discovery.md +18 -0
  140. package/docs/evidence/UAN-012-mcp-apps.md +14 -0
  141. package/docs/evidence/UAN-013-astro-on-demand.md +47 -0
  142. package/docs/evidence/UAN-014-next.md +57 -0
  143. package/docs/evidence/UAN-015-node-hono.md +69 -0
  144. package/docs/evidence/UAN-016-composition.md +52 -0
  145. package/docs/evidence/UAN-017-version-migrations.md +50 -0
  146. package/docs/evidence/UAN-018-surface-overrides.md +30 -0
  147. package/docs/evidence/UAN-019-doctor.md +19 -0
  148. package/docs/evidence/UAN-020-negative-security-fixtures.md +61 -0
  149. package/docs/evidence/UAN-020-operational-failure-safety.md +49 -0
  150. package/docs/evidence/UAN-021-docs-coverage.md +30 -0
  151. package/docs/evidence/UAN-022-cross-platform-license-notices.md +39 -0
  152. package/docs/evidence/UAN-022-overhead-license-audit.md +233 -0
  153. package/docs/evidence/UAN-022-package-portability.md +54 -0
  154. package/docs/evidence/UAN-023-commercial-agent-hosts.md +36 -0
  155. package/docs/evidence/UAN-023-inspector-host-probe.md +37 -0
  156. package/docs/evidence/UAN-023-inspector-web-and-astro-adoption.md +44 -0
  157. package/docs/evidence/UAN-023-native-webmcp-chrome.md +44 -0
  158. package/docs/evidence/UAN-024-release-readiness-2026-10-10.md +33 -0
  159. package/docs/evidence/UAN-024-release-readiness.md +41 -0
  160. package/docs/evidence/codex-harness.md +56 -0
  161. package/docs/evidence/gate-2-domain-expansion.md +35 -0
  162. package/docs/evidence/recovery-and-selection-recipes-2026-10-15.md +63 -0
  163. package/docs/for-agents.md +50 -0
  164. package/docs/frameworks.md +62 -0
  165. package/docs/getting-started.md +109 -0
  166. package/docs/harness-codex.md +117 -0
  167. package/docs/harness-mcp-bridge.md +30 -0
  168. package/docs/http.md +80 -0
  169. package/docs/installation.md +95 -0
  170. package/docs/mcp-apps.md +57 -0
  171. package/docs/mcp.md +178 -0
  172. package/docs/next.md +73 -0
  173. package/docs/permissions-and-discovery.md +58 -0
  174. package/docs/programmatic-harness.md +88 -0
  175. package/docs/readability-frameworks.md +18 -0
  176. package/docs/reference.md +161 -0
  177. package/docs/release-handoff.md +41 -0
  178. package/docs/site-publication.md +85 -0
  179. package/docs/stability.md +53 -0
  180. package/docs/static-sites.md +141 -0
  181. package/docs/support-and-limitations.md +20 -0
  182. package/docs/surfaces.md +27 -0
  183. package/docs/upgrading-to-1.0.md +26 -0
  184. package/package.json +188 -4
  185. package/skill/agent-native/SKILL.md +54 -0
  186. package/skill/agent-native/references/adapter-decision.md +19 -0
  187. package/skill/agent-native/references/verification.md +25 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/core/composition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type SchemaPort } from './schema.js';
2
+ import { type DiagnosticObservation } from './diagnostics.js';
3
+ export type CapabilityIdentity = {
4
+ readonly namespace: string;
5
+ readonly name: string;
6
+ readonly majorVersion: number;
7
+ };
8
+ export type CapabilityRisk = 'read' | 'write' | 'destructive';
9
+ export type CapabilityAccessRule = {
10
+ readonly kind: 'public';
11
+ } | {
12
+ readonly kind: 'protected';
13
+ readonly scopes: readonly string[];
14
+ };
15
+ export type CapabilityHttpSurface = {
16
+ readonly path: string;
17
+ readonly method: 'GET' | 'POST';
18
+ /** Maps input property names to HTTP query parameter names for GET routes. */
19
+ readonly query?: Readonly<Record<string, string>>;
20
+ };
21
+ export type CapabilityCliSurface = {
22
+ readonly command: string;
23
+ readonly aliases?: readonly string[];
24
+ };
25
+ export type CapabilitySurfaceOverrides = {
26
+ readonly http?: CapabilityHttpSurface;
27
+ readonly cli?: CapabilityCliSurface;
28
+ };
29
+ export type CapabilityDefinition<Input, Output> = {
30
+ readonly identity: CapabilityIdentity;
31
+ readonly description: string;
32
+ readonly input: SchemaPort<Input>;
33
+ readonly output: SchemaPort<Output>;
34
+ readonly risk: CapabilityRisk;
35
+ readonly access: CapabilityAccessRule;
36
+ readonly surfaces?: CapabilitySurfaceOverrides;
37
+ };
38
+ export type CapabilityDefinitionOptions<Input, Output> = {
39
+ readonly identity: CapabilityIdentity;
40
+ readonly description: string;
41
+ readonly input: SchemaPort<Input>;
42
+ readonly output: SchemaPort<Output>;
43
+ readonly risk: CapabilityRisk;
44
+ readonly access: CapabilityAccessRule;
45
+ readonly surfaces?: CapabilitySurfaceOverrides;
46
+ };
47
+ export declare class CapabilityDefinitionError extends TypeError {
48
+ readonly observation: DiagnosticObservation;
49
+ constructor(message: string);
50
+ }
51
+ export declare function isCapabilityDefinition(value: unknown): value is CapabilityDefinition<unknown, unknown>;
52
+ export declare function isValidCapabilityIdentity(identity: CapabilityIdentity): boolean;
53
+ export declare function canonicalCapabilityId(identity: CapabilityIdentity): string;
54
+ export declare function defineCapability<Input, Output>(options: CapabilityDefinitionOptions<Input, Output>): CapabilityDefinition<Input, Output>;
55
+ //# sourceMappingURL=contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ import { cloneJsonValue } from './schema.js';
2
+ import { createDiagnosticObservation } from './diagnostics.js';
3
+ export class CapabilityDefinitionError extends TypeError {
4
+ observation;
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'CapabilityDefinitionError';
8
+ this.observation = createDiagnosticObservation({
9
+ checkId: 'UAN-002.invalid-schema',
10
+ status: 'failed',
11
+ });
12
+ }
13
+ }
14
+ const IDENTITY_SLUG_PATTERN = /^[a-z0-9]+(?:[.-][a-z0-9]+)*$/;
15
+ const CLI_COMMAND_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
16
+ const QUERY_PARAMETER_PATTERN = /^[A-Za-z0-9._~-]+$/;
17
+ function isRecord(value) {
18
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
19
+ }
20
+ function validateHttpPath(path) {
21
+ if (typeof path !== 'string' ||
22
+ !path.startsWith('/') ||
23
+ path === '/' ||
24
+ path.endsWith('/') ||
25
+ path.includes('?') ||
26
+ path.includes('#') ||
27
+ path.includes('\\') ||
28
+ path.includes('//') ||
29
+ path.split('/').some((part) => part === '.' || part === '..') ||
30
+ !path
31
+ .slice(1)
32
+ .split('/')
33
+ .every((segment) => Array.from(segment).every((character) => /[A-Za-z0-9._~-]/.test(character)))) {
34
+ throw new TypeError('surfaces.http.path must be an absolute URL path without a query, fragment, or traversal');
35
+ }
36
+ }
37
+ function validateSurfaces(surfaces, risk) {
38
+ if (surfaces === undefined)
39
+ return;
40
+ if (!isRecord(surfaces))
41
+ throw new TypeError('surfaces must be an object');
42
+ if (Object.keys(surfaces).some((key) => key !== 'http' && key !== 'cli')) {
43
+ throw new TypeError('surfaces contains an unsupported adapter override');
44
+ }
45
+ if (surfaces.http !== undefined) {
46
+ if (!isRecord(surfaces.http))
47
+ throw new TypeError('surfaces.http must be an object');
48
+ if (Object.keys(surfaces.http).some((key) => key !== 'path' && key !== 'method' && key !== 'query')) {
49
+ throw new TypeError('surfaces.http contains an unsupported option');
50
+ }
51
+ validateHttpPath(surfaces.http.path);
52
+ if (surfaces.http.method !== 'GET' && surfaces.http.method !== 'POST') {
53
+ throw new TypeError('surfaces.http.method must be GET or POST');
54
+ }
55
+ if (surfaces.http.method === 'GET' && risk !== 'read') {
56
+ throw new TypeError('GET HTTP surfaces are only valid for read capabilities');
57
+ }
58
+ if (surfaces.http.method === 'POST' && surfaces.http.query !== undefined) {
59
+ throw new TypeError('surfaces.http.query is only valid for GET surfaces');
60
+ }
61
+ if (surfaces.http.query !== undefined) {
62
+ if (!isRecord(surfaces.http.query)) {
63
+ throw new TypeError('surfaces.http.query must map input fields to query parameters');
64
+ }
65
+ let parameters = new Set();
66
+ for (const [field, parameter] of Object.entries(surfaces.http.query)) {
67
+ if (field.length === 0 ||
68
+ typeof parameter !== 'string' ||
69
+ !QUERY_PARAMETER_PATTERN.test(parameter)) {
70
+ throw new TypeError('surfaces.http.query must map fields to valid query parameter names');
71
+ }
72
+ if (parameters.has(parameter)) {
73
+ throw new TypeError(`surfaces.http.query contains duplicate parameter ${parameter}`);
74
+ }
75
+ parameters.add(parameter);
76
+ }
77
+ }
78
+ }
79
+ if (surfaces.cli !== undefined) {
80
+ if (!isRecord(surfaces.cli))
81
+ throw new TypeError('surfaces.cli must be an object');
82
+ if (Object.keys(surfaces.cli).some((key) => key !== 'command' && key !== 'aliases')) {
83
+ throw new TypeError('surfaces.cli contains an unsupported option');
84
+ }
85
+ if (!CLI_COMMAND_PATTERN.test(surfaces.cli.command)) {
86
+ throw new TypeError('surfaces.cli.command must be a lowercase command slug');
87
+ }
88
+ if (surfaces.cli.aliases !== undefined &&
89
+ (!Array.isArray(surfaces.cli.aliases) ||
90
+ surfaces.cli.aliases.some((alias) => typeof alias !== 'string' || !CLI_COMMAND_PATTERN.test(alias)))) {
91
+ throw new TypeError('surfaces.cli.aliases must contain lowercase command slugs');
92
+ }
93
+ const names = [surfaces.cli.command, ...(surfaces.cli.aliases ?? [])];
94
+ if (new Set(names).size !== names.length) {
95
+ throw new TypeError('surfaces.cli command and aliases must be unique');
96
+ }
97
+ }
98
+ }
99
+ function freezeSurfaces(surfaces) {
100
+ if (surfaces === undefined)
101
+ return undefined;
102
+ const http = surfaces.http === undefined
103
+ ? undefined
104
+ : Object.freeze({
105
+ path: surfaces.http.path,
106
+ method: surfaces.http.method,
107
+ ...(surfaces.http.query === undefined
108
+ ? {}
109
+ : { query: Object.freeze({ ...surfaces.http.query }) }),
110
+ });
111
+ const cli = surfaces.cli === undefined
112
+ ? undefined
113
+ : Object.freeze({
114
+ command: surfaces.cli.command,
115
+ ...(surfaces.cli.aliases === undefined
116
+ ? {}
117
+ : { aliases: Object.freeze([...surfaces.cli.aliases]) }),
118
+ });
119
+ return Object.freeze({
120
+ ...(http === undefined ? {} : { http }),
121
+ ...(cli === undefined ? {} : { cli }),
122
+ });
123
+ }
124
+ export function isCapabilityDefinition(value) {
125
+ if (!isRecord(value) || !isRecord(value['identity']) || !isRecord(value['access'])) {
126
+ return false;
127
+ }
128
+ const identity = value['identity'];
129
+ if (typeof identity['namespace'] !== 'string' ||
130
+ typeof identity['name'] !== 'string' ||
131
+ typeof identity['majorVersion'] !== 'number' ||
132
+ !isValidCapabilityIdentity({
133
+ namespace: identity['namespace'],
134
+ name: identity['name'],
135
+ majorVersion: identity['majorVersion'],
136
+ }) ||
137
+ typeof value['description'] !== 'string' ||
138
+ value['description'].trim().length === 0 ||
139
+ (value['risk'] !== 'read' && value['risk'] !== 'write' && value['risk'] !== 'destructive')) {
140
+ return false;
141
+ }
142
+ try {
143
+ validateSurfaces(value['surfaces'], value['risk']);
144
+ }
145
+ catch {
146
+ return false;
147
+ }
148
+ const access = value['access'];
149
+ if (access['kind'] === 'public') {
150
+ if (value['risk'] !== 'read' || Object.keys(access).length !== 1) {
151
+ return false;
152
+ }
153
+ }
154
+ else if (access['kind'] !== 'protected' ||
155
+ !Array.isArray(access['scopes']) ||
156
+ access['scopes'].length === 0 ||
157
+ access['scopes'].some((scope) => typeof scope !== 'string' || !/^[a-z][a-z0-9:._-]{0,63}$/.test(scope))) {
158
+ return false;
159
+ }
160
+ if (!isRecord(value['input']) ||
161
+ typeof value['input']['parse'] !== 'function' ||
162
+ typeof value['input']['toJSONSchema'] !== 'function' ||
163
+ !isRecord(value['output']) ||
164
+ typeof value['output']['parse'] !== 'function' ||
165
+ typeof value['output']['toJSONSchema'] !== 'function') {
166
+ return false;
167
+ }
168
+ try {
169
+ const inputSchema = value['input']['toJSONSchema']();
170
+ const outputSchema = value['output']['toJSONSchema']();
171
+ return (isRecord(inputSchema) &&
172
+ isRecord(outputSchema) &&
173
+ isRecord(cloneJsonValue(inputSchema, 'input schema')) &&
174
+ isRecord(cloneJsonValue(outputSchema, 'output schema')));
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ }
180
+ export function isValidCapabilityIdentity(identity) {
181
+ return (IDENTITY_SLUG_PATTERN.test(identity.namespace) &&
182
+ IDENTITY_SLUG_PATTERN.test(identity.name) &&
183
+ identity.namespace.length <= 64 &&
184
+ identity.name.length <= 64 &&
185
+ Number.isSafeInteger(identity.majorVersion) &&
186
+ identity.majorVersion >= 1);
187
+ }
188
+ export function canonicalCapabilityId(identity) {
189
+ if (!isValidCapabilityIdentity(identity)) {
190
+ throw new TypeError('identity must use lowercase capability slugs and a positive major version');
191
+ }
192
+ return `${identity.namespace}:${identity.name}@${identity.majorVersion}`;
193
+ }
194
+ function assertNonEmpty(value, field) {
195
+ if (value.trim().length === 0) {
196
+ throw new TypeError(`${field} must be a non-empty string`);
197
+ }
198
+ }
199
+ export function defineCapability(options) {
200
+ if (!IDENTITY_SLUG_PATTERN.test(options.identity.namespace) ||
201
+ !IDENTITY_SLUG_PATTERN.test(options.identity.name) ||
202
+ options.identity.namespace.length > 64 ||
203
+ options.identity.name.length > 64) {
204
+ throw new TypeError('identity must use lowercase capability slugs and a positive major version');
205
+ }
206
+ if (!Number.isSafeInteger(options.identity.majorVersion) || options.identity.majorVersion < 1) {
207
+ throw new RangeError('identity.majorVersion must be a positive safe integer');
208
+ }
209
+ assertNonEmpty(options.description, 'description');
210
+ if (options.risk !== 'read' && options.risk !== 'write' && options.risk !== 'destructive') {
211
+ throw new TypeError('risk must be read, write, or destructive');
212
+ }
213
+ if (typeof options.access !== 'object' || options.access === null) {
214
+ throw new TypeError('access metadata must be explicit');
215
+ }
216
+ if (options.access.kind === 'public' && options.risk !== 'read') {
217
+ throw new TypeError('public access is only valid for read capabilities');
218
+ }
219
+ if (options.access.kind === 'protected') {
220
+ if (options.access.scopes.length === 0 ||
221
+ options.access.scopes.some((scope) => !/^[a-z][a-z0-9:._-]{0,63}$/.test(scope))) {
222
+ throw new TypeError('protected access requires one or more valid scopes');
223
+ }
224
+ }
225
+ else if (options.access.kind !== 'public') {
226
+ throw new TypeError('access.kind must be public or protected');
227
+ }
228
+ validateSurfaces(options.surfaces, options.risk);
229
+ if (typeof options.input?.parse !== 'function' ||
230
+ typeof options.input.toJSONSchema !== 'function' ||
231
+ typeof options.output?.parse !== 'function' ||
232
+ typeof options.output.toJSONSchema !== 'function') {
233
+ throw new CapabilityDefinitionError('input and output must be valid schema ports');
234
+ }
235
+ for (const [label, schema] of [
236
+ ['input', options.input],
237
+ ['output', options.output],
238
+ ]) {
239
+ let jsonSchema;
240
+ try {
241
+ jsonSchema = schema.toJSONSchema();
242
+ }
243
+ catch {
244
+ throw new CapabilityDefinitionError(`${label} schema cannot be represented as JSON Schema`);
245
+ }
246
+ if (typeof jsonSchema !== 'object' || jsonSchema === null || Array.isArray(jsonSchema)) {
247
+ throw new CapabilityDefinitionError(`${label} schema must export a JSON Schema object`);
248
+ }
249
+ try {
250
+ cloneJsonValue(jsonSchema, `${label} schema`);
251
+ }
252
+ catch {
253
+ throw new CapabilityDefinitionError(`${label} schema must contain only JSON values`);
254
+ }
255
+ }
256
+ const identity = Object.freeze({ ...options.identity });
257
+ const access = options.access.kind === 'public'
258
+ ? Object.freeze({ kind: 'public' })
259
+ : Object.freeze({ kind: 'protected', scopes: Object.freeze([...options.access.scopes]) });
260
+ const surfaces = freezeSurfaces(options.surfaces);
261
+ return Object.freeze({
262
+ identity,
263
+ description: options.description.trim(),
264
+ input: options.input,
265
+ output: options.output,
266
+ risk: options.risk,
267
+ access,
268
+ ...(surfaces === undefined ? {} : { surfaces }),
269
+ });
270
+ }
271
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type DiagnosticStatus = 'passed' | 'failed' | 'unknown';
2
+ export type DiagnosticObservation = {
3
+ readonly checkId: string;
4
+ readonly status: DiagnosticStatus;
5
+ readonly evidenceRefs: readonly string[];
6
+ };
7
+ export type DiagnosticObservationOptions = {
8
+ readonly checkId: string;
9
+ readonly status: DiagnosticStatus;
10
+ readonly evidenceRefs?: readonly string[];
11
+ };
12
+ export declare const DIAGNOSTIC_OBSERVATION_JSON_SCHEMA: Readonly<Record<string, unknown>>;
13
+ export declare function createDiagnosticObservation(options: DiagnosticObservationOptions): DiagnosticObservation;
14
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa/E,CAAC;AAEH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAevB"}
@@ -0,0 +1,29 @@
1
+ export const DIAGNOSTIC_OBSERVATION_JSON_SCHEMA = Object.freeze({
2
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
3
+ type: 'object',
4
+ properties: {
5
+ checkId: { type: 'string', pattern: '^UAN-[0-9]{3}\\.[a-z0-9-]+$' },
6
+ status: { type: 'string', enum: ['passed', 'failed', 'unknown'] },
7
+ evidenceRefs: {
8
+ type: 'array',
9
+ items: { type: 'string', pattern: '^[A-Z][A-Z0-9._-]*$' },
10
+ },
11
+ },
12
+ required: ['checkId', 'status', 'evidenceRefs'],
13
+ additionalProperties: false,
14
+ });
15
+ export function createDiagnosticObservation(options) {
16
+ if (!/^UAN-[0-9]{3}\.[a-z0-9-]+$/.test(options.checkId)) {
17
+ throw new TypeError('checkId must use the stable UAN-NNN.check-name format');
18
+ }
19
+ const evidenceRefs = Object.freeze([...(options.evidenceRefs ?? [])]);
20
+ if (evidenceRefs.some((reference) => !/^[A-Z][A-Z0-9._-]*$/.test(reference))) {
21
+ throw new TypeError('evidenceRefs must use stable opaque identifiers');
22
+ }
23
+ return Object.freeze({
24
+ checkId: options.checkId,
25
+ status: options.status,
26
+ evidenceRefs,
27
+ });
28
+ }
29
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/core/diagnostics.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,kCAAkC,GAAsC,MAAM,CAAC,MAAM,CAAC;IACjG,OAAO,EAAE,8CAA8C;IACvD,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAA6B,EAAE;QACnE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;QACjE,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE;SAC1D;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC/C,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CAAC;AAEH,MAAM,UAAU,2BAA2B,CACzC,OAAqC;IAErC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,YAAY,GAAsB,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,SAAiB,EAAW,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { CapabilityAccessRule, CapabilityIdentity, CapabilityRisk } from './contracts.js';
2
+ import type { CapabilityRegistry, ExecutionSignal, RuntimeTarget } from './registry.js';
3
+ import { type DiagnosticObservation } from './diagnostics.js';
4
+ /** Verified identity fields an adapter attaches to an authenticated caller, for bindings that scope data. */
5
+ export type ExecutionCallerIdentity = {
6
+ readonly issuer: string;
7
+ readonly subject: string;
8
+ readonly tenantId: string;
9
+ readonly clientId: string;
10
+ };
11
+ export type ExecutionCaller = {
12
+ readonly kind: 'anonymous';
13
+ } | {
14
+ readonly kind: 'authenticated';
15
+ readonly subject: string;
16
+ readonly scopes: readonly string[];
17
+ readonly identity?: ExecutionCallerIdentity;
18
+ };
19
+ export type AuthorizationRequest = {
20
+ readonly identity: CapabilityIdentity;
21
+ readonly risk: CapabilityRisk;
22
+ readonly access: CapabilityAccessRule;
23
+ readonly caller: ExecutionCaller;
24
+ readonly input: unknown;
25
+ };
26
+ export interface AuthorizationPort {
27
+ authorize(request: AuthorizationRequest): boolean | Promise<boolean>;
28
+ }
29
+ export type ExecuteCapabilityRequest = {
30
+ readonly identity: CapabilityIdentity;
31
+ readonly runtime: RuntimeTarget;
32
+ readonly input: unknown;
33
+ readonly caller: ExecutionCaller;
34
+ readonly authorization: AuthorizationPort;
35
+ readonly bindingId?: string;
36
+ readonly signal?: ExecutionSignal;
37
+ };
38
+ export type ExecutionFailureKind = 'invalid-identity' | 'capability-missing' | 'binding-unavailable' | 'binding-ambiguous' | 'invalid-input' | 'unauthorized' | 'authorization-error' | 'invalid-output' | 'handler-failed' | 'deadline-exceeded';
39
+ export type ExecutionFailure = {
40
+ readonly kind: 'failure';
41
+ readonly reason: ExecutionFailureKind;
42
+ readonly observation: DiagnosticObservation;
43
+ };
44
+ export type ExecutionSuccess = {
45
+ readonly kind: 'success';
46
+ readonly capabilityId: string;
47
+ readonly bindingId: string;
48
+ readonly value: unknown;
49
+ };
50
+ export type ExecutionResult = ExecutionSuccess | ExecutionFailure;
51
+ export declare function executeCapability(registry: CapabilityRegistry, request: ExecuteCapabilityRequest): Promise<ExecutionResult>;
52
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,kBAAkB,EAClB,cAAc,EACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAEV,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAA+B,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE3F,6GAA6G;AAC7G,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC7C,CAAC;AAEN,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,eAAe,GACf,cAAc,GACd,qBAAqB,GACrB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,CAAC;AAExB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AA2BlE,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,eAAe,CAAC,CAuF1B"}
@@ -0,0 +1,98 @@
1
+ import { canonicalCapabilityId, isValidCapabilityIdentity } from './contracts.js';
2
+ import { invokeBindingHandler } from './binding-internal.js';
3
+ import { createDiagnosticObservation } from './diagnostics.js';
4
+ function failure(reason, suffix) {
5
+ return Object.freeze({
6
+ kind: 'failure',
7
+ reason,
8
+ observation: createDiagnosticObservation({
9
+ checkId: `UAN-002.${suffix}`,
10
+ status: 'failed',
11
+ }),
12
+ });
13
+ }
14
+ function isAborted(signal) {
15
+ return signal?.aborted === true;
16
+ }
17
+ function findDefinition(registry, capabilityId) {
18
+ return registry.definitions.find((definition) => canonicalCapabilityId(definition.identity) === capabilityId);
19
+ }
20
+ export async function executeCapability(registry, request) {
21
+ if (!isValidCapabilityIdentity(request.identity)) {
22
+ return failure('invalid-identity', 'invalid-identity');
23
+ }
24
+ const capabilityId = canonicalCapabilityId(request.identity);
25
+ const definition = findDefinition(registry, capabilityId);
26
+ if (definition === undefined) {
27
+ return failure('capability-missing', 'capability-missing');
28
+ }
29
+ const availableBindings = registry.bindings.filter((binding) => binding.capabilityId === capabilityId && binding.targets.includes(request.runtime));
30
+ const selectedBindings = request.bindingId === undefined
31
+ ? availableBindings
32
+ : availableBindings.filter((binding) => binding.id === request.bindingId);
33
+ if (selectedBindings.length === 0) {
34
+ return failure('binding-unavailable', 'binding-unavailable');
35
+ }
36
+ if (selectedBindings.length > 1) {
37
+ return failure('binding-ambiguous', 'binding-ambiguous');
38
+ }
39
+ const binding = selectedBindings[0];
40
+ if (binding === undefined) {
41
+ return failure('binding-unavailable', 'binding-unavailable');
42
+ }
43
+ let parsedInput;
44
+ try {
45
+ parsedInput = definition.input.parse(request.input);
46
+ }
47
+ catch {
48
+ return failure('invalid-input', 'invalid-input');
49
+ }
50
+ let authorized;
51
+ try {
52
+ authorized = await request.authorization.authorize({
53
+ identity: definition.identity,
54
+ risk: definition.risk,
55
+ access: definition.access,
56
+ caller: request.caller,
57
+ input: parsedInput,
58
+ });
59
+ }
60
+ catch {
61
+ return failure('authorization-error', 'authorization-error');
62
+ }
63
+ if (!authorized) {
64
+ return failure('unauthorized', 'unauthorized');
65
+ }
66
+ if (isAborted(request.signal)) {
67
+ return failure('deadline-exceeded', 'deadline-exceeded');
68
+ }
69
+ let rawOutput;
70
+ try {
71
+ rawOutput = await invokeBindingHandler(binding, parsedInput, {
72
+ capabilityId,
73
+ runtime: request.runtime,
74
+ caller: request.caller,
75
+ ...(request.signal === undefined ? {} : { signal: request.signal }),
76
+ });
77
+ }
78
+ catch {
79
+ return failure('handler-failed', 'handler-failed');
80
+ }
81
+ if (isAborted(request.signal)) {
82
+ return failure('deadline-exceeded', 'deadline-exceeded');
83
+ }
84
+ let output;
85
+ try {
86
+ output = definition.output.parse(rawOutput);
87
+ }
88
+ catch {
89
+ return failure('invalid-output', 'invalid-output');
90
+ }
91
+ return Object.freeze({
92
+ kind: 'success',
93
+ capabilityId,
94
+ bindingId: binding.id,
95
+ value: output,
96
+ });
97
+ }
98
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/core/executor.ts"],"names":[],"mappings":"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"}