@pellux/goodvibes-contracts 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/artifacts/operator-contract.json +7590 -1633
  2. package/artifacts/operator-openapi.json +92169 -0
  3. package/artifacts/python/homeassistant_operator_client.py +630 -0
  4. package/dist/core-verbs.d.ts.map +1 -1
  5. package/dist/core-verbs.js +51 -2
  6. package/dist/generated/foundation-client-types.d.ts +1009 -2
  7. package/dist/generated/foundation-client-types.d.ts.map +1 -1
  8. package/dist/generated/foundation-metadata.d.ts +3 -3
  9. package/dist/generated/foundation-metadata.js +3 -3
  10. package/dist/generated/mock-daemon-fixtures.d.ts +11 -0
  11. package/dist/generated/mock-daemon-fixtures.d.ts.map +1 -0
  12. package/dist/generated/mock-daemon-fixtures.js +16279 -0
  13. package/dist/generated/operator-contract.d.ts.map +1 -1
  14. package/dist/generated/operator-contract.js +7590 -1633
  15. package/dist/generated/operator-method-ids.d.ts +1 -1
  16. package/dist/generated/operator-method-ids.d.ts.map +1 -1
  17. package/dist/generated/operator-method-ids.js +51 -0
  18. package/dist/generated/runtime-event-domains.d.ts +1 -1
  19. package/dist/generated/runtime-event-domains.d.ts.map +1 -1
  20. package/dist/generated/runtime-event-domains.js +1 -0
  21. package/dist/generated/webui-facade.d.ts +51 -0
  22. package/dist/generated/webui-facade.d.ts.map +1 -0
  23. package/dist/generated/webui-facade.js +18609 -0
  24. package/dist/testing/conformance.d.ts +56 -0
  25. package/dist/testing/conformance.d.ts.map +1 -0
  26. package/dist/testing/conformance.js +50 -0
  27. package/dist/testing/index.d.ts +16 -0
  28. package/dist/testing/index.d.ts.map +1 -0
  29. package/dist/testing/index.js +15 -0
  30. package/dist/testing/mock-daemon.d.ts +58 -0
  31. package/dist/testing/mock-daemon.d.ts.map +1 -0
  32. package/dist/testing/mock-daemon.js +96 -0
  33. package/package.json +14 -1
@@ -452,6 +452,27 @@ export interface OperatorMethodInputMap {
452
452
  } & {
453
453
  readonly [key: string]: unknown;
454
454
  });
455
+ "channels.profiles.delete": {
456
+ surfaceKind: string;
457
+ channelId?: string;
458
+ };
459
+ "channels.profiles.get": {
460
+ surfaceKind: string;
461
+ channelId?: string;
462
+ };
463
+ "channels.profiles.list": {};
464
+ "channels.profiles.set": {
465
+ surfaceKind: string;
466
+ channelId?: string;
467
+ model?: string;
468
+ provider?: string;
469
+ permissionMode?: "accept-edits" | "auto" | "normal" | "plan";
470
+ metadata?: ({} & {
471
+ readonly [key: string]: ({} & {
472
+ readonly [key: string]: JsonValue;
473
+ }) | boolean | null | number | readonly JsonValue[] | string;
474
+ });
475
+ };
455
476
  "channels.repairs.list": {
456
477
  surface: string;
457
478
  };
@@ -477,6 +498,11 @@ export interface OperatorMethodInputMap {
477
498
  } & {
478
499
  readonly [key: string]: unknown;
479
500
  });
501
+ "channels.test.send": {
502
+ surface: string;
503
+ address?: string;
504
+ body?: string;
505
+ };
480
506
  "channels.tools.invoke": ({
481
507
  accountId?: string;
482
508
  metadata?: ({} & {
@@ -491,12 +517,24 @@ export interface OperatorMethodInputMap {
491
517
  "channels.tools.surface.list": {
492
518
  surface: string;
493
519
  };
520
+ "checkin.config.get": {};
521
+ "checkin.config.set": {
522
+ enabled?: boolean;
523
+ cadence?: string;
524
+ deliveryChannel?: string;
525
+ quietHours?: string;
526
+ };
527
+ "checkin.receipts.list": {
528
+ limit?: number;
529
+ };
530
+ "checkin.run": {};
494
531
  "checkpoints.create": {
495
532
  kind: "agent-run" | "manual" | "turn";
496
533
  label?: string;
497
534
  retentionClass?: "forensic" | "short" | "standard";
498
535
  turnId?: string;
499
536
  agentId?: string;
537
+ sessionId?: string;
500
538
  paths?: readonly string[];
501
539
  };
502
540
  "checkpoints.diff": {
@@ -505,6 +543,7 @@ export interface OperatorMethodInputMap {
505
543
  };
506
544
  "checkpoints.list": {
507
545
  kind?: "agent-run" | "manual" | "turn";
546
+ sessionId?: string;
508
547
  since?: number;
509
548
  limit?: number;
510
549
  };
@@ -512,6 +551,43 @@ export interface OperatorMethodInputMap {
512
551
  id: string;
513
552
  paths?: readonly string[];
514
553
  safetyCheckpoint?: boolean;
554
+ confirm?: boolean;
555
+ confirmToken?: string;
556
+ };
557
+ "checkpoints.restorePreview": {
558
+ id: string;
559
+ paths?: readonly string[];
560
+ };
561
+ "checkpoints.revertHunk": {
562
+ path: string;
563
+ hunk: string;
564
+ sessionId?: string;
565
+ confirm?: boolean;
566
+ confirmToken?: string;
567
+ };
568
+ "checkpoints.revertHunkPreview": {
569
+ path: string;
570
+ hunk: string;
571
+ sessionId?: string;
572
+ };
573
+ "ci.status": {
574
+ repo: string;
575
+ ref?: string;
576
+ prNumber?: number;
577
+ };
578
+ "ci.watches.create": {
579
+ repo: string;
580
+ ref?: string;
581
+ prNumber?: number;
582
+ deliveryChannel: string;
583
+ triggerFixSession?: boolean;
584
+ };
585
+ "ci.watches.delete": {
586
+ watchId: string;
587
+ };
588
+ "ci.watches.list": {};
589
+ "ci.watches.run": {
590
+ watchId: string;
515
591
  };
516
592
  "companion.chat.events.stream": {
517
593
  sessionId: string;
@@ -587,6 +663,10 @@ export interface OperatorMethodInputMap {
587
663
  readonly [key: string]: unknown;
588
664
  });
589
665
  "continuity.snapshot": {};
666
+ "cost.attribution.get": {
667
+ window: "24h" | "7d";
668
+ dimension: "agent" | "hook" | "mcp" | "model" | "provider" | "session" | "tool";
669
+ };
590
670
  "control.auth.current": {};
591
671
  "control.auth.login": {
592
672
  username: string;
@@ -616,6 +696,22 @@ export interface OperatorMethodInputMap {
616
696
  deliveryId: string;
617
697
  };
618
698
  "deliveries.list": {};
699
+ "flags.graduation.report": {};
700
+ "fleet.archive": {
701
+ id: string;
702
+ };
703
+ "fleet.archiveFinished": {};
704
+ "fleet.archived.list": {};
705
+ "fleet.attempts.judge": {
706
+ groupId: string;
707
+ };
708
+ "fleet.attempts.list": {
709
+ workstreamId?: string;
710
+ };
711
+ "fleet.attempts.pick": {
712
+ groupId: string;
713
+ winnerItemId: string;
714
+ };
619
715
  "fleet.list": {
620
716
  kinds?: readonly string[];
621
717
  states?: readonly string[];
@@ -623,6 +719,9 @@ export interface OperatorMethodInputMap {
623
719
  cursor?: string;
624
720
  };
625
721
  "fleet.snapshot": {};
722
+ "fleet.unarchive": {
723
+ id: string;
724
+ };
626
725
  "health.snapshot": {};
627
726
  "intelligence.snapshot": {};
628
727
  "knowledge.candidate.decide": ({
@@ -976,6 +1075,10 @@ export interface OperatorMethodInputMap {
976
1075
  } & {
977
1076
  readonly [key: string]: unknown;
978
1077
  });
1078
+ "memory.projections.get": {
1079
+ id: string;
1080
+ };
1081
+ "memory.projections.list": {};
979
1082
  "memory.vector.rebuild": {};
980
1083
  "memory.vector.stats": {};
981
1084
  "multimodal.analyze": ({
@@ -1143,6 +1246,44 @@ export interface OperatorMethodInputMap {
1143
1246
  } & {
1144
1247
  readonly [key: string]: unknown;
1145
1248
  });
1249
+ "principals.create": {
1250
+ name: string;
1251
+ kind: "bot" | "service" | "token" | "user";
1252
+ identities?: readonly ({
1253
+ channel: string;
1254
+ value: string;
1255
+ })[];
1256
+ metadata?: ({} & {
1257
+ readonly [key: string]: ({} & {
1258
+ readonly [key: string]: JsonValue;
1259
+ }) | boolean | null | number | readonly JsonValue[] | string;
1260
+ });
1261
+ };
1262
+ "principals.delete": {
1263
+ principalId: string;
1264
+ };
1265
+ "principals.get": {
1266
+ principalId: string;
1267
+ };
1268
+ "principals.list": {};
1269
+ "principals.resolve": {
1270
+ channel: string;
1271
+ value: string;
1272
+ };
1273
+ "principals.update": {
1274
+ principalId: string;
1275
+ name?: string;
1276
+ kind?: "bot" | "service" | "token" | "user";
1277
+ identities?: readonly ({
1278
+ channel: string;
1279
+ value: string;
1280
+ })[];
1281
+ metadata?: ({} & {
1282
+ readonly [key: string]: ({} & {
1283
+ readonly [key: string]: JsonValue;
1284
+ }) | boolean | null | number | readonly JsonValue[] | string;
1285
+ });
1286
+ };
1146
1287
  "providers.get": {
1147
1288
  providerId: string;
1148
1289
  };
@@ -1150,6 +1291,14 @@ export interface OperatorMethodInputMap {
1150
1291
  "providers.usage.get": {
1151
1292
  providerId: string;
1152
1293
  };
1294
+ "quota.fanout.get": {
1295
+ provider: string;
1296
+ agentCount: number;
1297
+ callsPerAgent?: number;
1298
+ };
1299
+ "quota.snapshot.get": {
1300
+ provider: string;
1301
+ };
1153
1302
  "remote.node_host.contract": {};
1154
1303
  "remote.pair.requests.approve": ({
1155
1304
  requestId: string;
@@ -1229,6 +1378,18 @@ export interface OperatorMethodInputMap {
1229
1378
  });
1230
1379
  "remote.work.list": {};
1231
1380
  "review.snapshot": {};
1381
+ "rewind.apply": {
1382
+ sessionId: string;
1383
+ turnId?: string;
1384
+ scope: "both" | "conversation" | "files";
1385
+ confirm?: boolean;
1386
+ confirmToken?: string;
1387
+ };
1388
+ "rewind.plan": {
1389
+ sessionId: string;
1390
+ turnId?: string;
1391
+ scope: "both" | "conversation" | "files";
1392
+ };
1232
1393
  "routes.bindings.create": ({
1233
1394
  id?: string;
1234
1395
  kind: string;
@@ -1276,6 +1437,7 @@ export interface OperatorMethodInputMap {
1276
1437
  readonly [key: string]: unknown;
1277
1438
  });
1278
1439
  "routes.snapshot": {};
1440
+ "runtime.metrics.get": {};
1279
1441
  "automation.schedules.create": ({
1280
1442
  name?: string;
1281
1443
  prompt: string;
@@ -1370,6 +1532,9 @@ export interface OperatorMethodInputMap {
1370
1532
  "services.status": {};
1371
1533
  "services.stop": {};
1372
1534
  "services.uninstall": {};
1535
+ "sessions.changes.get": {
1536
+ sessionId: string;
1537
+ };
1373
1538
  "sessions.close": {
1374
1539
  sessionId: string;
1375
1540
  };
@@ -1387,6 +1552,16 @@ export interface OperatorMethodInputMap {
1387
1552
  sessionId: string;
1388
1553
  surfaceId: string;
1389
1554
  };
1555
+ "sessions.contextUsage.get": {
1556
+ sessionId: string;
1557
+ };
1558
+ "sessions.permissionMode.get": {
1559
+ sessionId: string;
1560
+ };
1561
+ "sessions.permissionMode.set": {
1562
+ sessionId: string;
1563
+ mode: "accept-edits" | "auto" | "normal" | "plan";
1564
+ };
1390
1565
  "sessions.followUp": ({
1391
1566
  body: string;
1392
1567
  surfaceKind?: string;
@@ -1500,6 +1675,47 @@ export interface OperatorMethodInputMap {
1500
1675
  });
1501
1676
  "settings.snapshot": {};
1502
1677
  "surfaces.list": {};
1678
+ "skills.create": {
1679
+ name: string;
1680
+ description: string;
1681
+ body: string;
1682
+ metadata?: ({} & {
1683
+ readonly [key: string]: ({} & {
1684
+ readonly [key: string]: JsonValue;
1685
+ }) | boolean | null | number | readonly JsonValue[] | string;
1686
+ });
1687
+ };
1688
+ "skills.delete": {
1689
+ name: string;
1690
+ };
1691
+ "skills.get": {
1692
+ name: string;
1693
+ };
1694
+ "skills.list": {};
1695
+ "skills.update": {
1696
+ name: string;
1697
+ description?: string;
1698
+ body?: string;
1699
+ metadata?: ({} & {
1700
+ readonly [key: string]: ({} & {
1701
+ readonly [key: string]: JsonValue;
1702
+ }) | boolean | null | number | readonly JsonValue[] | string;
1703
+ });
1704
+ };
1705
+ "stepup.challenge.mint": {
1706
+ rendezvousId?: string;
1707
+ sessionId?: string;
1708
+ ttlMs?: number;
1709
+ };
1710
+ "stepup.credentials.register": {
1711
+ rpId: string;
1712
+ origin: string;
1713
+ credentialId: string;
1714
+ publicKeyCose: string;
1715
+ signCount?: number;
1716
+ userVerification?: "discouraged" | "preferred" | "required";
1717
+ label?: string;
1718
+ };
1503
1719
  "tasks.cancel": {
1504
1720
  taskId: string;
1505
1721
  };
@@ -1828,6 +2044,21 @@ export interface OperatorMethodInputMap {
1828
2044
  } & {
1829
2045
  readonly [key: string]: unknown;
1830
2046
  });
2047
+ "workspaces.registrations.list": {};
2048
+ "workspaces.registrations.add": {
2049
+ root: string;
2050
+ label?: string;
2051
+ };
2052
+ "workspaces.registrations.remove": {
2053
+ root: string;
2054
+ };
2055
+ "workspaces.resolve": {
2056
+ path: string;
2057
+ mainWorktreeRoot?: string;
2058
+ };
2059
+ "worktrees.setup.run": {
2060
+ path: string;
2061
+ };
1831
2062
  "worktrees.snapshot": {};
1832
2063
  }
1833
2064
  export interface OperatorMethodOutputMap {
@@ -4340,6 +4571,59 @@ export interface OperatorMethodOutputMap {
4340
4571
  }) | boolean | null | number | readonly JsonValue[] | string;
4341
4572
  });
4342
4573
  };
4574
+ "channels.profiles.delete": {
4575
+ surfaceKind: string;
4576
+ channelId?: string;
4577
+ deleted: boolean;
4578
+ };
4579
+ "channels.profiles.get": {
4580
+ binding: {
4581
+ id: string;
4582
+ surfaceKind: string;
4583
+ channelId?: string;
4584
+ model?: string;
4585
+ provider?: string;
4586
+ permissionMode?: "accept-edits" | "auto" | "normal" | "plan";
4587
+ updatedAt: number;
4588
+ metadata?: ({} & {
4589
+ readonly [key: string]: ({} & {
4590
+ readonly [key: string]: JsonValue;
4591
+ }) | boolean | null | number | readonly JsonValue[] | string;
4592
+ });
4593
+ };
4594
+ };
4595
+ "channels.profiles.list": {
4596
+ bindings: readonly ({
4597
+ id: string;
4598
+ surfaceKind: string;
4599
+ channelId?: string;
4600
+ model?: string;
4601
+ provider?: string;
4602
+ permissionMode?: "accept-edits" | "auto" | "normal" | "plan";
4603
+ updatedAt: number;
4604
+ metadata?: ({} & {
4605
+ readonly [key: string]: ({} & {
4606
+ readonly [key: string]: JsonValue;
4607
+ }) | boolean | null | number | readonly JsonValue[] | string;
4608
+ });
4609
+ })[];
4610
+ };
4611
+ "channels.profiles.set": {
4612
+ binding: {
4613
+ id: string;
4614
+ surfaceKind: string;
4615
+ channelId?: string;
4616
+ model?: string;
4617
+ provider?: string;
4618
+ permissionMode?: "accept-edits" | "auto" | "normal" | "plan";
4619
+ updatedAt: number;
4620
+ metadata?: ({} & {
4621
+ readonly [key: string]: ({} & {
4622
+ readonly [key: string]: JsonValue;
4623
+ }) | boolean | null | number | readonly JsonValue[] | string;
4624
+ });
4625
+ };
4626
+ };
4343
4627
  "channels.repairs.list": {
4344
4628
  actions: readonly ({
4345
4629
  id: string;
@@ -4452,6 +4736,13 @@ export interface OperatorMethodOutputMap {
4452
4736
  });
4453
4737
  };
4454
4738
  };
4739
+ "channels.test.send": {
4740
+ surface: string;
4741
+ delivered: boolean;
4742
+ responseId?: string;
4743
+ address?: string;
4744
+ error?: string;
4745
+ };
4455
4746
  "channels.tools.invoke": {
4456
4747
  toolId: string;
4457
4748
  surface: string;
@@ -4499,6 +4790,41 @@ export interface OperatorMethodOutputMap {
4499
4790
  });
4500
4791
  })[];
4501
4792
  };
4793
+ "checkin.config.get": {
4794
+ config: {
4795
+ enabled: boolean;
4796
+ cadence: string;
4797
+ deliveryChannel: string;
4798
+ quietHours: string;
4799
+ };
4800
+ };
4801
+ "checkin.config.set": {
4802
+ config: {
4803
+ enabled: boolean;
4804
+ cadence: string;
4805
+ deliveryChannel: string;
4806
+ quietHours: string;
4807
+ };
4808
+ };
4809
+ "checkin.receipts.list": {
4810
+ receipts: readonly ({
4811
+ id: string;
4812
+ ranAt: number;
4813
+ trigger: "manual" | "scheduled";
4814
+ outcome: "delivered" | "error" | "quiet" | "skipped-disabled" | "skipped-quiet-hours";
4815
+ briefingSummary: string;
4816
+ decisionReason?: string;
4817
+ deliveredMessage?: string;
4818
+ deliveryChannel?: string;
4819
+ deliveryId?: string;
4820
+ error?: string;
4821
+ })[];
4822
+ };
4823
+ "checkin.run": {
4824
+ outcome: "delivered" | "error" | "quiet" | "skipped";
4825
+ summary: string;
4826
+ deliveryId?: string;
4827
+ };
4502
4828
  "checkpoints.create": {
4503
4829
  checkpoint: null | {
4504
4830
  id: string;
@@ -4508,6 +4834,7 @@ export interface OperatorMethodOutputMap {
4508
4834
  parentId: null | string;
4509
4835
  turnId?: string;
4510
4836
  agentId?: string;
4837
+ sessionId?: string;
4511
4838
  retentionClass: "forensic" | "short" | "standard";
4512
4839
  commit: string;
4513
4840
  sizeBytes: number;
@@ -4532,18 +4859,136 @@ export interface OperatorMethodOutputMap {
4532
4859
  parentId: null | string;
4533
4860
  turnId?: string;
4534
4861
  agentId?: string;
4862
+ sessionId?: string;
4535
4863
  retentionClass: "forensic" | "short" | "standard";
4536
4864
  commit: string;
4537
4865
  sizeBytes: number;
4538
4866
  })[];
4539
4867
  };
4540
4868
  "checkpoints.restore": {
4541
- result: {
4869
+ result: null | {
4542
4870
  checkpointId: string;
4543
4871
  safetyCheckpointId: null | string;
4544
4872
  restoredFiles: readonly string[];
4545
4873
  removedFiles: readonly string[];
4546
4874
  };
4875
+ refused: boolean;
4876
+ refusal: null | {
4877
+ reason: string;
4878
+ confirmField: string;
4879
+ previewMethod: string;
4880
+ options: readonly string[];
4881
+ };
4882
+ };
4883
+ "checkpoints.restorePreview": {
4884
+ token: string;
4885
+ expiresAt: number;
4886
+ preview: {
4887
+ checkpointId: string;
4888
+ label: string;
4889
+ affectedPathCount: number;
4890
+ affectedPathSample: readonly string[];
4891
+ stat: string;
4892
+ };
4893
+ };
4894
+ "checkpoints.revertHunk": {
4895
+ receipt: null | {
4896
+ reverted: boolean;
4897
+ path: string;
4898
+ hunkHeader: string;
4899
+ addedLinesRemoved: number;
4900
+ removedLinesRestored: number;
4901
+ safetyCheckpointId: null | string;
4902
+ undo: null | {
4903
+ restoreCheckpointId: string;
4904
+ };
4905
+ };
4906
+ refused: boolean;
4907
+ refusal: null | {
4908
+ reason: string;
4909
+ confirmField: string;
4910
+ previewMethod: string;
4911
+ options: readonly string[];
4912
+ };
4913
+ };
4914
+ "checkpoints.revertHunkPreview": {
4915
+ path: string;
4916
+ applies: boolean;
4917
+ conflict: null | string;
4918
+ hunkHeader: null | string;
4919
+ addedLinesRemoved: number;
4920
+ removedLinesRestored: number;
4921
+ matchedAtLine: null | number;
4922
+ token: null | string;
4923
+ expiresAt: null | number;
4924
+ };
4925
+ "ci.status": {
4926
+ report: {
4927
+ repo: string;
4928
+ ref?: string;
4929
+ prNumber?: number;
4930
+ overall: "failed" | "passed" | "pending" | "unknown";
4931
+ jobs: readonly ({
4932
+ name: string;
4933
+ status: "completed" | "in_progress" | "queued";
4934
+ conclusion: null | string;
4935
+ continueOnError?: boolean;
4936
+ url?: string;
4937
+ })[];
4938
+ violations: readonly string[];
4939
+ checkedAt: number;
4940
+ };
4941
+ };
4942
+ "ci.watches.create": {
4943
+ watch: {
4944
+ id: string;
4945
+ repo: string;
4946
+ ref?: string;
4947
+ prNumber?: number;
4948
+ deliveryChannel: string;
4949
+ triggerFixSession: boolean;
4950
+ lastOverall?: "failed" | "passed" | "pending" | "unknown";
4951
+ createdAt: number;
4952
+ updatedAt: number;
4953
+ };
4954
+ };
4955
+ "ci.watches.delete": {
4956
+ watchId: string;
4957
+ deleted: boolean;
4958
+ };
4959
+ "ci.watches.list": {
4960
+ watches: readonly ({
4961
+ id: string;
4962
+ repo: string;
4963
+ ref?: string;
4964
+ prNumber?: number;
4965
+ deliveryChannel: string;
4966
+ triggerFixSession: boolean;
4967
+ lastOverall?: "failed" | "passed" | "pending" | "unknown";
4968
+ createdAt: number;
4969
+ updatedAt: number;
4970
+ })[];
4971
+ };
4972
+ "ci.watches.run": {
4973
+ report: {
4974
+ repo: string;
4975
+ ref?: string;
4976
+ prNumber?: number;
4977
+ overall: "failed" | "passed" | "pending" | "unknown";
4978
+ jobs: readonly ({
4979
+ name: string;
4980
+ status: "completed" | "in_progress" | "queued";
4981
+ conclusion: null | string;
4982
+ continueOnError?: boolean;
4983
+ url?: string;
4984
+ })[];
4985
+ violations: readonly string[];
4986
+ checkedAt: number;
4987
+ };
4988
+ notified: boolean;
4989
+ notificationId?: string;
4990
+ fixSessionTriggered: boolean;
4991
+ fixSessionId?: string;
4547
4992
  };
4548
4993
  "companion.chat.events.stream": {};
4549
4994
  "companion.chat.messages.create": {
@@ -4687,6 +5132,34 @@ export interface OperatorMethodOutputMap {
4687
5132
  };
4688
5133
  };
4689
5134
  };
5135
+ "cost.attribution.get": {
5136
+ window: "24h" | "7d";
5137
+ windowStartMs: number;
5138
+ dimension: "agent" | "hook" | "mcp" | "model" | "provider" | "session" | "tool";
5139
+ totalCostUsd: null | number;
5140
+ costState: "estimated" | "priced" | "unpriced";
5141
+ pricedRecordCount: number;
5142
+ unpricedRecordCount: number;
5143
+ tokens: {
5144
+ inputTokens: number;
5145
+ outputTokens: number;
5146
+ cacheReadTokens: number;
5147
+ cacheWriteTokens: number;
5148
+ };
5149
+ rows: readonly ({
5150
+ key: string;
5151
+ costUsd: null | number;
5152
+ costState: "estimated" | "priced" | "unpriced";
5153
+ pricedRecordCount: number;
5154
+ unpricedRecordCount: number;
5155
+ tokens: {
5156
+ inputTokens: number;
5157
+ outputTokens: number;
5158
+ cacheReadTokens: number;
5159
+ cacheWriteTokens: number;
5160
+ };
5161
+ })[];
5162
+ };
4690
5163
  "control.auth.current": {
4691
5164
  authenticated: boolean;
4692
5165
  authMode: "anonymous" | "invalid" | "session" | "shared-token";
@@ -5111,6 +5584,152 @@ export interface OperatorMethodOutputMap {
5111
5584
  readonly [key: string]: unknown;
5112
5585
  }))[];
5113
5586
  };
5587
+ "flags.graduation.report": {
5588
+ generatedAt: number;
5589
+ entries: readonly ({
5590
+ flagId: string;
5591
+ name: string;
5592
+ tier: number;
5593
+ currentDefault: "disabled" | "enabled" | "killed";
5594
+ runtimeToggleable: boolean;
5595
+ state: "blocked" | "dark" | "graduate-candidate" | "graduated" | "soaking";
5596
+ evidence: {
5597
+ instrumentation: "divergence-simulation" | "none";
5598
+ divergence: null | {
5599
+ divergenceRate: number;
5600
+ totalEvaluations: number;
5601
+ gateStatus: "allowed" | "blocked" | "no_data";
5602
+ };
5603
+ note: string;
5604
+ };
5605
+ blocker: null | {
5606
+ reason: string;
5607
+ date: string;
5608
+ };
5609
+ note: null | string;
5610
+ })[];
5611
+ summary: {
5612
+ total: number;
5613
+ dark: number;
5614
+ soaking: number;
5615
+ graduateCandidate: number;
5616
+ graduated: number;
5617
+ blocked: number;
5618
+ };
5619
+ releaseBlockers: readonly string[];
5620
+ };
5621
+ "fleet.archive": {
5622
+ archived: boolean;
5623
+ count: number;
5624
+ reason?: string;
5625
+ };
5626
+ "fleet.archiveFinished": {
5627
+ archivedCount: number;
5628
+ };
5629
+ "fleet.archived.list": {
5630
+ capturedAt: number;
5631
+ nodes: readonly (({
5632
+ id: string;
5633
+ kind: "agent" | "background-process" | "code-index" | "phase" | "schedule" | "trigger" | "watcher" | "work-item" | "workflow" | "workstream" | "wrfc-chain" | "wrfc-subtask";
5634
+ parentId?: string;
5635
+ label: string;
5636
+ task?: string;
5637
+ state: "awaiting-approval" | "done" | "executing-tool" | "failed" | "idle" | "interrupted" | "killed" | "paused" | "queued" | "retrying" | "stalled" | "streaming" | "thinking";
5638
+ startedAt?: number;
5639
+ completedAt?: number;
5640
+ elapsedMs: number;
5641
+ usage?: {
5642
+ inputTokens: number;
5643
+ outputTokens: number;
5644
+ cacheReadTokens: number;
5645
+ cacheWriteTokens: number;
5646
+ reasoningTokens?: number;
5647
+ llmCallCount: number;
5648
+ turnCount: number;
5649
+ toolCallCount: number;
5650
+ };
5651
+ model?: string;
5652
+ provider?: string;
5653
+ costUsd?: null | number;
5654
+ costState: "estimated" | "priced" | "unpriced";
5655
+ currentActivity?: {
5656
+ kind: "output-line" | "phase" | "tool";
5657
+ text: string;
5658
+ toolName?: string;
5659
+ at: number;
5660
+ };
5661
+ capabilities: {
5662
+ interruptible: boolean;
5663
+ killable: boolean;
5664
+ pausable: boolean;
5665
+ resumable: boolean;
5666
+ steerable: boolean;
5667
+ };
5668
+ needsAttention?: {
5669
+ reason: "approval" | "input";
5670
+ detail?: string;
5671
+ };
5672
+ sessionRef?: {
5673
+ sessionId?: string;
5674
+ agentId?: string;
5675
+ };
5676
+ } & {
5677
+ readonly [key: string]: unknown;
5678
+ }))[];
5679
+ };
5680
+ "fleet.attempts.judge": {
5681
+ proposedWinnerItemId: null | string;
5682
+ reasons: readonly string[];
5683
+ model: null | string;
5684
+ scoredBy: "model";
5685
+ };
5686
+ "fleet.attempts.list": {
5687
+ groups: readonly ({
5688
+ groupId: string;
5689
+ workstreamId: string;
5690
+ sourceTitle: string;
5691
+ ready: boolean;
5692
+ candidates: readonly ({
5693
+ itemId: string;
5694
+ attemptIndex: number;
5695
+ state: "failed" | "held-merge";
5696
+ title: string;
5697
+ worktreePath: null | string;
5698
+ branch: null | string;
5699
+ usage: {
5700
+ inputTokens: number;
5701
+ outputTokens: number;
5702
+ cacheReadTokens: number;
5703
+ cacheWriteTokens: number;
5704
+ reasoningTokens?: number;
5705
+ llmCallCount: number;
5706
+ turnCount: number;
5707
+ toolCallCount: number;
5708
+ costUsd: null | number;
5709
+ costState: "estimated" | "priced" | "unpriced";
5710
+ };
5711
+ failureReason: null | string;
5712
+ diff: null | {
5713
+ files: readonly string[];
5714
+ unifiedDiff: string;
5715
+ stat: string;
5716
+ };
5717
+ })[];
5718
+ autoAccept: boolean;
5719
+ judgment: null | {
5720
+ proposedWinnerItemId: null | string;
5721
+ reasons: readonly string[];
5722
+ model: null | string;
5723
+ scoredBy: "model";
5724
+ };
5725
+ })[];
5726
+ };
5727
+ "fleet.attempts.pick": {
5728
+ groupId: string;
5729
+ winnerItemId: string;
5730
+ loserItemIds: readonly string[];
5731
+ auto: boolean;
5732
+ };
5114
5733
  "fleet.list": {
5115
5734
  items: readonly (({
5116
5735
  id: string;
@@ -5149,6 +5768,10 @@ export interface OperatorMethodOutputMap {
5149
5768
  resumable: boolean;
5150
5769
  steerable: boolean;
5151
5770
  };
5771
+ needsAttention?: {
5772
+ reason: "approval" | "input";
5773
+ detail?: string;
5774
+ };
5152
5775
  sessionRef?: {
5153
5776
  sessionId?: string;
5154
5777
  agentId?: string;
@@ -5199,6 +5822,10 @@ export interface OperatorMethodOutputMap {
5199
5822
  resumable: boolean;
5200
5823
  steerable: boolean;
5201
5824
  };
5825
+ needsAttention?: {
5826
+ reason: "approval" | "input";
5827
+ detail?: string;
5828
+ };
5202
5829
  sessionRef?: {
5203
5830
  sessionId?: string;
5204
5831
  agentId?: string;
@@ -5209,6 +5836,9 @@ export interface OperatorMethodOutputMap {
5209
5836
  truncated: boolean;
5210
5837
  totalCount: number;
5211
5838
  };
5839
+ "fleet.unarchive": {
5840
+ restored: number;
5841
+ };
5212
5842
  "health.snapshot": ({
5213
5843
  overall: "degraded" | "healthy";
5214
5844
  degradedDomains: readonly string[];
@@ -6802,6 +7432,37 @@ export interface OperatorMethodOutputMap {
6802
7432
  };
6803
7433
  checkedAt: number;
6804
7434
  };
7435
+ "memory.projections.get": {
7436
+ projection: {
7437
+ id: string;
7438
+ filename: string;
7439
+ scope: "project" | "session" | "team";
7440
+ cls: "architecture" | "constraint" | "decision" | "fact" | "incident" | "ownership" | "pattern" | "risk" | "runbook";
7441
+ summary: string;
7442
+ tags: readonly string[];
7443
+ confidence: number;
7444
+ reviewState: "contradicted" | "fresh" | "reviewed" | "stale";
7445
+ validFrom?: number;
7446
+ validUntil?: number;
7447
+ status: "active" | "expired" | "pending";
7448
+ };
7449
+ markdown: string;
7450
+ };
7451
+ "memory.projections.list": {
7452
+ projections: readonly ({
7453
+ id: string;
7454
+ filename: string;
7455
+ scope: "project" | "session" | "team";
7456
+ cls: "architecture" | "constraint" | "decision" | "fact" | "incident" | "ownership" | "pattern" | "risk" | "runbook";
7457
+ summary: string;
7458
+ tags: readonly string[];
7459
+ confidence: number;
7460
+ reviewState: "contradicted" | "fresh" | "reviewed" | "stale";
7461
+ validFrom?: number;
7462
+ validUntil?: number;
7463
+ status: "active" | "expired" | "pending";
7464
+ })[];
7465
+ };
6805
7466
  "memory.vector.rebuild": {
6806
7467
  vector: ({
6807
7468
  backend: "sqlite-vec";
@@ -7000,6 +7661,101 @@ export interface OperatorMethodOutputMap {
7000
7661
  id: string;
7001
7662
  pane: "bottom" | "top";
7002
7663
  };
7664
+ "principals.create": {
7665
+ principal: {
7666
+ id: string;
7667
+ name: string;
7668
+ kind: "bot" | "service" | "token" | "user";
7669
+ identities: readonly ({
7670
+ channel: string;
7671
+ value: string;
7672
+ })[];
7673
+ createdAt: number;
7674
+ updatedAt: number;
7675
+ metadata?: ({} & {
7676
+ readonly [key: string]: ({} & {
7677
+ readonly [key: string]: JsonValue;
7678
+ }) | boolean | null | number | readonly JsonValue[] | string;
7679
+ });
7680
+ };
7681
+ };
7682
+ "principals.delete": {
7683
+ principalId: string;
7684
+ deleted: boolean;
7685
+ };
7686
+ "principals.get": {
7687
+ principal: {
7688
+ id: string;
7689
+ name: string;
7690
+ kind: "bot" | "service" | "token" | "user";
7691
+ identities: readonly ({
7692
+ channel: string;
7693
+ value: string;
7694
+ })[];
7695
+ createdAt: number;
7696
+ updatedAt: number;
7697
+ metadata?: ({} & {
7698
+ readonly [key: string]: ({} & {
7699
+ readonly [key: string]: JsonValue;
7700
+ }) | boolean | null | number | readonly JsonValue[] | string;
7701
+ });
7702
+ };
7703
+ };
7704
+ "principals.list": {
7705
+ principals: readonly ({
7706
+ id: string;
7707
+ name: string;
7708
+ kind: "bot" | "service" | "token" | "user";
7709
+ identities: readonly ({
7710
+ channel: string;
7711
+ value: string;
7712
+ })[];
7713
+ createdAt: number;
7714
+ updatedAt: number;
7715
+ metadata?: ({} & {
7716
+ readonly [key: string]: ({} & {
7717
+ readonly [key: string]: JsonValue;
7718
+ }) | boolean | null | number | readonly JsonValue[] | string;
7719
+ });
7720
+ })[];
7721
+ };
7722
+ "principals.resolve": {
7723
+ principal: {
7724
+ id: string;
7725
+ name: string;
7726
+ kind: "bot" | "service" | "token" | "user";
7727
+ identities: readonly ({
7728
+ channel: string;
7729
+ value: string;
7730
+ })[];
7731
+ createdAt: number;
7732
+ updatedAt: number;
7733
+ metadata?: ({} & {
7734
+ readonly [key: string]: ({} & {
7735
+ readonly [key: string]: JsonValue;
7736
+ }) | boolean | null | number | readonly JsonValue[] | string;
7737
+ });
7738
+ };
7739
+ known: boolean;
7740
+ };
7741
+ "principals.update": {
7742
+ principal: {
7743
+ id: string;
7744
+ name: string;
7745
+ kind: "bot" | "service" | "token" | "user";
7746
+ identities: readonly ({
7747
+ channel: string;
7748
+ value: string;
7749
+ })[];
7750
+ createdAt: number;
7751
+ updatedAt: number;
7752
+ metadata?: ({} & {
7753
+ readonly [key: string]: ({} & {
7754
+ readonly [key: string]: JsonValue;
7755
+ }) | boolean | null | number | readonly JsonValue[] | string;
7756
+ });
7757
+ };
7758
+ };
7003
7759
  "providers.get": {
7004
7760
  providerId: string;
7005
7761
  active: boolean;
@@ -7217,6 +7973,28 @@ export interface OperatorMethodOutputMap {
7217
7973
  } & {
7218
7974
  readonly [key: string]: unknown;
7219
7975
  });
7976
+ "quota.fanout.get": {
7977
+ provider: string;
7978
+ verdict: "likely-exhausts" | "unknown" | "unlikely";
7979
+ reason: string;
7980
+ evidence: {
7981
+ recentRateLimitCount: number;
7982
+ activeCooldownMs?: number;
7983
+ observedRemaining?: number;
7984
+ observedLimit?: number;
7985
+ requestedAgents: number;
7986
+ };
7987
+ };
7988
+ "quota.snapshot.get": {
7989
+ provider: string;
7990
+ hasSignal: boolean;
7991
+ observedAt?: number;
7992
+ remaining?: number;
7993
+ limit?: number;
7994
+ resetAt?: number;
7995
+ activeCooldownMs?: number;
7996
+ recentRateLimitCount: number;
7997
+ };
7220
7998
  "remote.node_host.contract": {
7221
7999
  contract: {
7222
8000
  schemaVersion: number;
@@ -7981,6 +8759,61 @@ export interface OperatorMethodOutputMap {
7981
8759
  remoteContracts: number;
7982
8760
  panels: number;
7983
8761
  };
8762
+ "rewind.apply": {
8763
+ receipt: null | {
8764
+ sessionId: string;
8765
+ turnId: null | string;
8766
+ scope: "both" | "conversation" | "files";
8767
+ appliedAt: number;
8768
+ files: null | {
8769
+ restored: boolean;
8770
+ checkpointId: null | string;
8771
+ safetyCheckpointId: null | string;
8772
+ restoredFileCount: number;
8773
+ removedFileCount: number;
8774
+ };
8775
+ conversation: null | {
8776
+ rewound: boolean;
8777
+ droppedMessages: number;
8778
+ undoSnapshotId: null | string;
8779
+ };
8780
+ undo: {
8781
+ files: null | {
8782
+ restoreCheckpointId: string;
8783
+ };
8784
+ conversation: null | {
8785
+ undoSnapshotId: string;
8786
+ };
8787
+ };
8788
+ warnings: readonly string[];
8789
+ };
8790
+ refused: boolean;
8791
+ refusal: null | {
8792
+ reason: string;
8793
+ confirmField: string;
8794
+ planMethod: string;
8795
+ options: readonly string[];
8796
+ };
8797
+ };
8798
+ "rewind.plan": {
8799
+ sessionId: string;
8800
+ turnId: null | string;
8801
+ scope: "both" | "conversation" | "files";
8802
+ token: string;
8803
+ expiresAt: number;
8804
+ files: null | {
8805
+ available: boolean;
8806
+ checkpointId: null | string;
8807
+ checkpointLabel: null | string;
8808
+ affectedFileCount: number;
8809
+ };
8810
+ conversation: null | {
8811
+ available: boolean;
8812
+ messagesToDrop: number;
8813
+ messagesRemaining: number;
8814
+ };
8815
+ warnings: readonly string[];
8816
+ };
7984
8817
  "routes.bindings.create": ({
7985
8818
  id: string;
7986
8819
  kind: "channel" | "message" | "session" | "thread";
@@ -8098,6 +8931,25 @@ export interface OperatorMethodOutputMap {
8098
8931
  readonly [key: string]: unknown;
8099
8932
  }))[];
8100
8933
  };
8934
+ "runtime.metrics.get": {
8935
+ counters: ({} & {
8936
+ readonly [key: string]: JsonValue | boolean | null | number | readonly JsonValue[] | string;
8937
+ });
8938
+ gauges: ({} & {
8939
+ readonly [key: string]: JsonValue | boolean | null | number | readonly JsonValue[] | string;
8940
+ });
8941
+ histograms: ({} & {
8942
+ readonly [key: string]: JsonValue | boolean | null | number | readonly JsonValue[] | string;
8943
+ });
8944
+ toolFormat: {
8945
+ byModel: ({} & {
8946
+ readonly [key: string]: JsonValue | boolean | null | number | readonly JsonValue[] | string;
8947
+ });
8948
+ byClass: ({} & {
8949
+ readonly [key: string]: JsonValue | boolean | null | number | readonly JsonValue[] | string;
8950
+ });
8951
+ };
8952
+ };
8101
8953
  "automation.schedules.create": ({
8102
8954
  id: string;
8103
8955
  name: string;
@@ -8974,6 +9826,16 @@ export interface OperatorMethodOutputMap {
8974
9826
  } & {
8975
9827
  readonly [key: string]: unknown;
8976
9828
  });
9829
+ "sessions.changes.get": {
9830
+ sessionId: string;
9831
+ checkpointCount: number;
9832
+ checkpointIds: readonly string[];
9833
+ from: string;
9834
+ to: string;
9835
+ files: readonly string[];
9836
+ unifiedDiff: string;
9837
+ stat: string;
9838
+ };
8977
9839
  "sessions.close": ({
8978
9840
  session: {
8979
9841
  id: string;
@@ -9086,6 +9948,23 @@ export interface OperatorMethodOutputMap {
9086
9948
  } & {
9087
9949
  readonly [key: string]: unknown;
9088
9950
  });
9951
+ "sessions.contextUsage.get": {
9952
+ sessionId: string;
9953
+ estimatedContextTokens: number;
9954
+ contextWindow: number;
9955
+ contextUsagePct: number;
9956
+ contextRemainingTokens: number;
9957
+ estimated: boolean;
9958
+ };
9959
+ "sessions.permissionMode.get": {
9960
+ sessionId: string;
9961
+ mode: "accept-edits" | "auto" | "custom" | "normal" | "plan";
9962
+ };
9963
+ "sessions.permissionMode.set": {
9964
+ sessionId: string;
9965
+ mode: "accept-edits" | "auto" | "custom" | "normal" | "plan";
9966
+ previousMode: "accept-edits" | "auto" | "custom" | "normal" | "plan";
9967
+ };
9089
9968
  "sessions.followUp": {
9090
9969
  session: null | {
9091
9970
  id: string;
@@ -9828,6 +10707,74 @@ export interface OperatorMethodOutputMap {
9828
10707
  });
9829
10708
  })[];
9830
10709
  };
10710
+ "skills.create": {
10711
+ skill: {
10712
+ name: string;
10713
+ description: string;
10714
+ metadata: ({} & {
10715
+ readonly [key: string]: ({} & {
10716
+ readonly [key: string]: JsonValue;
10717
+ }) | boolean | null | number | readonly JsonValue[] | string;
10718
+ });
10719
+ updatedAt?: number;
10720
+ body: string;
10721
+ };
10722
+ };
10723
+ "skills.delete": {
10724
+ name: string;
10725
+ deleted: boolean;
10726
+ };
10727
+ "skills.get": {
10728
+ skill: {
10729
+ name: string;
10730
+ description: string;
10731
+ metadata: ({} & {
10732
+ readonly [key: string]: ({} & {
10733
+ readonly [key: string]: JsonValue;
10734
+ }) | boolean | null | number | readonly JsonValue[] | string;
10735
+ });
10736
+ updatedAt?: number;
10737
+ body: string;
10738
+ };
10739
+ };
10740
+ "skills.list": {
10741
+ skills: readonly ({
10742
+ name: string;
10743
+ description: string;
10744
+ metadata: ({} & {
10745
+ readonly [key: string]: ({} & {
10746
+ readonly [key: string]: JsonValue;
10747
+ }) | boolean | null | number | readonly JsonValue[] | string;
10748
+ });
10749
+ updatedAt?: number;
10750
+ })[];
10751
+ };
10752
+ "skills.update": {
10753
+ skill: {
10754
+ name: string;
10755
+ description: string;
10756
+ metadata: ({} & {
10757
+ readonly [key: string]: ({} & {
10758
+ readonly [key: string]: JsonValue;
10759
+ }) | boolean | null | number | readonly JsonValue[] | string;
10760
+ });
10761
+ updatedAt?: number;
10762
+ body: string;
10763
+ };
10764
+ };
10765
+ "stepup.challenge.mint": {
10766
+ challengeId: string;
10767
+ challenge: string;
10768
+ expiresAt: number;
10769
+ };
10770
+ "stepup.credentials.register": {
10771
+ credential: {
10772
+ credentialId: string;
10773
+ label?: string;
10774
+ createdAt: number;
10775
+ signCount: number;
10776
+ };
10777
+ };
9831
10778
  "tasks.cancel": ({
9832
10779
  retried?: boolean;
9833
10780
  task: {
@@ -10833,6 +11780,53 @@ export interface OperatorMethodOutputMap {
10833
11780
  }) | boolean | null | number | readonly JsonValue[] | string;
10834
11781
  });
10835
11782
  };
11783
+ "workspaces.registrations.list": {
11784
+ workspaces: readonly ({
11785
+ root: string;
11786
+ registeredAt: string;
11787
+ label?: string;
11788
+ })[];
11789
+ declines: readonly ({
11790
+ root: string;
11791
+ declinedAt: string;
11792
+ })[];
11793
+ };
11794
+ "workspaces.registrations.add": {
11795
+ workspace: {
11796
+ root: string;
11797
+ registeredAt: string;
11798
+ label?: string;
11799
+ };
11800
+ alreadyRegistered: boolean;
11801
+ };
11802
+ "workspaces.registrations.remove": {
11803
+ root: string;
11804
+ removed: boolean;
11805
+ };
11806
+ "workspaces.resolve": {
11807
+ path: string;
11808
+ status: "covered" | "declined" | "unknown";
11809
+ coveredBy: null | string;
11810
+ declinedRoot: null | string;
11811
+ viaWorktreeLink: boolean;
11812
+ reason: string;
11813
+ };
11814
+ "worktrees.setup.run": {
11815
+ path: string;
11816
+ setup: {
11817
+ state: "failed" | "skipped" | "succeeded";
11818
+ startedAt: number;
11819
+ completedAt: number;
11820
+ steps: readonly ({
11821
+ kind: "carry-over" | "command";
11822
+ label: string;
11823
+ ok: boolean;
11824
+ exitCode?: number;
11825
+ output: string;
11826
+ })[];
11827
+ error?: string;
11828
+ };
11829
+ };
10836
11830
  "worktrees.snapshot": {
10837
11831
  summary: {
10838
11832
  total: number;
@@ -10850,10 +11844,23 @@ export interface OperatorMethodOutputMap {
10850
11844
  records: readonly ({
10851
11845
  path: string;
10852
11846
  kind: "agent" | "manual" | "orchestrator";
10853
- state: "active" | "pending-cleanup" | "discard" | "kept" | "paused";
11847
+ state: "active" | "discard" | "kept" | "paused" | "pending-cleanup";
10854
11848
  ownerId?: string;
10855
11849
  sessionId?: string;
10856
11850
  taskId?: string;
11851
+ setup?: {
11852
+ state: "failed" | "skipped" | "succeeded";
11853
+ startedAt: number;
11854
+ completedAt: number;
11855
+ steps: readonly ({
11856
+ kind: "carry-over" | "command";
11857
+ label: string;
11858
+ ok: boolean;
11859
+ exitCode?: number;
11860
+ output: string;
11861
+ })[];
11862
+ error?: string;
11863
+ };
10857
11864
  updatedAt: number;
10858
11865
  })[];
10859
11866
  };