@dsh-enhanced/assistant-skills 0.1.30

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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -0
  3. package/cordis.patch.yml +3 -0
  4. package/lib/capture-expansion.d.ts +18 -0
  5. package/lib/capture-expansion.d.ts.map +1 -0
  6. package/lib/capture-expansion.js +187 -0
  7. package/lib/capture-expansion.js.map +1 -0
  8. package/lib/comparison.d.ts +69 -0
  9. package/lib/comparison.d.ts.map +1 -0
  10. package/lib/comparison.js +173 -0
  11. package/lib/comparison.js.map +1 -0
  12. package/lib/definition.d.ts +163 -0
  13. package/lib/definition.d.ts.map +1 -0
  14. package/lib/definition.js +450 -0
  15. package/lib/definition.js.map +1 -0
  16. package/lib/external-holdout.d.ts +34 -0
  17. package/lib/external-holdout.d.ts.map +1 -0
  18. package/lib/external-holdout.js +212 -0
  19. package/lib/external-holdout.js.map +1 -0
  20. package/lib/holdout-authority.d.ts +123 -0
  21. package/lib/holdout-authority.d.ts.map +1 -0
  22. package/lib/holdout-authority.js +263 -0
  23. package/lib/holdout-authority.js.map +1 -0
  24. package/lib/holdout-cli.d.ts +4 -0
  25. package/lib/holdout-cli.d.ts.map +1 -0
  26. package/lib/holdout-cli.js +221 -0
  27. package/lib/holdout-cli.js.map +1 -0
  28. package/lib/holdout-qualification.d.ts +83 -0
  29. package/lib/holdout-qualification.d.ts.map +1 -0
  30. package/lib/holdout-qualification.js +306 -0
  31. package/lib/holdout-qualification.js.map +1 -0
  32. package/lib/index.d.ts +22 -0
  33. package/lib/index.d.ts.map +1 -0
  34. package/lib/index.js +9 -0
  35. package/lib/index.js.map +1 -0
  36. package/lib/prospective-holdout.d.ts +35 -0
  37. package/lib/prospective-holdout.d.ts.map +1 -0
  38. package/lib/prospective-holdout.js +254 -0
  39. package/lib/prospective-holdout.js.map +1 -0
  40. package/lib/repair-admission.d.ts +11 -0
  41. package/lib/repair-admission.d.ts.map +1 -0
  42. package/lib/repair-admission.js +25 -0
  43. package/lib/repair-admission.js.map +1 -0
  44. package/lib/repair-agent.d.ts +44 -0
  45. package/lib/repair-agent.d.ts.map +1 -0
  46. package/lib/repair-agent.js +241 -0
  47. package/lib/repair-agent.js.map +1 -0
  48. package/lib/repair-feedback.d.ts +70 -0
  49. package/lib/repair-feedback.d.ts.map +1 -0
  50. package/lib/repair-feedback.js +79 -0
  51. package/lib/repair-feedback.js.map +1 -0
  52. package/lib/repair-profile.d.ts +27 -0
  53. package/lib/repair-profile.d.ts.map +1 -0
  54. package/lib/repair-profile.js +51 -0
  55. package/lib/repair-profile.js.map +1 -0
  56. package/lib/repair-runtime.d.ts +35 -0
  57. package/lib/repair-runtime.d.ts.map +1 -0
  58. package/lib/repair-runtime.js +181 -0
  59. package/lib/repair-runtime.js.map +1 -0
  60. package/lib/replay.d.ts +38 -0
  61. package/lib/replay.d.ts.map +1 -0
  62. package/lib/replay.js +240 -0
  63. package/lib/replay.js.map +1 -0
  64. package/lib/sealed-holdout.d.ts +20 -0
  65. package/lib/sealed-holdout.d.ts.map +1 -0
  66. package/lib/sealed-holdout.js +12 -0
  67. package/lib/sealed-holdout.js.map +1 -0
  68. package/lib/service.d.ts +968 -0
  69. package/lib/service.d.ts.map +1 -0
  70. package/lib/service.js +1929 -0
  71. package/lib/service.js.map +1 -0
  72. package/lib/store.d.ts +366 -0
  73. package/lib/store.d.ts.map +1 -0
  74. package/lib/store.js +1517 -0
  75. package/lib/store.js.map +1 -0
  76. package/lib/version.d.ts +2 -0
  77. package/lib/version.d.ts.map +1 -0
  78. package/lib/version.js +2 -0
  79. package/lib/version.js.map +1 -0
  80. package/lib/watch-proof.d.ts +30 -0
  81. package/lib/watch-proof.d.ts.map +1 -0
  82. package/lib/watch-proof.js +209 -0
  83. package/lib/watch-proof.js.map +1 -0
  84. package/package.json +141 -0
@@ -0,0 +1,968 @@
1
+ import { Context, Service } from '@deepseek-ai/cordis';
2
+ import type { Agent } from '@deepseek-ai/dsh-agent';
3
+ import type { ToolRunContext } from '@deepseek-ai/dsh-tools';
4
+ import type { GoalScope, OwnerAuthorizedRepairInput } from '@dsh-enhanced/assistant-goals';
5
+ import Schema from '@deepseek-ai/schemastery';
6
+ import { type SkillBinding } from './definition.js';
7
+ import { type SkillComparisonProfile } from './comparison.js';
8
+ import { type SealedSkillHoldoutProvider } from './sealed-holdout.js';
9
+ import { type ExternalHoldoutProfile } from './external-holdout.js';
10
+ import { type RepairContinuationProfile } from './repair-profile.js';
11
+ import { type SkillRun, type SkillRunStep, type StoredSkillDefinition, type SkillDeploymentInput } from './store.js';
12
+ export interface Config {
13
+ databasePath?: string;
14
+ allowedTools?: string[];
15
+ maxDurationMs?: number;
16
+ candidateTtlMs?: number;
17
+ comparisons?: SkillComparisonProfile[];
18
+ externalHoldouts?: ExternalHoldoutProfile[];
19
+ repairProfiles?: RepairContinuationProfile[];
20
+ }
21
+ /** Narrow Host-only capability for a finite continuation of a prior owner authorization. */
22
+ export interface RepairExecutionAuthority {
23
+ readonly id: string;
24
+ readonly scope: GoalScope;
25
+ readonly ownerRouteId: string;
26
+ readonly expiresAt: number;
27
+ assertCurrent(): void;
28
+ }
29
+ export type RepairExecutionContext = Pick<ToolRunContext, 'agent' | 'signal'>;
30
+ export interface StageFailureCandidateInput {
31
+ readonly ownerRouteId: string;
32
+ readonly triggerGoalId?: string;
33
+ readonly triggerSessionId?: string;
34
+ readonly failureLocators?: unknown;
35
+ readonly minimumOccurrences?: number;
36
+ readonly repairGoalId: string;
37
+ readonly repairSessionId: string;
38
+ readonly taskFamilyId: string;
39
+ readonly name: string;
40
+ readonly description: string;
41
+ readonly bindings?: readonly SkillBinding[];
42
+ readonly parentVersion: number;
43
+ }
44
+ export declare const Config: Schema<Config>;
45
+ declare module '@deepseek-ai/cordis' {
46
+ interface Context {
47
+ assistantSkills: AssistantSkillsService;
48
+ }
49
+ }
50
+ /** Fixed tool compositions run in the original native Goal; no new AgentLoop or scheduler. */
51
+ export declare class AssistantSkillsService extends Service {
52
+ #private;
53
+ static Config: Schema<Config>;
54
+ constructor(ctx: Context, config?: Config);
55
+ /** Host-only registration; there is intentionally no model tool for sealed inputs or attestations. */
56
+ registerSealedHoldoutProvider: (provider: SealedSkillHoldoutProvider) => (() => void);
57
+ inspectSealedHoldout: (planId: string, scope: GoalScope) => Readonly<{
58
+ protocol: "assistant-skills/sealed-holdout-binding/v1";
59
+ planId: string;
60
+ bindingDigest: string;
61
+ attestationDigest: string;
62
+ }>;
63
+ /** Host-only immutable configuration inspection for a previously authorized repair. */
64
+ inspectRepairProfile: (profileId: string, scope: GoalScope) => Readonly<{
65
+ profile: ExternalHoldoutProfile;
66
+ digest: string;
67
+ templateDigest: string | undefined;
68
+ }> | undefined;
69
+ /** Host-only current definition read; callers must bind its digest in durable intent. */
70
+ inspectRepairParent: (scope: GoalScope, name: string) => StoredSkillDefinition | undefined;
71
+ /** Host entrypoint: consumes opaque provider cases through the same native replay and isolated verifier as compare. */
72
+ qualifySealedHoldout: (exec: ToolRunContext, candidateId: string, planId: string, invocationId: string) => Promise<import("./store.js").SkillComparison>;
73
+ save(agent: Agent | undefined, goalId: string, options: {
74
+ name: string;
75
+ description: string;
76
+ bindings?: readonly SkillBinding[];
77
+ }, expectedVersion?: number): StoredSkillDefinition;
78
+ inspect(agent: Agent | undefined, runId?: string): SkillRun | StoredSkillDefinition[] | undefined;
79
+ retire(agent: Agent | undefined, name: string, expectedVersion: number): StoredSkillDefinition;
80
+ comparisonStatus(agent: Agent | undefined, id?: string): {
81
+ generatorDigest?: unknown;
82
+ admissionDigest?: {} | null;
83
+ planDigest?: unknown;
84
+ datasetDigest?: unknown;
85
+ quality?: {
86
+ candidateChecksPassed: unknown;
87
+ evaluationGain: unknown;
88
+ evaluationGainObserved: unknown;
89
+ criticalRegressionsPassed: unknown;
90
+ heldoutIndependence: unknown;
91
+ };
92
+ id: string;
93
+ candidateId: string;
94
+ parentDigest: string;
95
+ profileId: string;
96
+ profileDigest: string;
97
+ invocationId: string;
98
+ state: "running" | "unknown" | "complete";
99
+ createdAt: number;
100
+ updatedAt: number;
101
+ } | ({
102
+ id: string;
103
+ version: number;
104
+ kind: string;
105
+ executionTool: string;
106
+ expiresAt: number;
107
+ cases: number;
108
+ repeats: number;
109
+ maxComparisons: number;
110
+ } | {
111
+ expiresAt: number;
112
+ maxComparisons: 1;
113
+ canaryExecutionTool?: string;
114
+ id: string;
115
+ version: number;
116
+ kind: string;
117
+ executionTool: string;
118
+ })[] | null;
119
+ /** Fixed external authority qualification. Private cells, authority keys and operator configuration never become tool arguments or status data. */
120
+ qualifyExternalHoldout(exec: RepairExecutionContext, candidateId: string, profileId: string, invocationId: string, action?: 'compare' | 'canary', currentAuthority?: () => void, repair?: {
121
+ authority: RepairExecutionAuthority;
122
+ profile: ExternalHoldoutProfile;
123
+ configuredDigest: string;
124
+ }): Promise<{
125
+ generatorDigest?: unknown;
126
+ admissionDigest?: {} | null;
127
+ planDigest?: unknown;
128
+ datasetDigest?: unknown;
129
+ quality?: {
130
+ candidateChecksPassed: unknown;
131
+ evaluationGain: unknown;
132
+ evaluationGainObserved: unknown;
133
+ criticalRegressionsPassed: unknown;
134
+ heldoutIndependence: unknown;
135
+ };
136
+ id: string;
137
+ candidateId: string;
138
+ parentDigest: string;
139
+ profileId: string;
140
+ profileDigest: string;
141
+ invocationId: string;
142
+ state: "running" | "unknown" | "complete";
143
+ createdAt: number;
144
+ updatedAt: number;
145
+ }>;
146
+ canary(exec: RepairExecutionContext, candidateId: string, profileId: string, invocationId: string, input: SkillDeploymentInput, repair?: RepairExecutionAuthority): Promise<{
147
+ definition: {
148
+ restoredFromVersion?: number;
149
+ version?: number;
150
+ parentVersion?: number | null;
151
+ retired?: boolean;
152
+ definitionDigest?: string;
153
+ createdAt?: number;
154
+ updatedAt?: number;
155
+ preconditions: "current-owner-policy-and-fresh-goal";
156
+ compensation: "stop-and-report";
157
+ runExpansionCount?: number;
158
+ runExpansionsDigest?: string;
159
+ fileObservations?: import("./definition.js").SkillFileObservations;
160
+ protocol: "assistant-skills/definition/v1";
161
+ name: string;
162
+ description: string;
163
+ source: {
164
+ digest: string;
165
+ goalDefinitionDigest: string;
166
+ stepCount: number;
167
+ failedObservationCount: number;
168
+ segmentCount: number;
169
+ };
170
+ inputs: readonly import("./definition.js").SkillInput[];
171
+ steps: readonly import("./definition.js").SkillStep[];
172
+ };
173
+ deployment: {
174
+ id: string;
175
+ candidateId: string;
176
+ comparisonId: string;
177
+ qualificationDigest: string;
178
+ admissionDigest: string;
179
+ candidateDefinitionDigest: string;
180
+ skillName: string;
181
+ version: number;
182
+ definitionDigest: string;
183
+ parentVersion: number;
184
+ watchId: string;
185
+ taskFamilyDigest: string;
186
+ expiresAt: number;
187
+ maxRuns: number;
188
+ canaryRuns: number;
189
+ runCount: number;
190
+ state: "rolled-back" | "expired" | "revoked" | "superseded" | "canary" | "promoted" | "blocked";
191
+ createdAt: number;
192
+ updatedAt: number;
193
+ };
194
+ replayed: boolean;
195
+ }>;
196
+ /** Host-only repair continuation. It requires a dynamic template, never a model-visible admission. */
197
+ canaryOwnerAuthorizedRepair: (exec: RepairExecutionContext, candidateId: string, profileId: string, invocationId: string, deploymentInput: SkillDeploymentInput, authority: RepairExecutionAuthority) => Promise<{
198
+ definition: {
199
+ restoredFromVersion?: number;
200
+ version?: number;
201
+ parentVersion?: number | null;
202
+ retired?: boolean;
203
+ definitionDigest?: string;
204
+ createdAt?: number;
205
+ updatedAt?: number;
206
+ preconditions: "current-owner-policy-and-fresh-goal";
207
+ compensation: "stop-and-report";
208
+ runExpansionCount?: number;
209
+ runExpansionsDigest?: string;
210
+ fileObservations?: import("./definition.js").SkillFileObservations;
211
+ protocol: "assistant-skills/definition/v1";
212
+ name: string;
213
+ description: string;
214
+ source: {
215
+ digest: string;
216
+ goalDefinitionDigest: string;
217
+ stepCount: number;
218
+ failedObservationCount: number;
219
+ segmentCount: number;
220
+ };
221
+ inputs: readonly import("./definition.js").SkillInput[];
222
+ steps: readonly import("./definition.js").SkillStep[];
223
+ };
224
+ deployment: {
225
+ id: string;
226
+ candidateId: string;
227
+ comparisonId: string;
228
+ qualificationDigest: string;
229
+ admissionDigest: string;
230
+ candidateDefinitionDigest: string;
231
+ skillName: string;
232
+ version: number;
233
+ definitionDigest: string;
234
+ parentVersion: number;
235
+ watchId: string;
236
+ taskFamilyDigest: string;
237
+ expiresAt: number;
238
+ maxRuns: number;
239
+ canaryRuns: number;
240
+ runCount: number;
241
+ state: "rolled-back" | "expired" | "revoked" | "superseded" | "canary" | "promoted" | "blocked";
242
+ createdAt: number;
243
+ updatedAt: number;
244
+ };
245
+ replayed: boolean;
246
+ }>;
247
+ compare(exec: ToolRunContext, candidateId: string, profileId: string, invocationId: string): Promise<{
248
+ generatorDigest?: unknown;
249
+ admissionDigest?: {} | null;
250
+ planDigest?: unknown;
251
+ datasetDigest?: unknown;
252
+ quality?: {
253
+ candidateChecksPassed: unknown;
254
+ evaluationGain: unknown;
255
+ evaluationGainObserved: unknown;
256
+ criticalRegressionsPassed: unknown;
257
+ heldoutIndependence: unknown;
258
+ };
259
+ id: string;
260
+ candidateId: string;
261
+ parentDigest: string;
262
+ profileId: string;
263
+ profileDigest: string;
264
+ invocationId: string;
265
+ state: "running" | "unknown" | "complete";
266
+ createdAt: number;
267
+ updatedAt: number;
268
+ }>;
269
+ stage(agent: Agent | undefined, goalId: string, options: {
270
+ name: string;
271
+ description: string;
272
+ bindings?: readonly SkillBinding[];
273
+ }, parentVersion: number, reason: string, trigger: string): {
274
+ comparison: {
275
+ kind: string;
276
+ improvement: string;
277
+ toolsAdded: string[];
278
+ toolsRemoved: string[];
279
+ inputsChanged: boolean;
280
+ changedSteps: {
281
+ index: number;
282
+ before: string | null;
283
+ after: string | null;
284
+ }[];
285
+ };
286
+ failure?: {
287
+ protocol: "assistant-skills/failure-capture-provenance/v1";
288
+ provenanceDigest: string;
289
+ category: import("./definition.js").FailureCaptureCategory;
290
+ occurrences: number;
291
+ taskFamilyId: string;
292
+ taskFamilyDefinitionDigest: string;
293
+ permissionDelta: {
294
+ parent: readonly string[];
295
+ candidate: readonly string[];
296
+ added: readonly string[];
297
+ removed: readonly string[];
298
+ expandsAuthority: boolean;
299
+ };
300
+ rollbackTarget: {
301
+ name: string;
302
+ version: number;
303
+ digest: string;
304
+ };
305
+ count: number;
306
+ digest: string;
307
+ };
308
+ activationWatchId?: string;
309
+ deploymentId?: string;
310
+ activationComparisonId?: string;
311
+ activatedVersion?: number;
312
+ id: string;
313
+ definition: {
314
+ restoredFromVersion?: number;
315
+ version?: number;
316
+ parentVersion?: number | null;
317
+ retired?: boolean;
318
+ definitionDigest?: string;
319
+ createdAt?: number;
320
+ updatedAt?: number;
321
+ preconditions: "current-owner-policy-and-fresh-goal";
322
+ compensation: "stop-and-report";
323
+ runExpansionCount?: number;
324
+ runExpansionsDigest?: string;
325
+ fileObservations?: import("./definition.js").SkillFileObservations;
326
+ protocol: "assistant-skills/definition/v1";
327
+ name: string;
328
+ description: string;
329
+ source: {
330
+ digest: string;
331
+ goalDefinitionDigest: string;
332
+ stepCount: number;
333
+ failedObservationCount: number;
334
+ segmentCount: number;
335
+ };
336
+ inputs: readonly import("./definition.js").SkillInput[];
337
+ steps: readonly import("./definition.js").SkillStep[];
338
+ };
339
+ definitionDigest: string;
340
+ parentVersion: number;
341
+ parentDigest: string | null;
342
+ reason: string;
343
+ trigger: string;
344
+ expiresAt: number;
345
+ state: "pending" | "activated" | "rejected";
346
+ createdAt: number;
347
+ updatedAt: number;
348
+ };
349
+ stageFailureCandidate(exec: RepairExecutionContext, input: StageFailureCandidateInput, repair?: RepairExecutionAuthority): Promise<{
350
+ comparison: {
351
+ kind: string;
352
+ improvement: string;
353
+ toolsAdded: string[];
354
+ toolsRemoved: string[];
355
+ inputsChanged: boolean;
356
+ changedSteps: {
357
+ index: number;
358
+ before: string | null;
359
+ after: string | null;
360
+ }[];
361
+ };
362
+ failure?: {
363
+ protocol: "assistant-skills/failure-capture-provenance/v1";
364
+ provenanceDigest: string;
365
+ category: import("./definition.js").FailureCaptureCategory;
366
+ occurrences: number;
367
+ taskFamilyId: string;
368
+ taskFamilyDefinitionDigest: string;
369
+ permissionDelta: {
370
+ parent: readonly string[];
371
+ candidate: readonly string[];
372
+ added: readonly string[];
373
+ removed: readonly string[];
374
+ expandsAuthority: boolean;
375
+ };
376
+ rollbackTarget: {
377
+ name: string;
378
+ version: number;
379
+ digest: string;
380
+ };
381
+ count: number;
382
+ digest: string;
383
+ };
384
+ activationWatchId?: string;
385
+ deploymentId?: string;
386
+ activationComparisonId?: string;
387
+ activatedVersion?: number;
388
+ id: string;
389
+ definition: {
390
+ restoredFromVersion?: number;
391
+ version?: number;
392
+ parentVersion?: number | null;
393
+ retired?: boolean;
394
+ definitionDigest?: string;
395
+ createdAt?: number;
396
+ updatedAt?: number;
397
+ preconditions: "current-owner-policy-and-fresh-goal";
398
+ compensation: "stop-and-report";
399
+ runExpansionCount?: number;
400
+ runExpansionsDigest?: string;
401
+ fileObservations?: import("./definition.js").SkillFileObservations;
402
+ protocol: "assistant-skills/definition/v1";
403
+ name: string;
404
+ description: string;
405
+ source: {
406
+ digest: string;
407
+ goalDefinitionDigest: string;
408
+ stepCount: number;
409
+ failedObservationCount: number;
410
+ segmentCount: number;
411
+ };
412
+ inputs: readonly import("./definition.js").SkillInput[];
413
+ steps: readonly import("./definition.js").SkillStep[];
414
+ };
415
+ definitionDigest: string;
416
+ parentVersion: number;
417
+ parentDigest: string | null;
418
+ reason: string;
419
+ trigger: string;
420
+ expiresAt: number;
421
+ state: "pending" | "activated" | "rejected";
422
+ createdAt: number;
423
+ updatedAt: number;
424
+ }>;
425
+ stageOwnerAuthorizedFailureCandidate: (exec: RepairExecutionContext, input: StageFailureCandidateInput, authority: RepairExecutionAuthority) => Promise<{
426
+ comparison: {
427
+ kind: string;
428
+ improvement: string;
429
+ toolsAdded: string[];
430
+ toolsRemoved: string[];
431
+ inputsChanged: boolean;
432
+ changedSteps: {
433
+ index: number;
434
+ before: string | null;
435
+ after: string | null;
436
+ }[];
437
+ };
438
+ failure?: {
439
+ protocol: "assistant-skills/failure-capture-provenance/v1";
440
+ provenanceDigest: string;
441
+ category: import("./definition.js").FailureCaptureCategory;
442
+ occurrences: number;
443
+ taskFamilyId: string;
444
+ taskFamilyDefinitionDigest: string;
445
+ permissionDelta: {
446
+ parent: readonly string[];
447
+ candidate: readonly string[];
448
+ added: readonly string[];
449
+ removed: readonly string[];
450
+ expandsAuthority: boolean;
451
+ };
452
+ rollbackTarget: {
453
+ name: string;
454
+ version: number;
455
+ digest: string;
456
+ };
457
+ count: number;
458
+ digest: string;
459
+ };
460
+ activationWatchId?: string;
461
+ deploymentId?: string;
462
+ activationComparisonId?: string;
463
+ activatedVersion?: number;
464
+ id: string;
465
+ definition: {
466
+ restoredFromVersion?: number;
467
+ version?: number;
468
+ parentVersion?: number | null;
469
+ retired?: boolean;
470
+ definitionDigest?: string;
471
+ createdAt?: number;
472
+ updatedAt?: number;
473
+ preconditions: "current-owner-policy-and-fresh-goal";
474
+ compensation: "stop-and-report";
475
+ runExpansionCount?: number;
476
+ runExpansionsDigest?: string;
477
+ fileObservations?: import("./definition.js").SkillFileObservations;
478
+ protocol: "assistant-skills/definition/v1";
479
+ name: string;
480
+ description: string;
481
+ source: {
482
+ digest: string;
483
+ goalDefinitionDigest: string;
484
+ stepCount: number;
485
+ failedObservationCount: number;
486
+ segmentCount: number;
487
+ };
488
+ inputs: readonly import("./definition.js").SkillInput[];
489
+ steps: readonly import("./definition.js").SkillStep[];
490
+ };
491
+ definitionDigest: string;
492
+ parentVersion: number;
493
+ parentDigest: string | null;
494
+ reason: string;
495
+ trigger: string;
496
+ expiresAt: number;
497
+ state: "pending" | "activated" | "rejected";
498
+ createdAt: number;
499
+ updatedAt: number;
500
+ }>;
501
+ candidates(agent: Agent | undefined, id?: string): {
502
+ comparison: {
503
+ kind: string;
504
+ improvement: string;
505
+ toolsAdded: string[];
506
+ toolsRemoved: string[];
507
+ inputsChanged: boolean;
508
+ changedSteps: {
509
+ index: number;
510
+ before: string | null;
511
+ after: string | null;
512
+ }[];
513
+ };
514
+ failure?: {
515
+ protocol: "assistant-skills/failure-capture-provenance/v1";
516
+ provenanceDigest: string;
517
+ category: import("./definition.js").FailureCaptureCategory;
518
+ occurrences: number;
519
+ taskFamilyId: string;
520
+ taskFamilyDefinitionDigest: string;
521
+ permissionDelta: {
522
+ parent: readonly string[];
523
+ candidate: readonly string[];
524
+ added: readonly string[];
525
+ removed: readonly string[];
526
+ expandsAuthority: boolean;
527
+ };
528
+ rollbackTarget: {
529
+ name: string;
530
+ version: number;
531
+ digest: string;
532
+ };
533
+ count: number;
534
+ digest: string;
535
+ };
536
+ activationWatchId?: string;
537
+ deploymentId?: string;
538
+ activationComparisonId?: string;
539
+ activatedVersion?: number;
540
+ id: string;
541
+ definition: {
542
+ restoredFromVersion?: number;
543
+ version?: number;
544
+ parentVersion?: number | null;
545
+ retired?: boolean;
546
+ definitionDigest?: string;
547
+ createdAt?: number;
548
+ updatedAt?: number;
549
+ preconditions: "current-owner-policy-and-fresh-goal";
550
+ compensation: "stop-and-report";
551
+ runExpansionCount?: number;
552
+ runExpansionsDigest?: string;
553
+ fileObservations?: import("./definition.js").SkillFileObservations;
554
+ protocol: "assistant-skills/definition/v1";
555
+ name: string;
556
+ description: string;
557
+ source: {
558
+ digest: string;
559
+ goalDefinitionDigest: string;
560
+ stepCount: number;
561
+ failedObservationCount: number;
562
+ segmentCount: number;
563
+ };
564
+ inputs: readonly import("./definition.js").SkillInput[];
565
+ steps: readonly import("./definition.js").SkillStep[];
566
+ };
567
+ definitionDigest: string;
568
+ parentVersion: number;
569
+ parentDigest: string | null;
570
+ reason: string;
571
+ trigger: string;
572
+ expiresAt: number;
573
+ state: "pending" | "activated" | "rejected";
574
+ createdAt: number;
575
+ updatedAt: number;
576
+ } | {
577
+ comparison: {
578
+ kind: string;
579
+ improvement: string;
580
+ toolsAdded: string[];
581
+ toolsRemoved: string[];
582
+ inputsChanged: boolean;
583
+ changedSteps: {
584
+ index: number;
585
+ before: string | null;
586
+ after: string | null;
587
+ }[];
588
+ };
589
+ failure?: {
590
+ protocol: "assistant-skills/failure-capture-provenance/v1";
591
+ provenanceDigest: string;
592
+ category: import("./definition.js").FailureCaptureCategory;
593
+ occurrences: number;
594
+ taskFamilyId: string;
595
+ taskFamilyDefinitionDigest: string;
596
+ permissionDelta: {
597
+ parent: readonly string[];
598
+ candidate: readonly string[];
599
+ added: readonly string[];
600
+ removed: readonly string[];
601
+ expandsAuthority: boolean;
602
+ };
603
+ rollbackTarget: {
604
+ name: string;
605
+ version: number;
606
+ digest: string;
607
+ };
608
+ count: number;
609
+ digest: string;
610
+ };
611
+ activationWatchId?: string;
612
+ deploymentId?: string;
613
+ activationComparisonId?: string;
614
+ activatedVersion?: number;
615
+ id: string;
616
+ definition: {
617
+ restoredFromVersion?: number;
618
+ version?: number;
619
+ parentVersion?: number | null;
620
+ retired?: boolean;
621
+ definitionDigest?: string;
622
+ createdAt?: number;
623
+ updatedAt?: number;
624
+ preconditions: "current-owner-policy-and-fresh-goal";
625
+ compensation: "stop-and-report";
626
+ runExpansionCount?: number;
627
+ runExpansionsDigest?: string;
628
+ fileObservations?: import("./definition.js").SkillFileObservations;
629
+ protocol: "assistant-skills/definition/v1";
630
+ name: string;
631
+ description: string;
632
+ source: {
633
+ digest: string;
634
+ goalDefinitionDigest: string;
635
+ stepCount: number;
636
+ failedObservationCount: number;
637
+ segmentCount: number;
638
+ };
639
+ inputs: readonly import("./definition.js").SkillInput[];
640
+ steps: readonly import("./definition.js").SkillStep[];
641
+ };
642
+ definitionDigest: string;
643
+ parentVersion: number;
644
+ parentDigest: string | null;
645
+ reason: string;
646
+ trigger: string;
647
+ expiresAt: number;
648
+ state: "pending" | "activated" | "rejected";
649
+ createdAt: number;
650
+ updatedAt: number;
651
+ }[] | null;
652
+ trial(exec: ToolRunContext, candidateId: string, goalId: string, inputs: Record<string, unknown>, invocationId: string): Promise<{
653
+ skillName: string;
654
+ version: number;
655
+ invocationId: string;
656
+ inputs: Record<string, unknown>;
657
+ candidateId?: string;
658
+ state: "awaiting-native-round";
659
+ performed: boolean;
660
+ context: string;
661
+ next: string;
662
+ goalId: string;
663
+ } | {
664
+ replayed: boolean;
665
+ acceptance: string;
666
+ id: string;
667
+ invocationId: string;
668
+ goalId: string;
669
+ sessionId: string;
670
+ skillName: string;
671
+ version: number;
672
+ inputs: Readonly<Record<string, unknown>>;
673
+ state: import("./store.js").SkillRunState;
674
+ steps: readonly SkillRunStep[];
675
+ candidateId?: string;
676
+ goalExecutionRunId?: string;
677
+ goalDefinitionDigest?: string;
678
+ nativeGoalId?: string;
679
+ createdAt: number;
680
+ updatedAt: number;
681
+ }>;
682
+ activate(agent: Agent | undefined, candidateId: string, trialRunId: string, observation?: {
683
+ ownerRouteId: string;
684
+ expiresAt: number;
685
+ maxRuns: number;
686
+ failureThreshold: number;
687
+ }): {
688
+ watch?: {
689
+ taskFamilyDigest?: string;
690
+ rollbackVersion?: number;
691
+ id: string;
692
+ skillName: string;
693
+ version: number;
694
+ definitionDigest: string;
695
+ fallbackVersion: number;
696
+ fallbackDigest: string;
697
+ expiresAt: number;
698
+ maxRuns: number;
699
+ failureThreshold: number;
700
+ state: "watching" | "rolled-back" | "expired" | "revoked" | "superseded" | "exhausted";
701
+ observedRuns: number;
702
+ achieved: number;
703
+ notAchieved: number;
704
+ createdAt: number;
705
+ updatedAt: number;
706
+ };
707
+ activated: {
708
+ restoredFromVersion?: number;
709
+ version?: number;
710
+ parentVersion?: number | null;
711
+ retired?: boolean;
712
+ definitionDigest?: string;
713
+ createdAt?: number;
714
+ updatedAt?: number;
715
+ preconditions: "current-owner-policy-and-fresh-goal";
716
+ compensation: "stop-and-report";
717
+ runExpansionCount?: number;
718
+ runExpansionsDigest?: string;
719
+ fileObservations?: import("./definition.js").SkillFileObservations;
720
+ protocol: "assistant-skills/definition/v1";
721
+ name: string;
722
+ description: string;
723
+ source: {
724
+ digest: string;
725
+ goalDefinitionDigest: string;
726
+ stepCount: number;
727
+ failedObservationCount: number;
728
+ segmentCount: number;
729
+ };
730
+ inputs: readonly import("./definition.js").SkillInput[];
731
+ steps: readonly import("./definition.js").SkillStep[];
732
+ };
733
+ activeVersion: number | null;
734
+ replayed: boolean;
735
+ improvement: string;
736
+ };
737
+ reject(agent: Agent | undefined, candidateId: string): {
738
+ comparison: {
739
+ kind: string;
740
+ improvement: string;
741
+ toolsAdded: string[];
742
+ toolsRemoved: string[];
743
+ inputsChanged: boolean;
744
+ changedSteps: {
745
+ index: number;
746
+ before: string | null;
747
+ after: string | null;
748
+ }[];
749
+ };
750
+ failure?: {
751
+ protocol: "assistant-skills/failure-capture-provenance/v1";
752
+ provenanceDigest: string;
753
+ category: import("./definition.js").FailureCaptureCategory;
754
+ occurrences: number;
755
+ taskFamilyId: string;
756
+ taskFamilyDefinitionDigest: string;
757
+ permissionDelta: {
758
+ parent: readonly string[];
759
+ candidate: readonly string[];
760
+ added: readonly string[];
761
+ removed: readonly string[];
762
+ expandsAuthority: boolean;
763
+ };
764
+ rollbackTarget: {
765
+ name: string;
766
+ version: number;
767
+ digest: string;
768
+ };
769
+ count: number;
770
+ digest: string;
771
+ };
772
+ activationWatchId?: string;
773
+ deploymentId?: string;
774
+ activationComparisonId?: string;
775
+ activatedVersion?: number;
776
+ id: string;
777
+ definition: {
778
+ restoredFromVersion?: number;
779
+ version?: number;
780
+ parentVersion?: number | null;
781
+ retired?: boolean;
782
+ definitionDigest?: string;
783
+ createdAt?: number;
784
+ updatedAt?: number;
785
+ preconditions: "current-owner-policy-and-fresh-goal";
786
+ compensation: "stop-and-report";
787
+ runExpansionCount?: number;
788
+ runExpansionsDigest?: string;
789
+ fileObservations?: import("./definition.js").SkillFileObservations;
790
+ protocol: "assistant-skills/definition/v1";
791
+ name: string;
792
+ description: string;
793
+ source: {
794
+ digest: string;
795
+ goalDefinitionDigest: string;
796
+ stepCount: number;
797
+ failedObservationCount: number;
798
+ segmentCount: number;
799
+ };
800
+ inputs: readonly import("./definition.js").SkillInput[];
801
+ steps: readonly import("./definition.js").SkillStep[];
802
+ };
803
+ definitionDigest: string;
804
+ parentVersion: number;
805
+ parentDigest: string | null;
806
+ reason: string;
807
+ trigger: string;
808
+ expiresAt: number;
809
+ state: "pending" | "activated" | "rejected";
810
+ createdAt: number;
811
+ updatedAt: number;
812
+ };
813
+ rollback(agent: Agent | undefined, name: string, expectedVersion: number, targetVersion: number): StoredSkillDefinition;
814
+ /** Process-local capability check used by Goals; no tool can mint these assertions. */
815
+ ownsOwnerAuthorizedRepair: (input: OwnerAuthorizedRepairInput, callback: () => void) => boolean;
816
+ armRepair: (agent: Agent | undefined, input: {
817
+ goalId: string;
818
+ sessionId?: string;
819
+ profileId: string;
820
+ ownerRouteId: string;
821
+ invocationId: string;
822
+ expiresAt: number;
823
+ notify?: boolean;
824
+ }) => {
825
+ updatedAt: number;
826
+ failure?: {};
827
+ deploymentId?: {};
828
+ candidateId?: {};
829
+ repair?: {};
830
+ id: string;
831
+ state: import("./store.js").SkillRepairState;
832
+ iteration: number;
833
+ maxIterations: number;
834
+ expiresAt: number;
835
+ profileId: string;
836
+ skillName: string;
837
+ sourceGoalId: string;
838
+ };
839
+ repairStatus: (agent: Agent | undefined, id?: string) => {
840
+ updatedAt: number;
841
+ failure?: {};
842
+ deploymentId?: {};
843
+ candidateId?: {};
844
+ repair?: {};
845
+ id: string;
846
+ state: import("./store.js").SkillRepairState;
847
+ iteration: number;
848
+ maxIterations: number;
849
+ expiresAt: number;
850
+ profileId: string;
851
+ skillName: string;
852
+ sourceGoalId: string;
853
+ } | {
854
+ profiles: {
855
+ id: string;
856
+ skillName: string;
857
+ taskFamilyId: string;
858
+ maxIterations: number;
859
+ maxGoalRounds: number;
860
+ maxModelCalls: number;
861
+ maxToolCalls: number;
862
+ maxDurationMs: number;
863
+ }[];
864
+ continuations: {
865
+ updatedAt: number;
866
+ failure?: {};
867
+ deploymentId?: {};
868
+ candidateId?: {};
869
+ repair?: {};
870
+ id: string;
871
+ state: import("./store.js").SkillRepairState;
872
+ iteration: number;
873
+ maxIterations: number;
874
+ expiresAt: number;
875
+ profileId: string;
876
+ skillName: string;
877
+ sourceGoalId: string;
878
+ }[];
879
+ } | null;
880
+ revokeRepair: (agent: Agent | undefined, id: string) => Promise<{
881
+ updatedAt: number;
882
+ failure?: {};
883
+ deploymentId?: {};
884
+ candidateId?: {};
885
+ repair?: {};
886
+ id: string;
887
+ state: import("./store.js").SkillRepairState;
888
+ iteration: number;
889
+ maxIterations: number;
890
+ expiresAt: number;
891
+ profileId: string;
892
+ skillName: string;
893
+ sourceGoalId: string;
894
+ }>;
895
+ watch(agent: Agent | undefined, input: {
896
+ ownerRouteId: string;
897
+ skillName: string;
898
+ version: number;
899
+ fallbackVersion: number;
900
+ expiresAt: number;
901
+ maxRuns: number;
902
+ failureThreshold: number;
903
+ }): {
904
+ taskFamilyDigest?: string;
905
+ rollbackVersion?: number;
906
+ id: string;
907
+ skillName: string;
908
+ version: number;
909
+ definitionDigest: string;
910
+ fallbackVersion: number;
911
+ fallbackDigest: string;
912
+ expiresAt: number;
913
+ maxRuns: number;
914
+ failureThreshold: number;
915
+ state: "watching" | "rolled-back" | "expired" | "revoked" | "superseded" | "exhausted";
916
+ observedRuns: number;
917
+ achieved: number;
918
+ notAchieved: number;
919
+ createdAt: number;
920
+ updatedAt: number;
921
+ };
922
+ capture(agent: Agent | undefined, input: {
923
+ ownerRouteId: string;
924
+ goalId: string;
925
+ name: string;
926
+ description: string;
927
+ parentVersion: number;
928
+ expiresAt: number;
929
+ }): {
930
+ candidateId?: string;
931
+ id: string;
932
+ name: string;
933
+ parentVersion: number;
934
+ expiresAt: number;
935
+ state: "pending" | "unknown" | "expired" | "revoked" | "captured" | "unsupported";
936
+ };
937
+ run(exec: ToolRunContext, goalId: string, name: string, version: number, inputs: Record<string, unknown>, invocationId: string): Promise<{
938
+ skillName: string;
939
+ version: number;
940
+ invocationId: string;
941
+ inputs: Record<string, unknown>;
942
+ candidateId?: string;
943
+ state: "awaiting-native-round";
944
+ performed: boolean;
945
+ context: string;
946
+ next: string;
947
+ goalId: string;
948
+ } | {
949
+ replayed: boolean;
950
+ acceptance: string;
951
+ id: string;
952
+ invocationId: string;
953
+ goalId: string;
954
+ sessionId: string;
955
+ skillName: string;
956
+ version: number;
957
+ inputs: Readonly<Record<string, unknown>>;
958
+ state: import("./store.js").SkillRunState;
959
+ steps: readonly SkillRunStep[];
960
+ candidateId?: string;
961
+ goalExecutionRunId?: string;
962
+ goalDefinitionDigest?: string;
963
+ nativeGoalId?: string;
964
+ createdAt: number;
965
+ updatedAt: number;
966
+ }>;
967
+ }
968
+ //# sourceMappingURL=service.d.ts.map