@oneharness/sdk 0.28.7 → 0.29.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.
|
@@ -47,7 +47,6 @@ export interface ConfigReport {
|
|
|
47
47
|
* The files consulted, in layering order (user first, project last).
|
|
48
48
|
*/
|
|
49
49
|
config_files: string[];
|
|
50
|
-
denied_tools: Field2;
|
|
51
50
|
/**
|
|
52
51
|
* Per-key provenance for the top-level `[env]`.
|
|
53
52
|
*/
|
|
@@ -71,7 +70,6 @@ export interface ConfigReport {
|
|
|
71
70
|
[k: string]: Field3;
|
|
72
71
|
};
|
|
73
72
|
history_pointer_file: Field3;
|
|
74
|
-
hooks: Field11;
|
|
75
73
|
load_mcp: Field;
|
|
76
74
|
load_skills: Field;
|
|
77
75
|
max_parallel: Field9;
|
|
@@ -87,6 +85,7 @@ export interface ConfigReport {
|
|
|
87
85
|
schema_version: string;
|
|
88
86
|
server_overloaded_max_retries: Field8;
|
|
89
87
|
stream: Field1;
|
|
88
|
+
sync: SyncPolicyReport;
|
|
90
89
|
system: Field3;
|
|
91
90
|
timeout: Field5;
|
|
92
91
|
tool_set: Field6;
|
|
@@ -153,13 +152,9 @@ export interface HarnessReport {
|
|
|
153
152
|
apps?: Field | null | undefined;
|
|
154
153
|
args: Field2;
|
|
155
154
|
bin: Field3;
|
|
156
|
-
denied_tools: Field2;
|
|
157
155
|
env: {
|
|
158
156
|
[k: string]: Field3;
|
|
159
157
|
};
|
|
160
|
-
hooks: {
|
|
161
|
-
[k: string]: unknown;
|
|
162
|
-
};
|
|
163
158
|
model: Field3;
|
|
164
159
|
/**
|
|
165
160
|
* The resolved `model_catalog_refresh_seconds` (`3600` by default),
|
|
@@ -172,9 +167,6 @@ export interface HarnessReport {
|
|
|
172
167
|
*/
|
|
173
168
|
plugins?: Field | null | undefined;
|
|
174
169
|
reasoning: Field3;
|
|
175
|
-
settings: {
|
|
176
|
-
[k: string]: unknown;
|
|
177
|
-
};
|
|
178
170
|
/**
|
|
179
171
|
* The resolved `shared_model_catalog` (`true` by default), present only
|
|
180
172
|
* for `codex`.
|
|
@@ -214,7 +206,6 @@ export interface VariantReport {
|
|
|
214
206
|
apps?: Field | null | undefined;
|
|
215
207
|
args: Field2;
|
|
216
208
|
bin: Field3;
|
|
217
|
-
denied_tools: Field2;
|
|
218
209
|
env: {
|
|
219
210
|
[k: string]: Field3;
|
|
220
211
|
};
|
|
@@ -222,9 +213,6 @@ export interface VariantReport {
|
|
|
222
213
|
env_from: {
|
|
223
214
|
[k: string]: Field3;
|
|
224
215
|
};
|
|
225
|
-
hooks: {
|
|
226
|
-
[k: string]: unknown;
|
|
227
|
-
};
|
|
228
216
|
model: Field3;
|
|
229
217
|
/**
|
|
230
218
|
* The `model_catalog_refresh_seconds` a launch of this variant resolves
|
|
@@ -239,9 +227,6 @@ export interface VariantReport {
|
|
|
239
227
|
*/
|
|
240
228
|
plugins?: Field | null | undefined;
|
|
241
229
|
reasoning: Field3;
|
|
242
|
-
settings: {
|
|
243
|
-
[k: string]: unknown;
|
|
244
|
-
};
|
|
245
230
|
/**
|
|
246
231
|
* The `shared_model_catalog` a launch of this variant resolves to: the
|
|
247
232
|
* variant's own, else its harness's, else `true`. Present only for `codex`.
|
|
@@ -250,49 +235,6 @@ export interface VariantReport {
|
|
|
250
235
|
unset_env: Field2;
|
|
251
236
|
[k: string]: unknown;
|
|
252
237
|
}
|
|
253
|
-
/**
|
|
254
|
-
* One resolved field in the `oneharness config` report: the effective value
|
|
255
|
-
* plus where it came from (a config file path, or [`DEFAULT_SOURCE`]). Both
|
|
256
|
-
* are `null` when the field is unset everywhere and has no built-in default.
|
|
257
|
-
*/
|
|
258
|
-
export interface Field11 {
|
|
259
|
-
source: string | null;
|
|
260
|
-
value: HookEntry[] | null;
|
|
261
|
-
[k: string]: unknown;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* One `[[hooks]]` entry: a pre-tool gate installed into each targeted harness.
|
|
265
|
-
* The `command` may contain `{harness}`, replaced with the harness id when the
|
|
266
|
-
* hook is built (so one entry can route `mygate hook {harness}` to every CLI).
|
|
267
|
-
*/
|
|
268
|
-
export interface HookEntry {
|
|
269
|
-
/**
|
|
270
|
-
* The command the harness runs before a tool call. `{harness}` is
|
|
271
|
-
* substituted with the harness id. Required and non-empty.
|
|
272
|
-
*/
|
|
273
|
-
command: string;
|
|
274
|
-
/**
|
|
275
|
-
* Restrict this entry to these harness ids; absent means every harness
|
|
276
|
-
* being synced.
|
|
277
|
-
*/
|
|
278
|
-
harnesses: string[] | null;
|
|
279
|
-
/**
|
|
280
|
-
* Tool-name matcher in the harness's dialect (most read it as a regex);
|
|
281
|
-
* applied to every targeted harness as written. Absent means match-all.
|
|
282
|
-
*/
|
|
283
|
-
matcher: string | null;
|
|
284
|
-
/**
|
|
285
|
-
* Identity for plugin-delivered harnesses (Goose, OpenCode) and Copilot's
|
|
286
|
-
* per-owner file, so two tools' hooks never collide. Defaults to
|
|
287
|
-
* `oneharness`.
|
|
288
|
-
*/
|
|
289
|
-
plugin_name: string | null;
|
|
290
|
-
/**
|
|
291
|
-
* Timeout in seconds, for the harnesses whose hook schema carries one
|
|
292
|
-
* (Goose, Crush); ignored by the others.
|
|
293
|
-
*/
|
|
294
|
-
timeout: number | null;
|
|
295
|
-
}
|
|
296
238
|
/**
|
|
297
239
|
* One resolved field in the `oneharness config` report: the effective value
|
|
298
240
|
* plus where it came from (a config file path, or [`DEFAULT_SOURCE`]). Both
|
|
@@ -372,6 +314,97 @@ export interface Field1 {
|
|
|
372
314
|
value: boolean | null;
|
|
373
315
|
[k: string]: unknown;
|
|
374
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* The `[sync]` section, mirroring the file's shape, each value with its
|
|
319
|
+
* provenance: what `oneharness sync` writes into each harness's files.
|
|
320
|
+
*/
|
|
321
|
+
export interface SyncPolicyReport {
|
|
322
|
+
allowed_tools: Field2;
|
|
323
|
+
denied_tools: Field2;
|
|
324
|
+
/**
|
|
325
|
+
* Per-harness sync policy (`[sync.harness.<id>]`), with provenance,
|
|
326
|
+
* keyed by the registry's id.
|
|
327
|
+
*/
|
|
328
|
+
harness: {
|
|
329
|
+
[k: string]: SyncHarnessPolicyReport;
|
|
330
|
+
};
|
|
331
|
+
hooks: Field11;
|
|
332
|
+
[k: string]: unknown;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* One harness's `[sync.harness.<id>]` policy, with provenance.
|
|
336
|
+
*/
|
|
337
|
+
export interface SyncHarnessPolicyReport {
|
|
338
|
+
allowed_tools: Field2;
|
|
339
|
+
denied_tools: Field2;
|
|
340
|
+
hooks: {
|
|
341
|
+
[k: string]: unknown;
|
|
342
|
+
};
|
|
343
|
+
settings: {
|
|
344
|
+
[k: string]: unknown;
|
|
345
|
+
};
|
|
346
|
+
variant: {
|
|
347
|
+
[k: string]: SyncVariantPolicyReport;
|
|
348
|
+
};
|
|
349
|
+
[k: string]: unknown;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* One variant's `[sync.harness.<id>.variant.<name>]` policy, with provenance.
|
|
353
|
+
*/
|
|
354
|
+
export interface SyncVariantPolicyReport {
|
|
355
|
+
allowed_tools: Field2;
|
|
356
|
+
denied_tools: Field2;
|
|
357
|
+
hooks: {
|
|
358
|
+
[k: string]: unknown;
|
|
359
|
+
};
|
|
360
|
+
settings: {
|
|
361
|
+
[k: string]: unknown;
|
|
362
|
+
};
|
|
363
|
+
[k: string]: unknown;
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* One resolved field in the `oneharness config` report: the effective value
|
|
367
|
+
* plus where it came from (a config file path, or [`DEFAULT_SOURCE`]). Both
|
|
368
|
+
* are `null` when the field is unset everywhere and has no built-in default.
|
|
369
|
+
*/
|
|
370
|
+
export interface Field11 {
|
|
371
|
+
source: string | null;
|
|
372
|
+
value: HookEntry[] | null;
|
|
373
|
+
[k: string]: unknown;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* One `[[sync.hooks]]` entry: a pre-tool gate installed into each targeted harness.
|
|
377
|
+
* The `command` may contain `{harness}`, replaced with the harness id when the
|
|
378
|
+
* hook is built (so one entry can route `mygate hook {harness}` to every CLI).
|
|
379
|
+
*/
|
|
380
|
+
export interface HookEntry {
|
|
381
|
+
/**
|
|
382
|
+
* The command the harness runs before a tool call. `{harness}` is
|
|
383
|
+
* substituted with the harness id. Required and non-empty.
|
|
384
|
+
*/
|
|
385
|
+
command: string;
|
|
386
|
+
/**
|
|
387
|
+
* Restrict this entry to these harness ids; absent means every harness
|
|
388
|
+
* being synced.
|
|
389
|
+
*/
|
|
390
|
+
harnesses: string[] | null;
|
|
391
|
+
/**
|
|
392
|
+
* Tool-name matcher in the harness's dialect (most read it as a regex);
|
|
393
|
+
* applied to every targeted harness as written. Absent means match-all.
|
|
394
|
+
*/
|
|
395
|
+
matcher: string | null;
|
|
396
|
+
/**
|
|
397
|
+
* Identity for plugin-delivered harnesses (Goose, OpenCode) and Copilot's
|
|
398
|
+
* per-owner file, so two tools' hooks never collide. Defaults to
|
|
399
|
+
* `oneharness`.
|
|
400
|
+
*/
|
|
401
|
+
plugin_name: string | null;
|
|
402
|
+
/**
|
|
403
|
+
* Timeout in seconds, for the harnesses whose hook schema carries one
|
|
404
|
+
* (Goose, Crush); ignored by the others.
|
|
405
|
+
*/
|
|
406
|
+
timeout: number | null;
|
|
407
|
+
}
|
|
375
408
|
/**
|
|
376
409
|
* One resolved field in the `oneharness config` report: the effective value
|
|
377
410
|
* plus where it came from (a config file path, or [`DEFAULT_SOURCE`]). Both
|
|
@@ -17628,9 +17628,6 @@
|
|
|
17628
17628
|
"type": "string"
|
|
17629
17629
|
}
|
|
17630
17630
|
},
|
|
17631
|
-
"denied_tools": {
|
|
17632
|
-
"$ref": "#/$defs/Field2"
|
|
17633
|
-
},
|
|
17634
17631
|
"env": {
|
|
17635
17632
|
"description": "Per-key provenance for the top-level `[env]`.",
|
|
17636
17633
|
"type": "object",
|
|
@@ -17667,9 +17664,6 @@
|
|
|
17667
17664
|
"history_pointer_file": {
|
|
17668
17665
|
"$ref": "#/$defs/Field3"
|
|
17669
17666
|
},
|
|
17670
|
-
"hooks": {
|
|
17671
|
-
"$ref": "#/$defs/Field11"
|
|
17672
|
-
},
|
|
17673
17667
|
"load_mcp": {
|
|
17674
17668
|
"$ref": "#/$defs/Field"
|
|
17675
17669
|
},
|
|
@@ -17720,6 +17714,10 @@
|
|
|
17720
17714
|
"description": "Whether config asks every `run` to stream (`--stream` / ONEHARNESS_STREAM);\ndefaults to false, the built-in buffered report.",
|
|
17721
17715
|
"$ref": "#/$defs/Field"
|
|
17722
17716
|
},
|
|
17717
|
+
"sync": {
|
|
17718
|
+
"description": "The `[sync]` section, mirroring the file's shape, each value with its\nprovenance: what `oneharness sync` writes into each harness's files.",
|
|
17719
|
+
"$ref": "#/$defs/SyncPolicyReport"
|
|
17720
|
+
},
|
|
17723
17721
|
"system": {
|
|
17724
17722
|
"$ref": "#/$defs/Field3"
|
|
17725
17723
|
},
|
|
@@ -17760,8 +17758,7 @@
|
|
|
17760
17758
|
"history_pointer_file",
|
|
17761
17759
|
"history_labels",
|
|
17762
17760
|
"allowed_tools",
|
|
17763
|
-
"
|
|
17764
|
-
"hooks",
|
|
17761
|
+
"sync",
|
|
17765
17762
|
"env",
|
|
17766
17763
|
"harness"
|
|
17767
17764
|
],
|
|
@@ -18122,19 +18119,12 @@
|
|
|
18122
18119
|
"bin": {
|
|
18123
18120
|
"$ref": "#/$defs/Field3"
|
|
18124
18121
|
},
|
|
18125
|
-
"denied_tools": {
|
|
18126
|
-
"$ref": "#/$defs/Field2"
|
|
18127
|
-
},
|
|
18128
18122
|
"env": {
|
|
18129
18123
|
"type": "object",
|
|
18130
18124
|
"additionalProperties": {
|
|
18131
18125
|
"$ref": "#/$defs/Field3"
|
|
18132
18126
|
}
|
|
18133
18127
|
},
|
|
18134
|
-
"hooks": {
|
|
18135
|
-
"type": "object",
|
|
18136
|
-
"additionalProperties": true
|
|
18137
|
-
},
|
|
18138
18128
|
"model": {
|
|
18139
18129
|
"$ref": "#/$defs/Field3"
|
|
18140
18130
|
},
|
|
@@ -18163,10 +18153,6 @@
|
|
|
18163
18153
|
"reasoning": {
|
|
18164
18154
|
"$ref": "#/$defs/Field3"
|
|
18165
18155
|
},
|
|
18166
|
-
"settings": {
|
|
18167
|
-
"type": "object",
|
|
18168
|
-
"additionalProperties": true
|
|
18169
|
-
},
|
|
18170
18156
|
"shared_model_catalog": {
|
|
18171
18157
|
"description": "The resolved `shared_model_catalog` (`true` by default), present only\nfor `codex`.",
|
|
18172
18158
|
"anyOf": [
|
|
@@ -18191,15 +18177,12 @@
|
|
|
18191
18177
|
"bin",
|
|
18192
18178
|
"args",
|
|
18193
18179
|
"allowed_tools",
|
|
18194
|
-
"denied_tools",
|
|
18195
|
-
"hooks",
|
|
18196
|
-
"settings",
|
|
18197
18180
|
"env",
|
|
18198
18181
|
"variant"
|
|
18199
18182
|
]
|
|
18200
18183
|
},
|
|
18201
18184
|
"HookEntry": {
|
|
18202
|
-
"description": "One `[[hooks]]` entry: a pre-tool gate installed into each targeted harness.\nThe `command` may contain `{harness}`, replaced with the harness id when the\nhook is built (so one entry can route `mygate hook {harness}` to every CLI).",
|
|
18185
|
+
"description": "One `[[sync.hooks]]` entry: a pre-tool gate installed into each targeted harness.\nThe `command` may contain `{harness}`, replaced with the harness id when the\nhook is built (so one entry can route `mygate hook {harness}` to every CLI).",
|
|
18203
18186
|
"type": "object",
|
|
18204
18187
|
"properties": {
|
|
18205
18188
|
"command": {
|
|
@@ -18319,6 +18302,93 @@
|
|
|
18319
18302
|
}
|
|
18320
18303
|
]
|
|
18321
18304
|
},
|
|
18305
|
+
"SyncHarnessPolicyReport": {
|
|
18306
|
+
"description": "One harness's `[sync.harness.<id>]` policy, with provenance.",
|
|
18307
|
+
"type": "object",
|
|
18308
|
+
"properties": {
|
|
18309
|
+
"allowed_tools": {
|
|
18310
|
+
"$ref": "#/$defs/Field2"
|
|
18311
|
+
},
|
|
18312
|
+
"denied_tools": {
|
|
18313
|
+
"$ref": "#/$defs/Field2"
|
|
18314
|
+
},
|
|
18315
|
+
"hooks": {
|
|
18316
|
+
"type": "object",
|
|
18317
|
+
"additionalProperties": true
|
|
18318
|
+
},
|
|
18319
|
+
"settings": {
|
|
18320
|
+
"type": "object",
|
|
18321
|
+
"additionalProperties": true
|
|
18322
|
+
},
|
|
18323
|
+
"variant": {
|
|
18324
|
+
"type": "object",
|
|
18325
|
+
"additionalProperties": {
|
|
18326
|
+
"$ref": "#/$defs/SyncVariantPolicyReport"
|
|
18327
|
+
}
|
|
18328
|
+
}
|
|
18329
|
+
},
|
|
18330
|
+
"required": [
|
|
18331
|
+
"allowed_tools",
|
|
18332
|
+
"denied_tools",
|
|
18333
|
+
"hooks",
|
|
18334
|
+
"settings",
|
|
18335
|
+
"variant"
|
|
18336
|
+
]
|
|
18337
|
+
},
|
|
18338
|
+
"SyncPolicyReport": {
|
|
18339
|
+
"description": "The `[sync]` section of the `config` report: every sync-policy field, in\nthe file's own shape, with provenance.",
|
|
18340
|
+
"type": "object",
|
|
18341
|
+
"properties": {
|
|
18342
|
+
"allowed_tools": {
|
|
18343
|
+
"$ref": "#/$defs/Field2"
|
|
18344
|
+
},
|
|
18345
|
+
"denied_tools": {
|
|
18346
|
+
"$ref": "#/$defs/Field2"
|
|
18347
|
+
},
|
|
18348
|
+
"harness": {
|
|
18349
|
+
"description": "Per-harness sync policy (`[sync.harness.<id>]`), with provenance,\nkeyed by the registry's id.",
|
|
18350
|
+
"type": "object",
|
|
18351
|
+
"additionalProperties": {
|
|
18352
|
+
"$ref": "#/$defs/SyncHarnessPolicyReport"
|
|
18353
|
+
}
|
|
18354
|
+
},
|
|
18355
|
+
"hooks": {
|
|
18356
|
+
"$ref": "#/$defs/Field11"
|
|
18357
|
+
}
|
|
18358
|
+
},
|
|
18359
|
+
"required": [
|
|
18360
|
+
"allowed_tools",
|
|
18361
|
+
"denied_tools",
|
|
18362
|
+
"hooks",
|
|
18363
|
+
"harness"
|
|
18364
|
+
]
|
|
18365
|
+
},
|
|
18366
|
+
"SyncVariantPolicyReport": {
|
|
18367
|
+
"description": "One variant's `[sync.harness.<id>.variant.<name>]` policy, with provenance.",
|
|
18368
|
+
"type": "object",
|
|
18369
|
+
"properties": {
|
|
18370
|
+
"allowed_tools": {
|
|
18371
|
+
"$ref": "#/$defs/Field2"
|
|
18372
|
+
},
|
|
18373
|
+
"denied_tools": {
|
|
18374
|
+
"$ref": "#/$defs/Field2"
|
|
18375
|
+
},
|
|
18376
|
+
"hooks": {
|
|
18377
|
+
"type": "object",
|
|
18378
|
+
"additionalProperties": true
|
|
18379
|
+
},
|
|
18380
|
+
"settings": {
|
|
18381
|
+
"type": "object",
|
|
18382
|
+
"additionalProperties": true
|
|
18383
|
+
}
|
|
18384
|
+
},
|
|
18385
|
+
"required": [
|
|
18386
|
+
"allowed_tools",
|
|
18387
|
+
"denied_tools",
|
|
18388
|
+
"hooks",
|
|
18389
|
+
"settings"
|
|
18390
|
+
]
|
|
18391
|
+
},
|
|
18322
18392
|
"ToolClass": {
|
|
18323
18393
|
"description": "A harness-agnostic class of built-in tool a turn may load (`tool_set`).",
|
|
18324
18394
|
"oneOf": [
|
|
@@ -18379,9 +18449,6 @@
|
|
|
18379
18449
|
"bin": {
|
|
18380
18450
|
"$ref": "#/$defs/Field3"
|
|
18381
18451
|
},
|
|
18382
|
-
"denied_tools": {
|
|
18383
|
-
"$ref": "#/$defs/Field2"
|
|
18384
|
-
},
|
|
18385
18452
|
"env": {
|
|
18386
18453
|
"type": "object",
|
|
18387
18454
|
"additionalProperties": {
|
|
@@ -18397,10 +18464,6 @@
|
|
|
18397
18464
|
"$ref": "#/$defs/Field3"
|
|
18398
18465
|
}
|
|
18399
18466
|
},
|
|
18400
|
-
"hooks": {
|
|
18401
|
-
"type": "object",
|
|
18402
|
-
"additionalProperties": true
|
|
18403
|
-
},
|
|
18404
18467
|
"model": {
|
|
18405
18468
|
"$ref": "#/$defs/Field3"
|
|
18406
18469
|
},
|
|
@@ -18429,10 +18492,6 @@
|
|
|
18429
18492
|
"reasoning": {
|
|
18430
18493
|
"$ref": "#/$defs/Field3"
|
|
18431
18494
|
},
|
|
18432
|
-
"settings": {
|
|
18433
|
-
"type": "object",
|
|
18434
|
-
"additionalProperties": true
|
|
18435
|
-
},
|
|
18436
18495
|
"shared_model_catalog": {
|
|
18437
18496
|
"description": "The `shared_model_catalog` a launch of this variant resolves to: the\nvariant's own, else its harness's, else `true`. Present only for `codex`.",
|
|
18438
18497
|
"anyOf": [
|
|
@@ -18454,9 +18513,6 @@
|
|
|
18454
18513
|
"bin",
|
|
18455
18514
|
"args",
|
|
18456
18515
|
"allowed_tools",
|
|
18457
|
-
"denied_tools",
|
|
18458
|
-
"hooks",
|
|
18459
|
-
"settings",
|
|
18460
18516
|
"env_file",
|
|
18461
18517
|
"env_from",
|
|
18462
18518
|
"unset_env",
|
|
@@ -18564,7 +18620,7 @@
|
|
|
18564
18620
|
]
|
|
18565
18621
|
},
|
|
18566
18622
|
"HookFileResult": {
|
|
18567
|
-
"description": "One installed `[[hooks]]` file.",
|
|
18623
|
+
"description": "One installed `[[sync.hooks]]` file.",
|
|
18568
18624
|
"type": "object",
|
|
18569
18625
|
"properties": {
|
|
18570
18626
|
"file": {
|
|
@@ -18640,7 +18696,7 @@
|
|
|
18640
18696
|
"type": "string"
|
|
18641
18697
|
},
|
|
18642
18698
|
"hooks": {
|
|
18643
|
-
"description": "Normalized `[[hooks]]` files installed into this harness (a Goose hook\nwrites two). Empty when no `[[hooks]]` entry targets it.",
|
|
18699
|
+
"description": "Normalized `[[sync.hooks]]` files installed into this harness (a Goose hook\nwrites two). Empty when no `[[sync.hooks]]` entry targets it.",
|
|
18644
18700
|
"type": "array",
|
|
18645
18701
|
"items": {
|
|
18646
18702
|
"$ref": "#/$defs/HookFileResult"
|
|
@@ -18657,7 +18713,7 @@
|
|
|
18657
18713
|
"$ref": "#/$defs/SyncStatus"
|
|
18658
18714
|
},
|
|
18659
18715
|
"unmapped": {
|
|
18660
|
-
"description": "Top-level settings that have no mapping for this harness (e.g. a\
|
|
18716
|
+
"description": "Top-level settings that have no mapping for this harness (e.g. a\n`[sync] allowed_tools` while the harness has no allow-list concept)\n— visible here and warned on stderr, never silently dropped.",
|
|
18661
18717
|
"type": "array",
|
|
18662
18718
|
"items": {
|
|
18663
18719
|
"type": "string"
|
|
@@ -56,8 +56,8 @@ export interface SyncResult {
|
|
|
56
56
|
file: string | null;
|
|
57
57
|
harness: string;
|
|
58
58
|
/**
|
|
59
|
-
* Normalized `[[hooks]]` files installed into this harness (a Goose hook
|
|
60
|
-
* writes two). Empty when no `[[hooks]]` entry targets it.
|
|
59
|
+
* Normalized `[[sync.hooks]]` files installed into this harness (a Goose hook
|
|
60
|
+
* writes two). Empty when no `[[sync.hooks]]` entry targets it.
|
|
61
61
|
*/
|
|
62
62
|
hooks: HookFileResult[];
|
|
63
63
|
/**
|
|
@@ -69,7 +69,7 @@ export interface SyncResult {
|
|
|
69
69
|
status: SyncStatus;
|
|
70
70
|
/**
|
|
71
71
|
* Top-level settings that have no mapping for this harness (e.g. a
|
|
72
|
-
*
|
|
72
|
+
* `[sync] allowed_tools` while the harness has no allow-list concept)
|
|
73
73
|
* — visible here and warned on stderr, never silently dropped.
|
|
74
74
|
*/
|
|
75
75
|
unmapped: string[];
|
|
@@ -99,7 +99,7 @@ export interface RuleChange {
|
|
|
99
99
|
[k: string]: unknown;
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
|
-
* One installed `[[hooks]]` file.
|
|
102
|
+
* One installed `[[sync.hooks]]` file.
|
|
103
103
|
*/
|
|
104
104
|
export interface HookFileResult {
|
|
105
105
|
file: string;
|
package/dist/generated/zod.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
import type { CompactOptions } from "./compact-options.js";
|
|
3
3
|
import type { CompactOutcome, CompactStatus } from "./compact-outcome.js";
|
|
4
4
|
import type { ConfigOptions } from "./config-options.js";
|
|
5
|
-
import type { AppServerMode, ConfigReport, Field, Field10, Field11, Field12, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, HarnessReport, HookEntry, VariantReport } from "./config-report.js";
|
|
5
|
+
import type { AppServerMode, ConfigReport, Field, Field10, Field11, Field12, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, HarnessReport, HookEntry, SyncHarnessPolicyReport, SyncPolicyReport, SyncVariantPolicyReport, VariantReport } from "./config-report.js";
|
|
6
6
|
import type { ActionEvent, AppServerReport, BatchReport, ControlEvent, ControlReason, ControlReport, ControlVerb, Diagnostic, ExecutionTelemetry, FailureKind, FallThrough, FallThroughReason, FallbackReport, RunReport, RunResult, RunWork, SessionReport, Setting, Status, TimingSource, ToolCallStatus, Usage, UtcInstant } from "./contracts.js";
|
|
7
7
|
import type { DetectOptions } from "./detect-options.js";
|
|
8
8
|
import type { DetectInfo, DetectReport } from "./detection.js";
|
|
@@ -145,10 +145,13 @@ export declare const SessionPhaseSchema: z.ZodType<SessionPhase>;
|
|
|
145
145
|
export declare const SessionReportSchema: z.ZodType<SessionReport>;
|
|
146
146
|
export declare const SettingSchema: z.ZodType<Setting>;
|
|
147
147
|
export declare const StatusSchema: z.ZodType<Status>;
|
|
148
|
+
export declare const SyncHarnessPolicyReportSchema: z.ZodType<SyncHarnessPolicyReport>;
|
|
148
149
|
export declare const SyncOptionsSchema: z.ZodType<SyncOptions>;
|
|
150
|
+
export declare const SyncPolicyReportSchema: z.ZodType<SyncPolicyReport>;
|
|
149
151
|
export declare const SyncReportSchema: z.ZodType<SyncReport>;
|
|
150
152
|
export declare const SyncResultSchema: z.ZodType<SyncResult>;
|
|
151
153
|
export declare const SyncStatusSchema: z.ZodType<SyncStatus>;
|
|
154
|
+
export declare const SyncVariantPolicyReportSchema: z.ZodType<SyncVariantPolicyReport>;
|
|
152
155
|
export declare const TimingSourceSchema: z.ZodType<TimingSource>;
|
|
153
156
|
export declare const ToolCallStatusSchema: z.ZodType<ToolCallStatus>;
|
|
154
157
|
export declare const ToolClassSchema: z.ZodType<ToolClass>;
|
package/dist/generated/zod.js
CHANGED
|
@@ -93,7 +93,6 @@ export const ConfigReportSchema = z.looseObject({
|
|
|
93
93
|
auto_compact_tokens: z.lazy(() => Field5Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
94
94
|
bypass: z.lazy(() => FieldSchema).refine((value) => value !== undefined, { message: "Required" }),
|
|
95
95
|
config_files: z.array(z.string()).refine((value) => value !== undefined, { message: "Required" }),
|
|
96
|
-
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
97
96
|
env: z
|
|
98
97
|
.record(z.string(), z.lazy(() => Field3Schema))
|
|
99
98
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
@@ -108,7 +107,6 @@ export const ConfigReportSchema = z.looseObject({
|
|
|
108
107
|
.record(z.string(), z.lazy(() => Field3Schema))
|
|
109
108
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
110
109
|
history_pointer_file: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
111
|
-
hooks: z.lazy(() => Field11Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
112
110
|
load_mcp: z.lazy(() => FieldSchema).refine((value) => value !== undefined, { message: "Required" }),
|
|
113
111
|
load_skills: z.lazy(() => FieldSchema).refine((value) => value !== undefined, { message: "Required" }),
|
|
114
112
|
max_parallel: z.lazy(() => Field9Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
@@ -126,6 +124,7 @@ export const ConfigReportSchema = z.looseObject({
|
|
|
126
124
|
.lazy(() => Field8Schema)
|
|
127
125
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
128
126
|
stream: z.lazy(() => FieldSchema).refine((value) => value !== undefined, { message: "Required" }),
|
|
127
|
+
sync: z.lazy(() => SyncPolicyReportSchema).refine((value) => value !== undefined, { message: "Required" }),
|
|
129
128
|
system: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
130
129
|
timeout: z.lazy(() => Field5Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
131
130
|
tool_set: z.lazy(() => Field6Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
@@ -381,16 +380,13 @@ export const HarnessReportSchema = z.looseObject({
|
|
|
381
380
|
apps: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
382
381
|
args: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
383
382
|
bin: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
384
|
-
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
385
383
|
env: z
|
|
386
384
|
.record(z.string(), z.lazy(() => Field3Schema))
|
|
387
385
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
388
|
-
hooks: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
389
386
|
model: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
390
387
|
model_catalog_refresh_seconds: z.union([z.lazy(() => Field5Schema), z.null()]).optional(),
|
|
391
388
|
plugins: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
392
389
|
reasoning: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
393
|
-
settings: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
394
390
|
shared_model_catalog: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
395
391
|
variant: z
|
|
396
392
|
.record(z.string(), z.lazy(() => VariantReportSchema))
|
|
@@ -3051,6 +3047,15 @@ export const StatusSchema = z.union([
|
|
|
3051
3047
|
z.literal("skipped"),
|
|
3052
3048
|
z.literal("planned"),
|
|
3053
3049
|
]);
|
|
3050
|
+
export const SyncHarnessPolicyReportSchema = z.looseObject({
|
|
3051
|
+
allowed_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3052
|
+
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3053
|
+
hooks: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3054
|
+
settings: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3055
|
+
variant: z
|
|
3056
|
+
.record(z.string(), z.lazy(() => SyncVariantPolicyReportSchema))
|
|
3057
|
+
.refine((value) => value !== undefined, { message: "Required" }),
|
|
3058
|
+
});
|
|
3054
3059
|
export const SyncOptionsSchema = z.strictObject({
|
|
3055
3060
|
check: z.boolean().optional(),
|
|
3056
3061
|
config: z.array(z.string()).optional(),
|
|
@@ -3060,6 +3065,14 @@ export const SyncOptionsSchema = z.strictObject({
|
|
|
3060
3065
|
harnesses: z.array(z.string()).optional(),
|
|
3061
3066
|
noConfig: z.boolean().optional(),
|
|
3062
3067
|
});
|
|
3068
|
+
export const SyncPolicyReportSchema = z.looseObject({
|
|
3069
|
+
allowed_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3070
|
+
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3071
|
+
harness: z
|
|
3072
|
+
.record(z.string(), z.lazy(() => SyncHarnessPolicyReportSchema))
|
|
3073
|
+
.refine((value) => value !== undefined, { message: "Required" }),
|
|
3074
|
+
hooks: z.lazy(() => Field11Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3075
|
+
});
|
|
3063
3076
|
export const SyncReportSchema = z.looseObject({
|
|
3064
3077
|
check: z.boolean().refine((value) => value !== undefined, { message: "Required" }),
|
|
3065
3078
|
config_files: z.array(z.string()).refine((value) => value !== undefined, { message: "Required" }),
|
|
@@ -3083,6 +3096,12 @@ export const SyncStatusSchema = z.union([
|
|
|
3083
3096
|
z.literal("unchanged"),
|
|
3084
3097
|
z.literal("skipped"),
|
|
3085
3098
|
]);
|
|
3099
|
+
export const SyncVariantPolicyReportSchema = z.looseObject({
|
|
3100
|
+
allowed_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3101
|
+
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3102
|
+
hooks: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3103
|
+
settings: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3104
|
+
});
|
|
3086
3105
|
export const TimingSourceSchema = z.union([
|
|
3087
3106
|
z.literal("provider_measured"),
|
|
3088
3107
|
z.literal("stdout_observed"),
|
|
@@ -3222,7 +3241,6 @@ export const VariantReportSchema = z.looseObject({
|
|
|
3222
3241
|
apps: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
3223
3242
|
args: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3224
3243
|
bin: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3225
|
-
denied_tools: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3226
3244
|
env: z
|
|
3227
3245
|
.record(z.string(), z.lazy(() => Field3Schema))
|
|
3228
3246
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
@@ -3230,12 +3248,10 @@ export const VariantReportSchema = z.looseObject({
|
|
|
3230
3248
|
env_from: z
|
|
3231
3249
|
.record(z.string(), z.lazy(() => Field3Schema))
|
|
3232
3250
|
.refine((value) => value !== undefined, { message: "Required" }),
|
|
3233
|
-
hooks: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3234
3251
|
model: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3235
3252
|
model_catalog_refresh_seconds: z.union([z.lazy(() => Field5Schema), z.null()]).optional(),
|
|
3236
3253
|
plugins: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
3237
3254
|
reasoning: z.lazy(() => Field3Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3238
|
-
settings: z.looseObject({}).refine((value) => value !== undefined, { message: "Required" }),
|
|
3239
3255
|
shared_model_catalog: z.union([z.lazy(() => FieldSchema), z.null()]).optional(),
|
|
3240
3256
|
unset_env: z.lazy(() => Field2Schema).refine((value) => value !== undefined, { message: "Required" }),
|
|
3241
3257
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneharness/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Typed Node.js SDK for oneharness",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"node": ">=20"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"oneharness-cli": "0.
|
|
22
|
+
"oneharness-cli": "0.29.0",
|
|
23
23
|
"zod": "^4.4.3"
|
|
24
24
|
}
|
|
25
25
|
}
|