@claudexor/schema 3.6.0 → 3.8.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 (125) hide show
  1. package/dist/agent-capabilities.d.ts +48 -16
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +4 -0
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/config.d.ts +30 -28
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +7 -6
  8. package/dist/config.js.map +1 -1
  9. package/dist/control-harness-list.d.ts +215 -19
  10. package/dist/control-harness-list.d.ts.map +1 -1
  11. package/dist/control-operation-responses.d.ts +16 -13
  12. package/dist/control-operation-responses.d.ts.map +1 -1
  13. package/dist/control-run-detail.d.ts +33 -46
  14. package/dist/control-run-detail.d.ts.map +1 -1
  15. package/dist/control-run-detail.js +10 -19
  16. package/dist/control-run-detail.js.map +1 -1
  17. package/dist/control-run-execution.d.ts +16 -0
  18. package/dist/control-run-execution.d.ts.map +1 -0
  19. package/dist/control-run-execution.js +19 -0
  20. package/dist/control-run-execution.js.map +1 -0
  21. package/dist/control-run-failure.d.ts +4 -4
  22. package/dist/control-run-failure.d.ts.map +1 -1
  23. package/dist/control-run-failure.js +6 -4
  24. package/dist/control-run-failure.js.map +1 -1
  25. package/dist/control-run-retry.d.ts +21 -0
  26. package/dist/control-run-retry.d.ts.map +1 -1
  27. package/dist/control-run-retry.js +6 -0
  28. package/dist/control-run-retry.js.map +1 -1
  29. package/dist/control-trust.d.ts +13 -13
  30. package/dist/control.d.ts +365 -36
  31. package/dist/control.d.ts.map +1 -1
  32. package/dist/control.js +12 -18
  33. package/dist/control.js.map +1 -1
  34. package/dist/credential-profile-snapshot.d.ts +486 -52
  35. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  36. package/dist/credential-profile.d.ts +113 -42
  37. package/dist/credential-profile.d.ts.map +1 -1
  38. package/dist/credential-profile.js +58 -30
  39. package/dist/credential-profile.js.map +1 -1
  40. package/dist/harness-confinement.d.ts +37 -30
  41. package/dist/harness-confinement.d.ts.map +1 -1
  42. package/dist/harness-confinement.js +18 -26
  43. package/dist/harness-confinement.js.map +1 -1
  44. package/dist/harness.d.ts +265 -102
  45. package/dist/harness.d.ts.map +1 -1
  46. package/dist/harness.js +3 -38
  47. package/dist/harness.js.map +1 -1
  48. package/dist/mcp-run-result.d.ts +10 -10
  49. package/dist/platform-auth.d.ts +196 -0
  50. package/dist/platform-auth.d.ts.map +1 -0
  51. package/dist/platform-auth.js +142 -0
  52. package/dist/platform-auth.js.map +1 -0
  53. package/dist/primitives.d.ts +6 -1
  54. package/dist/primitives.d.ts.map +1 -1
  55. package/dist/primitives.js +8 -2
  56. package/dist/primitives.js.map +1 -1
  57. package/dist/quota.d.ts +9 -9
  58. package/dist/quota.d.ts.map +1 -1
  59. package/dist/quota.js +3 -0
  60. package/dist/quota.js.map +1 -1
  61. package/dist/readiness.d.ts +192 -15
  62. package/dist/readiness.d.ts.map +1 -1
  63. package/dist/readiness.js +12 -0
  64. package/dist/readiness.js.map +1 -1
  65. package/dist/run-strategy.d.ts +51 -3
  66. package/dist/run-strategy.d.ts.map +1 -1
  67. package/dist/run-strategy.js +58 -2
  68. package/dist/run-strategy.js.map +1 -1
  69. package/dist/setup-login.d.ts +5 -5
  70. package/dist/setup.d.ts +102 -95
  71. package/dist/setup.d.ts.map +1 -1
  72. package/dist/setup.js +29 -5
  73. package/dist/setup.js.map +1 -1
  74. package/dist/task.d.ts +641 -19
  75. package/dist/task.d.ts.map +1 -1
  76. package/dist/task.js +40 -5
  77. package/dist/task.js.map +1 -1
  78. package/dist/telemetry.d.ts +2 -2
  79. package/dist/telemetry.js +3 -3
  80. package/dist/telemetry.js.map +1 -1
  81. package/dist/thread.d.ts +1 -1
  82. package/dist/thread.js +2 -2
  83. package/dist/thread.js.map +1 -1
  84. package/generated/AgentCapabilityCatalog.schema.json +27 -2
  85. package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
  86. package/generated/ControlCredentialProfileCreateResponse.schema.json +13 -4
  87. package/generated/ControlCredentialProfileDeleteResponse.schema.json +27 -3
  88. package/generated/ControlCredentialProfileUpdateResponse.schema.json +13 -4
  89. package/generated/ControlCredentialProfilesQueryResponse.schema.json +142 -8
  90. package/generated/ControlCredentialProfilesResponse.schema.json +13 -4
  91. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +142 -8
  92. package/generated/ControlHarnessListResponse.schema.json +127 -3
  93. package/generated/ControlQuotaResponse.schema.json +2 -1
  94. package/generated/ControlRunAgainDraft.schema.json +20 -3
  95. package/generated/ControlRunDetail.schema.json +10 -8
  96. package/generated/ControlRunListResponse.schema.json +6 -4
  97. package/generated/ControlRunStartRequest.schema.json +5 -2
  98. package/generated/ControlRunSummary.schema.json +6 -4
  99. package/generated/ControlSetupJob.schema.json +5 -1
  100. package/generated/ControlSetupJobCreateRequest.schema.json +1 -1
  101. package/generated/ControlSetupJobEvent.schema.json +5 -1
  102. package/generated/ControlSetupJobListResponse.schema.json +5 -1
  103. package/generated/ControlSetupJobSnapshot.schema.json +5 -1
  104. package/generated/ControlThread.schema.json +3 -3
  105. package/generated/ControlThreadCreateRequest.schema.json +0 -1
  106. package/generated/ControlThreadDetail.schema.json +3 -3
  107. package/generated/ControlThreadListResponse.schema.json +3 -3
  108. package/generated/ControlThreadTurnRequest.schema.json +0 -1
  109. package/generated/ControlThreadUpdateRequest.schema.json +1 -2
  110. package/generated/ControlTrustListResponse.schema.json +0 -1
  111. package/generated/ControlTrustState.schema.json +0 -1
  112. package/generated/ControlTrustUpdateRequest.schema.json +0 -1
  113. package/generated/CredentialProfile.schema.json +3 -3
  114. package/generated/CredentialProfileStatus.schema.json +10 -1
  115. package/generated/GlobalConfig.schema.json +4 -4
  116. package/generated/HarnessManifest.schema.json +101 -3
  117. package/generated/HarnessStatusDto.schema.json +127 -3
  118. package/generated/McpRunHandleResult.schema.json +4 -2
  119. package/generated/McpRunToolResult.schema.json +4 -2
  120. package/generated/RunFailure.schema.json +4 -2
  121. package/generated/RunTelemetry.schema.json +5 -5
  122. package/generated/TaskContract.schema.json +8 -8
  123. package/generated/Thread.schema.json +3 -3
  124. package/generated/TrustConfig.schema.json +0 -2
  125. package/package.json +2 -2
@@ -1,4 +1,13 @@
1
1
  import { z } from "zod/v3";
2
+ /** Effective host login flow a thin client may request for one harness. */
3
+ export declare const SetupLoginCapability: z.ZodObject<{
4
+ mode: z.ZodEnum<["in_app", "external_terminal"]>;
5
+ }, "strict", z.ZodTypeAny, {
6
+ mode: "external_terminal" | "in_app";
7
+ }, {
8
+ mode: "external_terminal" | "in_app";
9
+ }>;
10
+ export type SetupLoginCapability = z.infer<typeof SetupLoginCapability>;
2
11
  /**
3
12
  * ONE display-ready readiness check (W4.7 sol #18): the daemon normalizes raw
4
13
  * doctor probes, auth-source readiness, and the configured-model verdict into
@@ -38,22 +47,51 @@ export declare const HarnessStatusDto: z.ZodObject<{
38
47
  adapter_version: z.ZodOptional<z.ZodString>;
39
48
  provider_family: z.ZodDefault<z.ZodEnum<["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"]>>;
40
49
  capability_profile: z.ZodDefault<z.ZodObject<{
41
- auth: z.ZodDefault<z.ZodObject<{
50
+ auth: z.ZodDefault<z.ZodEffects<z.ZodObject<{
42
51
  supported_sources: z.ZodDefault<z.ZodArray<z.ZodEnum<["native_session", "oauth_token_env", "api_key_env", "api_key_flag", "provider_auth_file", "none"]>, "many">>;
43
52
  preferred_source: z.ZodDefault<z.ZodNullable<z.ZodEnum<["native_session", "oauth_token_env", "api_key_env", "api_key_flag", "provider_auth_file", "none"]>>>;
44
53
  credential_transports: z.ZodDefault<z.ZodArray<z.ZodObject<{
45
54
  source: z.ZodEnum<["native_session", "oauth_token_env", "api_key_env", "api_key_flag", "provider_auth_file", "none"]>;
46
55
  kind: z.ZodEnum<["config_file", "env_var", "oauth_token_env", "os_keychain", "http_header", "none"]>;
47
56
  relocatable_by: z.ZodDefault<z.ZodArray<z.ZodEnum<["HOME", "CONFIG_DIR", "ENV", "none"]>, "many">>;
57
+ platforms: z.ZodEffects<z.ZodOptional<z.ZodArray<z.ZodEnum<["darwin", "linux", "win32"]>, "many">>, ("darwin" | "linux" | "win32")[] | undefined, ("darwin" | "linux" | "win32")[] | undefined>;
48
58
  }, "strip", z.ZodTypeAny, {
49
59
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
50
60
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
51
61
  relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
62
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
52
63
  }, {
53
64
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
54
65
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
55
66
  relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
67
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
68
+ }>, "many">>;
69
+ credential_profile_policies: z.ZodOptional<z.ZodArray<z.ZodObject<{
70
+ source: z.ZodEnum<["native_session", "oauth_token_env", "api_key_env", "api_key_flag", "provider_auth_file", "none"]>;
71
+ platforms: z.ZodEffects<z.ZodArray<z.ZodEnum<["darwin", "linux", "win32"]>, "many">, ("darwin" | "linux" | "win32")[], ("darwin" | "linux" | "win32")[]>;
72
+ identity_scope: z.ZodEnum<["profile", "os_user"]>;
73
+ max_enabled_profiles: z.ZodNullable<z.ZodNumber>;
74
+ cleanup_owner: z.ZodEnum<["claudexor", "vendor"]>;
75
+ }, "strict", z.ZodTypeAny, {
76
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
77
+ platforms: ("darwin" | "linux" | "win32")[];
78
+ identity_scope: "os_user" | "profile";
79
+ max_enabled_profiles: number | null;
80
+ cleanup_owner: "claudexor" | "vendor";
81
+ }, {
82
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
83
+ platforms: ("darwin" | "linux" | "win32")[];
84
+ identity_scope: "os_user" | "profile";
85
+ max_enabled_profiles: number | null;
86
+ cleanup_owner: "claudexor" | "vendor";
56
87
  }>, "many">>;
88
+ managed_login: z.ZodOptional<z.ZodNullable<z.ZodObject<{
89
+ stdin: z.ZodEnum<["none", "pipe", "terminal"]>;
90
+ }, "strict", z.ZodTypeAny, {
91
+ stdin: "none" | "pipe" | "terminal";
92
+ }, {
93
+ stdin: "none" | "pipe" | "terminal";
94
+ }>>>;
57
95
  }, "strip", z.ZodTypeAny, {
58
96
  supported_sources: ("api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file")[];
59
97
  preferred_source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file" | null;
@@ -61,7 +99,56 @@ export declare const HarnessStatusDto: z.ZodObject<{
61
99
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
62
100
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
63
101
  relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
102
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
103
+ }[];
104
+ credential_profile_policies?: {
105
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
106
+ platforms: ("darwin" | "linux" | "win32")[];
107
+ identity_scope: "os_user" | "profile";
108
+ max_enabled_profiles: number | null;
109
+ cleanup_owner: "claudexor" | "vendor";
110
+ }[] | undefined;
111
+ managed_login?: {
112
+ stdin: "none" | "pipe" | "terminal";
113
+ } | null | undefined;
114
+ }, {
115
+ supported_sources?: ("api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file")[] | undefined;
116
+ preferred_source?: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file" | null | undefined;
117
+ credential_transports?: {
118
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
119
+ kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
120
+ relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
121
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
122
+ }[] | undefined;
123
+ credential_profile_policies?: {
124
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
125
+ platforms: ("darwin" | "linux" | "win32")[];
126
+ identity_scope: "os_user" | "profile";
127
+ max_enabled_profiles: number | null;
128
+ cleanup_owner: "claudexor" | "vendor";
129
+ }[] | undefined;
130
+ managed_login?: {
131
+ stdin: "none" | "pipe" | "terminal";
132
+ } | null | undefined;
133
+ }>, {
134
+ supported_sources: ("api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file")[];
135
+ preferred_source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file" | null;
136
+ credential_transports: {
137
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
138
+ kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
139
+ relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
140
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
64
141
  }[];
142
+ credential_profile_policies?: {
143
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
144
+ platforms: ("darwin" | "linux" | "win32")[];
145
+ identity_scope: "os_user" | "profile";
146
+ max_enabled_profiles: number | null;
147
+ cleanup_owner: "claudexor" | "vendor";
148
+ }[] | undefined;
149
+ managed_login?: {
150
+ stdin: "none" | "pipe" | "terminal";
151
+ } | null | undefined;
65
152
  }, {
66
153
  supported_sources?: ("api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file")[] | undefined;
67
154
  preferred_source?: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file" | null | undefined;
@@ -69,7 +156,18 @@ export declare const HarnessStatusDto: z.ZodObject<{
69
156
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
70
157
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
71
158
  relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
159
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
160
+ }[] | undefined;
161
+ credential_profile_policies?: {
162
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
163
+ platforms: ("darwin" | "linux" | "win32")[];
164
+ identity_scope: "os_user" | "profile";
165
+ max_enabled_profiles: number | null;
166
+ cleanup_owner: "claudexor" | "vendor";
72
167
  }[] | undefined;
168
+ managed_login?: {
169
+ stdin: "none" | "pipe" | "terminal";
170
+ } | null | undefined;
73
171
  }>>;
74
172
  access_control: z.ZodDefault<z.ZodObject<{
75
173
  readonly_mechanism: z.ZodDefault<z.ZodEnum<["fs_sandbox", "permission_deny", "tool_allowlist", "none"]>>;
@@ -79,11 +177,11 @@ export declare const HarnessStatusDto: z.ZodObject<{
79
177
  readonly_mechanism?: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist" | undefined;
80
178
  }>>;
81
179
  isolation: z.ZodDefault<z.ZodObject<{
82
- supported_containment: z.ZodDefault<z.ZodArray<z.ZodEnum<["env_or_file_injection", "scoped_home_keychain_bridge", "host_user_context", "process_sandbox", "container"]>, "many">>;
180
+ supported_containment: z.ZodDefault<z.ZodArray<z.ZodEnum<["env_or_file_injection", "scoped_home_keychain_bridge", "private_per_profile_keychain", "host_user_context", "process_sandbox", "container"]>, "many">>;
83
181
  }, "strip", z.ZodTypeAny, {
84
- supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[];
182
+ supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[];
85
183
  }, {
86
- supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
184
+ supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
87
185
  }>>;
88
186
  attachment_inputs: z.ZodDefault<z.ZodArray<z.ZodObject<{
89
187
  kind: z.ZodEnum<["image", "file"]>;
@@ -114,13 +212,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
114
212
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
115
213
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
116
214
  relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
215
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
117
216
  }[];
217
+ credential_profile_policies?: {
218
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
219
+ platforms: ("darwin" | "linux" | "win32")[];
220
+ identity_scope: "os_user" | "profile";
221
+ max_enabled_profiles: number | null;
222
+ cleanup_owner: "claudexor" | "vendor";
223
+ }[] | undefined;
224
+ managed_login?: {
225
+ stdin: "none" | "pipe" | "terminal";
226
+ } | null | undefined;
118
227
  };
119
228
  access_control: {
120
229
  readonly_mechanism: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist";
121
230
  };
122
231
  isolation: {
123
- supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[];
232
+ supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[];
124
233
  };
125
234
  attachment_inputs: {
126
235
  kind: "file" | "image";
@@ -139,13 +248,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
139
248
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
140
249
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
141
250
  relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
251
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
142
252
  }[] | undefined;
253
+ credential_profile_policies?: {
254
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
255
+ platforms: ("darwin" | "linux" | "win32")[];
256
+ identity_scope: "os_user" | "profile";
257
+ max_enabled_profiles: number | null;
258
+ cleanup_owner: "claudexor" | "vendor";
259
+ }[] | undefined;
260
+ managed_login?: {
261
+ stdin: "none" | "pipe" | "terminal";
262
+ } | null | undefined;
143
263
  } | undefined;
144
264
  access_control?: {
145
265
  readonly_mechanism?: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist" | undefined;
146
266
  } | undefined;
147
267
  isolation?: {
148
- supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
268
+ supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
149
269
  } | undefined;
150
270
  attachment_inputs?: {
151
271
  kind: "file" | "image";
@@ -255,7 +375,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
255
375
  known_models_verified_against?: string | null | undefined;
256
376
  }>;
257
377
  auth_modes: z.ZodDefault<z.ZodArray<z.ZodEnum<["local_session", "api_key", "none"]>, "many">>;
258
- access_profiles_supported: z.ZodDefault<z.ZodArray<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>, "many">>;
378
+ access_profiles_supported: z.ZodDefault<z.ZodArray<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>, "many">>;
259
379
  }, "strip", z.ZodTypeAny, {
260
380
  id: string;
261
381
  display_name: string;
@@ -271,13 +391,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
271
391
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
272
392
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
273
393
  relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
394
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
274
395
  }[];
396
+ credential_profile_policies?: {
397
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
398
+ platforms: ("darwin" | "linux" | "win32")[];
399
+ identity_scope: "os_user" | "profile";
400
+ max_enabled_profiles: number | null;
401
+ cleanup_owner: "claudexor" | "vendor";
402
+ }[] | undefined;
403
+ managed_login?: {
404
+ stdin: "none" | "pipe" | "terminal";
405
+ } | null | undefined;
275
406
  };
276
407
  access_control: {
277
408
  readonly_mechanism: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist";
278
409
  };
279
410
  isolation: {
280
- supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[];
411
+ supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[];
281
412
  };
282
413
  attachment_inputs: {
283
414
  kind: "file" | "image";
@@ -319,7 +450,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
319
450
  known_models_verified_against: string | null;
320
451
  };
321
452
  auth_modes: ("api_key" | "local_session" | "none")[];
322
- access_profiles_supported: ("external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write")[];
453
+ access_profiles_supported: ("full" | "inherit_native" | "readonly" | "workspace_write")[];
323
454
  }, {
324
455
  id: string;
325
456
  display_name: string;
@@ -335,13 +466,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
335
466
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
336
467
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
337
468
  relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
469
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
470
+ }[] | undefined;
471
+ credential_profile_policies?: {
472
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
473
+ platforms: ("darwin" | "linux" | "win32")[];
474
+ identity_scope: "os_user" | "profile";
475
+ max_enabled_profiles: number | null;
476
+ cleanup_owner: "claudexor" | "vendor";
338
477
  }[] | undefined;
478
+ managed_login?: {
479
+ stdin: "none" | "pipe" | "terminal";
480
+ } | null | undefined;
339
481
  } | undefined;
340
482
  access_control?: {
341
483
  readonly_mechanism?: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist" | undefined;
342
484
  } | undefined;
343
485
  isolation?: {
344
- supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
486
+ supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
345
487
  } | undefined;
346
488
  attachment_inputs?: {
347
489
  kind: "file" | "image";
@@ -383,7 +525,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
383
525
  known_models_verified_against?: string | null | undefined;
384
526
  };
385
527
  auth_modes?: ("api_key" | "local_session" | "none")[] | undefined;
386
- access_profiles_supported?: ("external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write")[] | undefined;
528
+ access_profiles_supported?: ("full" | "inherit_native" | "readonly" | "workspace_write")[] | undefined;
387
529
  }>>>;
388
530
  enabledIntents: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
389
531
  /** Intents this harness is ACTUALLY routable for right now: enabledIntents
@@ -487,6 +629,13 @@ export declare const HarnessStatusDto: z.ZodObject<{
487
629
  remediation?: string | null | undefined;
488
630
  requiresFullAccess?: boolean | undefined;
489
631
  }>>>;
632
+ setupLogin: z.ZodOptional<z.ZodNullable<z.ZodObject<{
633
+ mode: z.ZodEnum<["in_app", "external_terminal"]>;
634
+ }, "strict", z.ZodTypeAny, {
635
+ mode: "external_terminal" | "in_app";
636
+ }, {
637
+ mode: "external_terminal" | "in_app";
638
+ }>>>;
490
639
  }, "strip", z.ZodTypeAny, {
491
640
  id: string;
492
641
  status: "degraded" | "ok" | "unavailable";
@@ -505,13 +654,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
505
654
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
506
655
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
507
656
  relocatable_by: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[];
657
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
508
658
  }[];
659
+ credential_profile_policies?: {
660
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
661
+ platforms: ("darwin" | "linux" | "win32")[];
662
+ identity_scope: "os_user" | "profile";
663
+ max_enabled_profiles: number | null;
664
+ cleanup_owner: "claudexor" | "vendor";
665
+ }[] | undefined;
666
+ managed_login?: {
667
+ stdin: "none" | "pipe" | "terminal";
668
+ } | null | undefined;
509
669
  };
510
670
  access_control: {
511
671
  readonly_mechanism: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist";
512
672
  };
513
673
  isolation: {
514
- supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[];
674
+ supported_containment: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[];
515
675
  };
516
676
  attachment_inputs: {
517
677
  kind: "file" | "image";
@@ -553,7 +713,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
553
713
  known_models_verified_against: string | null;
554
714
  };
555
715
  auth_modes: ("api_key" | "local_session" | "none")[];
556
- access_profiles_supported: ("external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write")[];
716
+ access_profiles_supported: ("full" | "inherit_native" | "readonly" | "workspace_write")[];
557
717
  } | null | undefined;
558
718
  enabledIntents: string[];
559
719
  routableIntents: string[];
@@ -589,6 +749,9 @@ export declare const HarnessStatusDto: z.ZodObject<{
589
749
  remediation: string | null;
590
750
  requiresFullAccess: boolean;
591
751
  } | null;
752
+ setupLogin?: {
753
+ mode: "external_terminal" | "in_app";
754
+ } | null | undefined;
592
755
  }, {
593
756
  id: string;
594
757
  status: "degraded" | "ok" | "unavailable";
@@ -607,13 +770,24 @@ export declare const HarnessStatusDto: z.ZodObject<{
607
770
  source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
608
771
  kind: "config_file" | "env_var" | "http_header" | "none" | "oauth_token_env" | "os_keychain";
609
772
  relocatable_by?: ("CONFIG_DIR" | "ENV" | "HOME" | "none")[] | undefined;
773
+ platforms?: ("darwin" | "linux" | "win32")[] | undefined;
610
774
  }[] | undefined;
775
+ credential_profile_policies?: {
776
+ source: "api_key_env" | "api_key_flag" | "native_session" | "none" | "oauth_token_env" | "provider_auth_file";
777
+ platforms: ("darwin" | "linux" | "win32")[];
778
+ identity_scope: "os_user" | "profile";
779
+ max_enabled_profiles: number | null;
780
+ cleanup_owner: "claudexor" | "vendor";
781
+ }[] | undefined;
782
+ managed_login?: {
783
+ stdin: "none" | "pipe" | "terminal";
784
+ } | null | undefined;
611
785
  } | undefined;
612
786
  access_control?: {
613
787
  readonly_mechanism?: "fs_sandbox" | "none" | "permission_deny" | "tool_allowlist" | undefined;
614
788
  } | undefined;
615
789
  isolation?: {
616
- supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
790
+ supported_containment?: ("container" | "env_or_file_injection" | "host_user_context" | "private_per_profile_keychain" | "process_sandbox" | "scoped_home_keychain_bridge")[] | undefined;
617
791
  } | undefined;
618
792
  attachment_inputs?: {
619
793
  kind: "file" | "image";
@@ -655,7 +829,7 @@ export declare const HarnessStatusDto: z.ZodObject<{
655
829
  known_models_verified_against?: string | null | undefined;
656
830
  };
657
831
  auth_modes?: ("api_key" | "local_session" | "none")[] | undefined;
658
- access_profiles_supported?: ("external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write")[] | undefined;
832
+ access_profiles_supported?: ("full" | "inherit_native" | "readonly" | "workspace_write")[] | undefined;
659
833
  } | null | undefined;
660
834
  enabledIntents?: string[] | undefined;
661
835
  routableIntents?: string[] | undefined;
@@ -691,6 +865,9 @@ export declare const HarnessStatusDto: z.ZodObject<{
691
865
  remediation?: string | null | undefined;
692
866
  requiresFullAccess?: boolean | undefined;
693
867
  } | null | undefined;
868
+ setupLogin?: {
869
+ mode: "external_terminal" | "in_app";
870
+ } | null | undefined;
694
871
  }>;
695
872
  export type HarnessStatusDto = z.infer<typeof HarnessStatusDto>;
696
873
  //# sourceMappingURL=readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAgB2C,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWzB;;;yEAGqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBrE;2EACuE;;;;;;;;;;;;;;;;;;;;IAKvE,+DAA+D;;IAM/D;;qDAEiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlD,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB;;;;;;EAS8C,CAAC;AAChF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;EAgB2C,CAAC;AAC1E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWzB;;;yEAGqE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBrE;2EACuE;;;;;;;;;;;;;;;;;;;;IAKvE,+DAA+D;;IAM/D;;qDAEiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BlD,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
package/dist/readiness.js CHANGED
@@ -2,6 +2,15 @@ import { z } from "zod/v3";
2
2
  import { AdapterStatus, ConformanceCheck, HarnessManifest } from "./harness.js";
3
3
  import { AuthSourceReadiness } from "./auth.js";
4
4
  import { DelegationCapability } from "./delegation.js";
5
+ /** Effective host login flow a thin client may request for one harness. */
6
+ export const SetupLoginCapability = z
7
+ .object({
8
+ mode: z
9
+ .enum(["in_app", "external_terminal"])
10
+ .describe("in_app requests the daemon-hosted login flow; external_terminal requests the existing client PTY flow."),
11
+ })
12
+ .strict()
13
+ .describe("Effective setup-login flow for this harness on the current host.");
5
14
  /**
6
15
  * ONE display-ready readiness check (W4.7 sol #18): the daemon normalizes raw
7
16
  * doctor probes, auth-source readiness, and the configured-model verdict into
@@ -86,6 +95,9 @@ export const HarnessStatusDto = z
86
95
  delegation: DelegationCapability.nullable()
87
96
  .default(null)
88
97
  .describe("Engine-owned Delegate capability for this harness and installed runtime; null on legacy status rows."),
98
+ setupLogin: SetupLoginCapability.nullable()
99
+ .optional()
100
+ .describe("Effective setup-login flow for this harness on the current host; current producers emit null or an object, while omission identifies a legacy row."),
89
101
  })
90
102
  .describe("Doctor-backed status row for one harness: status, intents, checks, and configured-model validity.");
91
103
  //# sourceMappingURL=readiness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readiness.js","sourceRoot":"","sources":["../src/readiness.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,48 @@
1
- import type { ModeKind } from "./primitives.js";
1
+ import type { AccessProfile, ModeKind } from "./primitives.js";
2
+ /**
3
+ * Resolve the requested/effective access pair once for every run producer.
4
+ * Ask and Plan clamp to readonly; Agent inherits the configured default only
5
+ * when the caller omitted an explicit access profile.
6
+ */
7
+ export declare function resolveRunAccess(value: {
8
+ mode?: ModeKind;
9
+ access?: AccessProfile;
10
+ }, accessDefault: AccessProfile): {
11
+ requested: AccessProfile;
12
+ effective: AccessProfile;
13
+ };
14
+ export interface RunAccessStrategyViolation {
15
+ code: "strategy_access_incompatible";
16
+ message: string;
17
+ retryable: false;
18
+ requiredActions: readonly [string];
19
+ }
20
+ export interface RunExecutionWorkspaceViolation {
21
+ code: "execution_workspace_required";
22
+ message: string;
23
+ retryable: false;
24
+ requiredActions: readonly [string];
25
+ }
26
+ /**
27
+ * A fresh delegated live write must name the caller-owned execution tree.
28
+ * Exact Retry may replay the bounded historical shape whose stable scope root
29
+ * was itself the frozen execution tree.
30
+ */
31
+ export declare function runExecutionWorkspaceViolation(value: {
32
+ mode?: ModeKind;
33
+ retryOf?: string | null;
34
+ execution?: {
35
+ isolation?: "envelope" | "live";
36
+ delegated?: boolean;
37
+ workspaceRoot?: string;
38
+ };
39
+ }, effectiveAccess: AccessProfile): RunExecutionWorkspaceViolation | null;
40
+ /** Write-backed strategy controls cannot honestly run under readonly access. */
41
+ export declare function runAccessStrategyViolation(value: {
42
+ attempts?: number | null;
43
+ untilClean?: boolean;
44
+ tests?: readonly unknown[] | null;
45
+ }, effectiveAccess: AccessProfile): RunAccessStrategyViolation | null;
2
46
  export interface RunControlApplicabilityItem {
3
47
  applicable: boolean;
4
48
  reason?: string;
@@ -39,13 +83,15 @@ export declare function runStartStrategyViolations(value: {
39
83
  }): string[];
40
84
  /**
41
85
  * Whether this run shape needs a Git-backed workspace before a provider can
42
- * start. Read-only modes do not unless their durable thread itself lives in a
43
- * worktree. Agent race/create/single always do; the one existing non-Git write
86
+ * start. Read-only runs never require Git; an already-materialized durable
87
+ * thread worktree can be read directly without provisioning it. Agent
88
+ * race/create/single always do; the one existing non-Git write
44
89
  * path is live convergence, whose copy-baseline workspace is explicitly
45
90
  * implemented by the engine.
46
91
  */
47
92
  export declare function runStartRequiresGit(value: {
48
93
  mode?: ModeKind;
94
+ access?: AccessProfile;
49
95
  untilClean?: boolean;
50
96
  attempts?: number | null;
51
97
  execution?: {
@@ -53,5 +99,7 @@ export declare function runStartRequiresGit(value: {
53
99
  };
54
100
  }, context?: {
55
101
  effectiveWorkspaceRequiresGit?: boolean;
102
+ accessDefault?: AccessProfile;
103
+ effectiveAccess?: AccessProfile;
56
104
  }): boolean;
57
105
  //# sourceMappingURL=run-strategy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-strategy.d.ts","sourceRoot":"","sources":["../src/run-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,2BAA2B,CAAC;IAC3C,sBAAsB,EAAE,2BAA2B,CAAC;CACrD;AAOD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,uBAAuB,CAU3F;AAED;;;6EAG6E;AAC7E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,MAAM,EAAE,CA6EX;AAYD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE;IACL,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,CAAC;CACjD,EACD,OAAO,GAAE;IAAE,6BAA6B,CAAC,EAAE,OAAO,CAAA;CAAO,GACxD,OAAO,CAUT"}
1
+ {"version":3,"file":"run-strategy.d.ts","sourceRoot":"","sources":["../src/run-strategy.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,54 @@
1
+ /**
2
+ * Resolve the requested/effective access pair once for every run producer.
3
+ * Ask and Plan clamp to readonly; Agent inherits the configured default only
4
+ * when the caller omitted an explicit access profile.
5
+ */
6
+ export function resolveRunAccess(value, accessDefault) {
7
+ const mode = value.mode ?? "agent";
8
+ const readOnlyMode = mode === "ask" || mode === "plan";
9
+ const requested = value.access ?? (readOnlyMode ? "readonly" : accessDefault);
10
+ return {
11
+ requested,
12
+ effective: readOnlyMode ? "readonly" : requested,
13
+ };
14
+ }
15
+ /**
16
+ * A fresh delegated live write must name the caller-owned execution tree.
17
+ * Exact Retry may replay the bounded historical shape whose stable scope root
18
+ * was itself the frozen execution tree.
19
+ */
20
+ export function runExecutionWorkspaceViolation(value, effectiveAccess) {
21
+ if (effectiveAccess !== "readonly" &&
22
+ (value.mode ?? "agent") === "agent" &&
23
+ value.execution?.delegated === true &&
24
+ value.execution.isolation === "live" &&
25
+ value.execution.workspaceRoot === undefined &&
26
+ !value.retryOf) {
27
+ return {
28
+ code: "execution_workspace_required",
29
+ message: "execution.workspaceRoot is required for a new delegated live run with mutating access",
30
+ retryable: false,
31
+ requiredActions: [
32
+ "Provide execution.workspaceRoot as an absolute existing directory for this delegated live run.",
33
+ ],
34
+ };
35
+ }
36
+ return null;
37
+ }
38
+ /** Write-backed strategy controls cannot honestly run under readonly access. */
39
+ export function runAccessStrategyViolation(value, effectiveAccess) {
40
+ const convergence = value.untilClean === true || (value.attempts !== undefined && value.attempts !== null);
41
+ const gates = (value.tests?.length ?? 0) > 0;
42
+ if (effectiveAccess === "readonly" && (convergence || gates)) {
43
+ return {
44
+ code: "strategy_access_incompatible",
45
+ message: "readonly access cannot use write-backed controls (attempts/untilClean/tests); drop those controls or choose workspace_write/full",
46
+ retryable: false,
47
+ requiredActions: ["Drop attempts/untilClean/tests, or choose workspace_write/full access."],
48
+ };
49
+ }
50
+ return null;
51
+ }
1
52
  const REVIEWER_UNAVAILABLE_REASON = "Reviewer controls only apply to Agent runs; Council is the Plan critique path.";
2
53
  const APPROVAL_UNAVAILABLE_REASON = "Protected-path approvals only apply to Agent runs; Ask and Plan are read-only.";
3
54
  /**
@@ -93,12 +144,17 @@ function hasArrayEntries(value) {
93
144
  }
94
145
  /**
95
146
  * Whether this run shape needs a Git-backed workspace before a provider can
96
- * start. Read-only modes do not unless their durable thread itself lives in a
97
- * worktree. Agent race/create/single always do; the one existing non-Git write
147
+ * start. Read-only runs never require Git; an already-materialized durable
148
+ * thread worktree can be read directly without provisioning it. Agent
149
+ * race/create/single always do; the one existing non-Git write
98
150
  * path is live convergence, whose copy-baseline workspace is explicitly
99
151
  * implemented by the engine.
100
152
  */
101
153
  export function runStartRequiresGit(value, context = {}) {
154
+ const effectiveAccess = context.effectiveAccess ??
155
+ resolveRunAccess(value, context.accessDefault ?? "workspace_write").effective;
156
+ if (effectiveAccess === "readonly")
157
+ return false;
102
158
  // A thread may execute "live" *inside a worktree*: isolated threads and
103
159
  // protected-path promotion are resolved by the daemon from durable thread /
104
160
  // project state, not from the wire isolation flag. That effective workspace