@claudexor/schema 3.8.0 → 3.8.2

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 (106) hide show
  1. package/dist/agent-capabilities.d.ts +16 -16
  2. package/dist/config.d.ts +20 -20
  3. package/dist/control-harness-list.d.ts +18 -18
  4. package/dist/control-operation-responses.d.ts +28 -13
  5. package/dist/control-operation-responses.d.ts.map +1 -1
  6. package/dist/control-run-detail.d.ts +61 -46
  7. package/dist/control-run-detail.d.ts.map +1 -1
  8. package/dist/control-run-detail.js +10 -19
  9. package/dist/control-run-detail.js.map +1 -1
  10. package/dist/control-run-execution.d.ts +16 -0
  11. package/dist/control-run-execution.d.ts.map +1 -0
  12. package/dist/control-run-execution.js +19 -0
  13. package/dist/control-run-execution.js.map +1 -0
  14. package/dist/control-run-failure.d.ts +4 -4
  15. package/dist/control-run-failure.d.ts.map +1 -1
  16. package/dist/control-run-failure.js +6 -4
  17. package/dist/control-run-failure.js.map +1 -1
  18. package/dist/control-run-retry.d.ts +21 -0
  19. package/dist/control-run-retry.d.ts.map +1 -1
  20. package/dist/control-run-retry.js +6 -0
  21. package/dist/control-run-retry.js.map +1 -1
  22. package/dist/control-trust.d.ts +13 -13
  23. package/dist/control.d.ts +390 -36
  24. package/dist/control.d.ts.map +1 -1
  25. package/dist/control.js +15 -20
  26. package/dist/control.js.map +1 -1
  27. package/dist/credential-profile-snapshot.d.ts +78 -36
  28. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  29. package/dist/credential-profile.d.ts +44 -0
  30. package/dist/credential-profile.d.ts.map +1 -1
  31. package/dist/credential-profile.js +11 -0
  32. package/dist/credential-profile.js.map +1 -1
  33. package/dist/harness-confinement.d.ts +37 -30
  34. package/dist/harness-confinement.d.ts.map +1 -1
  35. package/dist/harness-confinement.js +18 -26
  36. package/dist/harness-confinement.js.map +1 -1
  37. package/dist/harness.d.ts +18 -48
  38. package/dist/harness.d.ts.map +1 -1
  39. package/dist/harness.js +1 -6
  40. package/dist/harness.js.map +1 -1
  41. package/dist/mcp-run-result.d.ts +10 -10
  42. package/dist/primitives.d.ts +6 -1
  43. package/dist/primitives.d.ts.map +1 -1
  44. package/dist/primitives.js +8 -2
  45. package/dist/primitives.js.map +1 -1
  46. package/dist/readiness.d.ts +14 -14
  47. package/dist/review.d.ts +10 -0
  48. package/dist/review.d.ts.map +1 -1
  49. package/dist/review.js +10 -0
  50. package/dist/review.js.map +1 -1
  51. package/dist/route.d.ts +10 -0
  52. package/dist/route.d.ts.map +1 -1
  53. package/dist/route.js +10 -0
  54. package/dist/route.js.map +1 -1
  55. package/dist/run-strategy.d.ts +51 -3
  56. package/dist/run-strategy.d.ts.map +1 -1
  57. package/dist/run-strategy.js +58 -2
  58. package/dist/run-strategy.js.map +1 -1
  59. package/dist/surface-run-controls.d.ts.map +1 -1
  60. package/dist/surface-run-controls.js +4 -1
  61. package/dist/surface-run-controls.js.map +1 -1
  62. package/dist/task.d.ts +641 -19
  63. package/dist/task.d.ts.map +1 -1
  64. package/dist/task.js +40 -5
  65. package/dist/task.js.map +1 -1
  66. package/dist/telemetry.d.ts +2 -2
  67. package/dist/telemetry.js +3 -3
  68. package/dist/telemetry.js.map +1 -1
  69. package/dist/thread.d.ts +5 -3
  70. package/dist/thread.d.ts.map +1 -1
  71. package/dist/thread.js +7 -5
  72. package/dist/thread.js.map +1 -1
  73. package/generated/AgentCapabilityCatalog.schema.json +1 -2
  74. package/generated/ControlCredentialProfileCreateResponse.schema.json +9 -0
  75. package/generated/ControlCredentialProfileUpdateResponse.schema.json +9 -0
  76. package/generated/ControlCredentialProfilesQueryResponse.schema.json +12 -3
  77. package/generated/ControlCredentialProfilesResponse.schema.json +9 -0
  78. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +12 -3
  79. package/generated/ControlHarnessListResponse.schema.json +3 -3
  80. package/generated/ControlRunAgainDraft.schema.json +26 -5
  81. package/generated/ControlRunDetail.schema.json +29 -9
  82. package/generated/ControlRunListResponse.schema.json +11 -5
  83. package/generated/ControlRunStartRequest.schema.json +11 -4
  84. package/generated/ControlRunSummary.schema.json +11 -5
  85. package/generated/ControlThread.schema.json +3 -3
  86. package/generated/ControlThreadCreateRequest.schema.json +0 -1
  87. package/generated/ControlThreadDetail.schema.json +3 -3
  88. package/generated/ControlThreadListResponse.schema.json +3 -3
  89. package/generated/ControlThreadTurnRequest.schema.json +6 -3
  90. package/generated/ControlThreadUpdateRequest.schema.json +1 -2
  91. package/generated/ControlTrustListResponse.schema.json +0 -1
  92. package/generated/ControlTrustState.schema.json +0 -1
  93. package/generated/ControlTrustUpdateRequest.schema.json +0 -1
  94. package/generated/CredentialProfileStatus.schema.json +9 -0
  95. package/generated/HarnessManifest.schema.json +3 -3
  96. package/generated/HarnessStatusDto.schema.json +3 -3
  97. package/generated/McpRunHandleResult.schema.json +4 -2
  98. package/generated/McpRunToolResult.schema.json +4 -2
  99. package/generated/ReviewFinding.schema.json +14 -0
  100. package/generated/RouteProof.schema.json +14 -0
  101. package/generated/RunFailure.schema.json +4 -2
  102. package/generated/RunTelemetry.schema.json +5 -5
  103. package/generated/TaskContract.schema.json +8 -8
  104. package/generated/Thread.schema.json +4 -4
  105. package/generated/TrustConfig.schema.json +0 -2
  106. package/package.json +2 -2
package/dist/task.d.ts CHANGED
@@ -24,7 +24,38 @@ export declare const TestCommandGrant: z.ZodObject<{
24
24
  executableDigest: z.ZodString;
25
25
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
26
26
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
27
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
27
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>;
28
+ }, "strict", z.ZodTypeAny, {
29
+ projectDigest: string;
30
+ configDigest: string;
31
+ commandDigest: string;
32
+ executablePath: string;
33
+ executableDigest: string;
34
+ scriptPath: string | null;
35
+ scriptDigest: string | null;
36
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
37
+ }, {
38
+ projectDigest: string;
39
+ configDigest: string;
40
+ commandDigest: string;
41
+ executablePath: string;
42
+ executableDigest: string;
43
+ scriptPath?: string | null | undefined;
44
+ scriptDigest?: string | null | undefined;
45
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
46
+ }>;
47
+ export type TestCommandGrant = z.infer<typeof TestCommandGrant>;
48
+ /** Historical counterpart used only inside immutable TaskContracts. */
49
+ export declare const RecordedTestCommandGrant: z.ZodObject<{
50
+ projectDigest: z.ZodString;
51
+ configDigest: z.ZodString;
52
+ commandDigest: z.ZodString;
53
+ executablePath: z.ZodString;
54
+ executableDigest: z.ZodString;
55
+ scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
56
+ scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
57
+ } & {
58
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
28
59
  }, "strict", z.ZodTypeAny, {
29
60
  projectDigest: string;
30
61
  configDigest: string;
@@ -44,7 +75,7 @@ export declare const TestCommandGrant: z.ZodObject<{
44
75
  scriptDigest?: string | null | undefined;
45
76
  accessProfile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";
46
77
  }>;
47
- export type TestCommandGrant = z.infer<typeof TestCommandGrant>;
78
+ export type RecordedTestCommandGrant = z.infer<typeof RecordedTestCommandGrant>;
48
79
  export declare const TestCommand: z.ZodObject<{
49
80
  program: z.ZodString;
50
81
  args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
@@ -62,7 +93,84 @@ export declare const TestCommand: z.ZodObject<{
62
93
  executableDigest: z.ZodString;
63
94
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
64
95
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
65
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
96
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>;
97
+ }, "strict", z.ZodTypeAny, {
98
+ projectDigest: string;
99
+ configDigest: string;
100
+ commandDigest: string;
101
+ executablePath: string;
102
+ executableDigest: string;
103
+ scriptPath: string | null;
104
+ scriptDigest: string | null;
105
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
106
+ }, {
107
+ projectDigest: string;
108
+ configDigest: string;
109
+ commandDigest: string;
110
+ executablePath: string;
111
+ executableDigest: string;
112
+ scriptPath?: string | null | undefined;
113
+ scriptDigest?: string | null | undefined;
114
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
115
+ }>>>;
116
+ }, "strict", z.ZodTypeAny, {
117
+ program: string;
118
+ args: string[];
119
+ cwd?: string | undefined;
120
+ envAllowlist: string[];
121
+ id: string;
122
+ required: boolean;
123
+ trust_required: boolean;
124
+ trust_grant: {
125
+ projectDigest: string;
126
+ configDigest: string;
127
+ commandDigest: string;
128
+ executablePath: string;
129
+ executableDigest: string;
130
+ scriptPath: string | null;
131
+ scriptDigest: string | null;
132
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
133
+ } | null;
134
+ }, {
135
+ program: string;
136
+ args?: string[] | undefined;
137
+ cwd?: string | undefined;
138
+ envAllowlist?: string[] | undefined;
139
+ id: string;
140
+ required?: boolean | undefined;
141
+ trust_required?: boolean | undefined;
142
+ trust_grant?: {
143
+ projectDigest: string;
144
+ configDigest: string;
145
+ commandDigest: string;
146
+ executablePath: string;
147
+ executableDigest: string;
148
+ scriptPath?: string | null | undefined;
149
+ scriptDigest?: string | null | undefined;
150
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
151
+ } | null | undefined;
152
+ }>;
153
+ export type TestCommand = z.infer<typeof TestCommand>;
154
+ /** Historical counterpart used only inside immutable TaskContracts. */
155
+ export declare const RecordedTestCommand: z.ZodObject<{
156
+ program: z.ZodString;
157
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
158
+ cwd: z.ZodOptional<z.ZodString>;
159
+ envAllowlist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
160
+ } & {
161
+ id: z.ZodString;
162
+ required: z.ZodDefault<z.ZodBoolean>;
163
+ trust_required: z.ZodDefault<z.ZodBoolean>;
164
+ trust_grant: z.ZodDefault<z.ZodNullable<z.ZodObject<{
165
+ projectDigest: z.ZodString;
166
+ configDigest: z.ZodString;
167
+ commandDigest: z.ZodString;
168
+ executablePath: z.ZodString;
169
+ executableDigest: z.ZodString;
170
+ scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
171
+ scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
172
+ } & {
173
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
66
174
  }, "strict", z.ZodTypeAny, {
67
175
  projectDigest: string;
68
176
  configDigest: string;
@@ -119,7 +227,7 @@ export declare const TestCommand: z.ZodObject<{
119
227
  accessProfile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";
120
228
  } | null | undefined;
121
229
  }>;
122
- export type TestCommand = z.infer<typeof TestCommand>;
230
+ export type RecordedTestCommand = z.infer<typeof RecordedTestCommand>;
123
231
  export declare const ProtectedPathApproval: z.ZodObject<{
124
232
  /** Glob approved by the operator/user for this run; consumed only by the
125
233
  * auto-protected gate/test path policy, not by built-in critical-path gates. */
@@ -349,7 +457,8 @@ export declare const TaskContract: z.ZodObject<{
349
457
  executableDigest: z.ZodString;
350
458
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
351
459
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
352
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
460
+ } & {
461
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
353
462
  }, "strict", z.ZodTypeAny, {
354
463
  projectDigest: string;
355
464
  configDigest: string;
@@ -448,9 +557,9 @@ export declare const TaskContract: z.ZodObject<{
448
557
  }[] | undefined;
449
558
  }>>;
450
559
  access: z.ZodDefault<z.ZodObject<{
451
- requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
560
+ requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>>;
452
561
  /** Profile actually enforced by the engine (mode/trust clamps applied; never client-supplied). */
453
- effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
562
+ effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>>;
454
563
  }, "strip", z.ZodTypeAny, {
455
564
  requested_profile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";
456
565
  effective_profile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";
@@ -738,6 +847,509 @@ export declare const TaskContract: z.ZodObject<{
738
847
  } | undefined;
739
848
  }>;
740
849
  export type TaskContract = z.infer<typeof TaskContract>;
850
+ /** Writer/runtime contract for a new run. Historical decoding uses TaskContract
851
+ * below, but no active builder can produce a retired access value. */
852
+ export declare const ActiveTaskContract: z.ZodObject<{
853
+ schema_version: z.ZodLiteral<2>;
854
+ task_id: z.ZodString;
855
+ created_at: z.ZodString;
856
+ repo: z.ZodObject<{
857
+ root: z.ZodString;
858
+ base_ref: z.ZodString;
859
+ base_sha: z.ZodOptional<z.ZodString>;
860
+ dirty_policy: z.ZodDefault<z.ZodEnum<["refuse", "snapshot"]>>;
861
+ }, "strip", z.ZodTypeAny, {
862
+ root: string;
863
+ base_ref: string;
864
+ base_sha?: string | undefined;
865
+ dirty_policy: "refuse" | "snapshot";
866
+ }, {
867
+ root: string;
868
+ base_ref: string;
869
+ base_sha?: string | undefined;
870
+ dirty_policy?: "refuse" | "snapshot" | undefined;
871
+ }>;
872
+ mode: z.ZodObject<{
873
+ kind: z.ZodEnum<["ask", "plan", "agent"]>;
874
+ }, "strip", z.ZodTypeAny, {
875
+ kind: "agent" | "ask" | "plan";
876
+ }, {
877
+ kind: "agent" | "ask" | "plan";
878
+ }>;
879
+ delegation_requested: z.ZodDefault<z.ZodBoolean>;
880
+ run_lineage: z.ZodDefault<z.ZodObject<{
881
+ parent_run_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
882
+ delegated_from_run_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
883
+ }, "strip", z.ZodTypeAny, {
884
+ parent_run_id: string | null;
885
+ delegated_from_run_id: string | null;
886
+ }, {
887
+ parent_run_id?: string | null | undefined;
888
+ delegated_from_run_id?: string | null | undefined;
889
+ }>>;
890
+ user_intent: z.ZodObject<{
891
+ raw: z.ZodString;
892
+ normalized: z.ZodOptional<z.ZodString>;
893
+ }, "strip", z.ZodTypeAny, {
894
+ raw: string;
895
+ normalized?: string | undefined;
896
+ }, {
897
+ raw: string;
898
+ normalized?: string | undefined;
899
+ }>;
900
+ instructions: z.ZodOptional<z.ZodString>;
901
+ output_schema: z.ZodDefault<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
902
+ auth_preference: z.ZodDefault<z.ZodEnum<["subscription", "api_key", "auto"]>>;
903
+ credential_profile_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
904
+ max_turns: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
905
+ constraints: z.ZodDefault<z.ZodObject<{
906
+ /** Globs whose changes escalate risk to a human-approval gate (wired into
907
+ * classifyRisk/requireHuman). These are project-config-owned, cover every
908
+ * touched path (create/modify/delete/both rename sides), and cannot be
909
+ * suppressed by per-run protected-path approvals. */
910
+ protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
911
+ /** Per-run globs no candidate may touch AT ALL (create, modify, delete, or
912
+ * rename). Unlike protected_paths, these produce a deny-path violation;
913
+ * both still require an explicit human decision before delivery. Enforced
914
+ * by the engine's post-diff policy gate on envelope runs;
915
+ * an in-place run with deny_paths is refused at preflight. An operator
916
+ * accept_risk decision MAY still deliver a violating patch (INV-111: the
917
+ * human is the final authority). */
918
+ deny_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
919
+ /** Engine-derived gate/test path protections. Per-run approvals can narrow
920
+ * only this auto-protected set, never project-config-owned protected_paths. */
921
+ auto_protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
922
+ /** Per-run typed approvals for protected gate/test path changes. These are
923
+ * produced by explicit surfaces (CLI/control/IDE), then consumed by policy. */
924
+ protected_path_approvals: z.ZodDefault<z.ZodArray<z.ZodObject<{
925
+ /** Glob approved by the operator/user for this run; consumed only by the
926
+ * auto-protected gate/test path policy, not by built-in critical-path gates. */
927
+ path: z.ZodString;
928
+ reason: z.ZodOptional<z.ZodString>;
929
+ }, "strict", z.ZodTypeAny, {
930
+ path: string;
931
+ reason?: string | undefined;
932
+ }, {
933
+ path: string;
934
+ reason?: string | undefined;
935
+ }>, "many">>;
936
+ }, "strip", z.ZodTypeAny, {
937
+ protected_paths: string[];
938
+ deny_paths: string[];
939
+ auto_protected_paths: string[];
940
+ protected_path_approvals: {
941
+ path: string;
942
+ reason?: string | undefined;
943
+ }[];
944
+ }, {
945
+ protected_paths?: string[] | undefined;
946
+ deny_paths?: string[] | undefined;
947
+ auto_protected_paths?: string[] | undefined;
948
+ protected_path_approvals?: {
949
+ path: string;
950
+ reason?: string | undefined;
951
+ }[] | undefined;
952
+ }>>;
953
+ external_context: z.ZodDefault<z.ZodObject<{
954
+ policy: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
955
+ web_required: z.ZodDefault<z.ZodBoolean>;
956
+ /** Mode the selected route actually executes (disclosed upgrades, e.g. claude cached->live). */
957
+ effective_mode: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
958
+ }, "strip", z.ZodTypeAny, {
959
+ policy: "auto" | "cached" | "live" | "off";
960
+ web_required: boolean;
961
+ effective_mode: "auto" | "cached" | "live" | "off";
962
+ }, {
963
+ policy?: "auto" | "cached" | "live" | "off" | undefined;
964
+ web_required?: boolean | undefined;
965
+ effective_mode?: "auto" | "cached" | "live" | "off" | undefined;
966
+ }>>;
967
+ tool_permission_policy: z.ZodDefault<z.ZodObject<{
968
+ web: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
969
+ allow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
970
+ deny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
971
+ }, "strip", z.ZodTypeAny, {
972
+ web: "auto" | "cached" | "live" | "off";
973
+ allow: string[];
974
+ deny: string[];
975
+ }, {
976
+ web?: "auto" | "cached" | "live" | "off" | undefined;
977
+ allow?: string[] | undefined;
978
+ deny?: string[] | undefined;
979
+ }>>;
980
+ budget: z.ZodDefault<z.ZodObject<{
981
+ routing_goal: z.ZodDefault<z.ZodEnum<["auto", "quality", "economy"]>>;
982
+ paid_budget: z.ZodDefault<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
983
+ kind: z.ZodLiteral<"unlimited">;
984
+ }, "strict", z.ZodTypeAny, {
985
+ kind: "unlimited";
986
+ }, {
987
+ kind: "unlimited";
988
+ }>, z.ZodObject<{
989
+ kind: z.ZodLiteral<"finite">;
990
+ maxUsd: z.ZodNumber;
991
+ }, "strict", z.ZodTypeAny, {
992
+ kind: "finite";
993
+ maxUsd: number;
994
+ }, {
995
+ kind: "finite";
996
+ maxUsd: number;
997
+ }>]>>;
998
+ }, "strip", z.ZodTypeAny, {
999
+ routing_goal: "auto" | "economy" | "quality";
1000
+ paid_budget: {
1001
+ kind: "unlimited";
1002
+ } | {
1003
+ kind: "finite";
1004
+ maxUsd: number;
1005
+ };
1006
+ }, {
1007
+ routing_goal?: "auto" | "economy" | "quality" | undefined;
1008
+ paid_budget?: {
1009
+ kind: "unlimited";
1010
+ } | {
1011
+ kind: "finite";
1012
+ maxUsd: number;
1013
+ } | undefined;
1014
+ }>>;
1015
+ routing_models: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1016
+ routing_efforts: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
1017
+ convergence: z.ZodDefault<z.ZodObject<{
1018
+ require_tests_pass: z.ZodDefault<z.ZodBoolean>;
1019
+ require_no_accepted_block_open: z.ZodDefault<z.ZodBoolean>;
1020
+ require_no_accepted_fix_first_open: z.ZodDefault<z.ZodBoolean>;
1021
+ require_final_cross_family_clean_review: z.ZodDefault<z.ZodBoolean>;
1022
+ require_final_diff_stable_after_review: z.ZodDefault<z.ZodBoolean>;
1023
+ /**
1024
+ * Block convergence while an accepted NEEDS_HUMAN escalation is still open.
1025
+ * Closes the v0.8 hole where, with cross-family clean review disabled, a run
1026
+ * could converge to success with an open NEEDS_HUMAN finding.
1027
+ */
1028
+ require_no_accepted_needs_human_open: z.ZodDefault<z.ZodBoolean>;
1029
+ }, "strip", z.ZodTypeAny, {
1030
+ require_tests_pass: boolean;
1031
+ require_no_accepted_block_open: boolean;
1032
+ require_no_accepted_fix_first_open: boolean;
1033
+ require_final_cross_family_clean_review: boolean;
1034
+ require_final_diff_stable_after_review: boolean;
1035
+ require_no_accepted_needs_human_open: boolean;
1036
+ }, {
1037
+ require_tests_pass?: boolean | undefined;
1038
+ require_no_accepted_block_open?: boolean | undefined;
1039
+ require_no_accepted_fix_first_open?: boolean | undefined;
1040
+ require_final_cross_family_clean_review?: boolean | undefined;
1041
+ require_final_diff_stable_after_review?: boolean | undefined;
1042
+ require_no_accepted_needs_human_open?: boolean | undefined;
1043
+ }>>;
1044
+ } & {
1045
+ tests: z.ZodDefault<z.ZodObject<{
1046
+ commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
1047
+ program: z.ZodString;
1048
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1049
+ cwd: z.ZodOptional<z.ZodString>;
1050
+ envAllowlist: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1051
+ } & {
1052
+ id: z.ZodString;
1053
+ required: z.ZodDefault<z.ZodBoolean>;
1054
+ trust_required: z.ZodDefault<z.ZodBoolean>;
1055
+ trust_grant: z.ZodDefault<z.ZodNullable<z.ZodObject<{
1056
+ projectDigest: z.ZodString;
1057
+ configDigest: z.ZodString;
1058
+ commandDigest: z.ZodString;
1059
+ executablePath: z.ZodString;
1060
+ executableDigest: z.ZodString;
1061
+ scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1062
+ scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1063
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>;
1064
+ }, "strict", z.ZodTypeAny, {
1065
+ projectDigest: string;
1066
+ configDigest: string;
1067
+ commandDigest: string;
1068
+ executablePath: string;
1069
+ executableDigest: string;
1070
+ scriptPath: string | null;
1071
+ scriptDigest: string | null;
1072
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1073
+ }, {
1074
+ projectDigest: string;
1075
+ configDigest: string;
1076
+ commandDigest: string;
1077
+ executablePath: string;
1078
+ executableDigest: string;
1079
+ scriptPath?: string | null | undefined;
1080
+ scriptDigest?: string | null | undefined;
1081
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1082
+ }>>>;
1083
+ }, "strict", z.ZodTypeAny, {
1084
+ program: string;
1085
+ args: string[];
1086
+ cwd?: string | undefined;
1087
+ envAllowlist: string[];
1088
+ id: string;
1089
+ required: boolean;
1090
+ trust_required: boolean;
1091
+ trust_grant: {
1092
+ projectDigest: string;
1093
+ configDigest: string;
1094
+ commandDigest: string;
1095
+ executablePath: string;
1096
+ executableDigest: string;
1097
+ scriptPath: string | null;
1098
+ scriptDigest: string | null;
1099
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1100
+ } | null;
1101
+ }, {
1102
+ program: string;
1103
+ args?: string[] | undefined;
1104
+ cwd?: string | undefined;
1105
+ envAllowlist?: string[] | undefined;
1106
+ id: string;
1107
+ required?: boolean | undefined;
1108
+ trust_required?: boolean | undefined;
1109
+ trust_grant?: {
1110
+ projectDigest: string;
1111
+ configDigest: string;
1112
+ commandDigest: string;
1113
+ executablePath: string;
1114
+ executableDigest: string;
1115
+ scriptPath?: string | null | undefined;
1116
+ scriptDigest?: string | null | undefined;
1117
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1118
+ } | null | undefined;
1119
+ }>, "many">>;
1120
+ }, "strip", z.ZodTypeAny, {
1121
+ commands: {
1122
+ program: string;
1123
+ args: string[];
1124
+ cwd?: string | undefined;
1125
+ envAllowlist: string[];
1126
+ id: string;
1127
+ required: boolean;
1128
+ trust_required: boolean;
1129
+ trust_grant: {
1130
+ projectDigest: string;
1131
+ configDigest: string;
1132
+ commandDigest: string;
1133
+ executablePath: string;
1134
+ executableDigest: string;
1135
+ scriptPath: string | null;
1136
+ scriptDigest: string | null;
1137
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1138
+ } | null;
1139
+ }[];
1140
+ }, {
1141
+ commands?: {
1142
+ program: string;
1143
+ args?: string[] | undefined;
1144
+ cwd?: string | undefined;
1145
+ envAllowlist?: string[] | undefined;
1146
+ id: string;
1147
+ required?: boolean | undefined;
1148
+ trust_required?: boolean | undefined;
1149
+ trust_grant?: {
1150
+ projectDigest: string;
1151
+ configDigest: string;
1152
+ commandDigest: string;
1153
+ executablePath: string;
1154
+ executableDigest: string;
1155
+ scriptPath?: string | null | undefined;
1156
+ scriptDigest?: string | null | undefined;
1157
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1158
+ } | null | undefined;
1159
+ }[] | undefined;
1160
+ }>>;
1161
+ access: z.ZodDefault<z.ZodObject<{
1162
+ requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>>;
1163
+ effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native"]>>;
1164
+ }, "strip", z.ZodTypeAny, {
1165
+ requested_profile: "full" | "inherit_native" | "readonly" | "workspace_write";
1166
+ effective_profile: "full" | "inherit_native" | "readonly" | "workspace_write";
1167
+ }, {
1168
+ requested_profile?: "full" | "inherit_native" | "readonly" | "workspace_write" | undefined;
1169
+ effective_profile?: "full" | "inherit_native" | "readonly" | "workspace_write" | undefined;
1170
+ }>>;
1171
+ }, "strip", z.ZodTypeAny, {
1172
+ schema_version: 2;
1173
+ task_id: string;
1174
+ created_at: string;
1175
+ repo: {
1176
+ root: string;
1177
+ base_ref: string;
1178
+ base_sha?: string | undefined;
1179
+ dirty_policy: "refuse" | "snapshot";
1180
+ };
1181
+ mode: {
1182
+ kind: "agent" | "ask" | "plan";
1183
+ };
1184
+ delegation_requested: boolean;
1185
+ run_lineage: {
1186
+ parent_run_id: string | null;
1187
+ delegated_from_run_id: string | null;
1188
+ };
1189
+ user_intent: {
1190
+ raw: string;
1191
+ normalized?: string | undefined;
1192
+ };
1193
+ instructions?: string | undefined;
1194
+ output_schema: Record<string, unknown> | null;
1195
+ auth_preference: "api_key" | "auto" | "subscription";
1196
+ credential_profile_id: string | null;
1197
+ max_turns: number | null;
1198
+ constraints: {
1199
+ protected_paths: string[];
1200
+ deny_paths: string[];
1201
+ auto_protected_paths: string[];
1202
+ protected_path_approvals: {
1203
+ path: string;
1204
+ reason?: string | undefined;
1205
+ }[];
1206
+ };
1207
+ external_context: {
1208
+ policy: "auto" | "cached" | "live" | "off";
1209
+ web_required: boolean;
1210
+ effective_mode: "auto" | "cached" | "live" | "off";
1211
+ };
1212
+ tool_permission_policy: {
1213
+ web: "auto" | "cached" | "live" | "off";
1214
+ allow: string[];
1215
+ deny: string[];
1216
+ };
1217
+ budget: {
1218
+ routing_goal: "auto" | "economy" | "quality";
1219
+ paid_budget: {
1220
+ kind: "unlimited";
1221
+ } | {
1222
+ kind: "finite";
1223
+ maxUsd: number;
1224
+ };
1225
+ };
1226
+ routing_models: Record<string, string>;
1227
+ routing_efforts: Record<string, string>;
1228
+ convergence: {
1229
+ require_tests_pass: boolean;
1230
+ require_no_accepted_block_open: boolean;
1231
+ require_no_accepted_fix_first_open: boolean;
1232
+ require_final_cross_family_clean_review: boolean;
1233
+ require_final_diff_stable_after_review: boolean;
1234
+ require_no_accepted_needs_human_open: boolean;
1235
+ };
1236
+ tests: {
1237
+ commands: {
1238
+ program: string;
1239
+ args: string[];
1240
+ cwd?: string | undefined;
1241
+ envAllowlist: string[];
1242
+ id: string;
1243
+ required: boolean;
1244
+ trust_required: boolean;
1245
+ trust_grant: {
1246
+ projectDigest: string;
1247
+ configDigest: string;
1248
+ commandDigest: string;
1249
+ executablePath: string;
1250
+ executableDigest: string;
1251
+ scriptPath: string | null;
1252
+ scriptDigest: string | null;
1253
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1254
+ } | null;
1255
+ }[];
1256
+ };
1257
+ access: {
1258
+ requested_profile: "full" | "inherit_native" | "readonly" | "workspace_write";
1259
+ effective_profile: "full" | "inherit_native" | "readonly" | "workspace_write";
1260
+ };
1261
+ }, {
1262
+ schema_version: 2;
1263
+ task_id: string;
1264
+ created_at: string;
1265
+ repo: {
1266
+ root: string;
1267
+ base_ref: string;
1268
+ base_sha?: string | undefined;
1269
+ dirty_policy?: "refuse" | "snapshot" | undefined;
1270
+ };
1271
+ mode: {
1272
+ kind: "agent" | "ask" | "plan";
1273
+ };
1274
+ delegation_requested?: boolean | undefined;
1275
+ run_lineage?: {
1276
+ parent_run_id?: string | null | undefined;
1277
+ delegated_from_run_id?: string | null | undefined;
1278
+ } | undefined;
1279
+ user_intent: {
1280
+ raw: string;
1281
+ normalized?: string | undefined;
1282
+ };
1283
+ instructions?: string | undefined;
1284
+ output_schema?: Record<string, unknown> | null | undefined;
1285
+ auth_preference?: "api_key" | "auto" | "subscription" | undefined;
1286
+ credential_profile_id?: string | null | undefined;
1287
+ max_turns?: number | null | undefined;
1288
+ constraints?: {
1289
+ protected_paths?: string[] | undefined;
1290
+ deny_paths?: string[] | undefined;
1291
+ auto_protected_paths?: string[] | undefined;
1292
+ protected_path_approvals?: {
1293
+ path: string;
1294
+ reason?: string | undefined;
1295
+ }[] | undefined;
1296
+ } | undefined;
1297
+ external_context?: {
1298
+ policy?: "auto" | "cached" | "live" | "off" | undefined;
1299
+ web_required?: boolean | undefined;
1300
+ effective_mode?: "auto" | "cached" | "live" | "off" | undefined;
1301
+ } | undefined;
1302
+ tool_permission_policy?: {
1303
+ web?: "auto" | "cached" | "live" | "off" | undefined;
1304
+ allow?: string[] | undefined;
1305
+ deny?: string[] | undefined;
1306
+ } | undefined;
1307
+ budget?: {
1308
+ routing_goal?: "auto" | "economy" | "quality" | undefined;
1309
+ paid_budget?: {
1310
+ kind: "unlimited";
1311
+ } | {
1312
+ kind: "finite";
1313
+ maxUsd: number;
1314
+ } | undefined;
1315
+ } | undefined;
1316
+ routing_models?: Record<string, string> | undefined;
1317
+ routing_efforts?: Record<string, string> | undefined;
1318
+ convergence?: {
1319
+ require_tests_pass?: boolean | undefined;
1320
+ require_no_accepted_block_open?: boolean | undefined;
1321
+ require_no_accepted_fix_first_open?: boolean | undefined;
1322
+ require_final_cross_family_clean_review?: boolean | undefined;
1323
+ require_final_diff_stable_after_review?: boolean | undefined;
1324
+ require_no_accepted_needs_human_open?: boolean | undefined;
1325
+ } | undefined;
1326
+ tests?: {
1327
+ commands?: {
1328
+ program: string;
1329
+ args?: string[] | undefined;
1330
+ cwd?: string | undefined;
1331
+ envAllowlist?: string[] | undefined;
1332
+ id: string;
1333
+ required?: boolean | undefined;
1334
+ trust_required?: boolean | undefined;
1335
+ trust_grant?: {
1336
+ projectDigest: string;
1337
+ configDigest: string;
1338
+ commandDigest: string;
1339
+ executablePath: string;
1340
+ executableDigest: string;
1341
+ scriptPath?: string | null | undefined;
1342
+ scriptDigest?: string | null | undefined;
1343
+ accessProfile: "full" | "inherit_native" | "readonly" | "workspace_write";
1344
+ } | null | undefined;
1345
+ }[] | undefined;
1346
+ } | undefined;
1347
+ access?: {
1348
+ requested_profile?: "full" | "inherit_native" | "readonly" | "workspace_write" | undefined;
1349
+ effective_profile?: "full" | "inherit_native" | "readonly" | "workspace_write" | undefined;
1350
+ } | undefined;
1351
+ }>;
1352
+ export type ActiveTaskContract = z.infer<typeof ActiveTaskContract>;
741
1353
  /**
742
1354
  * Decoder for the persisted, frozen task artifact used to authorize delivery.
743
1355
  * Runtime construction keeps TaskContract defaults for callers building a new
@@ -763,7 +1375,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
763
1375
  executableDigest: z.ZodString;
764
1376
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
765
1377
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
766
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1378
+ } & {
1379
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
767
1380
  }, "strict", z.ZodTypeAny, {
768
1381
  projectDigest: string;
769
1382
  configDigest: string;
@@ -838,7 +1451,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
838
1451
  executableDigest: z.ZodString;
839
1452
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
840
1453
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
841
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1454
+ } & {
1455
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
842
1456
  }, "strict", z.ZodTypeAny, {
843
1457
  projectDigest: string;
844
1458
  configDigest: string;
@@ -913,7 +1527,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
913
1527
  executableDigest: z.ZodString;
914
1528
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
915
1529
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
916
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1530
+ } & {
1531
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
917
1532
  }, "strict", z.ZodTypeAny, {
918
1533
  projectDigest: string;
919
1534
  configDigest: string;
@@ -990,7 +1605,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
990
1605
  executableDigest: z.ZodString;
991
1606
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
992
1607
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
993
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1608
+ } & {
1609
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
994
1610
  }, "strict", z.ZodTypeAny, {
995
1611
  projectDigest: string;
996
1612
  configDigest: string;
@@ -1065,7 +1681,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1065
1681
  executableDigest: z.ZodString;
1066
1682
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1067
1683
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1068
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1684
+ } & {
1685
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1069
1686
  }, "strict", z.ZodTypeAny, {
1070
1687
  projectDigest: string;
1071
1688
  configDigest: string;
@@ -1140,7 +1757,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1140
1757
  executableDigest: z.ZodString;
1141
1758
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1142
1759
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1143
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1760
+ } & {
1761
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1144
1762
  }, "strict", z.ZodTypeAny, {
1145
1763
  projectDigest: string;
1146
1764
  configDigest: string;
@@ -1217,7 +1835,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1217
1835
  executableDigest: z.ZodString;
1218
1836
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1219
1837
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1220
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1838
+ } & {
1839
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1221
1840
  }, "strict", z.ZodTypeAny, {
1222
1841
  projectDigest: string;
1223
1842
  configDigest: string;
@@ -1292,7 +1911,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1292
1911
  executableDigest: z.ZodString;
1293
1912
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1294
1913
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1295
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1914
+ } & {
1915
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1296
1916
  }, "strict", z.ZodTypeAny, {
1297
1917
  projectDigest: string;
1298
1918
  configDigest: string;
@@ -1367,7 +1987,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1367
1987
  executableDigest: z.ZodString;
1368
1988
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1369
1989
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1370
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
1990
+ } & {
1991
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1371
1992
  }, "strict", z.ZodTypeAny, {
1372
1993
  projectDigest: string;
1373
1994
  configDigest: string;
@@ -1561,7 +2182,8 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1561
2182
  executableDigest: z.ZodString;
1562
2183
  scriptPath: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1563
2184
  scriptDigest: z.ZodDefault<z.ZodNullable<z.ZodString>>;
1564
- accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>;
2185
+ } & {
2186
+ accessProfile: z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>;
1565
2187
  }, "strict", z.ZodTypeAny, {
1566
2188
  projectDigest: string;
1567
2189
  configDigest: string;
@@ -1660,9 +2282,9 @@ export declare const FrozenTaskContractArtifact: z.ZodPipeline<z.ZodObject<{
1660
2282
  }[] | undefined;
1661
2283
  }>>;
1662
2284
  access: z.ZodDefault<z.ZodObject<{
1663
- requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
2285
+ requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>>;
1664
2286
  /** Profile actually enforced by the engine (mode/trust clamps applied; never client-supplied). */
1665
- effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
2287
+ effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "inherit_native", "external_sandbox_full"]>>;
1666
2288
  }, "strip", z.ZodTypeAny, {
1667
2289
  requested_profile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";
1668
2290
  effective_profile: "external_sandbox_full" | "full" | "inherit_native" | "readonly" | "workspace_write";