@kitman-sh/sdk 0.6.0 → 0.7.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.
@@ -94,7 +94,7 @@ import {
94
94
  LoopCheckError2,
95
95
  checkLoop2,
96
96
  defineConfig2
97
- } from "../chunk-jnxc0c54.js";
97
+ } from "../chunk-zp7s46pz.js";
98
98
  export {
99
99
  ArtifactActivity2 as ArtifactActivity,
100
100
  ArtifactRequest2 as ArtifactRequest,
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"../chunk-jnxc0c54.js";
2
+ import"../chunk-zp7s46pz.js";
3
3
  import {
4
4
  JournalWriteFailed2,
5
5
  refusedStep2,
@@ -9,16 +9,22 @@ import {
9
9
  describeFlag2,
10
10
  Described2,
11
11
  programSecrets2,
12
+ programHostsEnv2,
13
+ undeclaredHostsEnv2,
14
+ networkGuard2,
12
15
  runPackage2
13
- } from "../chunk-f3d6cvkg.js";
16
+ } from "../chunk-7hwhxthh.js";
14
17
  export {
15
18
  Described2 as Described,
16
19
  JournalWriteFailed2 as JournalWriteFailed,
17
20
  describeFlag2 as describeFlag,
21
+ networkGuard2 as networkGuard,
22
+ programHostsEnv2 as programHostsEnv,
18
23
  programLease2 as programLease,
19
24
  programSecrets2 as programSecrets,
20
25
  refusedStep2 as refusedStep,
21
26
  rpcProgramJournal2 as rpcProgramJournal,
22
27
  runPackage2 as runPackage,
23
- runProgram2 as runProgram
28
+ runProgram2 as runProgram,
29
+ undeclaredHostsEnv2 as undeclaredHostsEnv
24
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitman-sh/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "exports": {
@@ -32,6 +32,7 @@ export declare const KitmanAgentCapabilities: readonly [{
32
32
  readonly sourceType: Schema.Literal<"manual">;
33
33
  readonly openTaskCount: Schema.Int;
34
34
  readonly blockedTaskCount: Schema.Int;
35
+ readonly createdAt: Schema.String;
35
36
  readonly updatedAt: Schema.String;
36
37
  }>>;
37
38
  }>;
@@ -58,6 +59,7 @@ export declare const KitmanAgentCapabilities: readonly [{
58
59
  readonly sourceType: Schema.Literal<"manual">;
59
60
  readonly openTaskCount: Schema.Int;
60
61
  readonly blockedTaskCount: Schema.Int;
62
+ readonly createdAt: Schema.String;
61
63
  readonly updatedAt: Schema.String;
62
64
  }>>;
63
65
  }>;
@@ -286,6 +288,10 @@ export declare const KitmanAgentCapabilities: readonly [{
286
288
  readonly kind: Schema.Literal<"ssh_agent">;
287
289
  }>]>>;
288
290
  readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
291
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
292
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
293
+ readonly message: Schema.optionalKey<Schema.String>;
294
+ }>>;
289
295
  readonly createdAt: Schema.String;
290
296
  readonly updatedAt: Schema.String;
291
297
  }>>;
@@ -351,6 +357,10 @@ export declare const KitmanAgentCapabilities: readonly [{
351
357
  readonly kind: Schema.Literal<"ssh_agent">;
352
358
  }>]>>;
353
359
  readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
360
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
361
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
362
+ readonly message: Schema.optionalKey<Schema.String>;
363
+ }>>;
354
364
  readonly createdAt: Schema.String;
355
365
  readonly updatedAt: Schema.String;
356
366
  }>;
@@ -8,6 +8,8 @@ export declare const AgentSandboxPolicy: Schema.Struct<{
8
8
  readonly writablePaths: Schema.$Array<Schema.String>;
9
9
  /** `~` is the Runner user's home directory. */
10
10
  readonly readDeniedPaths: Schema.$Array<Schema.String>;
11
+ /** Readable again inside `readDeniedPaths`; a denied path within one stays denied. */
12
+ readonly readAllowedPaths: Schema.$Array<Schema.String>;
11
13
  readonly network: Schema.Union<readonly [Schema.Struct<{
12
14
  readonly hosts: Schema.$Array<Schema.String>;
13
15
  }>, Schema.Literal<"open">]>;
@@ -1,11 +1,8 @@
1
- import type { CodeHostCapability } from './integration';
1
+ import { type CodeHostCapability } from './integration';
2
2
  type EnterpriseCodeHostSetup = {
3
3
  readonly provider: 'github' | 'gitlab';
4
4
  readonly host: string;
5
- readonly administratorOwned: boolean;
6
- readonly allowedHosts: readonly string[];
7
- readonly tls: {
8
- readonly verified: boolean;
5
+ readonly tls?: {
9
6
  readonly customCaRef?: string;
10
7
  };
11
8
  readonly capabilities: readonly CodeHostCapability[];
@@ -1,22 +1,21 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  export declare const ChangeRequestProvider: Schema.Literals<readonly ["github", "gitlab"]>;
3
3
  export declare const CodeHostCapability: Schema.Literals<readonly ["repository_read", "repository_write", "change_request_read", "change_request_write", "check_write", "webhook_manage"]>;
4
+ /** The environment variables a code-host connection may name for its custom CA. */
5
+ export declare const customCaReferencePattern: RegExp;
4
6
  export declare const CodeHostConnection: Schema.Struct<{
5
7
  readonly id: Schema.String;
6
8
  readonly workspaceId: Schema.String;
7
9
  readonly provider: Schema.Literals<readonly ["github", "gitlab"]>;
8
10
  readonly host: Schema.String;
9
- readonly authKind: Schema.Literals<readonly ["github_app", "gitlab_personal_access_token", "gitlab_group_token", "gitlab_project_token"]>;
11
+ readonly authKind: Schema.Literals<readonly ["github_app", "gitlab_personal_access_token", "gitlab_group_token", "gitlab_project_token", "gitlab_oauth"]>;
10
12
  readonly status: Schema.Literals<readonly ["connected", "degraded", "disconnected"]>;
11
13
  readonly externalAccountId: Schema.optionalKey<Schema.String>;
12
14
  readonly externalAccountLogin: Schema.optionalKey<Schema.String>;
13
15
  readonly capabilities: Schema.$Array<Schema.Literals<readonly ["repository_read", "repository_write", "change_request_read", "change_request_write", "check_write", "webhook_manage"]>>;
14
16
  readonly credentialConfigured: Schema.Boolean;
15
17
  readonly webhookActive: Schema.Boolean;
16
- readonly administratorOwned: Schema.Boolean;
17
- readonly allowedHosts: Schema.$Array<Schema.String>;
18
18
  readonly tls: Schema.Struct<{
19
- readonly verified: Schema.Literal<true>;
20
19
  readonly customCaRef: Schema.optionalKey<Schema.String>;
21
20
  }>;
22
21
  readonly supportEvidence: Schema.$Array<Schema.Struct<{
@@ -37,17 +36,14 @@ export declare const CodeHostConnectionList: Schema.Struct<{
37
36
  readonly workspaceId: Schema.String;
38
37
  readonly provider: Schema.Literals<readonly ["github", "gitlab"]>;
39
38
  readonly host: Schema.String;
40
- readonly authKind: Schema.Literals<readonly ["github_app", "gitlab_personal_access_token", "gitlab_group_token", "gitlab_project_token"]>;
39
+ readonly authKind: Schema.Literals<readonly ["github_app", "gitlab_personal_access_token", "gitlab_group_token", "gitlab_project_token", "gitlab_oauth"]>;
41
40
  readonly status: Schema.Literals<readonly ["connected", "degraded", "disconnected"]>;
42
41
  readonly externalAccountId: Schema.optionalKey<Schema.String>;
43
42
  readonly externalAccountLogin: Schema.optionalKey<Schema.String>;
44
43
  readonly capabilities: Schema.$Array<Schema.Literals<readonly ["repository_read", "repository_write", "change_request_read", "change_request_write", "check_write", "webhook_manage"]>>;
45
44
  readonly credentialConfigured: Schema.Boolean;
46
45
  readonly webhookActive: Schema.Boolean;
47
- readonly administratorOwned: Schema.Boolean;
48
- readonly allowedHosts: Schema.$Array<Schema.String>;
49
46
  readonly tls: Schema.Struct<{
50
- readonly verified: Schema.Literal<true>;
51
47
  readonly customCaRef: Schema.optionalKey<Schema.String>;
52
48
  }>;
53
49
  readonly supportEvidence: Schema.$Array<Schema.Struct<{
@@ -77,22 +73,43 @@ export declare const CodeHostConnectionWrite: Schema.Struct<{
77
73
  readonly expiresAt: Schema.optionalKey<Schema.String>;
78
74
  readonly scopes: Schema.optionalKey<Schema.$Array<Schema.String>>;
79
75
  readonly webhookActive: Schema.optionalKey<Schema.Boolean>;
80
- readonly administratorOwned: Schema.optionalKey<Schema.Boolean>;
81
- readonly allowedHosts: Schema.optionalKey<Schema.$Array<Schema.String>>;
82
76
  readonly tls: Schema.optionalKey<Schema.Struct<{
83
- readonly verified: Schema.Literal<true>;
84
77
  readonly customCaRef: Schema.optionalKey<Schema.String>;
85
78
  }>>;
86
79
  }>;
80
+ /** Where to send the person to install the deployment's GitHub App, carrying a signed `state`. */
81
+ export declare const GithubConnectStart: Schema.Struct<{
82
+ readonly url: Schema.String;
83
+ }>;
84
+ /** What GitHub hands back to the App's setup URL after an installation. */
85
+ export declare const GithubConnectComplete: Schema.Struct<{
86
+ readonly state: Schema.optionalKey<Schema.String>;
87
+ readonly code: Schema.optionalKey<Schema.String>;
88
+ readonly installationId: Schema.String;
89
+ }>;
90
+ export declare const GitlabConnectStart: Schema.Struct<{
91
+ readonly url: Schema.String;
92
+ }>;
93
+ /** What GitLab hands back to the OAuth redirect after the person authorizes Kitman. */
94
+ export declare const GitlabConnectComplete: Schema.Struct<{
95
+ readonly state: Schema.String;
96
+ readonly code: Schema.String;
97
+ }>;
98
+ /** The scopes a GitLab token needs for everything Kitman does with it, webhooks included. */
99
+ export declare const GitlabTokenScopes: readonly ['api'];
100
+ /** The instance's new personal access token page, with Kitman's name and scopes filled in. */
101
+ export declare function gitlabTokenPageUrl(host: string): string;
87
102
  export declare const CodeHostRepository: Schema.Struct<{
88
103
  readonly providerRepositoryId: Schema.String;
89
104
  readonly provider: Schema.Literals<readonly ["github", "gitlab"]>;
90
105
  readonly host: Schema.String;
91
106
  readonly owner: Schema.String;
92
107
  readonly name: Schema.String;
108
+ readonly fullPath: Schema.String;
93
109
  readonly repositoryUrl: Schema.String;
94
110
  readonly defaultTargetBranch: Schema.String;
95
111
  }>;
112
+ /** One page of the repositories a connection reaches, each saying whether the Workspace has bound it already. */
96
113
  export declare const CodeHostRepositoryList: Schema.Struct<{
97
114
  readonly items: Schema.$Array<Schema.Struct<{
98
115
  readonly providerRepositoryId: Schema.String;
@@ -100,8 +117,102 @@ export declare const CodeHostRepositoryList: Schema.Struct<{
100
117
  readonly host: Schema.String;
101
118
  readonly owner: Schema.String;
102
119
  readonly name: Schema.String;
120
+ readonly fullPath: Schema.String;
103
121
  readonly repositoryUrl: Schema.String;
104
122
  readonly defaultTargetBranch: Schema.String;
123
+ readonly bound: Schema.Boolean;
124
+ }>>;
125
+ readonly nextPage: Schema.optionalKey<Schema.Int>;
126
+ }>;
127
+ /** Repositories, by full path, to bind into one Project: an existing one, or a new one of this name. */
128
+ export declare const CodeHostRepositoryBind: Schema.Struct<{
129
+ readonly repositories: Schema.$Array<Schema.String>;
130
+ readonly project: Schema.Union<readonly [Schema.Struct<{
131
+ readonly projectId: Schema.String;
132
+ }>, Schema.Struct<{
133
+ readonly name: Schema.String;
134
+ }>]>;
135
+ }>;
136
+ /** The Project the repositories joined, those bound now, and those the Workspace had bound already and kept as they were. */
137
+ export declare const CodeHostRepositoryBindResult: Schema.Struct<{
138
+ readonly project: Schema.Struct<{
139
+ readonly id: Schema.String;
140
+ readonly workspaceId: Schema.String;
141
+ readonly name: Schema.String;
142
+ readonly slug: Schema.String;
143
+ readonly description: Schema.optionalKey<Schema.String>;
144
+ readonly sourceType: Schema.Literal<"manual">;
145
+ readonly openTaskCount: Schema.Int;
146
+ readonly blockedTaskCount: Schema.Int;
147
+ readonly createdAt: Schema.String;
148
+ readonly updatedAt: Schema.String;
149
+ readonly defaultStatusMapping: Schema.$Record<Schema.String, Schema.String>;
150
+ }>;
151
+ readonly bound: Schema.$Array<Schema.Struct<{
152
+ readonly id: Schema.String;
153
+ readonly workspaceId: Schema.String;
154
+ readonly projectId: Schema.String;
155
+ readonly provider: Schema.Union<readonly [Schema.Literal<"github">, Schema.Literal<"gitlab">, Schema.Literal<"generic_git">]>;
156
+ readonly host: Schema.String;
157
+ readonly owner: Schema.String;
158
+ readonly name: Schema.String;
159
+ readonly repositoryUrl: Schema.optionalKey<Schema.String>;
160
+ readonly pathPrefix: Schema.optionalKey<Schema.String>;
161
+ readonly defaultTargetBranch: Schema.String;
162
+ readonly expectedBranch: Schema.optionalKey<Schema.String>;
163
+ readonly expectedCommitSha: Schema.optionalKey<Schema.String>;
164
+ readonly credentialRefs: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
165
+ readonly kind: Schema.Literal<"none">;
166
+ }>, Schema.Struct<{
167
+ readonly kind: Schema.Literal<"local_env">;
168
+ readonly envName: Schema.String;
169
+ }>, Schema.Struct<{
170
+ readonly kind: Schema.Literal<"runner_secret">;
171
+ readonly runnerSecretName: Schema.String;
172
+ readonly providerType: Schema.Union<readonly [Schema.Literal<"env">, Schema.Literal<"file">, Schema.Literal<"exec">]>;
173
+ }>, Schema.Struct<{
174
+ readonly kind: Schema.Literal<"ssh_agent">;
175
+ }>]>>;
176
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
177
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
178
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
179
+ readonly message: Schema.optionalKey<Schema.String>;
180
+ }>>;
181
+ readonly createdAt: Schema.String;
182
+ readonly updatedAt: Schema.String;
183
+ }>>;
184
+ readonly alreadyBound: Schema.$Array<Schema.Struct<{
185
+ readonly id: Schema.String;
186
+ readonly workspaceId: Schema.String;
187
+ readonly projectId: Schema.String;
188
+ readonly provider: Schema.Union<readonly [Schema.Literal<"github">, Schema.Literal<"gitlab">, Schema.Literal<"generic_git">]>;
189
+ readonly host: Schema.String;
190
+ readonly owner: Schema.String;
191
+ readonly name: Schema.String;
192
+ readonly repositoryUrl: Schema.optionalKey<Schema.String>;
193
+ readonly pathPrefix: Schema.optionalKey<Schema.String>;
194
+ readonly defaultTargetBranch: Schema.String;
195
+ readonly expectedBranch: Schema.optionalKey<Schema.String>;
196
+ readonly expectedCommitSha: Schema.optionalKey<Schema.String>;
197
+ readonly credentialRefs: Schema.$Array<Schema.Union<readonly [Schema.Struct<{
198
+ readonly kind: Schema.Literal<"none">;
199
+ }>, Schema.Struct<{
200
+ readonly kind: Schema.Literal<"local_env">;
201
+ readonly envName: Schema.String;
202
+ }>, Schema.Struct<{
203
+ readonly kind: Schema.Literal<"runner_secret">;
204
+ readonly runnerSecretName: Schema.String;
205
+ readonly providerType: Schema.Union<readonly [Schema.Literal<"env">, Schema.Literal<"file">, Schema.Literal<"exec">]>;
206
+ }>, Schema.Struct<{
207
+ readonly kind: Schema.Literal<"ssh_agent">;
208
+ }>]>>;
209
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
210
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
211
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
212
+ readonly message: Schema.optionalKey<Schema.String>;
213
+ }>>;
214
+ readonly createdAt: Schema.String;
215
+ readonly updatedAt: Schema.String;
105
216
  }>>;
106
217
  }>;
107
218
  export declare const ChangeRequestProviderIntegrationMetadata: Schema.Struct<{
@@ -131,7 +242,14 @@ export type CodeHostCapability = (typeof CodeHostCapability)['Type'];
131
242
  export type CodeHostConnection = (typeof CodeHostConnection)['Type'];
132
243
  export type CodeHostConnectionList = (typeof CodeHostConnectionList)['Type'];
133
244
  export type CodeHostConnectionWrite = (typeof CodeHostConnectionWrite)['Type'];
245
+ export type GitlabConnectStart = GithubConnectStart;
246
+ export type GitlabConnectComplete = (typeof GitlabConnectComplete)['Type'];
247
+ export type GithubConnectStart = (typeof GithubConnectStart)['Type'];
248
+ export type GithubConnectComplete = (typeof GithubConnectComplete)['Type'];
134
249
  export type CodeHostRepository = (typeof CodeHostRepository)['Type'];
250
+ export type CodeHostRepositoryList = (typeof CodeHostRepositoryList)['Type'];
251
+ export type CodeHostRepositoryBind = (typeof CodeHostRepositoryBind)['Type'];
252
+ export type CodeHostRepositoryBindResult = (typeof CodeHostRepositoryBindResult)['Type'];
135
253
  export type ChangeRequestProviderIntegrationMetadata = (typeof ChangeRequestProviderIntegrationMetadata)['Type'];
136
254
  export type ProviderChangeRequestWebhookEvent = (typeof ProviderChangeRequestWebhookEvent)['Type'];
137
255
  export type ChangeRequestProviderWebhookReceipt = (typeof ChangeRequestProviderWebhookReceipt)['Type'];
@@ -26,6 +26,10 @@ export declare const LoopManifest: Schema.Struct<{
26
26
  readonly capabilities: Schema.$Array<Schema.Literals<readonly ["agent_work", "ask", "call", "verify", "change_request", "write_back", "post_comment", "create_tasks", "merge_change_request", "publish_release"]>>;
27
27
  /** The names of the Secrets the Loop reads. */
28
28
  readonly secrets: Schema.optionalKey<Schema.$Array<Schema.String>>;
29
+ /** The hosts the program calls besides Kitman, or `open`. */
30
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
31
+ readonly hosts: Schema.$Array<Schema.String>;
32
+ }>, Schema.Literal<"open">]>>;
29
33
  }>;
30
34
  export type LoopManifest = typeof LoopManifest.Type;
31
35
  /** An Agent as a Package declares it, with its instructions already read from the repository. */
@@ -137,6 +141,10 @@ export declare const PackageDeclarations: Schema.Struct<{
137
141
  readonly capabilities: Schema.$Array<Schema.Literals<readonly ["agent_work", "ask", "call", "verify", "change_request", "write_back", "post_comment", "create_tasks", "merge_change_request", "publish_release"]>>;
138
142
  /** The names of the Secrets the Loop reads. */
139
143
  readonly secrets: Schema.optionalKey<Schema.$Array<Schema.String>>;
144
+ /** The hosts the program calls besides Kitman, or `open`. */
145
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
146
+ readonly hosts: Schema.$Array<Schema.String>;
147
+ }>, Schema.Literal<"open">]>>;
140
148
  }>>;
141
149
  readonly agents: Schema.$Record<Schema.String, Schema.Struct<{
142
150
  readonly extends: Schema.optionalKey<Schema.String>;
@@ -22,6 +22,7 @@ export declare const ProjectDirectoryItem: Schema.Struct<{
22
22
  readonly sourceType: Schema.Literal<"manual">;
23
23
  readonly openTaskCount: Schema.Int;
24
24
  readonly blockedTaskCount: Schema.Int;
25
+ readonly createdAt: Schema.String;
25
26
  readonly updatedAt: Schema.String;
26
27
  }>;
27
28
  export declare const Project: Schema.Struct<{
@@ -33,9 +34,9 @@ export declare const Project: Schema.Struct<{
33
34
  readonly sourceType: Schema.Literal<"manual">;
34
35
  readonly openTaskCount: Schema.Int;
35
36
  readonly blockedTaskCount: Schema.Int;
37
+ readonly createdAt: Schema.String;
36
38
  readonly updatedAt: Schema.String;
37
39
  readonly defaultStatusMapping: Schema.$Record<Schema.String, Schema.String>;
38
- readonly createdAt: Schema.String;
39
40
  }>;
40
41
  export declare const ProjectCreate: Schema.Struct<{
41
42
  readonly name: Schema.String;
@@ -53,6 +54,7 @@ export declare const ProjectList: Schema.Struct<{
53
54
  readonly sourceType: Schema.Literal<"manual">;
54
55
  readonly openTaskCount: Schema.Int;
55
56
  readonly blockedTaskCount: Schema.Int;
57
+ readonly createdAt: Schema.String;
56
58
  readonly updatedAt: Schema.String;
57
59
  }>>;
58
60
  }>;
@@ -42,6 +42,10 @@ export declare const RepoBinding: Schema.Struct<{
42
42
  readonly kind: Schema.Literal<"ssh_agent">;
43
43
  }>]>>;
44
44
  readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
45
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
46
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
47
+ readonly message: Schema.optionalKey<Schema.String>;
48
+ }>>;
45
49
  readonly createdAt: Schema.String;
46
50
  readonly updatedAt: Schema.String;
47
51
  }>;
@@ -98,6 +102,10 @@ export declare const RepoBindingList: Schema.Struct<{
98
102
  readonly kind: Schema.Literal<"ssh_agent">;
99
103
  }>]>>;
100
104
  readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"disabled">]>;
105
+ readonly webhook: Schema.optionalKey<Schema.Struct<{
106
+ readonly status: Schema.Literals<readonly ["active", "missing"]>;
107
+ readonly message: Schema.optionalKey<Schema.String>;
108
+ }>>;
101
109
  readonly createdAt: Schema.String;
102
110
  readonly updatedAt: Schema.String;
103
111
  }>>;
@@ -1,4 +1,4 @@
1
- import type { Runner } from './runner';
1
+ import { type Runner, type RunnerCapabilities } from './runner';
2
2
  import type { RunnerExecutionRouting } from './runner-routing';
3
3
  export declare const RunnerEligibilityReasonCodes: readonly ['workspace_mismatch', 'project_access_denied', 'personal_owner_attribution_required', 'personal_owner_project_access_denied', 'agent_identity_authority_missing', 'foreground_target_required', 'foreground_target_mismatch', 'foreground_target_not_personal', 'runner_requirements_mismatch', 'runner_replica_unavailable'];
4
4
  export type RunnerEligibilityReasonCode = (typeof RunnerEligibilityReasonCodes)[number];
@@ -37,3 +37,7 @@ export interface RunnerEligibilityResult {
37
37
  * state before invoking this function.
38
38
  */
39
39
  export declare function evaluateRunnerEligibility(input: RunnerEligibilityInput): RunnerEligibilityResult;
40
+ /** The owner's choice while the Runner offers it, else the first offered of Pi, Claude Code and Codex. */
41
+ export declare function runnerDefaultHarness(harnesses: readonly string[], chosen: string | undefined): string | undefined;
42
+ /** The Harness this Runner would launch an Agent on, or undefined when the Agent's Step is not this Runner's. */
43
+ export declare function agentStepHarness(capabilities: Pick<RunnerCapabilities, 'harnesses' | 'defaultHarness'>, agentHarness: string | undefined): string | undefined;
@@ -35,8 +35,23 @@ export declare const RunnerSandboxUnavailable: Schema.Struct<{
35
35
  readonly missing: Schema.$Array<Schema.String>;
36
36
  }>;
37
37
  export type RunnerSandboxUnavailable = (typeof RunnerSandboxUnavailable)['Type'];
38
+ /** The Harnesses a Runner looks for, in the order its default is picked from (ADR-0067). */
39
+ export declare const DetectedHarnessIds: readonly ['pi', 'claude', 'codex'];
40
+ export type DetectedHarnessId = (typeof DetectedHarnessIds)[number];
41
+ /** A Harness a Runner looks for but does not offer, and what it lacks. */
42
+ export declare const RunnerHarnessUnavailable: Schema.Struct<{
43
+ readonly harness: Schema.String;
44
+ readonly missing: Schema.$Array<Schema.String>;
45
+ }>;
46
+ export type RunnerHarnessUnavailable = (typeof RunnerHarnessUnavailable)['Type'];
38
47
  export declare const RunnerCapabilities: Schema.Struct<{
39
48
  readonly harnesses: Schema.$Array<Schema.String>;
49
+ /** The Harness an Agent that names none launches on. */
50
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
51
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
52
+ readonly harness: Schema.String;
53
+ readonly missing: Schema.$Array<Schema.String>;
54
+ }>>>;
40
55
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
41
56
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
42
57
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -124,6 +139,12 @@ export declare const Runner: Schema.Struct<{
124
139
  readonly healthStatus: Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>;
125
140
  readonly capabilities: Schema.Struct<{
126
141
  readonly harnesses: Schema.$Array<Schema.String>;
142
+ /** The Harness an Agent that names none launches on. */
143
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
144
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
145
+ readonly harness: Schema.String;
146
+ readonly missing: Schema.$Array<Schema.String>;
147
+ }>>>;
127
148
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
128
149
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
129
150
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -190,6 +211,8 @@ export declare const Runner: Schema.Struct<{
190
211
  readonly maxRunSeconds: Schema.optionalKey<Schema.Finite>;
191
212
  }>>;
192
213
  }>;
214
+ /** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
215
+ readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
193
216
  readonly labels: Schema.$Array<Schema.String>;
194
217
  readonly lastHeartbeatAt: Schema.optionalKey<Schema.String>;
195
218
  readonly createdByUserId: Schema.optionalKey<Schema.String>;
@@ -220,6 +243,10 @@ export declare const RunnerRescope: Schema.Struct<{
220
243
  readonly ownerUserId: Schema.String;
221
244
  }>]>;
222
245
  }>;
246
+ /** The owner's default Harness for a Runner; null goes back to the first the Runner offers. */
247
+ export declare const RunnerDefaultHarnessInput: Schema.Struct<{
248
+ readonly harness: Schema.NullOr<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
249
+ }>;
223
250
  export declare const RunnerProjectGrantList: Schema.Struct<{
224
251
  readonly items: Schema.$Array<Schema.Struct<{
225
252
  readonly id: Schema.String;
@@ -413,6 +440,12 @@ export declare const RunnerCreate: Schema.Struct<{
413
440
  readonly credentialHostId: Schema.optionalKey<Schema.String>;
414
441
  readonly capabilities: Schema.optionalKey<Schema.Struct<{
415
442
  readonly harnesses: Schema.$Array<Schema.String>;
443
+ /** The Harness an Agent that names none launches on. */
444
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
445
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
446
+ readonly harness: Schema.String;
447
+ readonly missing: Schema.$Array<Schema.String>;
448
+ }>>>;
416
449
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
417
450
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
418
451
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -506,6 +539,12 @@ export declare const RunnerRegistrationResult: Schema.Struct<{
506
539
  readonly healthStatus: Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>;
507
540
  readonly capabilities: Schema.Struct<{
508
541
  readonly harnesses: Schema.$Array<Schema.String>;
542
+ /** The Harness an Agent that names none launches on. */
543
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
544
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
545
+ readonly harness: Schema.String;
546
+ readonly missing: Schema.$Array<Schema.String>;
547
+ }>>>;
509
548
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
510
549
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
511
550
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -572,6 +611,8 @@ export declare const RunnerRegistrationResult: Schema.Struct<{
572
611
  readonly maxRunSeconds: Schema.optionalKey<Schema.Finite>;
573
612
  }>>;
574
613
  }>;
614
+ /** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
615
+ readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
575
616
  readonly labels: Schema.$Array<Schema.String>;
576
617
  readonly lastHeartbeatAt: Schema.optionalKey<Schema.String>;
577
618
  readonly createdByUserId: Schema.optionalKey<Schema.String>;
@@ -595,6 +636,12 @@ export declare const RunnerHeartbeatInput: Schema.Struct<{
595
636
  readonly healthStatus: Schema.optionalKey<Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>>;
596
637
  readonly capabilities: Schema.optionalKey<Schema.Struct<{
597
638
  readonly harnesses: Schema.$Array<Schema.String>;
639
+ /** The Harness an Agent that names none launches on. */
640
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
641
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
642
+ readonly harness: Schema.String;
643
+ readonly missing: Schema.$Array<Schema.String>;
644
+ }>>>;
598
645
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
599
646
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
600
647
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -666,6 +713,12 @@ export declare const RunnerHeartbeatInput: Schema.Struct<{
666
713
  export declare const RunnerCapabilitiesUpdate: Schema.Struct<{
667
714
  readonly capabilities: Schema.Struct<{
668
715
  readonly harnesses: Schema.$Array<Schema.String>;
716
+ /** The Harness an Agent that names none launches on. */
717
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
718
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
719
+ readonly harness: Schema.String;
720
+ readonly missing: Schema.$Array<Schema.String>;
721
+ }>>>;
669
722
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
670
723
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
671
724
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -1324,6 +1377,12 @@ export declare const RunnerOperationsOverview: Schema.Struct<{
1324
1377
  readonly healthStatus: Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>;
1325
1378
  readonly capabilities: Schema.Struct<{
1326
1379
  readonly harnesses: Schema.$Array<Schema.String>;
1380
+ /** The Harness an Agent that names none launches on. */
1381
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
1382
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
1383
+ readonly harness: Schema.String;
1384
+ readonly missing: Schema.$Array<Schema.String>;
1385
+ }>>>;
1327
1386
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
1328
1387
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
1329
1388
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -1390,6 +1449,8 @@ export declare const RunnerOperationsOverview: Schema.Struct<{
1390
1449
  readonly maxRunSeconds: Schema.optionalKey<Schema.Finite>;
1391
1450
  }>>;
1392
1451
  }>;
1452
+ /** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
1453
+ readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
1393
1454
  readonly labels: Schema.$Array<Schema.String>;
1394
1455
  readonly lastHeartbeatAt: Schema.optionalKey<Schema.String>;
1395
1456
  readonly createdByUserId: Schema.optionalKey<Schema.String>;
@@ -1521,6 +1582,12 @@ export declare const RunnerOperationsLiveSnapshot: Schema.Struct<{
1521
1582
  readonly healthStatus: Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>;
1522
1583
  readonly capabilities: Schema.Struct<{
1523
1584
  readonly harnesses: Schema.$Array<Schema.String>;
1585
+ /** The Harness an Agent that names none launches on. */
1586
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
1587
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
1588
+ readonly harness: Schema.String;
1589
+ readonly missing: Schema.$Array<Schema.String>;
1590
+ }>>>;
1524
1591
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
1525
1592
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
1526
1593
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -1587,6 +1654,8 @@ export declare const RunnerOperationsLiveSnapshot: Schema.Struct<{
1587
1654
  readonly maxRunSeconds: Schema.optionalKey<Schema.Finite>;
1588
1655
  }>>;
1589
1656
  }>;
1657
+ /** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
1658
+ readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
1590
1659
  readonly labels: Schema.$Array<Schema.String>;
1591
1660
  readonly lastHeartbeatAt: Schema.optionalKey<Schema.String>;
1592
1661
  readonly createdByUserId: Schema.optionalKey<Schema.String>;
@@ -2263,6 +2332,12 @@ export declare const RunnerList: Schema.Struct<{
2263
2332
  readonly healthStatus: Schema.Union<readonly [Schema.Literal<"healthy">, Schema.Literal<"degraded">, Schema.Literal<"unhealthy">, Schema.Literal<"unknown">]>;
2264
2333
  readonly capabilities: Schema.Struct<{
2265
2334
  readonly harnesses: Schema.$Array<Schema.String>;
2335
+ /** The Harness an Agent that names none launches on. */
2336
+ readonly defaultHarness: Schema.optionalKey<Schema.String>;
2337
+ readonly harnessUnavailable: Schema.optionalKey<Schema.$Array<Schema.Struct<{
2338
+ readonly harness: Schema.String;
2339
+ readonly missing: Schema.$Array<Schema.String>;
2340
+ }>>>;
2266
2341
  readonly configWriters: Schema.$Array<Schema.Union<readonly [Schema.Literal<"opencode">, Schema.Literal<"claude-code">, Schema.Literal<"codex">, Schema.Literal<"pi">]>>;
2267
2342
  readonly mcpServers: Schema.optionalKey<Schema.$Array<Schema.String>>;
2268
2343
  readonly skillSources: Schema.optionalKey<Schema.$Array<Schema.String>>;
@@ -2329,6 +2404,8 @@ export declare const RunnerList: Schema.Struct<{
2329
2404
  readonly maxRunSeconds: Schema.optionalKey<Schema.Finite>;
2330
2405
  }>>;
2331
2406
  }>;
2407
+ /** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
2408
+ readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
2332
2409
  readonly labels: Schema.$Array<Schema.String>;
2333
2410
  readonly lastHeartbeatAt: Schema.optionalKey<Schema.String>;
2334
2411
  readonly createdByUserId: Schema.optionalKey<Schema.String>;
@@ -3567,6 +3644,7 @@ export type RunnerOwnership = (typeof RunnerOwnership)['Type'];
3567
3644
  export type RunnerProjectGrant = (typeof RunnerProjectGrant)['Type'];
3568
3645
  export type RunnerProjectGrantCreate = (typeof RunnerProjectGrantCreate)['Type'];
3569
3646
  export type RunnerRescope = (typeof RunnerRescope)['Type'];
3647
+ export type RunnerDefaultHarnessInput = (typeof RunnerDefaultHarnessInput)['Type'];
3570
3648
  export type RunnerProjectGrantList = (typeof RunnerProjectGrantList)['Type'];
3571
3649
  export type RunnerProjectGrantDeleteResult = (typeof RunnerProjectGrantDeleteResult)['Type'];
3572
3650
  export type RunnerExecutionBackend = (typeof RunnerExecutionBackend)['Type'];
@@ -127,6 +127,10 @@ export declare const OrchestrationWorkUnit: Schema.Struct<{
127
127
  readonly activities: Schema.$Record<Schema.String, Schema.Unknown>;
128
128
  readonly deferreds: Schema.$Record<Schema.String, Schema.Unknown>;
129
129
  }>;
130
+ /** The hosts the Loop declares besides Kitman, or `open`. */
131
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
132
+ readonly hosts: Schema.$Array<Schema.String>;
133
+ }>, Schema.Literal<"open">]>>;
130
134
  /** The Runner spawns the Run's bundle with this Loop id and credential. */
131
135
  readonly program: Schema.Struct<{
132
136
  readonly loopId: Schema.String;
@@ -156,6 +160,9 @@ export declare const ProgramWorkUnit: Schema.Struct<{
156
160
  readonly activities: Schema.$Record<Schema.String, Schema.Unknown>;
157
161
  readonly deferreds: Schema.$Record<Schema.String, Schema.Unknown>;
158
162
  }>;
163
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
164
+ readonly hosts: Schema.$Array<Schema.String>;
165
+ }>, Schema.Literal<"open">]>>;
159
166
  }>;
160
167
  export type ProgramWorkUnit = (typeof ProgramWorkUnit)['Type'];
161
168
  /** An approved verification as Kitman holds it for a RepoBinding; never read from the branch. */
@@ -223,6 +230,10 @@ export declare const WorkUnit: Schema.Union<readonly [Schema.Struct<{
223
230
  readonly activities: Schema.$Record<Schema.String, Schema.Unknown>;
224
231
  readonly deferreds: Schema.$Record<Schema.String, Schema.Unknown>;
225
232
  }>;
233
+ /** The hosts the Loop declares besides Kitman, or `open`. */
234
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
235
+ readonly hosts: Schema.$Array<Schema.String>;
236
+ }>, Schema.Literal<"open">]>>;
226
237
  /** The Runner spawns the Run's bundle with this Loop id and credential. */
227
238
  readonly program: Schema.Struct<{
228
239
  readonly loopId: Schema.String;
@@ -350,6 +361,10 @@ export declare const WorkUnitClaimResult: Schema.Struct<{
350
361
  readonly activities: Schema.$Record<Schema.String, Schema.Unknown>;
351
362
  readonly deferreds: Schema.$Record<Schema.String, Schema.Unknown>;
352
363
  }>;
364
+ /** The hosts the Loop declares besides Kitman, or `open`. */
365
+ readonly network: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
366
+ readonly hosts: Schema.$Array<Schema.String>;
367
+ }>, Schema.Literal<"open">]>>;
353
368
  /** The Runner spawns the Run's bundle with this Loop id and credential. */
354
369
  readonly program: Schema.Struct<{
355
370
  readonly loopId: Schema.String;