@pellux/goodvibes-sdk 1.1.0 → 1.3.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 (139) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1416 -88
  2. package/dist/platform/companion/companion-chat-manager.d.ts +6 -12
  3. package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
  4. package/dist/platform/companion/companion-chat-manager.js +8 -2
  5. package/dist/platform/config/index.d.ts +2 -1
  6. package/dist/platform/config/index.d.ts.map +1 -1
  7. package/dist/platform/config/index.js +1 -0
  8. package/dist/platform/config/manager.d.ts +35 -0
  9. package/dist/platform/config/manager.d.ts.map +1 -1
  10. package/dist/platform/config/manager.js +98 -2
  11. package/dist/platform/config/shared-config-tier.d.ts +51 -0
  12. package/dist/platform/config/shared-config-tier.d.ts.map +1 -0
  13. package/dist/platform/config/shared-config-tier.js +127 -0
  14. package/dist/platform/control-plane/method-catalog-runtime.d.ts.map +1 -1
  15. package/dist/platform/control-plane/method-catalog-runtime.js +95 -1
  16. package/dist/platform/control-plane/operator-contract-schemas-knowledge.d.ts.map +1 -1
  17. package/dist/platform/control-plane/operator-contract-schemas-knowledge.js +6 -1
  18. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +7 -0
  19. package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
  20. package/dist/platform/control-plane/operator-contract-schemas-runtime.js +40 -1
  21. package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
  22. package/dist/platform/daemon/facade-composition.js +1 -0
  23. package/dist/platform/daemon/homeassistant-chat.d.ts +4 -1
  24. package/dist/platform/daemon/homeassistant-chat.d.ts.map +1 -1
  25. package/dist/platform/daemon/homeassistant-chat.js +1 -1
  26. package/dist/platform/daemon/http/homeassistant-routes.d.ts.map +1 -1
  27. package/dist/platform/daemon/http/homeassistant-routes.js +28 -2
  28. package/dist/platform/integrations/webhooks.d.ts +15 -0
  29. package/dist/platform/integrations/webhooks.d.ts.map +1 -1
  30. package/dist/platform/integrations/webhooks.js +18 -0
  31. package/dist/platform/knowledge/extraction-policy.d.ts +12 -1
  32. package/dist/platform/knowledge/extraction-policy.d.ts.map +1 -1
  33. package/dist/platform/knowledge/extraction-policy.js +19 -1
  34. package/dist/platform/knowledge/graphql-schema.d.ts +1 -1
  35. package/dist/platform/knowledge/graphql-schema.d.ts.map +1 -1
  36. package/dist/platform/knowledge/graphql-schema.js +5 -0
  37. package/dist/platform/knowledge/home-graph/index.d.ts.map +1 -1
  38. package/dist/platform/knowledge/home-graph/index.js +4 -0
  39. package/dist/platform/knowledge/home-graph/link.d.ts +2 -2
  40. package/dist/platform/knowledge/home-graph/link.d.ts.map +1 -1
  41. package/dist/platform/knowledge/home-graph/link.js +60 -9
  42. package/dist/platform/knowledge/home-graph/refinement.d.ts +14 -9
  43. package/dist/platform/knowledge/home-graph/refinement.d.ts.map +1 -1
  44. package/dist/platform/knowledge/home-graph/refinement.js +18 -3
  45. package/dist/platform/knowledge/home-graph/reset.js +21 -4
  46. package/dist/platform/knowledge/home-graph/service.d.ts +10 -11
  47. package/dist/platform/knowledge/home-graph/service.d.ts.map +1 -1
  48. package/dist/platform/knowledge/home-graph/triage.d.ts +103 -0
  49. package/dist/platform/knowledge/home-graph/triage.d.ts.map +1 -0
  50. package/dist/platform/knowledge/home-graph/triage.js +362 -0
  51. package/dist/platform/knowledge/home-graph/types.d.ts +15 -0
  52. package/dist/platform/knowledge/home-graph/types.d.ts.map +1 -1
  53. package/dist/platform/knowledge/knowledge-api.d.ts +6 -0
  54. package/dist/platform/knowledge/knowledge-api.d.ts.map +1 -1
  55. package/dist/platform/knowledge/knowledge-api.js +5 -0
  56. package/dist/platform/knowledge/knowledge-history-types.d.ts +56 -0
  57. package/dist/platform/knowledge/knowledge-history-types.d.ts.map +1 -0
  58. package/dist/platform/knowledge/knowledge-history-types.js +1 -0
  59. package/dist/platform/knowledge/packet.d.ts.map +1 -1
  60. package/dist/platform/knowledge/packet.js +27 -3
  61. package/dist/platform/knowledge/scope-records.js +4 -2
  62. package/dist/platform/knowledge/semantic/answer-gaps.d.ts +8 -0
  63. package/dist/platform/knowledge/semantic/answer-gaps.d.ts.map +1 -1
  64. package/dist/platform/knowledge/semantic/answer-gaps.js +26 -6
  65. package/dist/platform/knowledge/semantic/enrichment.d.ts.map +1 -1
  66. package/dist/platform/knowledge/semantic/enrichment.js +15 -13
  67. package/dist/platform/knowledge/semantic/graph-index.d.ts.map +1 -1
  68. package/dist/platform/knowledge/semantic/graph-index.js +3 -1
  69. package/dist/platform/knowledge/semantic/service.d.ts +7 -0
  70. package/dist/platform/knowledge/semantic/service.d.ts.map +1 -1
  71. package/dist/platform/knowledge/semantic/service.js +10 -1
  72. package/dist/platform/knowledge/service-node-admin.d.ts +46 -0
  73. package/dist/platform/knowledge/service-node-admin.d.ts.map +1 -0
  74. package/dist/platform/knowledge/service-node-admin.js +72 -0
  75. package/dist/platform/knowledge/service.d.ts +24 -20
  76. package/dist/platform/knowledge/service.d.ts.map +1 -1
  77. package/dist/platform/knowledge/service.js +23 -47
  78. package/dist/platform/knowledge/store-config.d.ts +34 -0
  79. package/dist/platform/knowledge/store-config.d.ts.map +1 -1
  80. package/dist/platform/knowledge/store-config.js +23 -0
  81. package/dist/platform/knowledge/store-load.d.ts +3 -1
  82. package/dist/platform/knowledge/store-load.d.ts.map +1 -1
  83. package/dist/platform/knowledge/store-load.js +3 -1
  84. package/dist/platform/knowledge/store-node-history.d.ts +49 -0
  85. package/dist/platform/knowledge/store-node-history.d.ts.map +1 -0
  86. package/dist/platform/knowledge/store-node-history.js +331 -0
  87. package/dist/platform/knowledge/store-record-delete.d.ts +25 -0
  88. package/dist/platform/knowledge/store-record-delete.d.ts.map +1 -0
  89. package/dist/platform/knowledge/store-record-delete.js +84 -0
  90. package/dist/platform/knowledge/store-schema.d.ts +3 -1
  91. package/dist/platform/knowledge/store-schema.d.ts.map +1 -1
  92. package/dist/platform/knowledge/store-schema.js +66 -0
  93. package/dist/platform/knowledge/store.d.ts +19 -1
  94. package/dist/platform/knowledge/store.d.ts.map +1 -1
  95. package/dist/platform/knowledge/store.js +69 -108
  96. package/dist/platform/knowledge/types.d.ts +18 -0
  97. package/dist/platform/knowledge/types.d.ts.map +1 -1
  98. package/dist/platform/providers/registry.d.ts +18 -0
  99. package/dist/platform/providers/registry.d.ts.map +1 -1
  100. package/dist/platform/providers/registry.js +49 -3
  101. package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
  102. package/dist/platform/providers/runtime-snapshot.js +14 -2
  103. package/dist/platform/runtime/memory-spine/client.d.ts +137 -12
  104. package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -1
  105. package/dist/platform/runtime/memory-spine/client.js +119 -1
  106. package/dist/platform/runtime/memory-spine/index.d.ts +8 -1
  107. package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -1
  108. package/dist/platform/runtime/memory-spine/index.js +7 -0
  109. package/dist/platform/runtime/memory-spine/recall-snapshot.d.ts +74 -0
  110. package/dist/platform/runtime/memory-spine/recall-snapshot.d.ts.map +1 -0
  111. package/dist/platform/runtime/memory-spine/recall-snapshot.js +87 -0
  112. package/dist/platform/runtime/memory-spine/wire-verb-availability.d.ts +59 -0
  113. package/dist/platform/runtime/memory-spine/wire-verb-availability.d.ts.map +1 -0
  114. package/dist/platform/runtime/memory-spine/wire-verb-availability.js +114 -0
  115. package/dist/platform/runtime/services.d.ts.map +1 -1
  116. package/dist/platform/runtime/services.js +3 -12
  117. package/dist/platform/state/memory-recall-contract.d.ts +7 -0
  118. package/dist/platform/state/memory-recall-contract.d.ts.map +1 -1
  119. package/dist/platform/state/memory-recall-contract.js +2 -0
  120. package/dist/platform/utils/notify.d.ts +25 -1
  121. package/dist/platform/utils/notify.d.ts.map +1 -1
  122. package/dist/platform/utils/notify.js +29 -1
  123. package/dist/platform/version.js +1 -1
  124. package/dist/platform/voice/index.d.ts +2 -0
  125. package/dist/platform/voice/index.d.ts.map +1 -1
  126. package/dist/platform/voice/index.js +3 -0
  127. package/dist/platform/voice/spoken-turn/audio-sink.d.ts +111 -0
  128. package/dist/platform/voice/spoken-turn/audio-sink.d.ts.map +1 -0
  129. package/dist/platform/voice/spoken-turn/audio-sink.js +1 -0
  130. package/dist/platform/voice/spoken-turn/controller.d.ts +117 -0
  131. package/dist/platform/voice/spoken-turn/controller.d.ts.map +1 -0
  132. package/dist/platform/voice/spoken-turn/controller.js +448 -0
  133. package/dist/platform/voice/spoken-turn/index.d.ts +16 -0
  134. package/dist/platform/voice/spoken-turn/index.d.ts.map +1 -0
  135. package/dist/platform/voice/spoken-turn/index.js +12 -0
  136. package/dist/platform/voice/spoken-turn/text-chunker.d.ts +33 -0
  137. package/dist/platform/voice/spoken-turn/text-chunker.d.ts.map +1 -0
  138. package/dist/platform/voice/spoken-turn/text-chunker.js +97 -0
  139. package/package.json +9 -9
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "1.1.0"
6
+ "version": "1.3.0"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -42121,6 +42121,21 @@
42121
42121
  "estimatedTokens": {
42122
42122
  "type": "number"
42123
42123
  },
42124
+ "truncated": {
42125
+ "type": "boolean"
42126
+ },
42127
+ "totalCandidates": {
42128
+ "type": "number"
42129
+ },
42130
+ "droppedCount": {
42131
+ "type": "number"
42132
+ },
42133
+ "droppedForBudget": {
42134
+ "type": "number"
42135
+ },
42136
+ "budgetExhausted": {
42137
+ "type": "boolean"
42138
+ },
42124
42139
  "items": {
42125
42140
  "type": "array",
42126
42141
  "items": {
@@ -42213,6 +42228,11 @@
42213
42228
  "strategy",
42214
42229
  "budgetLimit",
42215
42230
  "estimatedTokens",
42231
+ "truncated",
42232
+ "totalCandidates",
42233
+ "droppedCount",
42234
+ "droppedForBudget",
42235
+ "budgetExhausted",
42216
42236
  "items"
42217
42237
  ],
42218
42238
  "additionalProperties": false
@@ -57736,6 +57756,292 @@
57736
57756
  },
57737
57757
  "invokable": true
57738
57758
  },
57759
+ {
57760
+ "id": "memory.records.export",
57761
+ "title": "Export Memory Bundle",
57762
+ "description": "Export a no-loss bundle (records + links) for the given filter from the canonical store. The bundle round-trips through import id-keyed, so it is the wire form of the cross-surface fold/reconcile seam. Read-only.",
57763
+ "category": "memory",
57764
+ "source": "builtin",
57765
+ "access": "authenticated",
57766
+ "transport": [
57767
+ "http",
57768
+ "ws"
57769
+ ],
57770
+ "scopes": [
57771
+ "read:memory"
57772
+ ],
57773
+ "http": {
57774
+ "method": "POST",
57775
+ "path": "/api/memory/records/export"
57776
+ },
57777
+ "inputSchema": {
57778
+ "type": "object",
57779
+ "properties": {
57780
+ "scope": {
57781
+ "type": "string",
57782
+ "enum": [
57783
+ "session",
57784
+ "project",
57785
+ "team"
57786
+ ]
57787
+ },
57788
+ "cls": {
57789
+ "type": "string",
57790
+ "enum": [
57791
+ "decision",
57792
+ "constraint",
57793
+ "incident",
57794
+ "pattern",
57795
+ "fact",
57796
+ "risk",
57797
+ "runbook",
57798
+ "architecture",
57799
+ "ownership"
57800
+ ]
57801
+ },
57802
+ "tags": {
57803
+ "type": "array",
57804
+ "items": {
57805
+ "type": "string"
57806
+ }
57807
+ },
57808
+ "query": {
57809
+ "type": "string"
57810
+ },
57811
+ "semantic": {
57812
+ "type": "boolean"
57813
+ },
57814
+ "since": {
57815
+ "type": "number"
57816
+ },
57817
+ "reviewState": {
57818
+ "type": "array",
57819
+ "items": {
57820
+ "type": "string",
57821
+ "enum": [
57822
+ "fresh",
57823
+ "reviewed",
57824
+ "stale",
57825
+ "contradicted"
57826
+ ]
57827
+ }
57828
+ },
57829
+ "minConfidence": {
57830
+ "type": "number"
57831
+ },
57832
+ "provenanceKinds": {
57833
+ "type": "array",
57834
+ "items": {
57835
+ "type": "string",
57836
+ "enum": [
57837
+ "session",
57838
+ "turn",
57839
+ "task",
57840
+ "event",
57841
+ "file"
57842
+ ]
57843
+ }
57844
+ },
57845
+ "staleOnly": {
57846
+ "type": "boolean"
57847
+ },
57848
+ "limit": {
57849
+ "type": "number"
57850
+ }
57851
+ },
57852
+ "additionalProperties": true
57853
+ },
57854
+ "outputSchema": {
57855
+ "type": "object",
57856
+ "properties": {
57857
+ "bundle": {
57858
+ "type": "object",
57859
+ "properties": {
57860
+ "schemaVersion": {
57861
+ "type": "string",
57862
+ "enum": [
57863
+ "v1"
57864
+ ]
57865
+ },
57866
+ "exportedAt": {
57867
+ "type": "number"
57868
+ },
57869
+ "scope": {
57870
+ "type": "string",
57871
+ "enum": [
57872
+ "session",
57873
+ "project",
57874
+ "team",
57875
+ "all"
57876
+ ]
57877
+ },
57878
+ "recordCount": {
57879
+ "type": "number"
57880
+ },
57881
+ "linkCount": {
57882
+ "type": "number"
57883
+ },
57884
+ "records": {
57885
+ "type": "array",
57886
+ "items": {
57887
+ "type": "object",
57888
+ "properties": {
57889
+ "id": {
57890
+ "type": "string"
57891
+ },
57892
+ "scope": {
57893
+ "type": "string",
57894
+ "enum": [
57895
+ "session",
57896
+ "project",
57897
+ "team"
57898
+ ]
57899
+ },
57900
+ "cls": {
57901
+ "type": "string",
57902
+ "enum": [
57903
+ "decision",
57904
+ "constraint",
57905
+ "incident",
57906
+ "pattern",
57907
+ "fact",
57908
+ "risk",
57909
+ "runbook",
57910
+ "architecture",
57911
+ "ownership"
57912
+ ]
57913
+ },
57914
+ "summary": {
57915
+ "type": "string"
57916
+ },
57917
+ "detail": {
57918
+ "type": "string"
57919
+ },
57920
+ "tags": {
57921
+ "type": "array",
57922
+ "items": {
57923
+ "type": "string"
57924
+ }
57925
+ },
57926
+ "provenance": {
57927
+ "type": "array",
57928
+ "items": {
57929
+ "type": "object",
57930
+ "properties": {
57931
+ "kind": {
57932
+ "type": "string",
57933
+ "enum": [
57934
+ "session",
57935
+ "turn",
57936
+ "task",
57937
+ "event",
57938
+ "file"
57939
+ ]
57940
+ },
57941
+ "ref": {
57942
+ "type": "string"
57943
+ },
57944
+ "label": {
57945
+ "type": "string"
57946
+ }
57947
+ },
57948
+ "required": [
57949
+ "kind",
57950
+ "ref"
57951
+ ],
57952
+ "additionalProperties": false
57953
+ }
57954
+ },
57955
+ "reviewState": {
57956
+ "type": "string",
57957
+ "enum": [
57958
+ "fresh",
57959
+ "reviewed",
57960
+ "stale",
57961
+ "contradicted"
57962
+ ]
57963
+ },
57964
+ "confidence": {
57965
+ "type": "number"
57966
+ },
57967
+ "reviewedAt": {
57968
+ "type": "number"
57969
+ },
57970
+ "reviewedBy": {
57971
+ "type": "string"
57972
+ },
57973
+ "staleReason": {
57974
+ "type": "string"
57975
+ },
57976
+ "createdAt": {
57977
+ "type": "number"
57978
+ },
57979
+ "updatedAt": {
57980
+ "type": "number"
57981
+ }
57982
+ },
57983
+ "required": [
57984
+ "id",
57985
+ "scope",
57986
+ "cls",
57987
+ "summary",
57988
+ "tags",
57989
+ "provenance",
57990
+ "reviewState",
57991
+ "confidence",
57992
+ "createdAt",
57993
+ "updatedAt"
57994
+ ],
57995
+ "additionalProperties": true
57996
+ }
57997
+ },
57998
+ "links": {
57999
+ "type": "array",
58000
+ "items": {
58001
+ "type": "object",
58002
+ "properties": {
58003
+ "fromId": {
58004
+ "type": "string"
58005
+ },
58006
+ "toId": {
58007
+ "type": "string"
58008
+ },
58009
+ "relation": {
58010
+ "type": "string"
58011
+ },
58012
+ "createdAt": {
58013
+ "type": "number"
58014
+ }
58015
+ },
58016
+ "required": [
58017
+ "fromId",
58018
+ "toId",
58019
+ "relation",
58020
+ "createdAt"
58021
+ ],
58022
+ "additionalProperties": false
58023
+ }
58024
+ }
58025
+ },
58026
+ "required": [
58027
+ "schemaVersion",
58028
+ "exportedAt",
58029
+ "scope",
58030
+ "recordCount",
58031
+ "linkCount",
58032
+ "records",
58033
+ "links"
58034
+ ],
58035
+ "additionalProperties": false
58036
+ }
58037
+ },
58038
+ "required": [
58039
+ "bundle"
58040
+ ],
58041
+ "additionalProperties": false
58042
+ },
58043
+ "invokable": true
58044
+ },
57739
58045
  {
57740
58046
  "id": "memory.records.get",
57741
58047
  "title": "Get Memory Record",
@@ -57889,9 +58195,9 @@
57889
58195
  "invokable": true
57890
58196
  },
57891
58197
  {
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.",
58198
+ "id": "memory.records.import",
58199
+ "title": "Import Memory Bundle",
58200
+ "description": "Import a bundle into the canonical store as an id-keyed union: an id already present is left untouched (counted skipped), a new id is added; a link is added only when both its endpoints exist. Never overwrites, never deletes, idempotent on re-run. The daemon is the single writer, so a client imports here instead of writing the store file.",
57895
58201
  "category": "memory",
57896
58202
  "source": "builtin",
57897
58203
  "access": "authenticated",
@@ -57900,101 +58206,700 @@
57900
58206
  "ws"
57901
58207
  ],
57902
58208
  "scopes": [
57903
- "read:memory"
58209
+ "write:memory"
57904
58210
  ],
57905
58211
  "http": {
57906
58212
  "method": "POST",
57907
- "path": "/api/memory/records/search"
58213
+ "path": "/api/memory/records/import"
57908
58214
  },
57909
58215
  "inputSchema": {
57910
58216
  "type": "object",
57911
58217
  "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": {
58218
+ "bundle": {
58219
+ "type": "object",
58220
+ "properties": {
58221
+ "schemaVersion": {
58222
+ "type": "string",
58223
+ "enum": [
58224
+ "v1"
58225
+ ]
58226
+ },
58227
+ "exportedAt": {
58228
+ "type": "number"
58229
+ },
58230
+ "scope": {
58231
+ "type": "string",
58232
+ "enum": [
58233
+ "session",
58234
+ "project",
58235
+ "team",
58236
+ "all"
58237
+ ]
58238
+ },
58239
+ "recordCount": {
58240
+ "type": "number"
58241
+ },
58242
+ "linkCount": {
58243
+ "type": "number"
58244
+ },
58245
+ "records": {
58246
+ "type": "array",
58247
+ "items": {
58248
+ "type": "object",
58249
+ "properties": {
58250
+ "id": {
58251
+ "type": "string"
58252
+ },
58253
+ "scope": {
58254
+ "type": "string",
58255
+ "enum": [
58256
+ "session",
58257
+ "project",
58258
+ "team"
58259
+ ]
58260
+ },
58261
+ "cls": {
58262
+ "type": "string",
58263
+ "enum": [
58264
+ "decision",
58265
+ "constraint",
58266
+ "incident",
58267
+ "pattern",
58268
+ "fact",
58269
+ "risk",
58270
+ "runbook",
58271
+ "architecture",
58272
+ "ownership"
58273
+ ]
58274
+ },
58275
+ "summary": {
58276
+ "type": "string"
58277
+ },
58278
+ "detail": {
58279
+ "type": "string"
58280
+ },
58281
+ "tags": {
58282
+ "type": "array",
58283
+ "items": {
58284
+ "type": "string"
58285
+ }
58286
+ },
58287
+ "provenance": {
58288
+ "type": "array",
58289
+ "items": {
58290
+ "type": "object",
58291
+ "properties": {
58292
+ "kind": {
58293
+ "type": "string",
58294
+ "enum": [
58295
+ "session",
58296
+ "turn",
58297
+ "task",
58298
+ "event",
58299
+ "file"
58300
+ ]
58301
+ },
58302
+ "ref": {
58303
+ "type": "string"
58304
+ },
58305
+ "label": {
58306
+ "type": "string"
58307
+ }
58308
+ },
58309
+ "required": [
58310
+ "kind",
58311
+ "ref"
58312
+ ],
58313
+ "additionalProperties": false
58314
+ }
58315
+ },
58316
+ "reviewState": {
58317
+ "type": "string",
58318
+ "enum": [
58319
+ "fresh",
58320
+ "reviewed",
58321
+ "stale",
58322
+ "contradicted"
58323
+ ]
58324
+ },
58325
+ "confidence": {
58326
+ "type": "number"
58327
+ },
58328
+ "reviewedAt": {
58329
+ "type": "number"
58330
+ },
58331
+ "reviewedBy": {
58332
+ "type": "string"
58333
+ },
58334
+ "staleReason": {
58335
+ "type": "string"
58336
+ },
58337
+ "createdAt": {
58338
+ "type": "number"
58339
+ },
58340
+ "updatedAt": {
58341
+ "type": "number"
58342
+ }
58343
+ },
58344
+ "required": [
58345
+ "id",
58346
+ "scope",
58347
+ "cls",
58348
+ "summary",
58349
+ "tags",
58350
+ "provenance",
58351
+ "reviewState",
58352
+ "confidence",
58353
+ "createdAt",
58354
+ "updatedAt"
58355
+ ],
58356
+ "additionalProperties": true
58357
+ }
58358
+ },
58359
+ "links": {
58360
+ "type": "array",
58361
+ "items": {
58362
+ "type": "object",
58363
+ "properties": {
58364
+ "fromId": {
58365
+ "type": "string"
58366
+ },
58367
+ "toId": {
58368
+ "type": "string"
58369
+ },
58370
+ "relation": {
58371
+ "type": "string"
58372
+ },
58373
+ "createdAt": {
58374
+ "type": "number"
58375
+ }
58376
+ },
58377
+ "required": [
58378
+ "fromId",
58379
+ "toId",
58380
+ "relation",
58381
+ "createdAt"
58382
+ ],
58383
+ "additionalProperties": false
58384
+ }
58385
+ }
58386
+ },
58387
+ "required": [
58388
+ "schemaVersion",
58389
+ "exportedAt",
58390
+ "scope",
58391
+ "recordCount",
58392
+ "linkCount",
58393
+ "records",
58394
+ "links"
58395
+ ],
58396
+ "additionalProperties": false
58397
+ }
58398
+ },
58399
+ "required": [
58400
+ "bundle"
58401
+ ],
58402
+ "additionalProperties": true
58403
+ },
58404
+ "outputSchema": {
58405
+ "type": "object",
58406
+ "properties": {
58407
+ "result": {
58408
+ "type": "object",
58409
+ "properties": {
58410
+ "importedRecords": {
58411
+ "type": "number"
58412
+ },
58413
+ "skippedRecords": {
58414
+ "type": "number"
58415
+ },
58416
+ "importedLinks": {
58417
+ "type": "number"
58418
+ }
58419
+ },
58420
+ "required": [
58421
+ "importedRecords",
58422
+ "skippedRecords",
58423
+ "importedLinks"
58424
+ ],
58425
+ "additionalProperties": false
58426
+ }
58427
+ },
58428
+ "required": [
58429
+ "result"
58430
+ ],
58431
+ "additionalProperties": false
58432
+ },
58433
+ "invokable": true
58434
+ },
58435
+ {
58436
+ "id": "memory.records.links.add",
58437
+ "title": "Link Memory Records",
58438
+ "description": "Create a directed relation (e.g. \"supersedes\", \"caused\") from the path record to a target record. Returns 404 when either endpoint does not exist — never a 200 that pretends a link was made between records that do not both exist.",
58439
+ "category": "memory",
58440
+ "source": "builtin",
58441
+ "access": "authenticated",
58442
+ "transport": [
58443
+ "http",
58444
+ "ws"
58445
+ ],
58446
+ "scopes": [
58447
+ "write:memory"
58448
+ ],
58449
+ "http": {
58450
+ "method": "POST",
58451
+ "path": "/api/memory/records/{id}/links"
58452
+ },
58453
+ "inputSchema": {
58454
+ "type": "object",
58455
+ "properties": {
58456
+ "id": {
57941
58457
  "type": "string"
57942
58458
  },
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"
58459
+ "toId": {
58460
+ "type": "string"
57982
58461
  },
57983
- "recall": {
57984
- "type": "boolean"
58462
+ "relation": {
58463
+ "type": "string"
57985
58464
  }
57986
58465
  },
58466
+ "required": [
58467
+ "id",
58468
+ "toId",
58469
+ "relation"
58470
+ ],
57987
58471
  "additionalProperties": true
57988
58472
  },
57989
58473
  "outputSchema": {
57990
58474
  "type": "object",
57991
58475
  "properties": {
57992
- "records": {
57993
- "type": "array",
57994
- "items": {
57995
- "type": "object",
57996
- "properties": {
57997
- "id": {
58476
+ "link": {
58477
+ "type": "object",
58478
+ "properties": {
58479
+ "fromId": {
58480
+ "type": "string"
58481
+ },
58482
+ "toId": {
58483
+ "type": "string"
58484
+ },
58485
+ "relation": {
58486
+ "type": "string"
58487
+ },
58488
+ "createdAt": {
58489
+ "type": "number"
58490
+ }
58491
+ },
58492
+ "required": [
58493
+ "fromId",
58494
+ "toId",
58495
+ "relation",
58496
+ "createdAt"
58497
+ ],
58498
+ "additionalProperties": false
58499
+ }
58500
+ },
58501
+ "required": [
58502
+ "link"
58503
+ ],
58504
+ "additionalProperties": false
58505
+ },
58506
+ "invokable": true
58507
+ },
58508
+ {
58509
+ "id": "memory.records.links.list",
58510
+ "title": "List Memory Record Links",
58511
+ "description": "Return every link where the record is the source or the target. Returns 404 when no record with that id exists — an honest not-found, distinct from a record that exists but has no links (an empty array).",
58512
+ "category": "memory",
58513
+ "source": "builtin",
58514
+ "access": "authenticated",
58515
+ "transport": [
58516
+ "http",
58517
+ "ws"
58518
+ ],
58519
+ "scopes": [
58520
+ "read:memory"
58521
+ ],
58522
+ "http": {
58523
+ "method": "GET",
58524
+ "path": "/api/memory/records/{id}/links"
58525
+ },
58526
+ "inputSchema": {
58527
+ "type": "object",
58528
+ "properties": {
58529
+ "id": {
58530
+ "type": "string"
58531
+ }
58532
+ },
58533
+ "required": [
58534
+ "id"
58535
+ ],
58536
+ "additionalProperties": false
58537
+ },
58538
+ "outputSchema": {
58539
+ "type": "object",
58540
+ "properties": {
58541
+ "links": {
58542
+ "type": "array",
58543
+ "items": {
58544
+ "type": "object",
58545
+ "properties": {
58546
+ "fromId": {
58547
+ "type": "string"
58548
+ },
58549
+ "toId": {
58550
+ "type": "string"
58551
+ },
58552
+ "relation": {
58553
+ "type": "string"
58554
+ },
58555
+ "createdAt": {
58556
+ "type": "number"
58557
+ }
58558
+ },
58559
+ "required": [
58560
+ "fromId",
58561
+ "toId",
58562
+ "relation",
58563
+ "createdAt"
58564
+ ],
58565
+ "additionalProperties": false
58566
+ }
58567
+ }
58568
+ },
58569
+ "required": [
58570
+ "links"
58571
+ ],
58572
+ "additionalProperties": false
58573
+ },
58574
+ "invokable": true
58575
+ },
58576
+ {
58577
+ "id": "memory.records.list",
58578
+ "title": "List Memory Records",
58579
+ "description": "Bulk read from the canonical store: a literal (non-semantic) search returning the matching records as a plain array. An empty filter returns every record (getAll). This is the read a client surface uses instead of opening the store file for its browse/list and knowledge-injection paths.",
58580
+ "category": "memory",
58581
+ "source": "builtin",
58582
+ "access": "authenticated",
58583
+ "transport": [
58584
+ "http",
58585
+ "ws"
58586
+ ],
58587
+ "scopes": [
58588
+ "read:memory"
58589
+ ],
58590
+ "http": {
58591
+ "method": "POST",
58592
+ "path": "/api/memory/records/list"
58593
+ },
58594
+ "inputSchema": {
58595
+ "type": "object",
58596
+ "properties": {
58597
+ "scope": {
58598
+ "type": "string",
58599
+ "enum": [
58600
+ "session",
58601
+ "project",
58602
+ "team"
58603
+ ]
58604
+ },
58605
+ "cls": {
58606
+ "type": "string",
58607
+ "enum": [
58608
+ "decision",
58609
+ "constraint",
58610
+ "incident",
58611
+ "pattern",
58612
+ "fact",
58613
+ "risk",
58614
+ "runbook",
58615
+ "architecture",
58616
+ "ownership"
58617
+ ]
58618
+ },
58619
+ "tags": {
58620
+ "type": "array",
58621
+ "items": {
58622
+ "type": "string"
58623
+ }
58624
+ },
58625
+ "query": {
58626
+ "type": "string"
58627
+ },
58628
+ "semantic": {
58629
+ "type": "boolean"
58630
+ },
58631
+ "since": {
58632
+ "type": "number"
58633
+ },
58634
+ "reviewState": {
58635
+ "type": "array",
58636
+ "items": {
58637
+ "type": "string",
58638
+ "enum": [
58639
+ "fresh",
58640
+ "reviewed",
58641
+ "stale",
58642
+ "contradicted"
58643
+ ]
58644
+ }
58645
+ },
58646
+ "minConfidence": {
58647
+ "type": "number"
58648
+ },
58649
+ "provenanceKinds": {
58650
+ "type": "array",
58651
+ "items": {
58652
+ "type": "string",
58653
+ "enum": [
58654
+ "session",
58655
+ "turn",
58656
+ "task",
58657
+ "event",
58658
+ "file"
58659
+ ]
58660
+ }
58661
+ },
58662
+ "staleOnly": {
58663
+ "type": "boolean"
58664
+ },
58665
+ "limit": {
58666
+ "type": "number"
58667
+ }
58668
+ },
58669
+ "additionalProperties": true
58670
+ },
58671
+ "outputSchema": {
58672
+ "type": "object",
58673
+ "properties": {
58674
+ "records": {
58675
+ "type": "array",
58676
+ "items": {
58677
+ "type": "object",
58678
+ "properties": {
58679
+ "id": {
58680
+ "type": "string"
58681
+ },
58682
+ "scope": {
58683
+ "type": "string",
58684
+ "enum": [
58685
+ "session",
58686
+ "project",
58687
+ "team"
58688
+ ]
58689
+ },
58690
+ "cls": {
58691
+ "type": "string",
58692
+ "enum": [
58693
+ "decision",
58694
+ "constraint",
58695
+ "incident",
58696
+ "pattern",
58697
+ "fact",
58698
+ "risk",
58699
+ "runbook",
58700
+ "architecture",
58701
+ "ownership"
58702
+ ]
58703
+ },
58704
+ "summary": {
58705
+ "type": "string"
58706
+ },
58707
+ "detail": {
58708
+ "type": "string"
58709
+ },
58710
+ "tags": {
58711
+ "type": "array",
58712
+ "items": {
58713
+ "type": "string"
58714
+ }
58715
+ },
58716
+ "provenance": {
58717
+ "type": "array",
58718
+ "items": {
58719
+ "type": "object",
58720
+ "properties": {
58721
+ "kind": {
58722
+ "type": "string",
58723
+ "enum": [
58724
+ "session",
58725
+ "turn",
58726
+ "task",
58727
+ "event",
58728
+ "file"
58729
+ ]
58730
+ },
58731
+ "ref": {
58732
+ "type": "string"
58733
+ },
58734
+ "label": {
58735
+ "type": "string"
58736
+ }
58737
+ },
58738
+ "required": [
58739
+ "kind",
58740
+ "ref"
58741
+ ],
58742
+ "additionalProperties": false
58743
+ }
58744
+ },
58745
+ "reviewState": {
58746
+ "type": "string",
58747
+ "enum": [
58748
+ "fresh",
58749
+ "reviewed",
58750
+ "stale",
58751
+ "contradicted"
58752
+ ]
58753
+ },
58754
+ "confidence": {
58755
+ "type": "number"
58756
+ },
58757
+ "reviewedAt": {
58758
+ "type": "number"
58759
+ },
58760
+ "reviewedBy": {
58761
+ "type": "string"
58762
+ },
58763
+ "staleReason": {
58764
+ "type": "string"
58765
+ },
58766
+ "createdAt": {
58767
+ "type": "number"
58768
+ },
58769
+ "updatedAt": {
58770
+ "type": "number"
58771
+ }
58772
+ },
58773
+ "required": [
58774
+ "id",
58775
+ "scope",
58776
+ "cls",
58777
+ "summary",
58778
+ "tags",
58779
+ "provenance",
58780
+ "reviewState",
58781
+ "confidence",
58782
+ "createdAt",
58783
+ "updatedAt"
58784
+ ],
58785
+ "additionalProperties": true
58786
+ }
58787
+ }
58788
+ },
58789
+ "required": [
58790
+ "records"
58791
+ ],
58792
+ "additionalProperties": false
58793
+ },
58794
+ "invokable": true
58795
+ },
58796
+ {
58797
+ "id": "memory.records.search",
58798
+ "title": "Search Memory Records",
58799
+ "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.",
58800
+ "category": "memory",
58801
+ "source": "builtin",
58802
+ "access": "authenticated",
58803
+ "transport": [
58804
+ "http",
58805
+ "ws"
58806
+ ],
58807
+ "scopes": [
58808
+ "read:memory"
58809
+ ],
58810
+ "http": {
58811
+ "method": "POST",
58812
+ "path": "/api/memory/records/search"
58813
+ },
58814
+ "inputSchema": {
58815
+ "type": "object",
58816
+ "properties": {
58817
+ "scope": {
58818
+ "type": "string",
58819
+ "enum": [
58820
+ "session",
58821
+ "project",
58822
+ "team"
58823
+ ]
58824
+ },
58825
+ "cls": {
58826
+ "type": "string",
58827
+ "enum": [
58828
+ "decision",
58829
+ "constraint",
58830
+ "incident",
58831
+ "pattern",
58832
+ "fact",
58833
+ "risk",
58834
+ "runbook",
58835
+ "architecture",
58836
+ "ownership"
58837
+ ]
58838
+ },
58839
+ "tags": {
58840
+ "type": "array",
58841
+ "items": {
58842
+ "type": "string"
58843
+ }
58844
+ },
58845
+ "query": {
58846
+ "type": "string"
58847
+ },
58848
+ "semantic": {
58849
+ "type": "boolean"
58850
+ },
58851
+ "since": {
58852
+ "type": "number"
58853
+ },
58854
+ "reviewState": {
58855
+ "type": "array",
58856
+ "items": {
58857
+ "type": "string",
58858
+ "enum": [
58859
+ "fresh",
58860
+ "reviewed",
58861
+ "stale",
58862
+ "contradicted"
58863
+ ]
58864
+ }
58865
+ },
58866
+ "minConfidence": {
58867
+ "type": "number"
58868
+ },
58869
+ "provenanceKinds": {
58870
+ "type": "array",
58871
+ "items": {
58872
+ "type": "string",
58873
+ "enum": [
58874
+ "session",
58875
+ "turn",
58876
+ "task",
58877
+ "event",
58878
+ "file"
58879
+ ]
58880
+ }
58881
+ },
58882
+ "staleOnly": {
58883
+ "type": "boolean"
58884
+ },
58885
+ "limit": {
58886
+ "type": "number"
58887
+ },
58888
+ "recall": {
58889
+ "type": "boolean"
58890
+ }
58891
+ },
58892
+ "additionalProperties": true
58893
+ },
58894
+ "outputSchema": {
58895
+ "type": "object",
58896
+ "properties": {
58897
+ "records": {
58898
+ "type": "array",
58899
+ "items": {
58900
+ "type": "object",
58901
+ "properties": {
58902
+ "id": {
57998
58903
  "type": "string"
57999
58904
  },
58000
58905
  "scope": {
@@ -58144,6 +59049,9 @@
58144
59049
  },
58145
59050
  "totalBeforeRecallFilter": {
58146
59051
  "type": "number"
59052
+ },
59053
+ "recallFloor": {
59054
+ "type": "number"
58147
59055
  }
58148
59056
  },
58149
59057
  "required": [
@@ -58155,7 +59063,427 @@
58155
59063
  "recallFiltered",
58156
59064
  "excludedFlaggedCount",
58157
59065
  "excludedBelowFloorCount",
58158
- "totalBeforeRecallFilter"
59066
+ "totalBeforeRecallFilter",
59067
+ "recallFloor"
59068
+ ],
59069
+ "additionalProperties": false
59070
+ },
59071
+ "invokable": true
59072
+ },
59073
+ {
59074
+ "id": "memory.records.search-semantic",
59075
+ "title": "Semantic Search Memory Records",
59076
+ "description": "Rank records by semantic similarity against the query, returning scored results (distance, similarity, score). When the query has no vector match the store falls back to a lexical ranking rather than a silent empty. distance is null for a fallback (non-vector) result. Read-only against the daemon's canonical index.",
59077
+ "category": "memory",
59078
+ "source": "builtin",
59079
+ "access": "authenticated",
59080
+ "transport": [
59081
+ "http",
59082
+ "ws"
59083
+ ],
59084
+ "scopes": [
59085
+ "read:memory"
59086
+ ],
59087
+ "http": {
59088
+ "method": "POST",
59089
+ "path": "/api/memory/records/search-semantic"
59090
+ },
59091
+ "inputSchema": {
59092
+ "type": "object",
59093
+ "properties": {
59094
+ "scope": {
59095
+ "type": "string",
59096
+ "enum": [
59097
+ "session",
59098
+ "project",
59099
+ "team"
59100
+ ]
59101
+ },
59102
+ "cls": {
59103
+ "type": "string",
59104
+ "enum": [
59105
+ "decision",
59106
+ "constraint",
59107
+ "incident",
59108
+ "pattern",
59109
+ "fact",
59110
+ "risk",
59111
+ "runbook",
59112
+ "architecture",
59113
+ "ownership"
59114
+ ]
59115
+ },
59116
+ "tags": {
59117
+ "type": "array",
59118
+ "items": {
59119
+ "type": "string"
59120
+ }
59121
+ },
59122
+ "query": {
59123
+ "type": "string"
59124
+ },
59125
+ "semantic": {
59126
+ "type": "boolean"
59127
+ },
59128
+ "since": {
59129
+ "type": "number"
59130
+ },
59131
+ "reviewState": {
59132
+ "type": "array",
59133
+ "items": {
59134
+ "type": "string",
59135
+ "enum": [
59136
+ "fresh",
59137
+ "reviewed",
59138
+ "stale",
59139
+ "contradicted"
59140
+ ]
59141
+ }
59142
+ },
59143
+ "minConfidence": {
59144
+ "type": "number"
59145
+ },
59146
+ "provenanceKinds": {
59147
+ "type": "array",
59148
+ "items": {
59149
+ "type": "string",
59150
+ "enum": [
59151
+ "session",
59152
+ "turn",
59153
+ "task",
59154
+ "event",
59155
+ "file"
59156
+ ]
59157
+ }
59158
+ },
59159
+ "staleOnly": {
59160
+ "type": "boolean"
59161
+ },
59162
+ "limit": {
59163
+ "type": "number"
59164
+ }
59165
+ },
59166
+ "additionalProperties": true
59167
+ },
59168
+ "outputSchema": {
59169
+ "type": "object",
59170
+ "properties": {
59171
+ "results": {
59172
+ "type": "array",
59173
+ "items": {
59174
+ "type": "object",
59175
+ "properties": {
59176
+ "record": {
59177
+ "type": "object",
59178
+ "properties": {
59179
+ "id": {
59180
+ "type": "string"
59181
+ },
59182
+ "scope": {
59183
+ "type": "string",
59184
+ "enum": [
59185
+ "session",
59186
+ "project",
59187
+ "team"
59188
+ ]
59189
+ },
59190
+ "cls": {
59191
+ "type": "string",
59192
+ "enum": [
59193
+ "decision",
59194
+ "constraint",
59195
+ "incident",
59196
+ "pattern",
59197
+ "fact",
59198
+ "risk",
59199
+ "runbook",
59200
+ "architecture",
59201
+ "ownership"
59202
+ ]
59203
+ },
59204
+ "summary": {
59205
+ "type": "string"
59206
+ },
59207
+ "detail": {
59208
+ "type": "string"
59209
+ },
59210
+ "tags": {
59211
+ "type": "array",
59212
+ "items": {
59213
+ "type": "string"
59214
+ }
59215
+ },
59216
+ "provenance": {
59217
+ "type": "array",
59218
+ "items": {
59219
+ "type": "object",
59220
+ "properties": {
59221
+ "kind": {
59222
+ "type": "string",
59223
+ "enum": [
59224
+ "session",
59225
+ "turn",
59226
+ "task",
59227
+ "event",
59228
+ "file"
59229
+ ]
59230
+ },
59231
+ "ref": {
59232
+ "type": "string"
59233
+ },
59234
+ "label": {
59235
+ "type": "string"
59236
+ }
59237
+ },
59238
+ "required": [
59239
+ "kind",
59240
+ "ref"
59241
+ ],
59242
+ "additionalProperties": false
59243
+ }
59244
+ },
59245
+ "reviewState": {
59246
+ "type": "string",
59247
+ "enum": [
59248
+ "fresh",
59249
+ "reviewed",
59250
+ "stale",
59251
+ "contradicted"
59252
+ ]
59253
+ },
59254
+ "confidence": {
59255
+ "type": "number"
59256
+ },
59257
+ "reviewedAt": {
59258
+ "type": "number"
59259
+ },
59260
+ "reviewedBy": {
59261
+ "type": "string"
59262
+ },
59263
+ "staleReason": {
59264
+ "type": "string"
59265
+ },
59266
+ "createdAt": {
59267
+ "type": "number"
59268
+ },
59269
+ "updatedAt": {
59270
+ "type": "number"
59271
+ }
59272
+ },
59273
+ "required": [
59274
+ "id",
59275
+ "scope",
59276
+ "cls",
59277
+ "summary",
59278
+ "tags",
59279
+ "provenance",
59280
+ "reviewState",
59281
+ "confidence",
59282
+ "createdAt",
59283
+ "updatedAt"
59284
+ ],
59285
+ "additionalProperties": true
59286
+ },
59287
+ "distance": {
59288
+ "anyOf": [
59289
+ {
59290
+ "type": "number"
59291
+ },
59292
+ {
59293
+ "type": "null"
59294
+ }
59295
+ ]
59296
+ },
59297
+ "similarity": {
59298
+ "type": "number"
59299
+ },
59300
+ "score": {
59301
+ "type": "number"
59302
+ }
59303
+ },
59304
+ "required": [
59305
+ "record",
59306
+ "similarity",
59307
+ "score"
59308
+ ],
59309
+ "additionalProperties": false
59310
+ }
59311
+ }
59312
+ },
59313
+ "required": [
59314
+ "results"
59315
+ ],
59316
+ "additionalProperties": false
59317
+ },
59318
+ "invokable": true
59319
+ },
59320
+ {
59321
+ "id": "memory.records.update",
59322
+ "title": "Update Memory Record",
59323
+ "description": "Edit a record's content fields (scope, summary, detail, tags) in the canonical store. This is distinct from the review update: it changes the record itself — e.g. moving scope project→team promotes a record to the shared surface. Returns 404 when no record with that id exists.",
59324
+ "category": "memory",
59325
+ "source": "builtin",
59326
+ "access": "authenticated",
59327
+ "transport": [
59328
+ "http",
59329
+ "ws"
59330
+ ],
59331
+ "scopes": [
59332
+ "write:memory"
59333
+ ],
59334
+ "http": {
59335
+ "method": "POST",
59336
+ "path": "/api/memory/records/{id}/update"
59337
+ },
59338
+ "inputSchema": {
59339
+ "type": "object",
59340
+ "properties": {
59341
+ "id": {
59342
+ "type": "string"
59343
+ },
59344
+ "scope": {
59345
+ "type": "string",
59346
+ "enum": [
59347
+ "session",
59348
+ "project",
59349
+ "team"
59350
+ ]
59351
+ },
59352
+ "summary": {
59353
+ "type": "string"
59354
+ },
59355
+ "detail": {
59356
+ "type": "string"
59357
+ },
59358
+ "tags": {
59359
+ "type": "array",
59360
+ "items": {
59361
+ "type": "string"
59362
+ }
59363
+ }
59364
+ },
59365
+ "required": [
59366
+ "id"
59367
+ ],
59368
+ "additionalProperties": true
59369
+ },
59370
+ "outputSchema": {
59371
+ "type": "object",
59372
+ "properties": {
59373
+ "record": {
59374
+ "type": "object",
59375
+ "properties": {
59376
+ "id": {
59377
+ "type": "string"
59378
+ },
59379
+ "scope": {
59380
+ "type": "string",
59381
+ "enum": [
59382
+ "session",
59383
+ "project",
59384
+ "team"
59385
+ ]
59386
+ },
59387
+ "cls": {
59388
+ "type": "string",
59389
+ "enum": [
59390
+ "decision",
59391
+ "constraint",
59392
+ "incident",
59393
+ "pattern",
59394
+ "fact",
59395
+ "risk",
59396
+ "runbook",
59397
+ "architecture",
59398
+ "ownership"
59399
+ ]
59400
+ },
59401
+ "summary": {
59402
+ "type": "string"
59403
+ },
59404
+ "detail": {
59405
+ "type": "string"
59406
+ },
59407
+ "tags": {
59408
+ "type": "array",
59409
+ "items": {
59410
+ "type": "string"
59411
+ }
59412
+ },
59413
+ "provenance": {
59414
+ "type": "array",
59415
+ "items": {
59416
+ "type": "object",
59417
+ "properties": {
59418
+ "kind": {
59419
+ "type": "string",
59420
+ "enum": [
59421
+ "session",
59422
+ "turn",
59423
+ "task",
59424
+ "event",
59425
+ "file"
59426
+ ]
59427
+ },
59428
+ "ref": {
59429
+ "type": "string"
59430
+ },
59431
+ "label": {
59432
+ "type": "string"
59433
+ }
59434
+ },
59435
+ "required": [
59436
+ "kind",
59437
+ "ref"
59438
+ ],
59439
+ "additionalProperties": false
59440
+ }
59441
+ },
59442
+ "reviewState": {
59443
+ "type": "string",
59444
+ "enum": [
59445
+ "fresh",
59446
+ "reviewed",
59447
+ "stale",
59448
+ "contradicted"
59449
+ ]
59450
+ },
59451
+ "confidence": {
59452
+ "type": "number"
59453
+ },
59454
+ "reviewedAt": {
59455
+ "type": "number"
59456
+ },
59457
+ "reviewedBy": {
59458
+ "type": "string"
59459
+ },
59460
+ "staleReason": {
59461
+ "type": "string"
59462
+ },
59463
+ "createdAt": {
59464
+ "type": "number"
59465
+ },
59466
+ "updatedAt": {
59467
+ "type": "number"
59468
+ }
59469
+ },
59470
+ "required": [
59471
+ "id",
59472
+ "scope",
59473
+ "cls",
59474
+ "summary",
59475
+ "tags",
59476
+ "provenance",
59477
+ "reviewState",
59478
+ "confidence",
59479
+ "createdAt",
59480
+ "updatedAt"
59481
+ ],
59482
+ "additionalProperties": true
59483
+ }
59484
+ },
59485
+ "required": [
59486
+ "record"
58159
59487
  ],
58160
59488
  "additionalProperties": false
58161
59489
  },
@@ -80037,10 +81365,10 @@
80037
81365
  }
80038
81366
  ],
80039
81367
  "schemaCoverage": {
80040
- "methods": 320,
80041
- "typedInputs": 320,
81368
+ "methods": 327,
81369
+ "typedInputs": 327,
80042
81370
  "genericInputs": 0,
80043
- "typedOutputs": 320,
81371
+ "typedOutputs": 327,
80044
81372
  "genericOutputs": 0
80045
81373
  },
80046
81374
  "eventCoverage": {
@@ -80049,8 +81377,8 @@
80049
81377
  "withWireEvents": 31
80050
81378
  },
80051
81379
  "validationCoverage": {
80052
- "methods": 320,
80053
- "validated": 318,
81380
+ "methods": 327,
81381
+ "validated": 325,
80054
81382
  "skippedGeneric": 0,
80055
81383
  "skippedUntyped": 2
80056
81384
  }