@pellux/goodvibes-contracts 1.6.1 → 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 +943 -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,11 +696,22 @@ export interface OperatorMethodInputMap {
616
696
  deliveryId: string;
617
697
  };
618
698
  "deliveries.list": {};
699
+ "flags.graduation.report": {};
619
700
  "fleet.archive": {
620
701
  id: string;
621
702
  };
622
703
  "fleet.archiveFinished": {};
623
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
+ };
624
715
  "fleet.list": {
625
716
  kinds?: readonly string[];
626
717
  states?: readonly string[];
@@ -984,6 +1075,10 @@ export interface OperatorMethodInputMap {
984
1075
  } & {
985
1076
  readonly [key: string]: unknown;
986
1077
  });
1078
+ "memory.projections.get": {
1079
+ id: string;
1080
+ };
1081
+ "memory.projections.list": {};
987
1082
  "memory.vector.rebuild": {};
988
1083
  "memory.vector.stats": {};
989
1084
  "multimodal.analyze": ({
@@ -1151,6 +1246,44 @@ export interface OperatorMethodInputMap {
1151
1246
  } & {
1152
1247
  readonly [key: string]: unknown;
1153
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
+ };
1154
1287
  "providers.get": {
1155
1288
  providerId: string;
1156
1289
  };
@@ -1158,6 +1291,14 @@ export interface OperatorMethodInputMap {
1158
1291
  "providers.usage.get": {
1159
1292
  providerId: string;
1160
1293
  };
1294
+ "quota.fanout.get": {
1295
+ provider: string;
1296
+ agentCount: number;
1297
+ callsPerAgent?: number;
1298
+ };
1299
+ "quota.snapshot.get": {
1300
+ provider: string;
1301
+ };
1161
1302
  "remote.node_host.contract": {};
1162
1303
  "remote.pair.requests.approve": ({
1163
1304
  requestId: string;
@@ -1237,6 +1378,18 @@ export interface OperatorMethodInputMap {
1237
1378
  });
1238
1379
  "remote.work.list": {};
1239
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
+ };
1240
1393
  "routes.bindings.create": ({
1241
1394
  id?: string;
1242
1395
  kind: string;
@@ -1284,6 +1437,7 @@ export interface OperatorMethodInputMap {
1284
1437
  readonly [key: string]: unknown;
1285
1438
  });
1286
1439
  "routes.snapshot": {};
1440
+ "runtime.metrics.get": {};
1287
1441
  "automation.schedules.create": ({
1288
1442
  name?: string;
1289
1443
  prompt: string;
@@ -1378,6 +1532,9 @@ export interface OperatorMethodInputMap {
1378
1532
  "services.status": {};
1379
1533
  "services.stop": {};
1380
1534
  "services.uninstall": {};
1535
+ "sessions.changes.get": {
1536
+ sessionId: string;
1537
+ };
1381
1538
  "sessions.close": {
1382
1539
  sessionId: string;
1383
1540
  };
@@ -1395,6 +1552,16 @@ export interface OperatorMethodInputMap {
1395
1552
  sessionId: string;
1396
1553
  surfaceId: string;
1397
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
+ };
1398
1565
  "sessions.followUp": ({
1399
1566
  body: string;
1400
1567
  surfaceKind?: string;
@@ -1508,6 +1675,47 @@ export interface OperatorMethodInputMap {
1508
1675
  });
1509
1676
  "settings.snapshot": {};
1510
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
+ };
1511
1719
  "tasks.cancel": {
1512
1720
  taskId: string;
1513
1721
  };
@@ -1836,6 +2044,21 @@ export interface OperatorMethodInputMap {
1836
2044
  } & {
1837
2045
  readonly [key: string]: unknown;
1838
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
+ };
1839
2062
  "worktrees.snapshot": {};
1840
2063
  }
1841
2064
  export interface OperatorMethodOutputMap {
@@ -4348,6 +4571,59 @@ export interface OperatorMethodOutputMap {
4348
4571
  }) | boolean | null | number | readonly JsonValue[] | string;
4349
4572
  });
4350
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
+ };
4351
4627
  "channels.repairs.list": {
4352
4628
  actions: readonly ({
4353
4629
  id: string;
@@ -4460,6 +4736,13 @@ export interface OperatorMethodOutputMap {
4460
4736
  });
4461
4737
  };
4462
4738
  };
4739
+ "channels.test.send": {
4740
+ surface: string;
4741
+ delivered: boolean;
4742
+ responseId?: string;
4743
+ address?: string;
4744
+ error?: string;
4745
+ };
4463
4746
  "channels.tools.invoke": {
4464
4747
  toolId: string;
4465
4748
  surface: string;
@@ -4507,6 +4790,41 @@ export interface OperatorMethodOutputMap {
4507
4790
  });
4508
4791
  })[];
4509
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
+ };
4510
4828
  "checkpoints.create": {
4511
4829
  checkpoint: null | {
4512
4830
  id: string;
@@ -4516,6 +4834,7 @@ export interface OperatorMethodOutputMap {
4516
4834
  parentId: null | string;
4517
4835
  turnId?: string;
4518
4836
  agentId?: string;
4837
+ sessionId?: string;
4519
4838
  retentionClass: "forensic" | "short" | "standard";
4520
4839
  commit: string;
4521
4840
  sizeBytes: number;
@@ -4540,18 +4859,136 @@ export interface OperatorMethodOutputMap {
4540
4859
  parentId: null | string;
4541
4860
  turnId?: string;
4542
4861
  agentId?: string;
4862
+ sessionId?: string;
4543
4863
  retentionClass: "forensic" | "short" | "standard";
4544
4864
  commit: string;
4545
4865
  sizeBytes: number;
4546
4866
  })[];
4547
4867
  };
4548
4868
  "checkpoints.restore": {
4549
- result: {
4869
+ result: null | {
4550
4870
  checkpointId: string;
4551
4871
  safetyCheckpointId: null | string;
4552
4872
  restoredFiles: readonly string[];
4553
4873
  removedFiles: readonly string[];
4554
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;
4555
4992
  };
4556
4993
  "companion.chat.events.stream": {};
4557
4994
  "companion.chat.messages.create": {
@@ -4695,6 +5132,34 @@ export interface OperatorMethodOutputMap {
4695
5132
  };
4696
5133
  };
4697
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
+ };
4698
5163
  "control.auth.current": {
4699
5164
  authenticated: boolean;
4700
5165
  authMode: "anonymous" | "invalid" | "session" | "shared-token";
@@ -5119,6 +5584,40 @@ export interface OperatorMethodOutputMap {
5119
5584
  readonly [key: string]: unknown;
5120
5585
  }))[];
5121
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
+ };
5122
5621
  "fleet.archive": {
5123
5622
  archived: boolean;
5124
5623
  count: number;
@@ -5166,6 +5665,10 @@ export interface OperatorMethodOutputMap {
5166
5665
  resumable: boolean;
5167
5666
  steerable: boolean;
5168
5667
  };
5668
+ needsAttention?: {
5669
+ reason: "approval" | "input";
5670
+ detail?: string;
5671
+ };
5169
5672
  sessionRef?: {
5170
5673
  sessionId?: string;
5171
5674
  agentId?: string;
@@ -5174,6 +5677,59 @@ export interface OperatorMethodOutputMap {
5174
5677
  readonly [key: string]: unknown;
5175
5678
  }))[];
5176
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
+ };
5177
5733
  "fleet.list": {
5178
5734
  items: readonly (({
5179
5735
  id: string;
@@ -5212,6 +5768,10 @@ export interface OperatorMethodOutputMap {
5212
5768
  resumable: boolean;
5213
5769
  steerable: boolean;
5214
5770
  };
5771
+ needsAttention?: {
5772
+ reason: "approval" | "input";
5773
+ detail?: string;
5774
+ };
5215
5775
  sessionRef?: {
5216
5776
  sessionId?: string;
5217
5777
  agentId?: string;
@@ -5262,6 +5822,10 @@ export interface OperatorMethodOutputMap {
5262
5822
  resumable: boolean;
5263
5823
  steerable: boolean;
5264
5824
  };
5825
+ needsAttention?: {
5826
+ reason: "approval" | "input";
5827
+ detail?: string;
5828
+ };
5265
5829
  sessionRef?: {
5266
5830
  sessionId?: string;
5267
5831
  agentId?: string;
@@ -6868,6 +7432,37 @@ export interface OperatorMethodOutputMap {
6868
7432
  };
6869
7433
  checkedAt: number;
6870
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
+ };
6871
7466
  "memory.vector.rebuild": {
6872
7467
  vector: ({
6873
7468
  backend: "sqlite-vec";
@@ -7066,6 +7661,101 @@ export interface OperatorMethodOutputMap {
7066
7661
  id: string;
7067
7662
  pane: "bottom" | "top";
7068
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
+ };
7069
7759
  "providers.get": {
7070
7760
  providerId: string;
7071
7761
  active: boolean;
@@ -7283,6 +7973,28 @@ export interface OperatorMethodOutputMap {
7283
7973
  } & {
7284
7974
  readonly [key: string]: unknown;
7285
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
+ };
7286
7998
  "remote.node_host.contract": {
7287
7999
  contract: {
7288
8000
  schemaVersion: number;
@@ -8047,6 +8759,61 @@ export interface OperatorMethodOutputMap {
8047
8759
  remoteContracts: number;
8048
8760
  panels: number;
8049
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
+ };
8050
8817
  "routes.bindings.create": ({
8051
8818
  id: string;
8052
8819
  kind: "channel" | "message" | "session" | "thread";
@@ -8164,6 +8931,25 @@ export interface OperatorMethodOutputMap {
8164
8931
  readonly [key: string]: unknown;
8165
8932
  }))[];
8166
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
+ };
8167
8953
  "automation.schedules.create": ({
8168
8954
  id: string;
8169
8955
  name: string;
@@ -9040,6 +9826,16 @@ export interface OperatorMethodOutputMap {
9040
9826
  } & {
9041
9827
  readonly [key: string]: unknown;
9042
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
+ };
9043
9839
  "sessions.close": ({
9044
9840
  session: {
9045
9841
  id: string;
@@ -9152,6 +9948,23 @@ export interface OperatorMethodOutputMap {
9152
9948
  } & {
9153
9949
  readonly [key: string]: unknown;
9154
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
+ };
9155
9968
  "sessions.followUp": {
9156
9969
  session: null | {
9157
9970
  id: string;
@@ -9894,6 +10707,74 @@ export interface OperatorMethodOutputMap {
9894
10707
  });
9895
10708
  })[];
9896
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
+ };
9897
10778
  "tasks.cancel": ({
9898
10779
  retried?: boolean;
9899
10780
  task: {
@@ -10899,6 +11780,53 @@ export interface OperatorMethodOutputMap {
10899
11780
  }) | boolean | null | number | readonly JsonValue[] | string;
10900
11781
  });
10901
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
+ };
10902
11830
  "worktrees.snapshot": {
10903
11831
  summary: {
10904
11832
  total: number;
@@ -10916,10 +11844,23 @@ export interface OperatorMethodOutputMap {
10916
11844
  records: readonly ({
10917
11845
  path: string;
10918
11846
  kind: "agent" | "manual" | "orchestrator";
10919
- state: "active" | "pending-cleanup" | "discard" | "kept" | "paused";
11847
+ state: "active" | "discard" | "kept" | "paused" | "pending-cleanup";
10920
11848
  ownerId?: string;
10921
11849
  sessionId?: string;
10922
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
+ };
10923
11864
  updatedAt: number;
10924
11865
  })[];
10925
11866
  };