@pellux/goodvibes-sdk 1.0.0 → 1.1.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 (223) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1320 -10
  2. package/dist/events/communication.d.ts +1 -1
  3. package/dist/platform/agents/orchestrator-runner.d.ts +5 -5
  4. package/dist/platform/agents/orchestrator-runner.js +6 -6
  5. package/dist/platform/agents/orchestrator.d.ts +4 -4
  6. package/dist/platform/agents/orchestrator.js +2 -2
  7. package/dist/platform/agents/wrfc-controller.d.ts +1 -1
  8. package/dist/platform/agents/wrfc-controller.js +3 -3
  9. package/dist/platform/calendar/index.d.ts +2 -2
  10. package/dist/platform/calendar/index.js +3 -3
  11. package/dist/platform/calendar/oauth-providers.d.ts +1 -1
  12. package/dist/platform/calendar/oauth-providers.js +1 -1
  13. package/dist/platform/calendar/oauth-types.d.ts +1 -1
  14. package/dist/platform/calendar/oauth-types.js +1 -1
  15. package/dist/platform/companion/companion-chat-branching.d.ts +66 -0
  16. package/dist/platform/companion/companion-chat-branching.d.ts.map +1 -0
  17. package/dist/platform/companion/companion-chat-branching.js +142 -0
  18. package/dist/platform/companion/companion-chat-broker-bridge.d.ts +1 -1
  19. package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -1
  20. package/dist/platform/companion/companion-chat-broker-sync.d.ts +2 -2
  21. package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -1
  22. package/dist/platform/companion/companion-chat-broker-sync.js +1 -1
  23. package/dist/platform/companion/companion-chat-manager.d.ts +26 -5
  24. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  25. package/dist/platform/companion/companion-chat-manager.js +67 -81
  26. package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
  27. package/dist/platform/companion/companion-chat-routes.js +77 -1
  28. package/dist/platform/companion/companion-chat-turn-execution.d.ts +61 -0
  29. package/dist/platform/companion/companion-chat-turn-execution.d.ts.map +1 -0
  30. package/dist/platform/companion/companion-chat-turn-execution.js +107 -0
  31. package/dist/platform/companion/companion-chat-types.d.ts +67 -0
  32. package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
  33. package/dist/platform/config/credential-status.d.ts +1 -1
  34. package/dist/platform/config/credential-status.js +1 -1
  35. package/dist/platform/config/index.d.ts +1 -1
  36. package/dist/platform/config/index.js +1 -1
  37. package/dist/platform/config/manager.d.ts +1 -1
  38. package/dist/platform/config/manager.js +1 -1
  39. package/dist/platform/config/migrations.d.ts +2 -2
  40. package/dist/platform/config/migrations.js +2 -2
  41. package/dist/platform/config/schema-domain-runtime.d.ts +8 -0
  42. package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
  43. package/dist/platform/config/schema-domain-runtime.js +32 -0
  44. package/dist/platform/config/schema-types.d.ts +10 -2
  45. package/dist/platform/config/schema-types.d.ts.map +1 -1
  46. package/dist/platform/control-plane/gateway-scope-enforcement.js +2 -2
  47. package/dist/platform/control-plane/index.d.ts +2 -0
  48. package/dist/platform/control-plane/index.d.ts.map +1 -1
  49. package/dist/platform/control-plane/index.js +5 -1
  50. package/dist/platform/control-plane/invoke-input-validation.d.ts +1 -1
  51. package/dist/platform/control-plane/invoke-input-validation.js +1 -1
  52. package/dist/platform/control-plane/method-catalog-calendar.d.ts +2 -2
  53. package/dist/platform/control-plane/method-catalog-calendar.js +2 -2
  54. package/dist/platform/control-plane/method-catalog-channels.js +3 -3
  55. package/dist/platform/control-plane/method-catalog-control-automation.js +4 -4
  56. package/dist/platform/control-plane/method-catalog-control-companion.d.ts +1 -1
  57. package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -1
  58. package/dist/platform/control-plane/method-catalog-control-companion.js +43 -0
  59. package/dist/platform/control-plane/method-catalog-control-core.js +3 -3
  60. package/dist/platform/control-plane/method-catalog-email.d.ts +1 -1
  61. package/dist/platform/control-plane/method-catalog-email.js +1 -1
  62. package/dist/platform/control-plane/method-catalog-fleet.d.ts +1 -1
  63. package/dist/platform/control-plane/method-catalog-push.d.ts +30 -0
  64. package/dist/platform/control-plane/method-catalog-push.d.ts.map +1 -0
  65. package/dist/platform/control-plane/method-catalog-push.js +80 -0
  66. package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +1 -1
  67. package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  68. package/dist/platform/control-plane/method-catalog-runtime.js +83 -1
  69. package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
  70. package/dist/platform/control-plane/method-catalog.js +2 -0
  71. package/dist/platform/control-plane/operator-contract-schemas-fleet.js +1 -1
  72. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +8 -0
  73. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
  74. package/dist/platform/control-plane/operator-contract-schemas-runtime.js +43 -0
  75. package/dist/platform/control-plane/routes/checkpoints.d.ts +1 -1
  76. package/dist/platform/control-plane/routes/fleet.d.ts +2 -2
  77. package/dist/platform/control-plane/routes/fleet.js +1 -1
  78. package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +1 -1
  79. package/dist/platform/control-plane/routes/gateway-verb-error.js +1 -1
  80. package/dist/platform/control-plane/routes/index.js +1 -1
  81. package/dist/platform/control-plane/routes/invocation-params.d.ts +1 -1
  82. package/dist/platform/control-plane/routes/push.d.ts +26 -0
  83. package/dist/platform/control-plane/routes/push.d.ts.map +1 -0
  84. package/dist/platform/control-plane/routes/push.js +104 -0
  85. package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts +31 -0
  86. package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts.map +1 -0
  87. package/dist/platform/control-plane/routes/register-gateway-verb-groups.js +16 -0
  88. package/dist/platform/control-plane/routes/register-w3-s2.d.ts +2 -2
  89. package/dist/platform/control-plane/routes/session-search.d.ts +4 -4
  90. package/dist/platform/control-plane/session-broker.d.ts +1 -1
  91. package/dist/platform/control-plane/session-broker.js +1 -1
  92. package/dist/platform/control-plane/session-store-importer.d.ts +1 -1
  93. package/dist/platform/control-plane/session-store-importer.js +1 -1
  94. package/dist/platform/control-plane/session-types.d.ts +1 -1
  95. package/dist/platform/core/orchestrator-runtime.d.ts +4 -4
  96. package/dist/platform/core/orchestrator-tool-runtime.d.ts +1 -1
  97. package/dist/platform/core/orchestrator-turn-loop.d.ts +6 -6
  98. package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
  99. package/dist/platform/core/orchestrator-turn-loop.js +23 -22
  100. package/dist/platform/core/orchestrator.d.ts +10 -10
  101. package/dist/platform/core/orchestrator.d.ts.map +1 -1
  102. package/dist/platform/core/orchestrator.js +8 -8
  103. package/dist/platform/daemon/boot.d.ts +6 -0
  104. package/dist/platform/daemon/boot.d.ts.map +1 -1
  105. package/dist/platform/daemon/boot.js +1 -0
  106. package/dist/platform/daemon/control-plane.js +2 -2
  107. package/dist/platform/daemon/facade.d.ts +4 -7
  108. package/dist/platform/daemon/facade.d.ts.map +1 -1
  109. package/dist/platform/daemon/facade.js +5 -7
  110. package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +1 -1
  111. package/dist/platform/daemon/http/router.d.ts +1 -0
  112. package/dist/platform/daemon/http/router.d.ts.map +1 -1
  113. package/dist/platform/daemon/http/router.js +36 -19
  114. package/dist/platform/daemon/http/runtime-route-types.d.ts +1 -1
  115. package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
  116. package/dist/platform/daemon/http/webui-serving.d.ts +68 -0
  117. package/dist/platform/daemon/http/webui-serving.d.ts.map +1 -0
  118. package/dist/platform/daemon/http/webui-serving.js +230 -0
  119. package/dist/platform/knowledge/knowledge-api.d.ts +1 -1
  120. package/dist/platform/orchestration/budget.d.ts +2 -2
  121. package/dist/platform/orchestration/cancellation.d.ts +2 -2
  122. package/dist/platform/orchestration/controller-compat.d.ts +2 -3
  123. package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
  124. package/dist/platform/orchestration/dirty-guard.js +1 -1
  125. package/dist/platform/orchestration/engine.d.ts.map +1 -1
  126. package/dist/platform/orchestration/engine.js +3 -4
  127. package/dist/platform/orchestration/persistence.js +2 -2
  128. package/dist/platform/orchestration/phase-runner.d.ts +4 -4
  129. package/dist/platform/orchestration/scheduler.d.ts +1 -1
  130. package/dist/platform/orchestration/types.d.ts +3 -3
  131. package/dist/platform/presentation/glyphs.d.ts +1 -1
  132. package/dist/platform/presentation/glyphs.js +1 -1
  133. package/dist/platform/presentation/index.d.ts +3 -3
  134. package/dist/platform/presentation/index.js +3 -3
  135. package/dist/platform/presentation/thinking-phrases.d.ts +1 -1
  136. package/dist/platform/presentation/thinking-phrases.js +1 -1
  137. package/dist/platform/presentation/waiting-wording.d.ts +1 -1
  138. package/dist/platform/presentation/waiting-wording.js +1 -1
  139. package/dist/platform/push/delivery.d.ts +48 -0
  140. package/dist/platform/push/delivery.d.ts.map +1 -0
  141. package/dist/platform/push/delivery.js +117 -0
  142. package/dist/platform/push/encryption.d.ts +41 -0
  143. package/dist/platform/push/encryption.d.ts.map +1 -0
  144. package/dist/platform/push/encryption.js +82 -0
  145. package/dist/platform/push/index.d.ts +17 -0
  146. package/dist/platform/push/index.d.ts.map +1 -0
  147. package/dist/platform/push/index.js +10 -0
  148. package/dist/platform/push/service.d.ts +75 -0
  149. package/dist/platform/push/service.d.ts.map +1 -0
  150. package/dist/platform/push/service.js +95 -0
  151. package/dist/platform/push/subscription-store.d.ts +50 -0
  152. package/dist/platform/push/subscription-store.d.ts.map +1 -0
  153. package/dist/platform/push/subscription-store.js +123 -0
  154. package/dist/platform/push/types.d.ts +68 -0
  155. package/dist/platform/push/types.d.ts.map +1 -0
  156. package/dist/platform/push/types.js +13 -0
  157. package/dist/platform/push/vapid.d.ts +54 -0
  158. package/dist/platform/push/vapid.d.ts.map +1 -0
  159. package/dist/platform/push/vapid.js +113 -0
  160. package/dist/platform/runtime/feature-flags/flags.js +3 -3
  161. package/dist/platform/runtime/fleet/adapters/agent.d.ts +2 -2
  162. package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -1
  163. package/dist/platform/runtime/fleet/adapters/agent.js +4 -4
  164. package/dist/platform/runtime/fleet/adapters/automation.d.ts +1 -1
  165. package/dist/platform/runtime/fleet/adapters/automation.js +1 -1
  166. package/dist/platform/runtime/fleet/adapters/code-index.d.ts +1 -1
  167. package/dist/platform/runtime/fleet/adapters/code-index.js +1 -1
  168. package/dist/platform/runtime/fleet/adapters/orchestration.js +1 -1
  169. package/dist/platform/runtime/fleet/adapters/schedule.d.ts +4 -4
  170. package/dist/platform/runtime/fleet/adapters/schedule.js +4 -4
  171. package/dist/platform/runtime/fleet/adapters/trigger.d.ts +3 -4
  172. package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -1
  173. package/dist/platform/runtime/fleet/adapters/trigger.js +3 -4
  174. package/dist/platform/runtime/fleet/adapters/wrfc.js +1 -1
  175. package/dist/platform/runtime/fleet/registry.d.ts +7 -7
  176. package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
  177. package/dist/platform/runtime/fleet/registry.js +3 -3
  178. package/dist/platform/runtime/fleet/types.d.ts +9 -9
  179. package/dist/platform/runtime/fleet/types.d.ts.map +1 -1
  180. package/dist/platform/runtime/memory-spine/client.d.ts +127 -0
  181. package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -0
  182. package/dist/platform/runtime/memory-spine/client.js +113 -0
  183. package/dist/platform/runtime/memory-spine/index.d.ts +11 -0
  184. package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -0
  185. package/dist/platform/runtime/memory-spine/index.js +10 -0
  186. package/dist/platform/runtime/operator-client.d.ts +1 -1
  187. package/dist/platform/runtime/services.d.ts +6 -6
  188. package/dist/platform/runtime/services.d.ts.map +1 -1
  189. package/dist/platform/runtime/services.js +9 -9
  190. package/dist/platform/runtime/session-spine/union-cache.d.ts +1 -1
  191. package/dist/platform/runtime/session-spine/union-cache.js +1 -1
  192. package/dist/platform/state/canonical-memory.d.ts +7 -7
  193. package/dist/platform/state/canonical-memory.js +8 -8
  194. package/dist/platform/state/code-index-chunking.js +1 -1
  195. package/dist/platform/state/code-index-db.d.ts +1 -1
  196. package/dist/platform/state/code-index-store.js +1 -1
  197. package/dist/platform/state/index.d.ts +2 -2
  198. package/dist/platform/state/index.d.ts.map +1 -1
  199. package/dist/platform/state/index.js +1 -1
  200. package/dist/platform/state/memory-recall-contract.d.ts +59 -4
  201. package/dist/platform/state/memory-recall-contract.d.ts.map +1 -1
  202. package/dist/platform/state/memory-recall-contract.js +79 -3
  203. package/dist/platform/state/memory-registry.d.ts +8 -0
  204. package/dist/platform/state/memory-registry.d.ts.map +1 -1
  205. package/dist/platform/state/memory-registry.js +10 -0
  206. package/dist/platform/state/memory-vector-store.js +1 -1
  207. package/dist/platform/state/sqlite-vec-loader.d.ts +1 -1
  208. package/dist/platform/state/sqlite-vec-loader.js +1 -1
  209. package/dist/platform/state/vibe-projection.d.ts +3 -3
  210. package/dist/platform/state/vibe-projection.js +3 -3
  211. package/dist/platform/tools/agent/manager.d.ts +10 -10
  212. package/dist/platform/tools/agent/manager.js +7 -7
  213. package/dist/platform/tools/exec/runtime.js +5 -5
  214. package/dist/platform/tools/exec/schema.d.ts +1 -1
  215. package/dist/platform/tools/exec/schema.d.ts.map +1 -1
  216. package/dist/platform/tools/fetch/runtime.d.ts +1 -1
  217. package/dist/platform/tools/registry.d.ts +1 -1
  218. package/dist/platform/tools/registry.js +1 -1
  219. package/dist/platform/types/tools.d.ts +1 -1
  220. package/dist/platform/utils/request-body.d.ts.map +1 -1
  221. package/dist/platform/utils/request-body.js +50 -5
  222. package/dist/platform/version.js +1 -1
  223. package/package.json +13 -9
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "1.0.0"
6
+ "version": "1.1.0"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -6799,7 +6799,7 @@
6799
6799
  {
6800
6800
  "id": "automation.jobs.update",
6801
6801
  "title": "Update Automation Job",
6802
- "description": "Update a durable automation job. (Renamed from automation.jobs.patch in the Wave-6 core-verb pass — canonical verb is update, not patch.)",
6802
+ "description": "Update a durable automation job. (Renamed from automation.jobs.patch in the 1.0.0 core-verb rename — canonical verb is update, not patch.)",
6803
6803
  "category": "automation",
6804
6804
  "source": "builtin",
6805
6805
  "access": "authenticated",
@@ -21829,6 +21829,100 @@
21829
21829
  },
21830
21830
  "invokable": true
21831
21831
  },
21832
+ {
21833
+ "id": "companion.chat.messages.edit",
21834
+ "title": "Edit Companion Chat Message And Branch",
21835
+ "description": "Edit a user message and branch the conversation from it. `messageId` (required) is the user message to edit; the edited text is passed as `body` or `content` (as message create accepts), with optional `attachments` referencing artifacts. The original message and everything after it are SUPERSEDED — retained as history, never deleted — a new user message carrying `revisionOf` back to the original is appended, and a fresh turn answers it. Returns the new message id and the superseded ids for honest lineage. Same closed/unknown-session refusals as companion.chat.messages.retry.",
21836
+ "category": "companion",
21837
+ "source": "builtin",
21838
+ "access": "authenticated",
21839
+ "transport": [
21840
+ "http",
21841
+ "ws"
21842
+ ],
21843
+ "scopes": [
21844
+ "write:sessions"
21845
+ ],
21846
+ "http": {
21847
+ "method": "POST",
21848
+ "path": "/api/companion/chat/sessions/{sessionId}/messages/edit"
21849
+ },
21850
+ "inputSchema": {
21851
+ "type": "object",
21852
+ "properties": {
21853
+ "messageId": {
21854
+ "type": "string"
21855
+ },
21856
+ "body": {
21857
+ "type": "string"
21858
+ },
21859
+ "content": {
21860
+ "type": "string"
21861
+ },
21862
+ "attachments": {
21863
+ "type": "array",
21864
+ "items": {
21865
+ "type": "object",
21866
+ "properties": {
21867
+ "artifactId": {
21868
+ "type": "string"
21869
+ },
21870
+ "label": {
21871
+ "type": "string"
21872
+ },
21873
+ "metadata": {
21874
+ "type": "object",
21875
+ "properties": {},
21876
+ "additionalProperties": false
21877
+ }
21878
+ },
21879
+ "required": [
21880
+ "artifactId"
21881
+ ],
21882
+ "additionalProperties": false
21883
+ }
21884
+ },
21885
+ "metadata": {
21886
+ "type": "object",
21887
+ "properties": {},
21888
+ "additionalProperties": false
21889
+ }
21890
+ },
21891
+ "additionalProperties": true
21892
+ },
21893
+ "outputSchema": {
21894
+ "type": "object",
21895
+ "properties": {
21896
+ "sessionId": {
21897
+ "type": "string"
21898
+ },
21899
+ "editedFrom": {
21900
+ "type": "string"
21901
+ },
21902
+ "messageId": {
21903
+ "type": "string"
21904
+ },
21905
+ "supersededMessageIds": {
21906
+ "type": "array",
21907
+ "items": {
21908
+ "type": "string"
21909
+ }
21910
+ },
21911
+ "turnStarted": {
21912
+ "type": "boolean"
21913
+ }
21914
+ },
21915
+ "required": [
21916
+ "sessionId",
21917
+ "editedFrom",
21918
+ "messageId",
21919
+ "supersededMessageIds",
21920
+ "turnStarted"
21921
+ ],
21922
+ "additionalProperties": false
21923
+ },
21924
+ "invokable": true
21925
+ },
21832
21926
  {
21833
21927
  "id": "companion.chat.messages.list",
21834
21928
  "title": "List Companion Chat Messages",
@@ -21995,6 +22089,62 @@
21995
22089
  },
21996
22090
  "invokable": true
21997
22091
  },
22092
+ {
22093
+ "id": "companion.chat.messages.retry",
22094
+ "title": "Regenerate Companion Chat Response",
22095
+ "description": "Regenerate an assistant response. Optional `messageId` targets a specific assistant message; omitted, the latest assistant response is re-run. The prior response (and any turns after it) is SUPERSEDED — kept in the message list and on disk, flagged as retained history — never deleted, then a fresh turn re-runs from the preceding user message. Returns the superseded message ids so the caller can render the honest lineage. Rejected on a closed session (409 SESSION_CLOSED) or unknown session (404 SESSION_NOT_FOUND), and with an honest machine code (409 NO_ASSISTANT_MESSAGE) when there is nothing to regenerate.",
22096
+ "category": "companion",
22097
+ "source": "builtin",
22098
+ "access": "authenticated",
22099
+ "transport": [
22100
+ "http",
22101
+ "ws"
22102
+ ],
22103
+ "scopes": [
22104
+ "write:sessions"
22105
+ ],
22106
+ "http": {
22107
+ "method": "POST",
22108
+ "path": "/api/companion/chat/sessions/{sessionId}/messages/retry"
22109
+ },
22110
+ "inputSchema": {
22111
+ "type": "object",
22112
+ "properties": {
22113
+ "messageId": {
22114
+ "type": "string"
22115
+ }
22116
+ },
22117
+ "additionalProperties": true
22118
+ },
22119
+ "outputSchema": {
22120
+ "type": "object",
22121
+ "properties": {
22122
+ "sessionId": {
22123
+ "type": "string"
22124
+ },
22125
+ "regeneratedFrom": {
22126
+ "type": "string"
22127
+ },
22128
+ "supersededMessageIds": {
22129
+ "type": "array",
22130
+ "items": {
22131
+ "type": "string"
22132
+ }
22133
+ },
22134
+ "turnStarted": {
22135
+ "type": "boolean"
22136
+ }
22137
+ },
22138
+ "required": [
22139
+ "sessionId",
22140
+ "regeneratedFrom",
22141
+ "supersededMessageIds",
22142
+ "turnStarted"
22143
+ ],
22144
+ "additionalProperties": false
22145
+ },
22146
+ "invokable": true
22147
+ },
21998
22148
  {
21999
22149
  "id": "companion.chat.sessions.close",
22000
22150
  "title": "Close Companion Chat Session",
@@ -57301,6 +57451,886 @@
57301
57451
  },
57302
57452
  "invokable": true
57303
57453
  },
57454
+ {
57455
+ "id": "memory.records.add",
57456
+ "title": "Add Memory Record",
57457
+ "description": "Add a memory record to the daemon-owned canonical store. The daemon is the single writer for its store; a client surface routes its writes here instead of opening the store file, so two processes never write the same sql.js file. New records default to confidence 60 (the recall floor) and reviewState fresh unless the review block overrides them.",
57458
+ "category": "memory",
57459
+ "source": "builtin",
57460
+ "access": "authenticated",
57461
+ "transport": [
57462
+ "http",
57463
+ "ws"
57464
+ ],
57465
+ "scopes": [
57466
+ "write:memory"
57467
+ ],
57468
+ "http": {
57469
+ "method": "POST",
57470
+ "path": "/api/memory/records"
57471
+ },
57472
+ "inputSchema": {
57473
+ "type": "object",
57474
+ "properties": {
57475
+ "cls": {
57476
+ "type": "string",
57477
+ "enum": [
57478
+ "decision",
57479
+ "constraint",
57480
+ "incident",
57481
+ "pattern",
57482
+ "fact",
57483
+ "risk",
57484
+ "runbook",
57485
+ "architecture",
57486
+ "ownership"
57487
+ ]
57488
+ },
57489
+ "summary": {
57490
+ "type": "string"
57491
+ },
57492
+ "scope": {
57493
+ "type": "string",
57494
+ "enum": [
57495
+ "session",
57496
+ "project",
57497
+ "team"
57498
+ ]
57499
+ },
57500
+ "detail": {
57501
+ "type": "string"
57502
+ },
57503
+ "tags": {
57504
+ "type": "array",
57505
+ "items": {
57506
+ "type": "string"
57507
+ }
57508
+ },
57509
+ "provenance": {
57510
+ "type": "array",
57511
+ "items": {
57512
+ "type": "object",
57513
+ "properties": {
57514
+ "kind": {
57515
+ "type": "string",
57516
+ "enum": [
57517
+ "session",
57518
+ "turn",
57519
+ "task",
57520
+ "event",
57521
+ "file"
57522
+ ]
57523
+ },
57524
+ "ref": {
57525
+ "type": "string"
57526
+ },
57527
+ "label": {
57528
+ "type": "string"
57529
+ }
57530
+ },
57531
+ "required": [
57532
+ "kind",
57533
+ "ref"
57534
+ ],
57535
+ "additionalProperties": false
57536
+ }
57537
+ },
57538
+ "review": {
57539
+ "type": "object",
57540
+ "properties": {
57541
+ "state": {
57542
+ "type": "string",
57543
+ "enum": [
57544
+ "fresh",
57545
+ "reviewed",
57546
+ "stale",
57547
+ "contradicted"
57548
+ ]
57549
+ },
57550
+ "confidence": {
57551
+ "type": "number"
57552
+ },
57553
+ "reviewedBy": {
57554
+ "type": "string"
57555
+ },
57556
+ "staleReason": {
57557
+ "type": "string"
57558
+ }
57559
+ },
57560
+ "additionalProperties": false
57561
+ }
57562
+ },
57563
+ "required": [
57564
+ "cls",
57565
+ "summary"
57566
+ ],
57567
+ "additionalProperties": true
57568
+ },
57569
+ "outputSchema": {
57570
+ "type": "object",
57571
+ "properties": {
57572
+ "record": {
57573
+ "type": "object",
57574
+ "properties": {
57575
+ "id": {
57576
+ "type": "string"
57577
+ },
57578
+ "scope": {
57579
+ "type": "string",
57580
+ "enum": [
57581
+ "session",
57582
+ "project",
57583
+ "team"
57584
+ ]
57585
+ },
57586
+ "cls": {
57587
+ "type": "string",
57588
+ "enum": [
57589
+ "decision",
57590
+ "constraint",
57591
+ "incident",
57592
+ "pattern",
57593
+ "fact",
57594
+ "risk",
57595
+ "runbook",
57596
+ "architecture",
57597
+ "ownership"
57598
+ ]
57599
+ },
57600
+ "summary": {
57601
+ "type": "string"
57602
+ },
57603
+ "detail": {
57604
+ "type": "string"
57605
+ },
57606
+ "tags": {
57607
+ "type": "array",
57608
+ "items": {
57609
+ "type": "string"
57610
+ }
57611
+ },
57612
+ "provenance": {
57613
+ "type": "array",
57614
+ "items": {
57615
+ "type": "object",
57616
+ "properties": {
57617
+ "kind": {
57618
+ "type": "string",
57619
+ "enum": [
57620
+ "session",
57621
+ "turn",
57622
+ "task",
57623
+ "event",
57624
+ "file"
57625
+ ]
57626
+ },
57627
+ "ref": {
57628
+ "type": "string"
57629
+ },
57630
+ "label": {
57631
+ "type": "string"
57632
+ }
57633
+ },
57634
+ "required": [
57635
+ "kind",
57636
+ "ref"
57637
+ ],
57638
+ "additionalProperties": false
57639
+ }
57640
+ },
57641
+ "reviewState": {
57642
+ "type": "string",
57643
+ "enum": [
57644
+ "fresh",
57645
+ "reviewed",
57646
+ "stale",
57647
+ "contradicted"
57648
+ ]
57649
+ },
57650
+ "confidence": {
57651
+ "type": "number"
57652
+ },
57653
+ "reviewedAt": {
57654
+ "type": "number"
57655
+ },
57656
+ "reviewedBy": {
57657
+ "type": "string"
57658
+ },
57659
+ "staleReason": {
57660
+ "type": "string"
57661
+ },
57662
+ "createdAt": {
57663
+ "type": "number"
57664
+ },
57665
+ "updatedAt": {
57666
+ "type": "number"
57667
+ }
57668
+ },
57669
+ "required": [
57670
+ "id",
57671
+ "scope",
57672
+ "cls",
57673
+ "summary",
57674
+ "tags",
57675
+ "provenance",
57676
+ "reviewState",
57677
+ "confidence",
57678
+ "createdAt",
57679
+ "updatedAt"
57680
+ ],
57681
+ "additionalProperties": true
57682
+ }
57683
+ },
57684
+ "required": [
57685
+ "record"
57686
+ ],
57687
+ "additionalProperties": false
57688
+ },
57689
+ "invokable": true
57690
+ },
57691
+ {
57692
+ "id": "memory.records.delete",
57693
+ "title": "Delete Memory Record",
57694
+ "description": "Permanently delete a memory record and its links from the canonical store. Delete means delete: the record is removed from the store and the semantic index, not merely flagged. Returns { deleted: false } when no record with that id existed — an honest boolean, never a 200 that pretends a phantom row was removed.",
57695
+ "category": "memory",
57696
+ "source": "builtin",
57697
+ "access": "authenticated",
57698
+ "transport": [
57699
+ "http",
57700
+ "ws"
57701
+ ],
57702
+ "scopes": [
57703
+ "write:memory"
57704
+ ],
57705
+ "http": {
57706
+ "method": "DELETE",
57707
+ "path": "/api/memory/records/{id}"
57708
+ },
57709
+ "inputSchema": {
57710
+ "type": "object",
57711
+ "properties": {
57712
+ "id": {
57713
+ "type": "string"
57714
+ }
57715
+ },
57716
+ "required": [
57717
+ "id"
57718
+ ],
57719
+ "additionalProperties": false
57720
+ },
57721
+ "outputSchema": {
57722
+ "type": "object",
57723
+ "properties": {
57724
+ "id": {
57725
+ "type": "string"
57726
+ },
57727
+ "deleted": {
57728
+ "type": "boolean"
57729
+ }
57730
+ },
57731
+ "required": [
57732
+ "id",
57733
+ "deleted"
57734
+ ],
57735
+ "additionalProperties": false
57736
+ },
57737
+ "invokable": true
57738
+ },
57739
+ {
57740
+ "id": "memory.records.get",
57741
+ "title": "Get Memory Record",
57742
+ "description": "Return a single memory record by id from the canonical store, or 404 when no record with that id exists.",
57743
+ "category": "memory",
57744
+ "source": "builtin",
57745
+ "access": "authenticated",
57746
+ "transport": [
57747
+ "http",
57748
+ "ws"
57749
+ ],
57750
+ "scopes": [
57751
+ "read:memory"
57752
+ ],
57753
+ "http": {
57754
+ "method": "GET",
57755
+ "path": "/api/memory/records/{id}"
57756
+ },
57757
+ "inputSchema": {
57758
+ "type": "object",
57759
+ "properties": {
57760
+ "id": {
57761
+ "type": "string"
57762
+ }
57763
+ },
57764
+ "required": [
57765
+ "id"
57766
+ ],
57767
+ "additionalProperties": false
57768
+ },
57769
+ "outputSchema": {
57770
+ "type": "object",
57771
+ "properties": {
57772
+ "record": {
57773
+ "type": "object",
57774
+ "properties": {
57775
+ "id": {
57776
+ "type": "string"
57777
+ },
57778
+ "scope": {
57779
+ "type": "string",
57780
+ "enum": [
57781
+ "session",
57782
+ "project",
57783
+ "team"
57784
+ ]
57785
+ },
57786
+ "cls": {
57787
+ "type": "string",
57788
+ "enum": [
57789
+ "decision",
57790
+ "constraint",
57791
+ "incident",
57792
+ "pattern",
57793
+ "fact",
57794
+ "risk",
57795
+ "runbook",
57796
+ "architecture",
57797
+ "ownership"
57798
+ ]
57799
+ },
57800
+ "summary": {
57801
+ "type": "string"
57802
+ },
57803
+ "detail": {
57804
+ "type": "string"
57805
+ },
57806
+ "tags": {
57807
+ "type": "array",
57808
+ "items": {
57809
+ "type": "string"
57810
+ }
57811
+ },
57812
+ "provenance": {
57813
+ "type": "array",
57814
+ "items": {
57815
+ "type": "object",
57816
+ "properties": {
57817
+ "kind": {
57818
+ "type": "string",
57819
+ "enum": [
57820
+ "session",
57821
+ "turn",
57822
+ "task",
57823
+ "event",
57824
+ "file"
57825
+ ]
57826
+ },
57827
+ "ref": {
57828
+ "type": "string"
57829
+ },
57830
+ "label": {
57831
+ "type": "string"
57832
+ }
57833
+ },
57834
+ "required": [
57835
+ "kind",
57836
+ "ref"
57837
+ ],
57838
+ "additionalProperties": false
57839
+ }
57840
+ },
57841
+ "reviewState": {
57842
+ "type": "string",
57843
+ "enum": [
57844
+ "fresh",
57845
+ "reviewed",
57846
+ "stale",
57847
+ "contradicted"
57848
+ ]
57849
+ },
57850
+ "confidence": {
57851
+ "type": "number"
57852
+ },
57853
+ "reviewedAt": {
57854
+ "type": "number"
57855
+ },
57856
+ "reviewedBy": {
57857
+ "type": "string"
57858
+ },
57859
+ "staleReason": {
57860
+ "type": "string"
57861
+ },
57862
+ "createdAt": {
57863
+ "type": "number"
57864
+ },
57865
+ "updatedAt": {
57866
+ "type": "number"
57867
+ }
57868
+ },
57869
+ "required": [
57870
+ "id",
57871
+ "scope",
57872
+ "cls",
57873
+ "summary",
57874
+ "tags",
57875
+ "provenance",
57876
+ "reviewState",
57877
+ "confidence",
57878
+ "createdAt",
57879
+ "updatedAt"
57880
+ ],
57881
+ "additionalProperties": true
57882
+ }
57883
+ },
57884
+ "required": [
57885
+ "record"
57886
+ ],
57887
+ "additionalProperties": false
57888
+ },
57889
+ "invokable": true
57890
+ },
57891
+ {
57892
+ "id": "memory.records.search",
57893
+ "title": "Search Memory Records",
57894
+ "description": "Search the canonical store, literal or semantic. When semantic is requested but the semantic index cannot be consulted, the search falls back to a literal scan and states the reason in indexUnavailableReason rather than returning a silent empty result that reads as \"nothing was ever stored\". With recall=true the cross-surface recall-honesty contract is applied: flagged (stale/contradicted) records are excluded outright and records below the 60% confidence floor are dropped, each exclusion counted honestly.",
57895
+ "category": "memory",
57896
+ "source": "builtin",
57897
+ "access": "authenticated",
57898
+ "transport": [
57899
+ "http",
57900
+ "ws"
57901
+ ],
57902
+ "scopes": [
57903
+ "read:memory"
57904
+ ],
57905
+ "http": {
57906
+ "method": "POST",
57907
+ "path": "/api/memory/records/search"
57908
+ },
57909
+ "inputSchema": {
57910
+ "type": "object",
57911
+ "properties": {
57912
+ "scope": {
57913
+ "type": "string",
57914
+ "enum": [
57915
+ "session",
57916
+ "project",
57917
+ "team"
57918
+ ]
57919
+ },
57920
+ "cls": {
57921
+ "type": "string",
57922
+ "enum": [
57923
+ "decision",
57924
+ "constraint",
57925
+ "incident",
57926
+ "pattern",
57927
+ "fact",
57928
+ "risk",
57929
+ "runbook",
57930
+ "architecture",
57931
+ "ownership"
57932
+ ]
57933
+ },
57934
+ "tags": {
57935
+ "type": "array",
57936
+ "items": {
57937
+ "type": "string"
57938
+ }
57939
+ },
57940
+ "query": {
57941
+ "type": "string"
57942
+ },
57943
+ "semantic": {
57944
+ "type": "boolean"
57945
+ },
57946
+ "since": {
57947
+ "type": "number"
57948
+ },
57949
+ "reviewState": {
57950
+ "type": "array",
57951
+ "items": {
57952
+ "type": "string",
57953
+ "enum": [
57954
+ "fresh",
57955
+ "reviewed",
57956
+ "stale",
57957
+ "contradicted"
57958
+ ]
57959
+ }
57960
+ },
57961
+ "minConfidence": {
57962
+ "type": "number"
57963
+ },
57964
+ "provenanceKinds": {
57965
+ "type": "array",
57966
+ "items": {
57967
+ "type": "string",
57968
+ "enum": [
57969
+ "session",
57970
+ "turn",
57971
+ "task",
57972
+ "event",
57973
+ "file"
57974
+ ]
57975
+ }
57976
+ },
57977
+ "staleOnly": {
57978
+ "type": "boolean"
57979
+ },
57980
+ "limit": {
57981
+ "type": "number"
57982
+ },
57983
+ "recall": {
57984
+ "type": "boolean"
57985
+ }
57986
+ },
57987
+ "additionalProperties": true
57988
+ },
57989
+ "outputSchema": {
57990
+ "type": "object",
57991
+ "properties": {
57992
+ "records": {
57993
+ "type": "array",
57994
+ "items": {
57995
+ "type": "object",
57996
+ "properties": {
57997
+ "id": {
57998
+ "type": "string"
57999
+ },
58000
+ "scope": {
58001
+ "type": "string",
58002
+ "enum": [
58003
+ "session",
58004
+ "project",
58005
+ "team"
58006
+ ]
58007
+ },
58008
+ "cls": {
58009
+ "type": "string",
58010
+ "enum": [
58011
+ "decision",
58012
+ "constraint",
58013
+ "incident",
58014
+ "pattern",
58015
+ "fact",
58016
+ "risk",
58017
+ "runbook",
58018
+ "architecture",
58019
+ "ownership"
58020
+ ]
58021
+ },
58022
+ "summary": {
58023
+ "type": "string"
58024
+ },
58025
+ "detail": {
58026
+ "type": "string"
58027
+ },
58028
+ "tags": {
58029
+ "type": "array",
58030
+ "items": {
58031
+ "type": "string"
58032
+ }
58033
+ },
58034
+ "provenance": {
58035
+ "type": "array",
58036
+ "items": {
58037
+ "type": "object",
58038
+ "properties": {
58039
+ "kind": {
58040
+ "type": "string",
58041
+ "enum": [
58042
+ "session",
58043
+ "turn",
58044
+ "task",
58045
+ "event",
58046
+ "file"
58047
+ ]
58048
+ },
58049
+ "ref": {
58050
+ "type": "string"
58051
+ },
58052
+ "label": {
58053
+ "type": "string"
58054
+ }
58055
+ },
58056
+ "required": [
58057
+ "kind",
58058
+ "ref"
58059
+ ],
58060
+ "additionalProperties": false
58061
+ }
58062
+ },
58063
+ "reviewState": {
58064
+ "type": "string",
58065
+ "enum": [
58066
+ "fresh",
58067
+ "reviewed",
58068
+ "stale",
58069
+ "contradicted"
58070
+ ]
58071
+ },
58072
+ "confidence": {
58073
+ "type": "number"
58074
+ },
58075
+ "reviewedAt": {
58076
+ "type": "number"
58077
+ },
58078
+ "reviewedBy": {
58079
+ "type": "string"
58080
+ },
58081
+ "staleReason": {
58082
+ "type": "string"
58083
+ },
58084
+ "createdAt": {
58085
+ "type": "number"
58086
+ },
58087
+ "updatedAt": {
58088
+ "type": "number"
58089
+ }
58090
+ },
58091
+ "required": [
58092
+ "id",
58093
+ "scope",
58094
+ "cls",
58095
+ "summary",
58096
+ "tags",
58097
+ "provenance",
58098
+ "reviewState",
58099
+ "confidence",
58100
+ "createdAt",
58101
+ "updatedAt"
58102
+ ],
58103
+ "additionalProperties": true
58104
+ }
58105
+ },
58106
+ "mode": {
58107
+ "type": "string",
58108
+ "enum": [
58109
+ "literal",
58110
+ "semantic"
58111
+ ]
58112
+ },
58113
+ "requestedSemantic": {
58114
+ "type": "boolean"
58115
+ },
58116
+ "indexUnavailableReason": {
58117
+ "anyOf": [
58118
+ {
58119
+ "type": "string"
58120
+ },
58121
+ {
58122
+ "type": "null"
58123
+ }
58124
+ ]
58125
+ },
58126
+ "caveat": {
58127
+ "anyOf": [
58128
+ {
58129
+ "type": "string"
58130
+ },
58131
+ {
58132
+ "type": "null"
58133
+ }
58134
+ ]
58135
+ },
58136
+ "recallFiltered": {
58137
+ "type": "boolean"
58138
+ },
58139
+ "excludedFlaggedCount": {
58140
+ "type": "number"
58141
+ },
58142
+ "excludedBelowFloorCount": {
58143
+ "type": "number"
58144
+ },
58145
+ "totalBeforeRecallFilter": {
58146
+ "type": "number"
58147
+ }
58148
+ },
58149
+ "required": [
58150
+ "records",
58151
+ "mode",
58152
+ "requestedSemantic",
58153
+ "indexUnavailableReason",
58154
+ "caveat",
58155
+ "recallFiltered",
58156
+ "excludedFlaggedCount",
58157
+ "excludedBelowFloorCount",
58158
+ "totalBeforeRecallFilter"
58159
+ ],
58160
+ "additionalProperties": false
58161
+ },
58162
+ "invokable": true
58163
+ },
58164
+ {
58165
+ "id": "memory.records.update-review",
58166
+ "title": "Update Memory Record Review",
58167
+ "description": "Update a record's review signal (reviewState, confidence, reviewer, staleReason) in the canonical store. Marking a record stale or contradicted flags it so the recall-honesty contract will never inject it into a prompt again regardless of confidence. Returns 404 when no record with that id exists.",
58168
+ "category": "memory",
58169
+ "source": "builtin",
58170
+ "access": "authenticated",
58171
+ "transport": [
58172
+ "http",
58173
+ "ws"
58174
+ ],
58175
+ "scopes": [
58176
+ "write:memory"
58177
+ ],
58178
+ "http": {
58179
+ "method": "POST",
58180
+ "path": "/api/memory/records/{id}/review"
58181
+ },
58182
+ "inputSchema": {
58183
+ "type": "object",
58184
+ "properties": {
58185
+ "id": {
58186
+ "type": "string"
58187
+ },
58188
+ "state": {
58189
+ "type": "string",
58190
+ "enum": [
58191
+ "fresh",
58192
+ "reviewed",
58193
+ "stale",
58194
+ "contradicted"
58195
+ ]
58196
+ },
58197
+ "confidence": {
58198
+ "type": "number"
58199
+ },
58200
+ "reviewedBy": {
58201
+ "type": "string"
58202
+ },
58203
+ "staleReason": {
58204
+ "type": "string"
58205
+ }
58206
+ },
58207
+ "required": [
58208
+ "id"
58209
+ ],
58210
+ "additionalProperties": true
58211
+ },
58212
+ "outputSchema": {
58213
+ "type": "object",
58214
+ "properties": {
58215
+ "record": {
58216
+ "type": "object",
58217
+ "properties": {
58218
+ "id": {
58219
+ "type": "string"
58220
+ },
58221
+ "scope": {
58222
+ "type": "string",
58223
+ "enum": [
58224
+ "session",
58225
+ "project",
58226
+ "team"
58227
+ ]
58228
+ },
58229
+ "cls": {
58230
+ "type": "string",
58231
+ "enum": [
58232
+ "decision",
58233
+ "constraint",
58234
+ "incident",
58235
+ "pattern",
58236
+ "fact",
58237
+ "risk",
58238
+ "runbook",
58239
+ "architecture",
58240
+ "ownership"
58241
+ ]
58242
+ },
58243
+ "summary": {
58244
+ "type": "string"
58245
+ },
58246
+ "detail": {
58247
+ "type": "string"
58248
+ },
58249
+ "tags": {
58250
+ "type": "array",
58251
+ "items": {
58252
+ "type": "string"
58253
+ }
58254
+ },
58255
+ "provenance": {
58256
+ "type": "array",
58257
+ "items": {
58258
+ "type": "object",
58259
+ "properties": {
58260
+ "kind": {
58261
+ "type": "string",
58262
+ "enum": [
58263
+ "session",
58264
+ "turn",
58265
+ "task",
58266
+ "event",
58267
+ "file"
58268
+ ]
58269
+ },
58270
+ "ref": {
58271
+ "type": "string"
58272
+ },
58273
+ "label": {
58274
+ "type": "string"
58275
+ }
58276
+ },
58277
+ "required": [
58278
+ "kind",
58279
+ "ref"
58280
+ ],
58281
+ "additionalProperties": false
58282
+ }
58283
+ },
58284
+ "reviewState": {
58285
+ "type": "string",
58286
+ "enum": [
58287
+ "fresh",
58288
+ "reviewed",
58289
+ "stale",
58290
+ "contradicted"
58291
+ ]
58292
+ },
58293
+ "confidence": {
58294
+ "type": "number"
58295
+ },
58296
+ "reviewedAt": {
58297
+ "type": "number"
58298
+ },
58299
+ "reviewedBy": {
58300
+ "type": "string"
58301
+ },
58302
+ "staleReason": {
58303
+ "type": "string"
58304
+ },
58305
+ "createdAt": {
58306
+ "type": "number"
58307
+ },
58308
+ "updatedAt": {
58309
+ "type": "number"
58310
+ }
58311
+ },
58312
+ "required": [
58313
+ "id",
58314
+ "scope",
58315
+ "cls",
58316
+ "summary",
58317
+ "tags",
58318
+ "provenance",
58319
+ "reviewState",
58320
+ "confidence",
58321
+ "createdAt",
58322
+ "updatedAt"
58323
+ ],
58324
+ "additionalProperties": true
58325
+ }
58326
+ },
58327
+ "required": [
58328
+ "record"
58329
+ ],
58330
+ "additionalProperties": false
58331
+ },
58332
+ "invokable": true
58333
+ },
57304
58334
  {
57305
58335
  "id": "memory.review-queue",
57306
58336
  "title": "Memory Review Queue",
@@ -58501,6 +59531,286 @@
58501
59531
  },
58502
59532
  "invokable": true
58503
59533
  },
59534
+ {
59535
+ "id": "push.subscriptions.create",
59536
+ "title": "Register Web Push Subscription",
59537
+ "description": "Store a browser Push subscription (endpoint capability URL + p256dh/auth keys) for the authenticated operator so the daemon can deliver notifications to that device. Re-registering the same endpoint updates its keys in place rather than duplicating it. The stored endpoint and keys are never returned over the wire; the response is the redacted subscription view.",
59538
+ "category": "push",
59539
+ "source": "builtin",
59540
+ "access": "authenticated",
59541
+ "transport": [
59542
+ "ws"
59543
+ ],
59544
+ "scopes": [
59545
+ "write:push"
59546
+ ],
59547
+ "inputSchema": {
59548
+ "type": "object",
59549
+ "properties": {
59550
+ "endpoint": {
59551
+ "type": "string"
59552
+ },
59553
+ "keys": {
59554
+ "type": "object",
59555
+ "properties": {
59556
+ "p256dh": {
59557
+ "type": "string"
59558
+ },
59559
+ "auth": {
59560
+ "type": "string"
59561
+ }
59562
+ },
59563
+ "required": [
59564
+ "p256dh",
59565
+ "auth"
59566
+ ],
59567
+ "additionalProperties": false
59568
+ }
59569
+ },
59570
+ "required": [
59571
+ "endpoint",
59572
+ "keys"
59573
+ ],
59574
+ "additionalProperties": false
59575
+ },
59576
+ "outputSchema": {
59577
+ "type": "object",
59578
+ "properties": {
59579
+ "subscription": {
59580
+ "type": "object",
59581
+ "properties": {
59582
+ "id": {
59583
+ "type": "string"
59584
+ },
59585
+ "principalId": {
59586
+ "type": "string"
59587
+ },
59588
+ "endpointOrigin": {
59589
+ "type": "string"
59590
+ },
59591
+ "endpointHash": {
59592
+ "type": "string"
59593
+ },
59594
+ "createdAt": {
59595
+ "type": "number"
59596
+ },
59597
+ "lastDeliveryAt": {
59598
+ "type": "number"
59599
+ },
59600
+ "lastOutcome": {
59601
+ "type": "string"
59602
+ }
59603
+ },
59604
+ "required": [
59605
+ "id",
59606
+ "principalId",
59607
+ "endpointOrigin",
59608
+ "endpointHash",
59609
+ "createdAt"
59610
+ ],
59611
+ "additionalProperties": false
59612
+ }
59613
+ },
59614
+ "required": [
59615
+ "subscription"
59616
+ ],
59617
+ "additionalProperties": false
59618
+ },
59619
+ "invokable": true
59620
+ },
59621
+ {
59622
+ "id": "push.subscriptions.delete",
59623
+ "title": "Delete Web Push Subscription",
59624
+ "description": "Permanently remove one of the authenticated operator's push subscriptions: the stored record (endpoint + keys) is dropped and cannot be listed afterward. An unknown id, or one owned by another principal, is a 404 SUBSCRIPTION_NOT_FOUND, never a 200-noop.",
59625
+ "category": "push",
59626
+ "source": "builtin",
59627
+ "access": "authenticated",
59628
+ "transport": [
59629
+ "ws"
59630
+ ],
59631
+ "scopes": [
59632
+ "write:push"
59633
+ ],
59634
+ "inputSchema": {
59635
+ "type": "object",
59636
+ "properties": {
59637
+ "subscriptionId": {
59638
+ "type": "string"
59639
+ }
59640
+ },
59641
+ "required": [
59642
+ "subscriptionId"
59643
+ ],
59644
+ "additionalProperties": false
59645
+ },
59646
+ "outputSchema": {
59647
+ "type": "object",
59648
+ "properties": {
59649
+ "subscriptionId": {
59650
+ "type": "string"
59651
+ },
59652
+ "deleted": {
59653
+ "type": "boolean"
59654
+ }
59655
+ },
59656
+ "required": [
59657
+ "subscriptionId",
59658
+ "deleted"
59659
+ ],
59660
+ "additionalProperties": false
59661
+ },
59662
+ "invokable": true
59663
+ },
59664
+ {
59665
+ "id": "push.subscriptions.list",
59666
+ "title": "List Web Push Subscriptions",
59667
+ "description": "List the authenticated operator's registered push devices as redacted subscription views (id, endpoint origin + hash, timestamps, last delivery outcome). The capability URL and key material are never included.",
59668
+ "category": "push",
59669
+ "source": "builtin",
59670
+ "access": "authenticated",
59671
+ "transport": [
59672
+ "ws"
59673
+ ],
59674
+ "scopes": [
59675
+ "read:push"
59676
+ ],
59677
+ "outputSchema": {
59678
+ "type": "object",
59679
+ "properties": {
59680
+ "subscriptions": {
59681
+ "type": "array",
59682
+ "items": {
59683
+ "type": "object",
59684
+ "properties": {
59685
+ "id": {
59686
+ "type": "string"
59687
+ },
59688
+ "principalId": {
59689
+ "type": "string"
59690
+ },
59691
+ "endpointOrigin": {
59692
+ "type": "string"
59693
+ },
59694
+ "endpointHash": {
59695
+ "type": "string"
59696
+ },
59697
+ "createdAt": {
59698
+ "type": "number"
59699
+ },
59700
+ "lastDeliveryAt": {
59701
+ "type": "number"
59702
+ },
59703
+ "lastOutcome": {
59704
+ "type": "string"
59705
+ }
59706
+ },
59707
+ "required": [
59708
+ "id",
59709
+ "principalId",
59710
+ "endpointOrigin",
59711
+ "endpointHash",
59712
+ "createdAt"
59713
+ ],
59714
+ "additionalProperties": false
59715
+ }
59716
+ }
59717
+ },
59718
+ "required": [
59719
+ "subscriptions"
59720
+ ],
59721
+ "additionalProperties": false
59722
+ },
59723
+ "invokable": true
59724
+ },
59725
+ {
59726
+ "id": "push.subscriptions.verify",
59727
+ "title": "Send Test Web Push",
59728
+ "description": "Send a live test notification to one of the authenticated operator's subscriptions and return an honest delivery receipt (delivered / pruned / failed). A subscription whose endpoint reports 404/410 gone is pruned as part of the attempt and the receipt says so. An unknown id, or one owned by another principal, is a 404 SUBSCRIPTION_NOT_FOUND.",
59729
+ "category": "push",
59730
+ "source": "builtin",
59731
+ "access": "authenticated",
59732
+ "transport": [
59733
+ "ws"
59734
+ ],
59735
+ "scopes": [
59736
+ "write:push"
59737
+ ],
59738
+ "inputSchema": {
59739
+ "type": "object",
59740
+ "properties": {
59741
+ "subscriptionId": {
59742
+ "type": "string"
59743
+ }
59744
+ },
59745
+ "required": [
59746
+ "subscriptionId"
59747
+ ],
59748
+ "additionalProperties": false
59749
+ },
59750
+ "outputSchema": {
59751
+ "type": "object",
59752
+ "properties": {
59753
+ "receipt": {
59754
+ "type": "object",
59755
+ "properties": {
59756
+ "subscriptionId": {
59757
+ "type": "string"
59758
+ },
59759
+ "endpointOrigin": {
59760
+ "type": "string"
59761
+ },
59762
+ "outcome": {
59763
+ "type": "string"
59764
+ },
59765
+ "httpStatus": {
59766
+ "type": "number"
59767
+ },
59768
+ "detail": {
59769
+ "type": "string"
59770
+ }
59771
+ },
59772
+ "required": [
59773
+ "subscriptionId",
59774
+ "endpointOrigin",
59775
+ "outcome"
59776
+ ],
59777
+ "additionalProperties": false
59778
+ }
59779
+ },
59780
+ "required": [
59781
+ "receipt"
59782
+ ],
59783
+ "additionalProperties": false
59784
+ },
59785
+ "invokable": true
59786
+ },
59787
+ {
59788
+ "id": "push.vapid.get",
59789
+ "title": "Get Web Push Public Key",
59790
+ "description": "Return the daemon's public VAPID key (base64url application-server key) that a browser client passes to pushManager.subscribe(). The matching private key never leaves the daemon and is never returned by any verb.",
59791
+ "category": "push",
59792
+ "source": "builtin",
59793
+ "access": "authenticated",
59794
+ "transport": [
59795
+ "ws"
59796
+ ],
59797
+ "scopes": [
59798
+ "read:push"
59799
+ ],
59800
+ "outputSchema": {
59801
+ "type": "object",
59802
+ "properties": {
59803
+ "publicKey": {
59804
+ "type": "string"
59805
+ }
59806
+ },
59807
+ "required": [
59808
+ "publicKey"
59809
+ ],
59810
+ "additionalProperties": false
59811
+ },
59812
+ "invokable": true
59813
+ },
58504
59814
  {
58505
59815
  "id": "remote.node_host.contract",
58506
59816
  "title": "Node Host Contract",
@@ -62796,7 +64106,7 @@
62796
64106
  {
62797
64107
  "id": "routes.bindings.update",
62798
64108
  "title": "Update Route Binding",
62799
- "description": "Update an existing route binding. (Renamed from routes.bindings.patch in the Wave-6 core-verb pass — canonical verb is update, not patch.)",
64109
+ "description": "Update an existing route binding. (Renamed from routes.bindings.patch in the 1.0.0 core-verb rename — canonical verb is update, not patch.)",
62800
64110
  "category": "routes",
62801
64111
  "source": "builtin",
62802
64112
  "access": "admin",
@@ -76435,7 +77745,7 @@
76435
77745
  {
76436
77746
  "id": "watchers.update",
76437
77747
  "title": "Update Watcher",
76438
- "description": "Update an existing watcher. (Renamed from watchers.patch in the Wave-6 core-verb pass — canonical verb is update, not patch.)",
77748
+ "description": "Update an existing watcher. (Renamed from watchers.patch in the 1.0.0 core-verb rename — canonical verb is update, not patch.)",
76439
77749
  "category": "watchers",
76440
77750
  "source": "builtin",
76441
77751
  "access": "admin",
@@ -78727,10 +80037,10 @@
78727
80037
  }
78728
80038
  ],
78729
80039
  "schemaCoverage": {
78730
- "methods": 308,
78731
- "typedInputs": 308,
80040
+ "methods": 320,
80041
+ "typedInputs": 320,
78732
80042
  "genericInputs": 0,
78733
- "typedOutputs": 308,
80043
+ "typedOutputs": 320,
78734
80044
  "genericOutputs": 0
78735
80045
  },
78736
80046
  "eventCoverage": {
@@ -78739,10 +80049,10 @@
78739
80049
  "withWireEvents": 31
78740
80050
  },
78741
80051
  "validationCoverage": {
78742
- "methods": 308,
78743
- "validated": 308,
80052
+ "methods": 320,
80053
+ "validated": 318,
78744
80054
  "skippedGeneric": 0,
78745
- "skippedUntyped": 0
80055
+ "skippedUntyped": 2
78746
80056
  }
78747
80057
  },
78748
80058
  "peer": {