@the-open-engine/zeroshot 6.32.1 → 6.33.1

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 (36) hide show
  1. package/lib/agent-cli-provider/adapters/codex.d.ts.map +1 -1
  2. package/lib/agent-cli-provider/adapters/codex.js +6 -4
  3. package/lib/agent-cli-provider/adapters/codex.js.map +1 -1
  4. package/lib/detached-startup.js +4 -0
  5. package/lib/hosted-target/adapter-request.cjs +6 -3
  6. package/lib/hosted-target/adapter-request.mjs +6 -3
  7. package/lib/target/discovery-sections.cjs +35 -13
  8. package/lib/target/discovery-sections.d.cts +5 -1
  9. package/lib/target/discovery-sections.d.mts +5 -1
  10. package/lib/target/discovery-sections.d.ts +5 -1
  11. package/lib/target/discovery-sections.js +35 -13
  12. package/lib/target/discovery-sections.mjs +35 -13
  13. package/lib/target/discovery.cjs +49 -38
  14. package/lib/target/discovery.d.cts +3 -0
  15. package/lib/target/discovery.d.mts +3 -0
  16. package/lib/target/discovery.d.ts +3 -0
  17. package/lib/target/discovery.js +49 -38
  18. package/lib/target/discovery.mjs +49 -38
  19. package/lib/target/index.d.ts +1 -1
  20. package/lib/target/run-intent-discovery.cjs +30 -0
  21. package/lib/target/run-intent-discovery.d.cts +11 -0
  22. package/lib/target/run-intent-discovery.d.mts +11 -0
  23. package/lib/target/run-intent-discovery.d.ts +11 -0
  24. package/lib/target/run-intent-discovery.js +30 -0
  25. package/lib/target/run-intent-discovery.mjs +27 -0
  26. package/npm-shrinkwrap.json +2 -2
  27. package/package.json +2 -3
  28. package/src/agent/agent-config.js +3 -5
  29. package/src/agent-cli-provider/adapters/codex.ts +7 -4
  30. package/src/hosted-target/adapter-request.ts +8 -3
  31. package/src/isolation-manager.js +52 -0
  32. package/src/orchestrator.js +6 -0
  33. package/src/target/discovery-sections.ts +59 -41
  34. package/src/target/discovery.ts +71 -54
  35. package/src/target/index.ts +1 -0
  36. package/src/target/run-intent-discovery.ts +39 -0
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,+BAA+B,EAGrC,MAAM,UAAU,CAAC;AA+SlB,eAAO,MAAM,YAAY,EAAE,+BAoB1B,CAAC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"AAGA,OAAO,EASL,KAAK,+BAA+B,EAGrC,MAAM,UAAU,CAAC;AAkTlB,eAAO,MAAM,YAAY,EAAE,+BAoB1B,CAAC"}
@@ -29,18 +29,19 @@ function detectCliFeatures(helpText, versionText) {
29
29
  const help = helpText ?? '';
30
30
  const unknown = !help;
31
31
  const supportsConfigOverride = supports(help, /--config\b/);
32
+ const supportsSandbox = !unknown && /--sandbox\b/.test(help);
32
33
  return {
33
34
  provider: 'codex',
34
35
  supportsJson: supports(help, /--json\b/),
35
36
  supportsOutputSchema: supports(help, /--output-schema\b/),
36
- supportsAutoApprove: supports(help, /--dangerously-bypass-approvals-and-sandbox\b/),
37
+ supportsAutoApprove: !unknown && supportsConfigOverride && supportsSandbox,
37
38
  supportsCwd: supports(help, /\s-C\b/) || supports(help, /--cwd\b/),
38
39
  supportsConfigOverride,
39
40
  supportsModel: supports(help, /\s-m\b/) || supports(help, /--model\b/),
40
41
  supportsSkipGitRepoCheck: supports(help, /--skip-git-repo-check\b/),
41
42
  supportsResume: supports(help, /\bresume\b/),
42
43
  supportsWebSearch: !unknown && supportsConfigOverride && (0, common_1.isCliVersionAtLeast)(versionText, '0.146.0'),
43
- supportsSandbox: !unknown && /--sandbox\b/.test(help),
44
+ supportsSandbox,
44
45
  supportsEphemeral: !unknown && /--ephemeral\b/.test(help),
45
46
  supportsIgnoreUserConfig: !unknown && /--ignore-user-config\b/.test(help),
46
47
  supportsIgnoreRules: !unknown && /--ignore-rules\b/.test(help),
@@ -80,7 +81,8 @@ function addCwdArgs(args, options) {
80
81
  function addAutoApproveArgs(args, options) {
81
82
  const features = (0, common_1.optionFeatures)(options);
82
83
  if (options.autoApprove && features.supportsAutoApprove) {
83
- args.push('--dangerously-bypass-approvals-and-sandbox');
84
+ const sandboxMode = options.executionContext === 'docker' ? 'danger-full-access' : 'workspace-write';
85
+ args.push('--sandbox', sandboxMode, '--config', 'approval_policy="never"');
84
86
  }
85
87
  }
86
88
  function addSkipGitArgs(args, options) {
@@ -109,7 +111,7 @@ function collectWarnings(options) {
109
111
  warnings.push((0, common_1.warning)('codex', 'codex-session-resume-unsupported', 'Codex CLI does not support exec resume; starting a fresh session.'));
110
112
  }
111
113
  if (options.autoApprove && features.supportsAutoApprove === false) {
112
- warnings.push((0, common_1.warning)('codex', 'codex-auto-approve', 'Codex CLI does not support auto-approve; continuing without bypass flag.'));
114
+ warnings.push((0, common_1.warning)('codex', 'codex-auto-approve', 'Codex CLI does not support unattended workspace-write mode; continuing without it.'));
113
115
  }
114
116
  if (options.jsonSchema && features.supportsOutputSchema === false) {
115
117
  warnings.push((0, common_1.warning)('codex', 'codex-jsonschema', 'Codex CLI does not support --output-schema; skipping schema flag.'));
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/agent-cli-provider/adapters/codex.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ const path = require('path');
4
4
  const lockfile = require('proper-lockfile');
5
5
  const { resolveRunPlan } = require('./run-plan');
6
6
  const { isProcessRunning } = require('./process-liveness');
7
+ const IsolationManager = require('../src/isolation-manager');
7
8
 
8
9
  const DEFAULT_WAIT_TIMEOUT_SECONDS = 180;
9
10
  const DEFAULT_WAIT_POLL_MS = 1000;
@@ -111,6 +112,8 @@ async function registerDetachedSetupCluster({
111
112
  cwd,
112
113
  }) {
113
114
  const plan = resolveRunPlan(runOptions);
115
+ const setupResources =
116
+ plan.isolation === 'docker' ? IsolationManager.getDetachedSetupResources(clusterId) : null;
114
117
  await updateClustersFile(storageDir, (clusters) => {
115
118
  clusters[clusterId] = {
116
119
  id: clusterId,
@@ -136,6 +139,7 @@ async function registerDetachedSetupCluster({
136
139
  isolation: null,
137
140
  agentStates: [],
138
141
  failureInfo: null,
142
+ setupResources,
139
143
  provisional: true,
140
144
  };
141
145
  return clusters;
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.requestUrl = requestUrl;
4
4
  const errors_js_1 = require("./errors.cjs");
5
5
  function requestUrl(path, descriptor) {
6
- const url = new globalThis.URL(path, descriptor.capsule.baseUrl);
7
- if (url.origin !== descriptor.origin || url.hash ||
8
- `${url.pathname}${url.search}` !== path) {
6
+ const baseUrl = new globalThis.URL(descriptor.capsule.baseUrl);
7
+ const requestPath = `${baseUrl.pathname.replace(/\/$/, '')}${path}`;
8
+ const url = new globalThis.URL(requestPath, baseUrl.origin);
9
+ if (url.origin !== descriptor.origin ||
10
+ url.hash ||
11
+ `${url.pathname}${url.search}` !== requestPath) {
9
12
  throw new errors_js_1.TargetProtocolError('Capsule route changed during URL canonicalization');
10
13
  }
11
14
  return url;
@@ -1,8 +1,11 @@
1
1
  import { TargetProtocolError } from './errors.mjs';
2
2
  export function requestUrl(path, descriptor) {
3
- const url = new globalThis.URL(path, descriptor.capsule.baseUrl);
4
- if (url.origin !== descriptor.origin || url.hash ||
5
- `${url.pathname}${url.search}` !== path) {
3
+ const baseUrl = new globalThis.URL(descriptor.capsule.baseUrl);
4
+ const requestPath = `${baseUrl.pathname.replace(/\/$/, '')}${path}`;
5
+ const url = new globalThis.URL(requestPath, baseUrl.origin);
6
+ if (url.origin !== descriptor.origin ||
7
+ url.hash ||
8
+ `${url.pathname}${url.search}` !== requestPath) {
6
9
  throw new TargetProtocolError('Capsule route changed during URL canonicalization');
7
10
  }
8
11
  return url;
@@ -12,6 +12,7 @@ exports.parseSession = parseSession;
12
12
  exports.parseTransport = parseTransport;
13
13
  const discovery_errors_js_1 = require("./discovery-errors.cjs");
14
14
  const discovery_validation_js_1 = require("./discovery-validation.cjs");
15
+ const run_intent_discovery_js_1 = require("./run-intent-discovery.cjs");
15
16
  const route_template_js_1 = require("./route-template.cjs");
16
17
  function parseAdapter(discovery) {
17
18
  const adapter = (0, discovery_validation_js_1.closedRecord)(discovery.adapter, 'adapter', ['name', 'major_version']);
@@ -27,14 +28,16 @@ function parseAdapter(discovery) {
27
28
  function validateCachePolicy(discovery) {
28
29
  const cache = (0, discovery_validation_js_1.closedRecord)(discovery.cache_policy, 'cache_policy', ['control', 'discovery']);
29
30
  (0, discovery_validation_js_1.exact)(cache.control, 'no-store', 'cache_policy.control');
30
- if (cache.discovery !== undefined && cache.discovery !== null &&
31
+ if (cache.discovery !== undefined &&
32
+ cache.discovery !== null &&
31
33
  typeof cache.discovery !== 'string') {
32
34
  throw new discovery_errors_js_1.TargetDiscoveryError('cache_policy.discovery must be a string or null');
33
35
  }
34
36
  }
35
37
  function parseSizes(discovery) {
36
38
  const sizes = (0, discovery_validation_js_1.closedRecord)(discovery.sizes, 'sizes', ['catalog', 'default']);
37
- if (!Array.isArray(sizes.catalog) || sizes.catalog.length === 0 ||
39
+ if (!Array.isArray(sizes.catalog) ||
40
+ sizes.catalog.length === 0 ||
38
41
  new Set(sizes.catalog).size !== sizes.catalog.length ||
39
42
  sizes.catalog.some((size) => !['tiny', 'small', 'standard', 'large'].includes(String(size)))) {
40
43
  throw new discovery_errors_js_1.TargetDiscoveryError('sizes.catalog contains an unsupported size');
@@ -48,26 +51,32 @@ function parseSizes(discovery) {
48
51
  });
49
52
  }
50
53
  function parseExtensions(discovery, origin) {
51
- if (discovery.extensions === undefined || discovery.extensions === null)
52
- return null;
54
+ if (discovery.extensions === undefined || discovery.extensions === null) {
55
+ return Object.freeze({ credentialInstall: null, runIntent: null });
56
+ }
53
57
  const extensions = (0, discovery_validation_js_1.closedRecord)(discovery.extensions, 'extensions', [
54
- 'connections', 'credential_install',
58
+ 'connections',
59
+ 'credential_install',
60
+ 'run_intent',
55
61
  ]);
56
62
  if (extensions.connections === undefined) {
57
63
  throw new discovery_errors_js_1.TargetDiscoveryError('extensions.connections is required');
58
64
  }
59
65
  const connections = (0, discovery_validation_js_1.closedRecord)(extensions.connections, 'extensions.connections', [
60
- 'kind', 'base_url', 'route_templates',
66
+ 'kind',
67
+ 'base_url',
68
+ 'route_templates',
61
69
  ]);
62
70
  (0, discovery_validation_js_1.exact)(connections.kind, 'zerocloud.connections/v1', 'extensions.connections.kind');
63
71
  (0, discovery_validation_js_1.sameOriginUrl)(connections.base_url, 'extensions.connections.base_url', origin);
64
- const routes = (0, discovery_validation_js_1.closedRecord)(connections.route_templates, 'extensions.connections.route_templates', [
65
- 'list', 'create', 'update',
66
- ]);
72
+ const routes = (0, discovery_validation_js_1.closedRecord)(connections.route_templates, 'extensions.connections.route_templates', ['list', 'create', 'update']);
67
73
  (0, route_template_js_1.routeTemplate)(routes.list, 'extensions.connections.route_templates.list', []);
68
74
  (0, route_template_js_1.routeTemplate)(routes.create, 'extensions.connections.route_templates.create', []);
69
75
  (0, route_template_js_1.routeTemplate)(routes.update, 'extensions.connections.route_templates.update', ['connection_id']);
70
- return (0, discovery_validation_js_1.parseCredentialInstall)(extensions.credential_install);
76
+ return Object.freeze({
77
+ credentialInstall: (0, discovery_validation_js_1.parseCredentialInstall)(extensions.credential_install),
78
+ runIntent: (0, run_intent_discovery_js_1.parseRunIntent)(extensions.run_intent, origin),
79
+ });
71
80
  }
72
81
  function validateOAuthMetadata(metadata, origin, expected) {
73
82
  const device = (0, discovery_validation_js_1.sameOriginUrl)(metadata.device_authorization_endpoint, 'OAuth metadata device_authorization_endpoint', origin);
@@ -85,7 +94,10 @@ function parseEndpoint(discovery, origin) {
85
94
  (0, discovery_validation_js_1.exact)(binding.scope, 'organization', 'binding.scope');
86
95
  (0, discovery_validation_js_1.exact)(binding.auth_location, 'authorization_header', 'binding.auth_location');
87
96
  const endpoint = (0, discovery_validation_js_1.closedRecord)(discovery.endpoint, 'endpoint', ['url', 'capabilities']);
88
- const capabilities = (0, discovery_validation_js_1.exactStringSet)(endpoint.capabilities, 'endpoint.capabilities', ['exec', 'log_stream']);
97
+ const capabilities = (0, discovery_validation_js_1.exactStringSet)(endpoint.capabilities, 'endpoint.capabilities', [
98
+ 'exec',
99
+ 'log_stream',
100
+ ]);
89
101
  const pagination = (0, discovery_validation_js_1.closedRecord)(discovery.pagination, 'pagination', [
90
102
  'default_page_size',
91
103
  'max_page_size',
@@ -119,7 +131,14 @@ function parseCapsule(discovery, origin) {
119
131
  ]);
120
132
  (0, discovery_validation_js_1.exact)(capsule.name, 'openengine.capsules/v1', 'capsule_protocol.name');
121
133
  (0, discovery_validation_js_1.exact)(capsule.major_version, 1, 'capsule_protocol.major_version');
122
- const routes = (0, discovery_validation_js_1.closedRecord)(capsule.route_templates, 'capsule_protocol.route_templates', ['allocate', 'list', 'inspect', 'terminate', 'limits', 'access']);
134
+ const routes = (0, discovery_validation_js_1.closedRecord)(capsule.route_templates, 'capsule_protocol.route_templates', [
135
+ 'allocate',
136
+ 'list',
137
+ 'inspect',
138
+ 'terminate',
139
+ 'limits',
140
+ 'access',
141
+ ]);
123
142
  const route = (name, variables) => (0, route_template_js_1.routeTemplate)(routes[name], `capsule_protocol.route_templates.${name}`, variables);
124
143
  return Object.freeze({
125
144
  baseUrl: (0, discovery_validation_js_1.sameOriginUrl)(capsule.base_url, 'capsule_protocol.base_url', origin),
@@ -145,7 +164,10 @@ function parseOAuth(discovery, origin) {
145
164
  'audience',
146
165
  ]);
147
166
  (0, discovery_validation_js_1.exact)(oauth.device_grant_type, 'urn:ietf:params:oauth:grant-type:device_code', 'oauth.device_grant_type');
148
- (0, discovery_validation_js_1.exactStringSet)(oauth.device_exchange_fields, 'oauth.device_exchange_fields', ['device_token', 'device_label']);
167
+ (0, discovery_validation_js_1.exactStringSet)(oauth.device_exchange_fields, 'oauth.device_exchange_fields', [
168
+ 'device_token',
169
+ 'device_label',
170
+ ]);
149
171
  (0, discovery_validation_js_1.exact)(oauth.audience, 'capsule', 'oauth.audience');
150
172
  return Object.freeze({
151
173
  metadataUrl: (0, discovery_validation_js_1.sameOriginUrl)(oauth.metadata_url, 'oauth.metadata_url', origin),
@@ -1,4 +1,5 @@
1
1
  import { type CredentialInstallDescriptor } from './discovery-validation.js';
2
+ import { type RunIntentDescriptor } from './run-intent-discovery.js';
2
3
  export declare function parseAdapter(discovery: Record<string, unknown>): {
3
4
  readonly name: 'fargate' | 'docker' | 'local';
4
5
  readonly majorVersion: 1;
@@ -8,7 +9,10 @@ export declare function parseSizes(discovery: Record<string, unknown>): {
8
9
  readonly catalog: readonly ('tiny' | 'small' | 'standard' | 'large')[];
9
10
  readonly default: 'tiny' | 'small' | 'standard' | 'large';
10
11
  };
11
- export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): CredentialInstallDescriptor | null;
12
+ export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): {
13
+ readonly credentialInstall: CredentialInstallDescriptor | null;
14
+ readonly runIntent: RunIntentDescriptor | null;
15
+ };
12
16
  export declare function validateOAuthMetadata(metadata: Record<string, unknown>, origin: string, expected: readonly [string, string, string]): void;
13
17
  export declare function parseEndpoint(discovery: Record<string, unknown>, origin: string): Readonly<{
14
18
  url: string;
@@ -1,4 +1,5 @@
1
1
  import { type CredentialInstallDescriptor } from './discovery-validation.js';
2
+ import { type RunIntentDescriptor } from './run-intent-discovery.js';
2
3
  export declare function parseAdapter(discovery: Record<string, unknown>): {
3
4
  readonly name: 'fargate' | 'docker' | 'local';
4
5
  readonly majorVersion: 1;
@@ -8,7 +9,10 @@ export declare function parseSizes(discovery: Record<string, unknown>): {
8
9
  readonly catalog: readonly ('tiny' | 'small' | 'standard' | 'large')[];
9
10
  readonly default: 'tiny' | 'small' | 'standard' | 'large';
10
11
  };
11
- export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): CredentialInstallDescriptor | null;
12
+ export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): {
13
+ readonly credentialInstall: CredentialInstallDescriptor | null;
14
+ readonly runIntent: RunIntentDescriptor | null;
15
+ };
12
16
  export declare function validateOAuthMetadata(metadata: Record<string, unknown>, origin: string, expected: readonly [string, string, string]): void;
13
17
  export declare function parseEndpoint(discovery: Record<string, unknown>, origin: string): Readonly<{
14
18
  url: string;
@@ -1,4 +1,5 @@
1
1
  import { type CredentialInstallDescriptor } from './discovery-validation.js';
2
+ import { type RunIntentDescriptor } from './run-intent-discovery.js';
2
3
  export declare function parseAdapter(discovery: Record<string, unknown>): {
3
4
  readonly name: 'fargate' | 'docker' | 'local';
4
5
  readonly majorVersion: 1;
@@ -8,7 +9,10 @@ export declare function parseSizes(discovery: Record<string, unknown>): {
8
9
  readonly catalog: readonly ('tiny' | 'small' | 'standard' | 'large')[];
9
10
  readonly default: 'tiny' | 'small' | 'standard' | 'large';
10
11
  };
11
- export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): CredentialInstallDescriptor | null;
12
+ export declare function parseExtensions(discovery: Record<string, unknown>, origin: string): {
13
+ readonly credentialInstall: CredentialInstallDescriptor | null;
14
+ readonly runIntent: RunIntentDescriptor | null;
15
+ };
12
16
  export declare function validateOAuthMetadata(metadata: Record<string, unknown>, origin: string, expected: readonly [string, string, string]): void;
13
17
  export declare function parseEndpoint(discovery: Record<string, unknown>, origin: string): Readonly<{
14
18
  url: string;
@@ -12,6 +12,7 @@ exports.parseSession = parseSession;
12
12
  exports.parseTransport = parseTransport;
13
13
  const discovery_errors_js_1 = require("./discovery-errors.js");
14
14
  const discovery_validation_js_1 = require("./discovery-validation.js");
15
+ const run_intent_discovery_js_1 = require("./run-intent-discovery.js");
15
16
  const route_template_js_1 = require("./route-template.js");
16
17
  function parseAdapter(discovery) {
17
18
  const adapter = (0, discovery_validation_js_1.closedRecord)(discovery.adapter, 'adapter', ['name', 'major_version']);
@@ -27,14 +28,16 @@ function parseAdapter(discovery) {
27
28
  function validateCachePolicy(discovery) {
28
29
  const cache = (0, discovery_validation_js_1.closedRecord)(discovery.cache_policy, 'cache_policy', ['control', 'discovery']);
29
30
  (0, discovery_validation_js_1.exact)(cache.control, 'no-store', 'cache_policy.control');
30
- if (cache.discovery !== undefined && cache.discovery !== null &&
31
+ if (cache.discovery !== undefined &&
32
+ cache.discovery !== null &&
31
33
  typeof cache.discovery !== 'string') {
32
34
  throw new discovery_errors_js_1.TargetDiscoveryError('cache_policy.discovery must be a string or null');
33
35
  }
34
36
  }
35
37
  function parseSizes(discovery) {
36
38
  const sizes = (0, discovery_validation_js_1.closedRecord)(discovery.sizes, 'sizes', ['catalog', 'default']);
37
- if (!Array.isArray(sizes.catalog) || sizes.catalog.length === 0 ||
39
+ if (!Array.isArray(sizes.catalog) ||
40
+ sizes.catalog.length === 0 ||
38
41
  new Set(sizes.catalog).size !== sizes.catalog.length ||
39
42
  sizes.catalog.some((size) => !['tiny', 'small', 'standard', 'large'].includes(String(size)))) {
40
43
  throw new discovery_errors_js_1.TargetDiscoveryError('sizes.catalog contains an unsupported size');
@@ -48,26 +51,32 @@ function parseSizes(discovery) {
48
51
  });
49
52
  }
50
53
  function parseExtensions(discovery, origin) {
51
- if (discovery.extensions === undefined || discovery.extensions === null)
52
- return null;
54
+ if (discovery.extensions === undefined || discovery.extensions === null) {
55
+ return Object.freeze({ credentialInstall: null, runIntent: null });
56
+ }
53
57
  const extensions = (0, discovery_validation_js_1.closedRecord)(discovery.extensions, 'extensions', [
54
- 'connections', 'credential_install',
58
+ 'connections',
59
+ 'credential_install',
60
+ 'run_intent',
55
61
  ]);
56
62
  if (extensions.connections === undefined) {
57
63
  throw new discovery_errors_js_1.TargetDiscoveryError('extensions.connections is required');
58
64
  }
59
65
  const connections = (0, discovery_validation_js_1.closedRecord)(extensions.connections, 'extensions.connections', [
60
- 'kind', 'base_url', 'route_templates',
66
+ 'kind',
67
+ 'base_url',
68
+ 'route_templates',
61
69
  ]);
62
70
  (0, discovery_validation_js_1.exact)(connections.kind, 'zerocloud.connections/v1', 'extensions.connections.kind');
63
71
  (0, discovery_validation_js_1.sameOriginUrl)(connections.base_url, 'extensions.connections.base_url', origin);
64
- const routes = (0, discovery_validation_js_1.closedRecord)(connections.route_templates, 'extensions.connections.route_templates', [
65
- 'list', 'create', 'update',
66
- ]);
72
+ const routes = (0, discovery_validation_js_1.closedRecord)(connections.route_templates, 'extensions.connections.route_templates', ['list', 'create', 'update']);
67
73
  (0, route_template_js_1.routeTemplate)(routes.list, 'extensions.connections.route_templates.list', []);
68
74
  (0, route_template_js_1.routeTemplate)(routes.create, 'extensions.connections.route_templates.create', []);
69
75
  (0, route_template_js_1.routeTemplate)(routes.update, 'extensions.connections.route_templates.update', ['connection_id']);
70
- return (0, discovery_validation_js_1.parseCredentialInstall)(extensions.credential_install);
76
+ return Object.freeze({
77
+ credentialInstall: (0, discovery_validation_js_1.parseCredentialInstall)(extensions.credential_install),
78
+ runIntent: (0, run_intent_discovery_js_1.parseRunIntent)(extensions.run_intent, origin),
79
+ });
71
80
  }
72
81
  function validateOAuthMetadata(metadata, origin, expected) {
73
82
  const device = (0, discovery_validation_js_1.sameOriginUrl)(metadata.device_authorization_endpoint, 'OAuth metadata device_authorization_endpoint', origin);
@@ -85,7 +94,10 @@ function parseEndpoint(discovery, origin) {
85
94
  (0, discovery_validation_js_1.exact)(binding.scope, 'organization', 'binding.scope');
86
95
  (0, discovery_validation_js_1.exact)(binding.auth_location, 'authorization_header', 'binding.auth_location');
87
96
  const endpoint = (0, discovery_validation_js_1.closedRecord)(discovery.endpoint, 'endpoint', ['url', 'capabilities']);
88
- const capabilities = (0, discovery_validation_js_1.exactStringSet)(endpoint.capabilities, 'endpoint.capabilities', ['exec', 'log_stream']);
97
+ const capabilities = (0, discovery_validation_js_1.exactStringSet)(endpoint.capabilities, 'endpoint.capabilities', [
98
+ 'exec',
99
+ 'log_stream',
100
+ ]);
89
101
  const pagination = (0, discovery_validation_js_1.closedRecord)(discovery.pagination, 'pagination', [
90
102
  'default_page_size',
91
103
  'max_page_size',
@@ -119,7 +131,14 @@ function parseCapsule(discovery, origin) {
119
131
  ]);
120
132
  (0, discovery_validation_js_1.exact)(capsule.name, 'openengine.capsules/v1', 'capsule_protocol.name');
121
133
  (0, discovery_validation_js_1.exact)(capsule.major_version, 1, 'capsule_protocol.major_version');
122
- const routes = (0, discovery_validation_js_1.closedRecord)(capsule.route_templates, 'capsule_protocol.route_templates', ['allocate', 'list', 'inspect', 'terminate', 'limits', 'access']);
134
+ const routes = (0, discovery_validation_js_1.closedRecord)(capsule.route_templates, 'capsule_protocol.route_templates', [
135
+ 'allocate',
136
+ 'list',
137
+ 'inspect',
138
+ 'terminate',
139
+ 'limits',
140
+ 'access',
141
+ ]);
123
142
  const route = (name, variables) => (0, route_template_js_1.routeTemplate)(routes[name], `capsule_protocol.route_templates.${name}`, variables);
124
143
  return Object.freeze({
125
144
  baseUrl: (0, discovery_validation_js_1.sameOriginUrl)(capsule.base_url, 'capsule_protocol.base_url', origin),
@@ -145,7 +164,10 @@ function parseOAuth(discovery, origin) {
145
164
  'audience',
146
165
  ]);
147
166
  (0, discovery_validation_js_1.exact)(oauth.device_grant_type, 'urn:ietf:params:oauth:grant-type:device_code', 'oauth.device_grant_type');
148
- (0, discovery_validation_js_1.exactStringSet)(oauth.device_exchange_fields, 'oauth.device_exchange_fields', ['device_token', 'device_label']);
167
+ (0, discovery_validation_js_1.exactStringSet)(oauth.device_exchange_fields, 'oauth.device_exchange_fields', [
168
+ 'device_token',
169
+ 'device_label',
170
+ ]);
149
171
  (0, discovery_validation_js_1.exact)(oauth.audience, 'capsule', 'oauth.audience');
150
172
  return Object.freeze({
151
173
  metadataUrl: (0, discovery_validation_js_1.sameOriginUrl)(oauth.metadata_url, 'oauth.metadata_url', origin),
@@ -1,5 +1,6 @@
1
1
  import { TargetDiscoveryError } from './discovery-errors.mjs';
2
2
  import { closedRecord, exact, exactStringSet, integer, parseCredentialInstall, sameOriginUrl, stringField, } from './discovery-validation.mjs';
3
+ import { parseRunIntent } from './run-intent-discovery.mjs';
3
4
  import { routeTemplate } from './route-template.mjs';
4
5
  export function parseAdapter(discovery) {
5
6
  const adapter = closedRecord(discovery.adapter, 'adapter', ['name', 'major_version']);
@@ -15,14 +16,16 @@ export function parseAdapter(discovery) {
15
16
  export function validateCachePolicy(discovery) {
16
17
  const cache = closedRecord(discovery.cache_policy, 'cache_policy', ['control', 'discovery']);
17
18
  exact(cache.control, 'no-store', 'cache_policy.control');
18
- if (cache.discovery !== undefined && cache.discovery !== null &&
19
+ if (cache.discovery !== undefined &&
20
+ cache.discovery !== null &&
19
21
  typeof cache.discovery !== 'string') {
20
22
  throw new TargetDiscoveryError('cache_policy.discovery must be a string or null');
21
23
  }
22
24
  }
23
25
  export function parseSizes(discovery) {
24
26
  const sizes = closedRecord(discovery.sizes, 'sizes', ['catalog', 'default']);
25
- if (!Array.isArray(sizes.catalog) || sizes.catalog.length === 0 ||
27
+ if (!Array.isArray(sizes.catalog) ||
28
+ sizes.catalog.length === 0 ||
26
29
  new Set(sizes.catalog).size !== sizes.catalog.length ||
27
30
  sizes.catalog.some((size) => !['tiny', 'small', 'standard', 'large'].includes(String(size)))) {
28
31
  throw new TargetDiscoveryError('sizes.catalog contains an unsupported size');
@@ -36,26 +39,32 @@ export function parseSizes(discovery) {
36
39
  });
37
40
  }
38
41
  export function parseExtensions(discovery, origin) {
39
- if (discovery.extensions === undefined || discovery.extensions === null)
40
- return null;
42
+ if (discovery.extensions === undefined || discovery.extensions === null) {
43
+ return Object.freeze({ credentialInstall: null, runIntent: null });
44
+ }
41
45
  const extensions = closedRecord(discovery.extensions, 'extensions', [
42
- 'connections', 'credential_install',
46
+ 'connections',
47
+ 'credential_install',
48
+ 'run_intent',
43
49
  ]);
44
50
  if (extensions.connections === undefined) {
45
51
  throw new TargetDiscoveryError('extensions.connections is required');
46
52
  }
47
53
  const connections = closedRecord(extensions.connections, 'extensions.connections', [
48
- 'kind', 'base_url', 'route_templates',
54
+ 'kind',
55
+ 'base_url',
56
+ 'route_templates',
49
57
  ]);
50
58
  exact(connections.kind, 'zerocloud.connections/v1', 'extensions.connections.kind');
51
59
  sameOriginUrl(connections.base_url, 'extensions.connections.base_url', origin);
52
- const routes = closedRecord(connections.route_templates, 'extensions.connections.route_templates', [
53
- 'list', 'create', 'update',
54
- ]);
60
+ const routes = closedRecord(connections.route_templates, 'extensions.connections.route_templates', ['list', 'create', 'update']);
55
61
  routeTemplate(routes.list, 'extensions.connections.route_templates.list', []);
56
62
  routeTemplate(routes.create, 'extensions.connections.route_templates.create', []);
57
63
  routeTemplate(routes.update, 'extensions.connections.route_templates.update', ['connection_id']);
58
- return parseCredentialInstall(extensions.credential_install);
64
+ return Object.freeze({
65
+ credentialInstall: parseCredentialInstall(extensions.credential_install),
66
+ runIntent: parseRunIntent(extensions.run_intent, origin),
67
+ });
59
68
  }
60
69
  export function validateOAuthMetadata(metadata, origin, expected) {
61
70
  const device = sameOriginUrl(metadata.device_authorization_endpoint, 'OAuth metadata device_authorization_endpoint', origin);
@@ -73,7 +82,10 @@ export function parseEndpoint(discovery, origin) {
73
82
  exact(binding.scope, 'organization', 'binding.scope');
74
83
  exact(binding.auth_location, 'authorization_header', 'binding.auth_location');
75
84
  const endpoint = closedRecord(discovery.endpoint, 'endpoint', ['url', 'capabilities']);
76
- const capabilities = exactStringSet(endpoint.capabilities, 'endpoint.capabilities', ['exec', 'log_stream']);
85
+ const capabilities = exactStringSet(endpoint.capabilities, 'endpoint.capabilities', [
86
+ 'exec',
87
+ 'log_stream',
88
+ ]);
77
89
  const pagination = closedRecord(discovery.pagination, 'pagination', [
78
90
  'default_page_size',
79
91
  'max_page_size',
@@ -107,7 +119,14 @@ export function parseCapsule(discovery, origin) {
107
119
  ]);
108
120
  exact(capsule.name, 'openengine.capsules/v1', 'capsule_protocol.name');
109
121
  exact(capsule.major_version, 1, 'capsule_protocol.major_version');
110
- const routes = closedRecord(capsule.route_templates, 'capsule_protocol.route_templates', ['allocate', 'list', 'inspect', 'terminate', 'limits', 'access']);
122
+ const routes = closedRecord(capsule.route_templates, 'capsule_protocol.route_templates', [
123
+ 'allocate',
124
+ 'list',
125
+ 'inspect',
126
+ 'terminate',
127
+ 'limits',
128
+ 'access',
129
+ ]);
111
130
  const route = (name, variables) => routeTemplate(routes[name], `capsule_protocol.route_templates.${name}`, variables);
112
131
  return Object.freeze({
113
132
  baseUrl: sameOriginUrl(capsule.base_url, 'capsule_protocol.base_url', origin),
@@ -133,7 +152,10 @@ export function parseOAuth(discovery, origin) {
133
152
  'audience',
134
153
  ]);
135
154
  exact(oauth.device_grant_type, 'urn:ietf:params:oauth:grant-type:device_code', 'oauth.device_grant_type');
136
- exactStringSet(oauth.device_exchange_fields, 'oauth.device_exchange_fields', ['device_token', 'device_label']);
155
+ exactStringSet(oauth.device_exchange_fields, 'oauth.device_exchange_fields', [
156
+ 'device_token',
157
+ 'device_label',
158
+ ]);
137
159
  exact(oauth.audience, 'capsule', 'oauth.audience');
138
160
  return Object.freeze({
139
161
  metadataUrl: sameOriginUrl(oauth.metadata_url, 'oauth.metadata_url', origin),