@atlanai/sdk 0.2.2 → 0.2.4

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 (148) hide show
  1. package/README.md +6 -2
  2. package/dist/client.d.ts +20 -3
  3. package/dist/client.js +130 -9
  4. package/dist/errors.d.ts +10 -0
  5. package/dist/errors.js +34 -1
  6. package/dist/evals.d.ts +135 -8
  7. package/dist/evals.js +1004 -73
  8. package/dist/index.d.ts +3 -2
  9. package/dist/index.js +7 -1
  10. package/dist/manifest.json +84 -11
  11. package/dist/raw/agent/apis/AgentsApi.d.ts +29 -0
  12. package/dist/raw/agent/apis/AgentsApi.js +62 -1
  13. package/dist/raw/agent/apis/SessionsApi.d.ts +2 -2
  14. package/dist/raw/agent/apis/SessionsApi.js +2 -2
  15. package/dist/raw/agent/models/AgentAgentArtifactView.d.ts +48 -0
  16. package/dist/raw/agent/models/AgentAgentArtifactView.js +13 -0
  17. package/dist/raw/agent/models/AgentAgentEnvironmentArtifactView.d.ts +12 -0
  18. package/dist/raw/agent/models/AgentAgentEnvironmentArtifactView.js +2 -0
  19. package/dist/raw/agent/models/AgentAgentEnvironmentMeta.d.ts +12 -0
  20. package/dist/raw/agent/models/AgentAgentEnvironmentMeta.js +2 -0
  21. package/dist/raw/agent/models/AgentAgentMeta.d.ts +48 -0
  22. package/dist/raw/agent/models/AgentAgentMeta.js +13 -0
  23. package/dist/raw/agent/models/AgentAgentProviderArtifactView.d.ts +55 -2
  24. package/dist/raw/agent/models/AgentAgentProviderArtifactView.js +8 -0
  25. package/dist/raw/agent/models/AgentAgentProviderCreate.d.ts +24 -3
  26. package/dist/raw/agent/models/AgentAgentProviderCreate.js +4 -0
  27. package/dist/raw/agent/models/AgentAgentProviderMeta.d.ts +56 -13
  28. package/dist/raw/agent/models/AgentAgentProviderMeta.js +8 -0
  29. package/dist/raw/agent/models/AgentAgentProviderPatch.d.ts +13 -0
  30. package/dist/raw/agent/models/AgentAgentProviderPatch.js +4 -0
  31. package/dist/raw/agent/models/AgentAgentProviderType.d.ts +19 -9
  32. package/dist/raw/agent/models/AgentAgentProviderType.js +18 -8
  33. package/dist/raw/agent/models/AgentListAgentFrameworks401Response.d.ts +1 -0
  34. package/dist/raw/agent/models/AgentListAgentFrameworks401Response.js +1 -0
  35. package/dist/raw/agent/models/AgentPageSessionEventView.d.ts +3 -3
  36. package/dist/raw/agent/models/AgentPageSessionEventView.js +3 -3
  37. package/dist/raw/agent/models/AgentRemoteSessionEvent.d.ts +38 -0
  38. package/dist/raw/agent/models/AgentRemoteSessionEvent.js +58 -0
  39. package/dist/raw/agent/models/AgentSessionArtifactView.d.ts +25 -0
  40. package/dist/raw/agent/models/AgentSessionArtifactView.js +2 -0
  41. package/dist/raw/agent/models/AgentSessionEventView.d.ts +30 -0
  42. package/dist/raw/agent/models/AgentSessionEventView.js +57 -0
  43. package/dist/raw/agent/models/AgentSessionMeta.d.ts +25 -0
  44. package/dist/raw/agent/models/AgentSessionMeta.js +2 -0
  45. package/dist/raw/agent/models/AgentSessionStreamFrame.d.ts +8 -6
  46. package/dist/raw/agent/models/AgentSessionStreamFrame.js +7 -0
  47. package/dist/raw/agent/models/AgentSyncState.d.ts +27 -0
  48. package/dist/raw/agent/models/AgentSyncState.js +55 -0
  49. package/dist/raw/agent/models/TriggerBody.d.ts +52 -0
  50. package/dist/raw/agent/models/TriggerBody.js +58 -0
  51. package/dist/raw/agent/models/index.d.ts +4 -1
  52. package/dist/raw/agent/models/index.js +4 -1
  53. package/dist/raw/eval/models/EvalListDatasets401Response.d.ts +1 -0
  54. package/dist/raw/eval/models/EvalListDatasets401Response.js +1 -0
  55. package/dist/raw/file/models/FileList401Response.d.ts +1 -0
  56. package/dist/raw/file/models/FileList401Response.js +1 -0
  57. package/dist/raw/mcp/apis/ServersApi.d.ts +2 -2
  58. package/dist/raw/mcp/apis/ServersApi.js +2 -2
  59. package/dist/raw/mcp/models/McpConnectionState.d.ts +2 -1
  60. package/dist/raw/mcp/models/McpConnectionState.js +2 -1
  61. package/dist/raw/mcp/models/McpListServers401Response.d.ts +1 -0
  62. package/dist/raw/mcp/models/McpListServers401Response.js +1 -0
  63. package/dist/raw/mcp/models/McpServerTestResponse.d.ts +13 -2
  64. package/dist/raw/model/models/ModelListProviders401Response.d.ts +1 -0
  65. package/dist/raw/model/models/ModelListProviders401Response.js +1 -0
  66. package/dist/raw/registry/apis/WorkspacesApi.d.ts +28 -0
  67. package/dist/raw/registry/apis/WorkspacesApi.js +61 -1
  68. package/dist/raw/registry/models/CreateWorkspaceBody.d.ts +9 -0
  69. package/dist/raw/registry/models/CreateWorkspaceBody.js +2 -0
  70. package/dist/raw/registry/models/RegistryAggregate401Response.d.ts +1 -0
  71. package/dist/raw/registry/models/RegistryAggregate401Response.js +1 -0
  72. package/dist/raw/registry/models/RegistryWorkspaceView.d.ts +9 -0
  73. package/dist/raw/registry/models/RegistryWorkspaceView.js +4 -0
  74. package/dist/raw/registry/models/SearchRequest.d.ts +1 -1
  75. package/dist/raw/registry/models/SetVisibilityBody.d.ts +33 -0
  76. package/dist/raw/registry/models/SetVisibilityBody.js +50 -0
  77. package/dist/raw/registry/models/index.d.ts +1 -0
  78. package/dist/raw/registry/models/index.js +1 -0
  79. package/dist/raw/secret/apis/OauthApi.d.ts +143 -0
  80. package/dist/raw/secret/apis/OauthApi.js +335 -0
  81. package/dist/raw/secret/apis/index.d.ts +1 -0
  82. package/dist/raw/secret/apis/index.js +19 -0
  83. package/dist/raw/secret/index.d.ts +1 -0
  84. package/dist/raw/secret/index.js +1 -0
  85. package/dist/raw/secret/models/GatewayOauthCompleteRequest.d.ts +32 -0
  86. package/dist/raw/secret/models/GatewayOauthCompleteRequest.js +50 -0
  87. package/dist/raw/secret/models/GatewayOauthCompletion.d.ts +46 -0
  88. package/dist/raw/secret/models/GatewayOauthCompletion.js +55 -0
  89. package/dist/raw/secret/models/GatewayOauthConnection.d.ts +83 -0
  90. package/dist/raw/secret/models/GatewayOauthConnection.js +83 -0
  91. package/dist/raw/secret/models/GatewayOauthOwner.d.ts +31 -0
  92. package/dist/raw/secret/models/GatewayOauthOwner.js +59 -0
  93. package/dist/raw/secret/models/GatewayOauthProviderView.d.ts +69 -0
  94. package/dist/raw/secret/models/GatewayOauthProviderView.js +69 -0
  95. package/dist/raw/secret/models/GatewayOauthStartRequest.d.ts +52 -0
  96. package/dist/raw/secret/models/GatewayOauthStartRequest.js +59 -0
  97. package/dist/raw/secret/models/GatewayOauthStarted.d.ts +39 -0
  98. package/dist/raw/secret/models/GatewayOauthStarted.js +54 -0
  99. package/dist/raw/secret/models/SecretCompleteOauth400Response.d.ts +70 -0
  100. package/dist/raw/secret/models/SecretCompleteOauth400Response.js +80 -0
  101. package/dist/raw/secret/models/SecretCompleteOauth413Response.d.ts +64 -0
  102. package/dist/raw/secret/models/SecretCompleteOauth413Response.js +74 -0
  103. package/dist/raw/secret/models/SecretCompleteOauth415Response.d.ts +64 -0
  104. package/dist/raw/secret/models/SecretCompleteOauth415Response.js +74 -0
  105. package/dist/raw/secret/models/SecretCompleteOauth422Response.d.ts +63 -0
  106. package/dist/raw/secret/models/SecretCompleteOauth422Response.js +75 -0
  107. package/dist/raw/secret/models/SecretDisconnectOauth400Response.d.ts +67 -0
  108. package/dist/raw/secret/models/SecretDisconnectOauth400Response.js +77 -0
  109. package/dist/raw/secret/models/SecretOauthCallback400Response.d.ts +68 -0
  110. package/dist/raw/secret/models/SecretOauthCallback400Response.js +78 -0
  111. package/dist/raw/secret/models/SecretOauthCallback401Response.d.ts +80 -0
  112. package/dist/raw/secret/models/SecretOauthCallback401Response.js +90 -0
  113. package/dist/raw/secret/models/SecretOauthCallback403Response.d.ts +66 -0
  114. package/dist/raw/secret/models/SecretOauthCallback403Response.js +76 -0
  115. package/dist/raw/secret/models/SecretOauthCallback404Response.d.ts +65 -0
  116. package/dist/raw/secret/models/SecretOauthCallback404Response.js +75 -0
  117. package/dist/raw/secret/models/SecretOauthCallback500Response.d.ts +64 -0
  118. package/dist/raw/secret/models/SecretOauthCallback500Response.js +74 -0
  119. package/dist/raw/secret/models/SecretOauthCallback503Response.d.ts +66 -0
  120. package/dist/raw/secret/models/SecretOauthCallback503Response.js +76 -0
  121. package/dist/raw/secret/models/SecretOauthCallback504Response.d.ts +63 -0
  122. package/dist/raw/secret/models/SecretOauthCallback504Response.js +75 -0
  123. package/dist/raw/secret/models/index.d.ts +19 -0
  124. package/dist/raw/secret/models/index.js +19 -0
  125. package/dist/raw/skill/models/SkillInsightSchemas401Response.d.ts +1 -0
  126. package/dist/raw/skill/models/SkillInsightSchemas401Response.js +1 -0
  127. package/dist/resource-types.d.ts +670 -0
  128. package/dist/resource-types.js +2 -0
  129. package/dist/resources.d.ts +10 -0
  130. package/dist/resources.js +54 -4
  131. package/dist/resources.json +86 -0
  132. package/dist/tracing/client.d.ts +8 -1
  133. package/dist/tracing/client.js +43 -16
  134. package/dist/tracing/config.d.ts +3 -1
  135. package/dist/tracing/config.js +7 -2
  136. package/dist/tracing/exporter.d.ts +19 -1
  137. package/dist/tracing/exporter.js +56 -14
  138. package/dist/tracing/propagation.d.ts +2 -0
  139. package/dist/tracing/propagation.js +16 -0
  140. package/dist/tracing/semconv.d.ts +4 -0
  141. package/dist/tracing/semconv.js +14 -2
  142. package/dist/tracing/spans.d.ts +2 -0
  143. package/dist/tracing/spans.js +12 -1
  144. package/dist/tracing/version.d.ts +1 -1
  145. package/dist/tracing/version.js +1 -1
  146. package/package.json +1 -1
  147. package/dist/raw/agent/models/Box.d.ts +0 -342
  148. package/dist/raw/agent/models/Box.js +0 -167
@@ -19,6 +19,7 @@ exports.AgentAgentMetaFromJSONTyped = AgentAgentMetaFromJSONTyped;
19
19
  exports.AgentAgentMetaToJSON = AgentAgentMetaToJSON;
20
20
  exports.AgentAgentMetaToJSONTyped = AgentAgentMetaToJSONTyped;
21
21
  const GatewayToolRef_1 = require("./GatewayToolRef");
22
+ const AgentSyncState_1 = require("./AgentSyncState");
22
23
  /**
23
24
  * Check if a given object implements the AgentAgentMeta interface.
24
25
  */
@@ -40,6 +41,12 @@ function AgentAgentMetaFromJSONTyped(json, ignoreDiscriminator) {
40
41
  'maxStepCount': json['max_step_count'] == null ? undefined : json['max_step_count'],
41
42
  'modelId': json['model_id'] === undefined ? undefined : json['model_id'] === null ? null : json['model_id'],
42
43
  'publicUrl': json['public_url'] === undefined ? undefined : json['public_url'] === null ? null : json['public_url'],
44
+ 'remoteAgentId': json['remote_agent_id'] === undefined ? undefined : json['remote_agent_id'] === null ? null : json['remote_agent_id'],
45
+ 'remoteVaultId': json['remote_vault_id'] === undefined ? undefined : json['remote_vault_id'] === null ? null : json['remote_vault_id'],
46
+ 'remoteVersionOrdinal': json['remote_version_ordinal'] === undefined ? undefined : json['remote_version_ordinal'] === null ? null : json['remote_version_ordinal'],
47
+ 'syncError': json['sync_error'] === undefined ? undefined : json['sync_error'] === null ? null : json['sync_error'],
48
+ 'syncState': json['sync_state'] === undefined ? undefined : json['sync_state'] === null ? null : (0, AgentSyncState_1.AgentSyncStateFromJSON)(json['sync_state']),
49
+ 'syncedSpecHash': json['synced_spec_hash'] === undefined ? undefined : json['synced_spec_hash'] === null ? null : json['synced_spec_hash'],
43
50
  'tools': json['tools'] == null ? undefined : (json['tools'].map(GatewayToolRef_1.GatewayToolRefFromJSON)),
44
51
  };
45
52
  }
@@ -58,6 +65,12 @@ function AgentAgentMetaToJSONTyped(value, ignoreDiscriminator = false) {
58
65
  'max_step_count': value['maxStepCount'],
59
66
  'model_id': value['modelId'],
60
67
  'public_url': value['publicUrl'],
68
+ 'remote_agent_id': value['remoteAgentId'],
69
+ 'remote_vault_id': value['remoteVaultId'],
70
+ 'remote_version_ordinal': value['remoteVersionOrdinal'],
71
+ 'sync_error': value['syncError'],
72
+ 'sync_state': (0, AgentSyncState_1.AgentSyncStateToJSON)(value['syncState']),
73
+ 'synced_spec_hash': value['syncedSpecHash'],
61
74
  'tools': value['tools'] == null ? undefined : (value['tools'].map(GatewayToolRef_1.GatewayToolRefToJSON)),
62
75
  };
63
76
  }
@@ -254,18 +254,55 @@ export interface AgentAgentProviderArtifactView {
254
254
  */
255
255
  workspaceId: string;
256
256
  /**
257
- * The system's API base, for a console to link to and an operator to
258
- * recognize. Reference only — never dereferenced server-side.
257
+ * The `secret` artifact holding the provider's API key.
258
+ *
259
+ * A reference, never a value — the `model_provider.secret_ref` pattern. It is
260
+ * resolved at the run-trigger through `Secret.Reveal` with the caller's own
261
+ * bearer, so reading it is tenancy-scoped exactly as any other secret read is,
262
+ * and the value never lands in a column, a log, or this artifact's view.
263
+ *
264
+ * Schema-optional but **required on a `claude_managed` row**, and refused on
265
+ * the others. Schema validation runs before the hook, so a schema-required
266
+ * declaration would 422 every `local` provider with a message naming a field
267
+ * that row must not have; the hook can name the field, the type, and why.
268
+ * @type {string}
269
+ * @memberof AgentAgentProviderArtifactView
270
+ */
271
+ apiKeySecretId?: string | null;
272
+ /**
273
+ * The system's API base.
274
+ *
275
+ * For a `local`/`custom` row this is reference material a console links to
276
+ * and an operator recognizes, never dereferenced. For a `claude_managed` row
277
+ * it is **the address the gateway actually calls**, defaulting to
278
+ * [`crate::sync::DEFAULT_CMA_BASE`] when unset — which is why the write hook
279
+ * SSRF-validates it on that type and only scheme-checks it on the others.
280
+ * The two postures cannot be collapsed: refusing an internal address on a
281
+ * catalog row would reject a customer correctly recording their own VPC
282
+ * endpoint, and allowing one on a dialed row would make provider-write an
283
+ * SSRF primitive against our egress.
259
284
  * @type {string}
260
285
  * @memberof AgentAgentProviderArtifactView
261
286
  */
262
287
  baseUrl?: string | null;
288
+ /**
289
+ *
290
+ * @type {any}
291
+ * @memberof AgentAgentProviderArtifactView
292
+ */
293
+ bootstrapSkillSync?: any | null;
263
294
  /**
264
295
  * Documentation URL. Same validation as `logo_url`.
265
296
  * @type {string}
266
297
  * @memberof AgentAgentProviderArtifactView
267
298
  */
268
299
  docsUrl?: string | null;
300
+ /**
301
+ *
302
+ * @type {any}
303
+ * @memberof AgentAgentProviderArtifactView
304
+ */
305
+ environmentSync?: any | null;
269
306
  /**
270
307
  * Homepage. Same validation as `logo_url`.
271
308
  * @type {string}
@@ -280,6 +317,22 @@ export interface AgentAgentProviderArtifactView {
280
317
  * @memberof AgentAgentProviderArtifactView
281
318
  */
282
319
  logoUrl?: string | null;
320
+ /**
321
+ * The gateway's **public** `/mcp` aggregator URL the remote run connects back
322
+ * into. Same required-on-`claude_managed`, refused-elsewhere rule as
323
+ * `api_key_secret_id`.
324
+ *
325
+ * It cannot be derived from the internal peer env — the value has to be
326
+ * reachable from Anthropic's network, not from inside our cluster — so the
327
+ * provider row carries it. **SSRF-validated at write**, because unlike every
328
+ * other URL on this kind it is dereferenced: a run we triggered fetches it.
329
+ * The check is defense-in-depth rather than the control (DNS moves between
330
+ * write and call, LIMITATIONS L14); what makes the credential safe is that the
331
+ * vault token is the agent's own machine identity and nothing else.
332
+ * @type {string}
333
+ * @memberof AgentAgentProviderArtifactView
334
+ */
335
+ mcpUrl?: string | null;
283
336
  /**
284
337
  *
285
338
  * @type {AgentAgentProviderType}
@@ -94,10 +94,14 @@ function AgentAgentProviderArtifactViewFromJSONTyped(json, ignoreDiscriminator)
94
94
  'versionLabel': json['version_label'] == null ? undefined : json['version_label'],
95
95
  'versionOrdinal': json['version_ordinal'],
96
96
  'workspaceId': json['workspace_id'],
97
+ 'apiKeySecretId': json['api_key_secret_id'] === undefined ? undefined : json['api_key_secret_id'] === null ? null : json['api_key_secret_id'],
97
98
  'baseUrl': json['base_url'] === undefined ? undefined : json['base_url'] === null ? null : json['base_url'],
99
+ 'bootstrapSkillSync': json['bootstrap_skill_sync'] === undefined ? undefined : json['bootstrap_skill_sync'] === null ? null : json['bootstrap_skill_sync'],
98
100
  'docsUrl': json['docs_url'] === undefined ? undefined : json['docs_url'] === null ? null : json['docs_url'],
101
+ 'environmentSync': json['environment_sync'] === undefined ? undefined : json['environment_sync'] === null ? null : json['environment_sync'],
99
102
  'homepageUrl': json['homepage_url'] === undefined ? undefined : json['homepage_url'] === null ? null : json['homepage_url'],
100
103
  'logoUrl': json['logo_url'] === undefined ? undefined : json['logo_url'] === null ? null : json['logo_url'],
104
+ 'mcpUrl': json['mcp_url'] === undefined ? undefined : json['mcp_url'] === null ? null : json['mcp_url'],
101
105
  'providerType': json['provider_type'] == null ? undefined : (0, AgentAgentProviderType_1.AgentAgentProviderTypeFromJSON)(json['provider_type']),
102
106
  'permissions': json['permissions'] === undefined ? undefined : json['permissions'] === null ? null : json['permissions'],
103
107
  'relationships': json['relationships'] === undefined ? undefined : json['relationships'] === null ? null : (0, RegistryRelationshipsView_1.RegistryRelationshipsViewFromJSON)(json['relationships']),
@@ -144,10 +148,14 @@ function AgentAgentProviderArtifactViewToJSONTyped(value, ignoreDiscriminator =
144
148
  'version_label': value['versionLabel'],
145
149
  'version_ordinal': value['versionOrdinal'],
146
150
  'workspace_id': value['workspaceId'],
151
+ 'api_key_secret_id': value['apiKeySecretId'],
147
152
  'base_url': value['baseUrl'],
153
+ 'bootstrap_skill_sync': value['bootstrapSkillSync'],
148
154
  'docs_url': value['docsUrl'],
155
+ 'environment_sync': value['environmentSync'],
149
156
  'homepage_url': value['homepageUrl'],
150
157
  'logo_url': value['logoUrl'],
158
+ 'mcp_url': value['mcpUrl'],
151
159
  'provider_type': (0, AgentAgentProviderType_1.AgentAgentProviderTypeToJSON)(value['providerType']),
152
160
  'permissions': value['permissions'],
153
161
  'relationships': (0, RegistryRelationshipsView_1.RegistryRelationshipsViewToJSON)(value['relationships']),
@@ -11,8 +11,12 @@
11
11
  */
12
12
  import type { AgentAgentProviderType } from './AgentAgentProviderType';
13
13
  /**
14
- * The caller-writable surface of a new agent provider. Every field is display or
15
- * reference material: nothing here is dialed.
14
+ * The caller-writable surface of a new agent provider.
15
+ *
16
+ * `bootstrap_skill_sync` and `environment_sync` are deliberately absent: both are
17
+ * hook-owned, and a caller
18
+ * who could write it would make every agent pushed to this provider pin a skill
19
+ * of their choosing.
16
20
  * @export
17
21
  * @interface AgentAgentProviderCreate
18
22
  */
@@ -132,7 +136,17 @@ export interface AgentAgentProviderCreate {
132
136
  */
133
137
  workspaceId: string;
134
138
  /**
135
- * The system's API base, for a console to link to. Reference only.
139
+ * The `secret` artifact holding the provider's API key. **Required on a
140
+ * `claude_managed` provider and refused on the others** — a reference, never a
141
+ * value.
142
+ * @type {string}
143
+ * @memberof AgentAgentProviderCreate
144
+ */
145
+ apiKeySecretId?: string | null;
146
+ /**
147
+ * The system's API base. Reference material for `local`/`custom`; the address
148
+ * the gateway calls for `claude_managed`, defaulting to the provider's own
149
+ * public endpoint when unset.
136
150
  * @type {string}
137
151
  * @memberof AgentAgentProviderCreate
138
152
  */
@@ -155,6 +169,13 @@ export interface AgentAgentProviderCreate {
155
169
  * @memberof AgentAgentProviderCreate
156
170
  */
157
171
  logoUrl?: string | null;
172
+ /**
173
+ * The gateway's public `/mcp` URL a delegated run connects back into. Same
174
+ * required-on-`claude_managed`, refused-elsewhere rule as `api_key_secret_id`.
175
+ * @type {string}
176
+ * @memberof AgentAgentProviderCreate
177
+ */
178
+ mcpUrl?: string | null;
158
179
  /**
159
180
  *
160
181
  * @type {AgentAgentProviderType}
@@ -56,10 +56,12 @@ function AgentAgentProviderCreateFromJSONTyped(json, ignoreDiscriminator) {
56
56
  'projectId': json['project_id'] == null ? undefined : json['project_id'],
57
57
  'repoId': json['repo_id'] == null ? undefined : json['repo_id'],
58
58
  'workspaceId': json['workspace_id'],
59
+ 'apiKeySecretId': json['api_key_secret_id'] === undefined ? undefined : json['api_key_secret_id'] === null ? null : json['api_key_secret_id'],
59
60
  'baseUrl': json['base_url'] === undefined ? undefined : json['base_url'] === null ? null : json['base_url'],
60
61
  'docsUrl': json['docs_url'] === undefined ? undefined : json['docs_url'] === null ? null : json['docs_url'],
61
62
  'homepageUrl': json['homepage_url'] === undefined ? undefined : json['homepage_url'] === null ? null : json['homepage_url'],
62
63
  'logoUrl': json['logo_url'] === undefined ? undefined : json['logo_url'] === null ? null : json['logo_url'],
64
+ 'mcpUrl': json['mcp_url'] === undefined ? undefined : json['mcp_url'] === null ? null : json['mcp_url'],
63
65
  'providerType': (0, AgentAgentProviderType_1.AgentAgentProviderTypeFromJSON)(json['provider_type']),
64
66
  };
65
67
  }
@@ -88,10 +90,12 @@ function AgentAgentProviderCreateToJSONTyped(value, ignoreDiscriminator = false)
88
90
  'project_id': value['projectId'],
89
91
  'repo_id': value['repoId'],
90
92
  'workspace_id': value['workspaceId'],
93
+ 'api_key_secret_id': value['apiKeySecretId'],
91
94
  'base_url': value['baseUrl'],
92
95
  'docs_url': value['docsUrl'],
93
96
  'homepage_url': value['homepageUrl'],
94
97
  'logo_url': value['logoUrl'],
98
+ 'mcp_url': value['mcpUrl'],
95
99
  'provider_type': (0, AgentAgentProviderType_1.AgentAgentProviderTypeToJSON)(value['providerType']),
96
100
  };
97
101
  }
@@ -11,34 +11,61 @@
11
11
  */
12
12
  import type { AgentAgentProviderType } from './AgentAgentProviderType';
13
13
  /**
14
- * The `agent_provider` kind — a customer-owned entry naming where their agents
15
- * run, mirroring the secret extension's `secret_provider` and the model
16
- * extension's `model_provider`.
17
- *
18
- * Every field is display or reference material. There is no credential and no
19
- * callback URL, because nothing here is dialed: the gateway catalogs a provider,
20
- * the customer runs the agent. That is the whole difference from the
21
- * `claude_managed` substrate this kind used to describe.
22
- *
23
- * Nothing seeds a provider — which system a tenant runs on is tenant policy, not
24
- * gateway policy — so there is no `system` flag and no system pin.
14
+ * Published representation of AgentProviderMeta.
25
15
  * @export
26
16
  * @interface AgentAgentProviderMeta
27
17
  */
28
18
  export interface AgentAgentProviderMeta {
29
19
  /**
30
- * The system's API base, for a console to link to and an operator to
31
- * recognize. Reference only — never dereferenced server-side.
20
+ * The `secret` artifact holding the provider's API key.
21
+ *
22
+ * A reference, never a value — the `model_provider.secret_ref` pattern. It is
23
+ * resolved at the run-trigger through `Secret.Reveal` with the caller's own
24
+ * bearer, so reading it is tenancy-scoped exactly as any other secret read is,
25
+ * and the value never lands in a column, a log, or this artifact's view.
26
+ *
27
+ * Schema-optional but **required on a `claude_managed` row**, and refused on
28
+ * the others. Schema validation runs before the hook, so a schema-required
29
+ * declaration would 422 every `local` provider with a message naming a field
30
+ * that row must not have; the hook can name the field, the type, and why.
31
+ * @type {string}
32
+ * @memberof AgentAgentProviderMeta
33
+ */
34
+ apiKeySecretId?: string | null;
35
+ /**
36
+ * The system's API base.
37
+ *
38
+ * For a `local`/`custom` row this is reference material a console links to
39
+ * and an operator recognizes, never dereferenced. For a `claude_managed` row
40
+ * it is **the address the gateway actually calls**, defaulting to
41
+ * [`crate::sync::DEFAULT_CMA_BASE`] when unset — which is why the write hook
42
+ * SSRF-validates it on that type and only scheme-checks it on the others.
43
+ * The two postures cannot be collapsed: refusing an internal address on a
44
+ * catalog row would reject a customer correctly recording their own VPC
45
+ * endpoint, and allowing one on a dialed row would make provider-write an
46
+ * SSRF primitive against our egress.
32
47
  * @type {string}
33
48
  * @memberof AgentAgentProviderMeta
34
49
  */
35
50
  baseUrl?: string | null;
51
+ /**
52
+ *
53
+ * @type {any}
54
+ * @memberof AgentAgentProviderMeta
55
+ */
56
+ bootstrapSkillSync?: any | null;
36
57
  /**
37
58
  * Documentation URL. Same validation as `logo_url`.
38
59
  * @type {string}
39
60
  * @memberof AgentAgentProviderMeta
40
61
  */
41
62
  docsUrl?: string | null;
63
+ /**
64
+ *
65
+ * @type {any}
66
+ * @memberof AgentAgentProviderMeta
67
+ */
68
+ environmentSync?: any | null;
42
69
  /**
43
70
  * Homepage. Same validation as `logo_url`.
44
71
  * @type {string}
@@ -53,6 +80,22 @@ export interface AgentAgentProviderMeta {
53
80
  * @memberof AgentAgentProviderMeta
54
81
  */
55
82
  logoUrl?: string | null;
83
+ /**
84
+ * The gateway's **public** `/mcp` aggregator URL the remote run connects back
85
+ * into. Same required-on-`claude_managed`, refused-elsewhere rule as
86
+ * `api_key_secret_id`.
87
+ *
88
+ * It cannot be derived from the internal peer env — the value has to be
89
+ * reachable from Anthropic's network, not from inside our cluster — so the
90
+ * provider row carries it. **SSRF-validated at write**, because unlike every
91
+ * other URL on this kind it is dereferenced: a run we triggered fetches it.
92
+ * The check is defense-in-depth rather than the control (DNS moves between
93
+ * write and call, LIMITATIONS L14); what makes the credential safe is that the
94
+ * vault token is the agent's own machine identity and nothing else.
95
+ * @type {string}
96
+ * @memberof AgentAgentProviderMeta
97
+ */
98
+ mcpUrl?: string | null;
56
99
  /**
57
100
  *
58
101
  * @type {AgentAgentProviderType}
@@ -35,10 +35,14 @@ function AgentAgentProviderMetaFromJSONTyped(json, ignoreDiscriminator) {
35
35
  return json;
36
36
  }
37
37
  return {
38
+ 'apiKeySecretId': json['api_key_secret_id'] === undefined ? undefined : json['api_key_secret_id'] === null ? null : json['api_key_secret_id'],
38
39
  'baseUrl': json['base_url'] === undefined ? undefined : json['base_url'] === null ? null : json['base_url'],
40
+ 'bootstrapSkillSync': json['bootstrap_skill_sync'] === undefined ? undefined : json['bootstrap_skill_sync'] === null ? null : json['bootstrap_skill_sync'],
39
41
  'docsUrl': json['docs_url'] === undefined ? undefined : json['docs_url'] === null ? null : json['docs_url'],
42
+ 'environmentSync': json['environment_sync'] === undefined ? undefined : json['environment_sync'] === null ? null : json['environment_sync'],
40
43
  'homepageUrl': json['homepage_url'] === undefined ? undefined : json['homepage_url'] === null ? null : json['homepage_url'],
41
44
  'logoUrl': json['logo_url'] === undefined ? undefined : json['logo_url'] === null ? null : json['logo_url'],
45
+ 'mcpUrl': json['mcp_url'] === undefined ? undefined : json['mcp_url'] === null ? null : json['mcp_url'],
42
46
  'providerType': (0, AgentAgentProviderType_1.AgentAgentProviderTypeFromJSON)(json['provider_type']),
43
47
  };
44
48
  }
@@ -50,10 +54,14 @@ function AgentAgentProviderMetaToJSONTyped(value, ignoreDiscriminator = false) {
50
54
  return value;
51
55
  }
52
56
  return {
57
+ 'api_key_secret_id': value['apiKeySecretId'],
53
58
  'base_url': value['baseUrl'],
59
+ 'bootstrap_skill_sync': value['bootstrapSkillSync'],
54
60
  'docs_url': value['docsUrl'],
61
+ 'environment_sync': value['environmentSync'],
55
62
  'homepage_url': value['homepageUrl'],
56
63
  'logo_url': value['logoUrl'],
64
+ 'mcp_url': value['mcpUrl'],
57
65
  'provider_type': (0, AgentAgentProviderType_1.AgentAgentProviderTypeToJSON)(value['providerType']),
58
66
  };
59
67
  }
@@ -17,6 +17,13 @@
17
17
  * @interface AgentAgentProviderPatch
18
18
  */
19
19
  export interface AgentAgentProviderPatch {
20
+ /**
21
+ * Re-point the provider at a different API-key `secret`. Still refused on a
22
+ * `local`/`custom` row, whose type cannot change.
23
+ * @type {string}
24
+ * @memberof AgentAgentProviderPatch
25
+ */
26
+ apiKeySecretId?: string | null;
20
27
  /**
21
28
  * Value of the `base_url` field.
22
29
  * @type {string}
@@ -53,6 +60,12 @@ export interface AgentAgentProviderPatch {
53
60
  * @memberof AgentAgentProviderPatch
54
61
  */
55
62
  logoUrl?: string | null;
63
+ /**
64
+ * Update the gateway `/mcp` URL delegated runs connect back into.
65
+ * @type {string}
66
+ * @memberof AgentAgentProviderPatch
67
+ */
68
+ mcpUrl?: string | null;
56
69
  /**
57
70
  * Stable machine-readable name.
58
71
  * @type {string}
@@ -32,12 +32,14 @@ function AgentAgentProviderPatchFromJSONTyped(json, ignoreDiscriminator) {
32
32
  return json;
33
33
  }
34
34
  return {
35
+ 'apiKeySecretId': json['api_key_secret_id'] === undefined ? undefined : json['api_key_secret_id'] === null ? null : json['api_key_secret_id'],
35
36
  'baseUrl': json['base_url'] === undefined ? undefined : json['base_url'] === null ? null : json['base_url'],
36
37
  'description': json['description'] === undefined ? undefined : json['description'] === null ? null : json['description'],
37
38
  'displayName': json['display_name'] === undefined ? undefined : json['display_name'] === null ? null : json['display_name'],
38
39
  'docsUrl': json['docs_url'] === undefined ? undefined : json['docs_url'] === null ? null : json['docs_url'],
39
40
  'homepageUrl': json['homepage_url'] === undefined ? undefined : json['homepage_url'] === null ? null : json['homepage_url'],
40
41
  'logoUrl': json['logo_url'] === undefined ? undefined : json['logo_url'] === null ? null : json['logo_url'],
42
+ 'mcpUrl': json['mcp_url'] === undefined ? undefined : json['mcp_url'] === null ? null : json['mcp_url'],
41
43
  'name': json['name'] === undefined ? undefined : json['name'] === null ? null : json['name'],
42
44
  };
43
45
  }
@@ -49,12 +51,14 @@ function AgentAgentProviderPatchToJSONTyped(value, ignoreDiscriminator = false)
49
51
  return value;
50
52
  }
51
53
  return {
54
+ 'api_key_secret_id': value['apiKeySecretId'],
52
55
  'base_url': value['baseUrl'],
53
56
  'description': value['description'],
54
57
  'display_name': value['displayName'],
55
58
  'docs_url': value['docsUrl'],
56
59
  'homepage_url': value['homepageUrl'],
57
60
  'logo_url': value['logoUrl'],
61
+ 'mcp_url': value['mcpUrl'],
58
62
  'name': value['name'],
59
63
  };
60
64
  }
@@ -13,21 +13,31 @@
13
13
  * Where a customer runs their agents. Promoted to the indexed `provider_type`
14
14
  * `CHECK` column; doc-comment-free per variant.
15
15
  *
16
- * Both variants are catalog-only — the gateway records where an agent runs, it
17
- * does not run one (agent-2026-08-06-customer-owned-providers). They are not
18
- * redundant with an absent `agent_provider_id`, which means the execution home
19
- * is simply *unknown*; a `local` row is a named, describable place ("the analyst
20
- * laptops") a session can point at and a console can group by.
16
+ * `local` and `custom` are catalog-only — the gateway records where an agent
17
+ * runs and dials nothing. They are not redundant with an absent
18
+ * `agent_provider_id`, which means the execution home is simply *unknown*; a
19
+ * `local` row is a named, describable place ("the analyst laptops") a session
20
+ * can point at and a console can group by.
21
21
  *
22
- * Widening this list is a free boot `CHECK` reconcile, no migration. Narrowing
23
- * it aborts the boot if any row still holds the removed value, so the set is
24
- * effectively append-only.
22
+ * `claude_managed` is the one variant the gateway *does* dial: Anthropic's
23
+ * hosted Claude Managed Agents runtime. A row of that type carries the
24
+ * connection fields the other two refuse to
25
+ * ([`AgentProviderMeta::api_key_secret_id`], [`AgentProviderMeta::mcp_url`]),
26
+ * and the gateway pushes the agent spec to it at the run-trigger. The catalog
27
+ * stance the other two variants encode is unchanged — it is now the *default*
28
+ * rather than the only option (agent-2026-09-15-claude-managed-restored,
29
+ * which partially supersedes agent-2026-08-06-customer-owned-providers).
30
+ *
31
+ * Widening this list is one `SetEnumValues` migration step. Narrowing it aborts
32
+ * the boot if any row still holds the removed value, so the set is effectively
33
+ * append-only.
25
34
  * @export
26
35
  * @enum {string}
27
36
  */
28
37
  export declare enum AgentAgentProviderType {
29
38
  Local = "local",
30
- Custom = "custom"
39
+ Custom = "custom",
40
+ ClaudeManaged = "claude_managed"
31
41
  }
32
42
  export declare function instanceOfAgentAgentProviderType(value: any): boolean;
33
43
  export declare function AgentAgentProviderTypeFromJSON(json: any): AgentAgentProviderType;
@@ -23,15 +23,24 @@ exports.AgentAgentProviderTypeToJSONTyped = AgentAgentProviderTypeToJSONTyped;
23
23
  * Where a customer runs their agents. Promoted to the indexed `provider_type`
24
24
  * `CHECK` column; doc-comment-free per variant.
25
25
  *
26
- * Both variants are catalog-only — the gateway records where an agent runs, it
27
- * does not run one (agent-2026-08-06-customer-owned-providers). They are not
28
- * redundant with an absent `agent_provider_id`, which means the execution home
29
- * is simply *unknown*; a `local` row is a named, describable place ("the analyst
30
- * laptops") a session can point at and a console can group by.
26
+ * `local` and `custom` are catalog-only — the gateway records where an agent
27
+ * runs and dials nothing. They are not redundant with an absent
28
+ * `agent_provider_id`, which means the execution home is simply *unknown*; a
29
+ * `local` row is a named, describable place ("the analyst laptops") a session
30
+ * can point at and a console can group by.
31
31
  *
32
- * Widening this list is a free boot `CHECK` reconcile, no migration. Narrowing
33
- * it aborts the boot if any row still holds the removed value, so the set is
34
- * effectively append-only.
32
+ * `claude_managed` is the one variant the gateway *does* dial: Anthropic's
33
+ * hosted Claude Managed Agents runtime. A row of that type carries the
34
+ * connection fields the other two refuse to
35
+ * ([`AgentProviderMeta::api_key_secret_id`], [`AgentProviderMeta::mcp_url`]),
36
+ * and the gateway pushes the agent spec to it at the run-trigger. The catalog
37
+ * stance the other two variants encode is unchanged — it is now the *default*
38
+ * rather than the only option (agent-2026-09-15-claude-managed-restored,
39
+ * which partially supersedes agent-2026-08-06-customer-owned-providers).
40
+ *
41
+ * Widening this list is one `SetEnumValues` migration step. Narrowing it aborts
42
+ * the boot if any row still holds the removed value, so the set is effectively
43
+ * append-only.
35
44
  * @export
36
45
  * @enum {string}
37
46
  */
@@ -39,6 +48,7 @@ var AgentAgentProviderType;
39
48
  (function (AgentAgentProviderType) {
40
49
  AgentAgentProviderType["Local"] = "local";
41
50
  AgentAgentProviderType["Custom"] = "custom";
51
+ AgentAgentProviderType["ClaudeManaged"] = "claude_managed";
42
52
  })(AgentAgentProviderType || (exports.AgentAgentProviderType = AgentAgentProviderType = {}));
43
53
  function instanceOfAgentAgentProviderType(value) {
44
54
  for (const key in AgentAgentProviderType) {
@@ -65,6 +65,7 @@ export declare enum AgentListAgentFrameworks401ResponseCodeEnum {
65
65
  TokenNotYetValid = "token_not_yet_valid",
66
66
  TokenRejected = "token_rejected",
67
67
  TokenServiceAccountUnbound = "token_service_account_unbound",
68
+ Unauthorized = "unauthorized",
68
69
  UnknownAccount = "unknown_account",
69
70
  UnknownKey = "unknown_key",
70
71
  UntrustedIssuer = "untrusted_issuer"
@@ -39,6 +39,7 @@ var AgentListAgentFrameworks401ResponseCodeEnum;
39
39
  AgentListAgentFrameworks401ResponseCodeEnum["TokenNotYetValid"] = "token_not_yet_valid";
40
40
  AgentListAgentFrameworks401ResponseCodeEnum["TokenRejected"] = "token_rejected";
41
41
  AgentListAgentFrameworks401ResponseCodeEnum["TokenServiceAccountUnbound"] = "token_service_account_unbound";
42
+ AgentListAgentFrameworks401ResponseCodeEnum["Unauthorized"] = "unauthorized";
42
43
  AgentListAgentFrameworks401ResponseCodeEnum["UnknownAccount"] = "unknown_account";
43
44
  AgentListAgentFrameworks401ResponseCodeEnum["UnknownKey"] = "unknown_key";
44
45
  AgentListAgentFrameworks401ResponseCodeEnum["UntrustedIssuer"] = "untrusted_issuer";
@@ -9,7 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
- import type { Box } from './Box';
12
+ import type { AgentSessionEventView } from './AgentSessionEventView';
13
13
  import type { GatewayPageMeta } from './GatewayPageMeta';
14
14
  /**
15
15
  * A page of session events — the `{items, page}` envelope over
@@ -20,10 +20,10 @@ import type { GatewayPageMeta } from './GatewayPageMeta';
20
20
  export interface AgentPageSessionEventView {
21
21
  /**
22
22
  * Items in this result.
23
- * @type {Array<Box>}
23
+ * @type {Array<AgentSessionEventView>}
24
24
  * @memberof AgentPageSessionEventView
25
25
  */
26
- items: Array<Box>;
26
+ items: Array<AgentSessionEventView>;
27
27
  /**
28
28
  *
29
29
  * @type {GatewayPageMeta}
@@ -18,7 +18,7 @@ exports.AgentPageSessionEventViewFromJSON = AgentPageSessionEventViewFromJSON;
18
18
  exports.AgentPageSessionEventViewFromJSONTyped = AgentPageSessionEventViewFromJSONTyped;
19
19
  exports.AgentPageSessionEventViewToJSON = AgentPageSessionEventViewToJSON;
20
20
  exports.AgentPageSessionEventViewToJSONTyped = AgentPageSessionEventViewToJSONTyped;
21
- const Box_1 = require("./Box");
21
+ const AgentSessionEventView_1 = require("./AgentSessionEventView");
22
22
  const GatewayPageMeta_1 = require("./GatewayPageMeta");
23
23
  /**
24
24
  * Check if a given object implements the AgentPageSessionEventView interface.
@@ -38,7 +38,7 @@ function AgentPageSessionEventViewFromJSONTyped(json, ignoreDiscriminator) {
38
38
  return json;
39
39
  }
40
40
  return {
41
- 'items': (json['items'].map(Box_1.BoxFromJSON)),
41
+ 'items': (json['items'].map(AgentSessionEventView_1.AgentSessionEventViewFromJSON)),
42
42
  'page': (0, GatewayPageMeta_1.GatewayPageMetaFromJSON)(json['page']),
43
43
  };
44
44
  }
@@ -50,7 +50,7 @@ function AgentPageSessionEventViewToJSONTyped(value, ignoreDiscriminator = false
50
50
  return value;
51
51
  }
52
52
  return {
53
- 'items': (value['items'].map(Box_1.BoxToJSON)),
53
+ 'items': (value['items'].map(AgentSessionEventView_1.AgentSessionEventViewToJSON)),
54
54
  'page': (0, GatewayPageMeta_1.GatewayPageMetaToJSON)(value['page']),
55
55
  };
56
56
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Harness and agent catalog
3
+ * A `harness` is a tool a human drives; an `agent` is built with an `agent_framework` and run on an `agent_provider`. The gateway executes neither. This surface is the typed catalog for both — plus the `agent_framework` and `harness_vendor` catalogs, the `agent_provider` substrate, the `agent_environment` sandbox, and the `session`/`session_message` run history — the one agent run-trigger, live session reads (poll + SSE), and the access-controlled trace facade.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * A provider-native session event preserved without field normalization.
14
+ * @export
15
+ * @interface AgentRemoteSessionEvent
16
+ */
17
+ export interface AgentRemoteSessionEvent {
18
+ /**
19
+ * The provider-assigned event identifier.
20
+ * @type {string}
21
+ * @memberof AgentRemoteSessionEvent
22
+ */
23
+ id?: string;
24
+ /**
25
+ * The provider-owned event discriminator.
26
+ * @type {string}
27
+ * @memberof AgentRemoteSessionEvent
28
+ */
29
+ type?: string;
30
+ }
31
+ /**
32
+ * Check if a given object implements the AgentRemoteSessionEvent interface.
33
+ */
34
+ export declare function instanceOfAgentRemoteSessionEvent(value: object): value is AgentRemoteSessionEvent;
35
+ export declare function AgentRemoteSessionEventFromJSON(json: any): AgentRemoteSessionEvent;
36
+ export declare function AgentRemoteSessionEventFromJSONTyped(json: any, ignoreDiscriminator: boolean): AgentRemoteSessionEvent;
37
+ export declare function AgentRemoteSessionEventToJSON(json: any): AgentRemoteSessionEvent;
38
+ export declare function AgentRemoteSessionEventToJSONTyped(value?: AgentRemoteSessionEvent | null, ignoreDiscriminator?: boolean): any;