@pellux/goodvibes-contracts 1.1.0 → 1.2.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.
@@ -3,7 +3,7 @@ export const OPERATOR_CONTRACT = {
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "1.1.0"
6
+ "version": "1.2.0"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
@@ -57736,6 +57736,292 @@ export const OPERATOR_CONTRACT = {
57736
57736
  },
57737
57737
  "invokable": true
57738
57738
  },
57739
+ {
57740
+ "id": "memory.records.export",
57741
+ "title": "Export Memory Bundle",
57742
+ "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.",
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": "POST",
57755
+ "path": "/api/memory/records/export"
57756
+ },
57757
+ "inputSchema": {
57758
+ "type": "object",
57759
+ "properties": {
57760
+ "scope": {
57761
+ "type": "string",
57762
+ "enum": [
57763
+ "session",
57764
+ "project",
57765
+ "team"
57766
+ ]
57767
+ },
57768
+ "cls": {
57769
+ "type": "string",
57770
+ "enum": [
57771
+ "decision",
57772
+ "constraint",
57773
+ "incident",
57774
+ "pattern",
57775
+ "fact",
57776
+ "risk",
57777
+ "runbook",
57778
+ "architecture",
57779
+ "ownership"
57780
+ ]
57781
+ },
57782
+ "tags": {
57783
+ "type": "array",
57784
+ "items": {
57785
+ "type": "string"
57786
+ }
57787
+ },
57788
+ "query": {
57789
+ "type": "string"
57790
+ },
57791
+ "semantic": {
57792
+ "type": "boolean"
57793
+ },
57794
+ "since": {
57795
+ "type": "number"
57796
+ },
57797
+ "reviewState": {
57798
+ "type": "array",
57799
+ "items": {
57800
+ "type": "string",
57801
+ "enum": [
57802
+ "fresh",
57803
+ "reviewed",
57804
+ "stale",
57805
+ "contradicted"
57806
+ ]
57807
+ }
57808
+ },
57809
+ "minConfidence": {
57810
+ "type": "number"
57811
+ },
57812
+ "provenanceKinds": {
57813
+ "type": "array",
57814
+ "items": {
57815
+ "type": "string",
57816
+ "enum": [
57817
+ "session",
57818
+ "turn",
57819
+ "task",
57820
+ "event",
57821
+ "file"
57822
+ ]
57823
+ }
57824
+ },
57825
+ "staleOnly": {
57826
+ "type": "boolean"
57827
+ },
57828
+ "limit": {
57829
+ "type": "number"
57830
+ }
57831
+ },
57832
+ "additionalProperties": true
57833
+ },
57834
+ "outputSchema": {
57835
+ "type": "object",
57836
+ "properties": {
57837
+ "bundle": {
57838
+ "type": "object",
57839
+ "properties": {
57840
+ "schemaVersion": {
57841
+ "type": "string",
57842
+ "enum": [
57843
+ "v1"
57844
+ ]
57845
+ },
57846
+ "exportedAt": {
57847
+ "type": "number"
57848
+ },
57849
+ "scope": {
57850
+ "type": "string",
57851
+ "enum": [
57852
+ "session",
57853
+ "project",
57854
+ "team",
57855
+ "all"
57856
+ ]
57857
+ },
57858
+ "recordCount": {
57859
+ "type": "number"
57860
+ },
57861
+ "linkCount": {
57862
+ "type": "number"
57863
+ },
57864
+ "records": {
57865
+ "type": "array",
57866
+ "items": {
57867
+ "type": "object",
57868
+ "properties": {
57869
+ "id": {
57870
+ "type": "string"
57871
+ },
57872
+ "scope": {
57873
+ "type": "string",
57874
+ "enum": [
57875
+ "session",
57876
+ "project",
57877
+ "team"
57878
+ ]
57879
+ },
57880
+ "cls": {
57881
+ "type": "string",
57882
+ "enum": [
57883
+ "decision",
57884
+ "constraint",
57885
+ "incident",
57886
+ "pattern",
57887
+ "fact",
57888
+ "risk",
57889
+ "runbook",
57890
+ "architecture",
57891
+ "ownership"
57892
+ ]
57893
+ },
57894
+ "summary": {
57895
+ "type": "string"
57896
+ },
57897
+ "detail": {
57898
+ "type": "string"
57899
+ },
57900
+ "tags": {
57901
+ "type": "array",
57902
+ "items": {
57903
+ "type": "string"
57904
+ }
57905
+ },
57906
+ "provenance": {
57907
+ "type": "array",
57908
+ "items": {
57909
+ "type": "object",
57910
+ "properties": {
57911
+ "kind": {
57912
+ "type": "string",
57913
+ "enum": [
57914
+ "session",
57915
+ "turn",
57916
+ "task",
57917
+ "event",
57918
+ "file"
57919
+ ]
57920
+ },
57921
+ "ref": {
57922
+ "type": "string"
57923
+ },
57924
+ "label": {
57925
+ "type": "string"
57926
+ }
57927
+ },
57928
+ "required": [
57929
+ "kind",
57930
+ "ref"
57931
+ ],
57932
+ "additionalProperties": false
57933
+ }
57934
+ },
57935
+ "reviewState": {
57936
+ "type": "string",
57937
+ "enum": [
57938
+ "fresh",
57939
+ "reviewed",
57940
+ "stale",
57941
+ "contradicted"
57942
+ ]
57943
+ },
57944
+ "confidence": {
57945
+ "type": "number"
57946
+ },
57947
+ "reviewedAt": {
57948
+ "type": "number"
57949
+ },
57950
+ "reviewedBy": {
57951
+ "type": "string"
57952
+ },
57953
+ "staleReason": {
57954
+ "type": "string"
57955
+ },
57956
+ "createdAt": {
57957
+ "type": "number"
57958
+ },
57959
+ "updatedAt": {
57960
+ "type": "number"
57961
+ }
57962
+ },
57963
+ "required": [
57964
+ "id",
57965
+ "scope",
57966
+ "cls",
57967
+ "summary",
57968
+ "tags",
57969
+ "provenance",
57970
+ "reviewState",
57971
+ "confidence",
57972
+ "createdAt",
57973
+ "updatedAt"
57974
+ ],
57975
+ "additionalProperties": true
57976
+ }
57977
+ },
57978
+ "links": {
57979
+ "type": "array",
57980
+ "items": {
57981
+ "type": "object",
57982
+ "properties": {
57983
+ "fromId": {
57984
+ "type": "string"
57985
+ },
57986
+ "toId": {
57987
+ "type": "string"
57988
+ },
57989
+ "relation": {
57990
+ "type": "string"
57991
+ },
57992
+ "createdAt": {
57993
+ "type": "number"
57994
+ }
57995
+ },
57996
+ "required": [
57997
+ "fromId",
57998
+ "toId",
57999
+ "relation",
58000
+ "createdAt"
58001
+ ],
58002
+ "additionalProperties": false
58003
+ }
58004
+ }
58005
+ },
58006
+ "required": [
58007
+ "schemaVersion",
58008
+ "exportedAt",
58009
+ "scope",
58010
+ "recordCount",
58011
+ "linkCount",
58012
+ "records",
58013
+ "links"
58014
+ ],
58015
+ "additionalProperties": false
58016
+ }
58017
+ },
58018
+ "required": [
58019
+ "bundle"
58020
+ ],
58021
+ "additionalProperties": false
58022
+ },
58023
+ "invokable": true
58024
+ },
57739
58025
  {
57740
58026
  "id": "memory.records.get",
57741
58027
  "title": "Get Memory Record",
@@ -57827,62 +58113,661 @@ export const OPERATOR_CONTRACT = {
57827
58113
  "ref": {
57828
58114
  "type": "string"
57829
58115
  },
57830
- "label": {
57831
- "type": "string"
57832
- }
57833
- },
57834
- "required": [
57835
- "kind",
57836
- "ref"
57837
- ],
57838
- "additionalProperties": false
58116
+ "label": {
58117
+ "type": "string"
58118
+ }
58119
+ },
58120
+ "required": [
58121
+ "kind",
58122
+ "ref"
58123
+ ],
58124
+ "additionalProperties": false
58125
+ }
58126
+ },
58127
+ "reviewState": {
58128
+ "type": "string",
58129
+ "enum": [
58130
+ "fresh",
58131
+ "reviewed",
58132
+ "stale",
58133
+ "contradicted"
58134
+ ]
58135
+ },
58136
+ "confidence": {
58137
+ "type": "number"
58138
+ },
58139
+ "reviewedAt": {
58140
+ "type": "number"
58141
+ },
58142
+ "reviewedBy": {
58143
+ "type": "string"
58144
+ },
58145
+ "staleReason": {
58146
+ "type": "string"
58147
+ },
58148
+ "createdAt": {
58149
+ "type": "number"
58150
+ },
58151
+ "updatedAt": {
58152
+ "type": "number"
58153
+ }
58154
+ },
58155
+ "required": [
58156
+ "id",
58157
+ "scope",
58158
+ "cls",
58159
+ "summary",
58160
+ "tags",
58161
+ "provenance",
58162
+ "reviewState",
58163
+ "confidence",
58164
+ "createdAt",
58165
+ "updatedAt"
58166
+ ],
58167
+ "additionalProperties": true
58168
+ }
58169
+ },
58170
+ "required": [
58171
+ "record"
58172
+ ],
58173
+ "additionalProperties": false
58174
+ },
58175
+ "invokable": true
58176
+ },
58177
+ {
58178
+ "id": "memory.records.import",
58179
+ "title": "Import Memory Bundle",
58180
+ "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.",
58181
+ "category": "memory",
58182
+ "source": "builtin",
58183
+ "access": "authenticated",
58184
+ "transport": [
58185
+ "http",
58186
+ "ws"
58187
+ ],
58188
+ "scopes": [
58189
+ "write:memory"
58190
+ ],
58191
+ "http": {
58192
+ "method": "POST",
58193
+ "path": "/api/memory/records/import"
58194
+ },
58195
+ "inputSchema": {
58196
+ "type": "object",
58197
+ "properties": {
58198
+ "bundle": {
58199
+ "type": "object",
58200
+ "properties": {
58201
+ "schemaVersion": {
58202
+ "type": "string",
58203
+ "enum": [
58204
+ "v1"
58205
+ ]
58206
+ },
58207
+ "exportedAt": {
58208
+ "type": "number"
58209
+ },
58210
+ "scope": {
58211
+ "type": "string",
58212
+ "enum": [
58213
+ "session",
58214
+ "project",
58215
+ "team",
58216
+ "all"
58217
+ ]
58218
+ },
58219
+ "recordCount": {
58220
+ "type": "number"
58221
+ },
58222
+ "linkCount": {
58223
+ "type": "number"
58224
+ },
58225
+ "records": {
58226
+ "type": "array",
58227
+ "items": {
58228
+ "type": "object",
58229
+ "properties": {
58230
+ "id": {
58231
+ "type": "string"
58232
+ },
58233
+ "scope": {
58234
+ "type": "string",
58235
+ "enum": [
58236
+ "session",
58237
+ "project",
58238
+ "team"
58239
+ ]
58240
+ },
58241
+ "cls": {
58242
+ "type": "string",
58243
+ "enum": [
58244
+ "decision",
58245
+ "constraint",
58246
+ "incident",
58247
+ "pattern",
58248
+ "fact",
58249
+ "risk",
58250
+ "runbook",
58251
+ "architecture",
58252
+ "ownership"
58253
+ ]
58254
+ },
58255
+ "summary": {
58256
+ "type": "string"
58257
+ },
58258
+ "detail": {
58259
+ "type": "string"
58260
+ },
58261
+ "tags": {
58262
+ "type": "array",
58263
+ "items": {
58264
+ "type": "string"
58265
+ }
58266
+ },
58267
+ "provenance": {
58268
+ "type": "array",
58269
+ "items": {
58270
+ "type": "object",
58271
+ "properties": {
58272
+ "kind": {
58273
+ "type": "string",
58274
+ "enum": [
58275
+ "session",
58276
+ "turn",
58277
+ "task",
58278
+ "event",
58279
+ "file"
58280
+ ]
58281
+ },
58282
+ "ref": {
58283
+ "type": "string"
58284
+ },
58285
+ "label": {
58286
+ "type": "string"
58287
+ }
58288
+ },
58289
+ "required": [
58290
+ "kind",
58291
+ "ref"
58292
+ ],
58293
+ "additionalProperties": false
58294
+ }
58295
+ },
58296
+ "reviewState": {
58297
+ "type": "string",
58298
+ "enum": [
58299
+ "fresh",
58300
+ "reviewed",
58301
+ "stale",
58302
+ "contradicted"
58303
+ ]
58304
+ },
58305
+ "confidence": {
58306
+ "type": "number"
58307
+ },
58308
+ "reviewedAt": {
58309
+ "type": "number"
58310
+ },
58311
+ "reviewedBy": {
58312
+ "type": "string"
58313
+ },
58314
+ "staleReason": {
58315
+ "type": "string"
58316
+ },
58317
+ "createdAt": {
58318
+ "type": "number"
58319
+ },
58320
+ "updatedAt": {
58321
+ "type": "number"
58322
+ }
58323
+ },
58324
+ "required": [
58325
+ "id",
58326
+ "scope",
58327
+ "cls",
58328
+ "summary",
58329
+ "tags",
58330
+ "provenance",
58331
+ "reviewState",
58332
+ "confidence",
58333
+ "createdAt",
58334
+ "updatedAt"
58335
+ ],
58336
+ "additionalProperties": true
58337
+ }
58338
+ },
58339
+ "links": {
58340
+ "type": "array",
58341
+ "items": {
58342
+ "type": "object",
58343
+ "properties": {
58344
+ "fromId": {
58345
+ "type": "string"
58346
+ },
58347
+ "toId": {
58348
+ "type": "string"
58349
+ },
58350
+ "relation": {
58351
+ "type": "string"
58352
+ },
58353
+ "createdAt": {
58354
+ "type": "number"
58355
+ }
58356
+ },
58357
+ "required": [
58358
+ "fromId",
58359
+ "toId",
58360
+ "relation",
58361
+ "createdAt"
58362
+ ],
58363
+ "additionalProperties": false
58364
+ }
58365
+ }
58366
+ },
58367
+ "required": [
58368
+ "schemaVersion",
58369
+ "exportedAt",
58370
+ "scope",
58371
+ "recordCount",
58372
+ "linkCount",
58373
+ "records",
58374
+ "links"
58375
+ ],
58376
+ "additionalProperties": false
58377
+ }
58378
+ },
58379
+ "required": [
58380
+ "bundle"
58381
+ ],
58382
+ "additionalProperties": true
58383
+ },
58384
+ "outputSchema": {
58385
+ "type": "object",
58386
+ "properties": {
58387
+ "result": {
58388
+ "type": "object",
58389
+ "properties": {
58390
+ "importedRecords": {
58391
+ "type": "number"
58392
+ },
58393
+ "skippedRecords": {
58394
+ "type": "number"
58395
+ },
58396
+ "importedLinks": {
58397
+ "type": "number"
58398
+ }
58399
+ },
58400
+ "required": [
58401
+ "importedRecords",
58402
+ "skippedRecords",
58403
+ "importedLinks"
58404
+ ],
58405
+ "additionalProperties": false
58406
+ }
58407
+ },
58408
+ "required": [
58409
+ "result"
58410
+ ],
58411
+ "additionalProperties": false
58412
+ },
58413
+ "invokable": true
58414
+ },
58415
+ {
58416
+ "id": "memory.records.links.add",
58417
+ "title": "Link Memory Records",
58418
+ "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.",
58419
+ "category": "memory",
58420
+ "source": "builtin",
58421
+ "access": "authenticated",
58422
+ "transport": [
58423
+ "http",
58424
+ "ws"
58425
+ ],
58426
+ "scopes": [
58427
+ "write:memory"
58428
+ ],
58429
+ "http": {
58430
+ "method": "POST",
58431
+ "path": "/api/memory/records/{id}/links"
58432
+ },
58433
+ "inputSchema": {
58434
+ "type": "object",
58435
+ "properties": {
58436
+ "id": {
58437
+ "type": "string"
58438
+ },
58439
+ "toId": {
58440
+ "type": "string"
58441
+ },
58442
+ "relation": {
58443
+ "type": "string"
58444
+ }
58445
+ },
58446
+ "required": [
58447
+ "id",
58448
+ "toId",
58449
+ "relation"
58450
+ ],
58451
+ "additionalProperties": true
58452
+ },
58453
+ "outputSchema": {
58454
+ "type": "object",
58455
+ "properties": {
58456
+ "link": {
58457
+ "type": "object",
58458
+ "properties": {
58459
+ "fromId": {
58460
+ "type": "string"
58461
+ },
58462
+ "toId": {
58463
+ "type": "string"
58464
+ },
58465
+ "relation": {
58466
+ "type": "string"
58467
+ },
58468
+ "createdAt": {
58469
+ "type": "number"
58470
+ }
58471
+ },
58472
+ "required": [
58473
+ "fromId",
58474
+ "toId",
58475
+ "relation",
58476
+ "createdAt"
58477
+ ],
58478
+ "additionalProperties": false
58479
+ }
58480
+ },
58481
+ "required": [
58482
+ "link"
58483
+ ],
58484
+ "additionalProperties": false
58485
+ },
58486
+ "invokable": true
58487
+ },
58488
+ {
58489
+ "id": "memory.records.links.list",
58490
+ "title": "List Memory Record Links",
58491
+ "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).",
58492
+ "category": "memory",
58493
+ "source": "builtin",
58494
+ "access": "authenticated",
58495
+ "transport": [
58496
+ "http",
58497
+ "ws"
58498
+ ],
58499
+ "scopes": [
58500
+ "read:memory"
58501
+ ],
58502
+ "http": {
58503
+ "method": "GET",
58504
+ "path": "/api/memory/records/{id}/links"
58505
+ },
58506
+ "inputSchema": {
58507
+ "type": "object",
58508
+ "properties": {
58509
+ "id": {
58510
+ "type": "string"
58511
+ }
58512
+ },
58513
+ "required": [
58514
+ "id"
58515
+ ],
58516
+ "additionalProperties": false
58517
+ },
58518
+ "outputSchema": {
58519
+ "type": "object",
58520
+ "properties": {
58521
+ "links": {
58522
+ "type": "array",
58523
+ "items": {
58524
+ "type": "object",
58525
+ "properties": {
58526
+ "fromId": {
58527
+ "type": "string"
58528
+ },
58529
+ "toId": {
58530
+ "type": "string"
58531
+ },
58532
+ "relation": {
58533
+ "type": "string"
58534
+ },
58535
+ "createdAt": {
58536
+ "type": "number"
58537
+ }
58538
+ },
58539
+ "required": [
58540
+ "fromId",
58541
+ "toId",
58542
+ "relation",
58543
+ "createdAt"
58544
+ ],
58545
+ "additionalProperties": false
58546
+ }
58547
+ }
58548
+ },
58549
+ "required": [
58550
+ "links"
58551
+ ],
58552
+ "additionalProperties": false
58553
+ },
58554
+ "invokable": true
58555
+ },
58556
+ {
58557
+ "id": "memory.records.list",
58558
+ "title": "List Memory Records",
58559
+ "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.",
58560
+ "category": "memory",
58561
+ "source": "builtin",
58562
+ "access": "authenticated",
58563
+ "transport": [
58564
+ "http",
58565
+ "ws"
58566
+ ],
58567
+ "scopes": [
58568
+ "read:memory"
58569
+ ],
58570
+ "http": {
58571
+ "method": "POST",
58572
+ "path": "/api/memory/records/list"
58573
+ },
58574
+ "inputSchema": {
58575
+ "type": "object",
58576
+ "properties": {
58577
+ "scope": {
58578
+ "type": "string",
58579
+ "enum": [
58580
+ "session",
58581
+ "project",
58582
+ "team"
58583
+ ]
58584
+ },
58585
+ "cls": {
58586
+ "type": "string",
58587
+ "enum": [
58588
+ "decision",
58589
+ "constraint",
58590
+ "incident",
58591
+ "pattern",
58592
+ "fact",
58593
+ "risk",
58594
+ "runbook",
58595
+ "architecture",
58596
+ "ownership"
58597
+ ]
58598
+ },
58599
+ "tags": {
58600
+ "type": "array",
58601
+ "items": {
58602
+ "type": "string"
58603
+ }
58604
+ },
58605
+ "query": {
58606
+ "type": "string"
58607
+ },
58608
+ "semantic": {
58609
+ "type": "boolean"
58610
+ },
58611
+ "since": {
58612
+ "type": "number"
58613
+ },
58614
+ "reviewState": {
58615
+ "type": "array",
58616
+ "items": {
58617
+ "type": "string",
58618
+ "enum": [
58619
+ "fresh",
58620
+ "reviewed",
58621
+ "stale",
58622
+ "contradicted"
58623
+ ]
58624
+ }
58625
+ },
58626
+ "minConfidence": {
58627
+ "type": "number"
58628
+ },
58629
+ "provenanceKinds": {
58630
+ "type": "array",
58631
+ "items": {
58632
+ "type": "string",
58633
+ "enum": [
58634
+ "session",
58635
+ "turn",
58636
+ "task",
58637
+ "event",
58638
+ "file"
58639
+ ]
58640
+ }
58641
+ },
58642
+ "staleOnly": {
58643
+ "type": "boolean"
58644
+ },
58645
+ "limit": {
58646
+ "type": "number"
58647
+ }
58648
+ },
58649
+ "additionalProperties": true
58650
+ },
58651
+ "outputSchema": {
58652
+ "type": "object",
58653
+ "properties": {
58654
+ "records": {
58655
+ "type": "array",
58656
+ "items": {
58657
+ "type": "object",
58658
+ "properties": {
58659
+ "id": {
58660
+ "type": "string"
58661
+ },
58662
+ "scope": {
58663
+ "type": "string",
58664
+ "enum": [
58665
+ "session",
58666
+ "project",
58667
+ "team"
58668
+ ]
58669
+ },
58670
+ "cls": {
58671
+ "type": "string",
58672
+ "enum": [
58673
+ "decision",
58674
+ "constraint",
58675
+ "incident",
58676
+ "pattern",
58677
+ "fact",
58678
+ "risk",
58679
+ "runbook",
58680
+ "architecture",
58681
+ "ownership"
58682
+ ]
58683
+ },
58684
+ "summary": {
58685
+ "type": "string"
58686
+ },
58687
+ "detail": {
58688
+ "type": "string"
58689
+ },
58690
+ "tags": {
58691
+ "type": "array",
58692
+ "items": {
58693
+ "type": "string"
58694
+ }
58695
+ },
58696
+ "provenance": {
58697
+ "type": "array",
58698
+ "items": {
58699
+ "type": "object",
58700
+ "properties": {
58701
+ "kind": {
58702
+ "type": "string",
58703
+ "enum": [
58704
+ "session",
58705
+ "turn",
58706
+ "task",
58707
+ "event",
58708
+ "file"
58709
+ ]
58710
+ },
58711
+ "ref": {
58712
+ "type": "string"
58713
+ },
58714
+ "label": {
58715
+ "type": "string"
58716
+ }
58717
+ },
58718
+ "required": [
58719
+ "kind",
58720
+ "ref"
58721
+ ],
58722
+ "additionalProperties": false
58723
+ }
58724
+ },
58725
+ "reviewState": {
58726
+ "type": "string",
58727
+ "enum": [
58728
+ "fresh",
58729
+ "reviewed",
58730
+ "stale",
58731
+ "contradicted"
58732
+ ]
58733
+ },
58734
+ "confidence": {
58735
+ "type": "number"
58736
+ },
58737
+ "reviewedAt": {
58738
+ "type": "number"
58739
+ },
58740
+ "reviewedBy": {
58741
+ "type": "string"
58742
+ },
58743
+ "staleReason": {
58744
+ "type": "string"
58745
+ },
58746
+ "createdAt": {
58747
+ "type": "number"
58748
+ },
58749
+ "updatedAt": {
58750
+ "type": "number"
57839
58751
  }
57840
58752
  },
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
58753
+ "required": [
58754
+ "id",
58755
+ "scope",
58756
+ "cls",
58757
+ "summary",
58758
+ "tags",
58759
+ "provenance",
58760
+ "reviewState",
58761
+ "confidence",
58762
+ "createdAt",
58763
+ "updatedAt"
58764
+ ],
58765
+ "additionalProperties": true
58766
+ }
57882
58767
  }
57883
58768
  },
57884
58769
  "required": [
57885
- "record"
58770
+ "records"
57886
58771
  ],
57887
58772
  "additionalProperties": false
57888
58773
  },
@@ -58161,6 +59046,425 @@ export const OPERATOR_CONTRACT = {
58161
59046
  },
58162
59047
  "invokable": true
58163
59048
  },
59049
+ {
59050
+ "id": "memory.records.search-semantic",
59051
+ "title": "Semantic Search Memory Records",
59052
+ "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.",
59053
+ "category": "memory",
59054
+ "source": "builtin",
59055
+ "access": "authenticated",
59056
+ "transport": [
59057
+ "http",
59058
+ "ws"
59059
+ ],
59060
+ "scopes": [
59061
+ "read:memory"
59062
+ ],
59063
+ "http": {
59064
+ "method": "POST",
59065
+ "path": "/api/memory/records/search-semantic"
59066
+ },
59067
+ "inputSchema": {
59068
+ "type": "object",
59069
+ "properties": {
59070
+ "scope": {
59071
+ "type": "string",
59072
+ "enum": [
59073
+ "session",
59074
+ "project",
59075
+ "team"
59076
+ ]
59077
+ },
59078
+ "cls": {
59079
+ "type": "string",
59080
+ "enum": [
59081
+ "decision",
59082
+ "constraint",
59083
+ "incident",
59084
+ "pattern",
59085
+ "fact",
59086
+ "risk",
59087
+ "runbook",
59088
+ "architecture",
59089
+ "ownership"
59090
+ ]
59091
+ },
59092
+ "tags": {
59093
+ "type": "array",
59094
+ "items": {
59095
+ "type": "string"
59096
+ }
59097
+ },
59098
+ "query": {
59099
+ "type": "string"
59100
+ },
59101
+ "semantic": {
59102
+ "type": "boolean"
59103
+ },
59104
+ "since": {
59105
+ "type": "number"
59106
+ },
59107
+ "reviewState": {
59108
+ "type": "array",
59109
+ "items": {
59110
+ "type": "string",
59111
+ "enum": [
59112
+ "fresh",
59113
+ "reviewed",
59114
+ "stale",
59115
+ "contradicted"
59116
+ ]
59117
+ }
59118
+ },
59119
+ "minConfidence": {
59120
+ "type": "number"
59121
+ },
59122
+ "provenanceKinds": {
59123
+ "type": "array",
59124
+ "items": {
59125
+ "type": "string",
59126
+ "enum": [
59127
+ "session",
59128
+ "turn",
59129
+ "task",
59130
+ "event",
59131
+ "file"
59132
+ ]
59133
+ }
59134
+ },
59135
+ "staleOnly": {
59136
+ "type": "boolean"
59137
+ },
59138
+ "limit": {
59139
+ "type": "number"
59140
+ }
59141
+ },
59142
+ "additionalProperties": true
59143
+ },
59144
+ "outputSchema": {
59145
+ "type": "object",
59146
+ "properties": {
59147
+ "results": {
59148
+ "type": "array",
59149
+ "items": {
59150
+ "type": "object",
59151
+ "properties": {
59152
+ "record": {
59153
+ "type": "object",
59154
+ "properties": {
59155
+ "id": {
59156
+ "type": "string"
59157
+ },
59158
+ "scope": {
59159
+ "type": "string",
59160
+ "enum": [
59161
+ "session",
59162
+ "project",
59163
+ "team"
59164
+ ]
59165
+ },
59166
+ "cls": {
59167
+ "type": "string",
59168
+ "enum": [
59169
+ "decision",
59170
+ "constraint",
59171
+ "incident",
59172
+ "pattern",
59173
+ "fact",
59174
+ "risk",
59175
+ "runbook",
59176
+ "architecture",
59177
+ "ownership"
59178
+ ]
59179
+ },
59180
+ "summary": {
59181
+ "type": "string"
59182
+ },
59183
+ "detail": {
59184
+ "type": "string"
59185
+ },
59186
+ "tags": {
59187
+ "type": "array",
59188
+ "items": {
59189
+ "type": "string"
59190
+ }
59191
+ },
59192
+ "provenance": {
59193
+ "type": "array",
59194
+ "items": {
59195
+ "type": "object",
59196
+ "properties": {
59197
+ "kind": {
59198
+ "type": "string",
59199
+ "enum": [
59200
+ "session",
59201
+ "turn",
59202
+ "task",
59203
+ "event",
59204
+ "file"
59205
+ ]
59206
+ },
59207
+ "ref": {
59208
+ "type": "string"
59209
+ },
59210
+ "label": {
59211
+ "type": "string"
59212
+ }
59213
+ },
59214
+ "required": [
59215
+ "kind",
59216
+ "ref"
59217
+ ],
59218
+ "additionalProperties": false
59219
+ }
59220
+ },
59221
+ "reviewState": {
59222
+ "type": "string",
59223
+ "enum": [
59224
+ "fresh",
59225
+ "reviewed",
59226
+ "stale",
59227
+ "contradicted"
59228
+ ]
59229
+ },
59230
+ "confidence": {
59231
+ "type": "number"
59232
+ },
59233
+ "reviewedAt": {
59234
+ "type": "number"
59235
+ },
59236
+ "reviewedBy": {
59237
+ "type": "string"
59238
+ },
59239
+ "staleReason": {
59240
+ "type": "string"
59241
+ },
59242
+ "createdAt": {
59243
+ "type": "number"
59244
+ },
59245
+ "updatedAt": {
59246
+ "type": "number"
59247
+ }
59248
+ },
59249
+ "required": [
59250
+ "id",
59251
+ "scope",
59252
+ "cls",
59253
+ "summary",
59254
+ "tags",
59255
+ "provenance",
59256
+ "reviewState",
59257
+ "confidence",
59258
+ "createdAt",
59259
+ "updatedAt"
59260
+ ],
59261
+ "additionalProperties": true
59262
+ },
59263
+ "distance": {
59264
+ "anyOf": [
59265
+ {
59266
+ "type": "number"
59267
+ },
59268
+ {
59269
+ "type": "null"
59270
+ }
59271
+ ]
59272
+ },
59273
+ "similarity": {
59274
+ "type": "number"
59275
+ },
59276
+ "score": {
59277
+ "type": "number"
59278
+ }
59279
+ },
59280
+ "required": [
59281
+ "record",
59282
+ "similarity",
59283
+ "score"
59284
+ ],
59285
+ "additionalProperties": false
59286
+ }
59287
+ }
59288
+ },
59289
+ "required": [
59290
+ "results"
59291
+ ],
59292
+ "additionalProperties": false
59293
+ },
59294
+ "invokable": true
59295
+ },
59296
+ {
59297
+ "id": "memory.records.update",
59298
+ "title": "Update Memory Record",
59299
+ "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.",
59300
+ "category": "memory",
59301
+ "source": "builtin",
59302
+ "access": "authenticated",
59303
+ "transport": [
59304
+ "http",
59305
+ "ws"
59306
+ ],
59307
+ "scopes": [
59308
+ "write:memory"
59309
+ ],
59310
+ "http": {
59311
+ "method": "POST",
59312
+ "path": "/api/memory/records/{id}/update"
59313
+ },
59314
+ "inputSchema": {
59315
+ "type": "object",
59316
+ "properties": {
59317
+ "id": {
59318
+ "type": "string"
59319
+ },
59320
+ "scope": {
59321
+ "type": "string",
59322
+ "enum": [
59323
+ "session",
59324
+ "project",
59325
+ "team"
59326
+ ]
59327
+ },
59328
+ "summary": {
59329
+ "type": "string"
59330
+ },
59331
+ "detail": {
59332
+ "type": "string"
59333
+ },
59334
+ "tags": {
59335
+ "type": "array",
59336
+ "items": {
59337
+ "type": "string"
59338
+ }
59339
+ }
59340
+ },
59341
+ "required": [
59342
+ "id"
59343
+ ],
59344
+ "additionalProperties": true
59345
+ },
59346
+ "outputSchema": {
59347
+ "type": "object",
59348
+ "properties": {
59349
+ "record": {
59350
+ "type": "object",
59351
+ "properties": {
59352
+ "id": {
59353
+ "type": "string"
59354
+ },
59355
+ "scope": {
59356
+ "type": "string",
59357
+ "enum": [
59358
+ "session",
59359
+ "project",
59360
+ "team"
59361
+ ]
59362
+ },
59363
+ "cls": {
59364
+ "type": "string",
59365
+ "enum": [
59366
+ "decision",
59367
+ "constraint",
59368
+ "incident",
59369
+ "pattern",
59370
+ "fact",
59371
+ "risk",
59372
+ "runbook",
59373
+ "architecture",
59374
+ "ownership"
59375
+ ]
59376
+ },
59377
+ "summary": {
59378
+ "type": "string"
59379
+ },
59380
+ "detail": {
59381
+ "type": "string"
59382
+ },
59383
+ "tags": {
59384
+ "type": "array",
59385
+ "items": {
59386
+ "type": "string"
59387
+ }
59388
+ },
59389
+ "provenance": {
59390
+ "type": "array",
59391
+ "items": {
59392
+ "type": "object",
59393
+ "properties": {
59394
+ "kind": {
59395
+ "type": "string",
59396
+ "enum": [
59397
+ "session",
59398
+ "turn",
59399
+ "task",
59400
+ "event",
59401
+ "file"
59402
+ ]
59403
+ },
59404
+ "ref": {
59405
+ "type": "string"
59406
+ },
59407
+ "label": {
59408
+ "type": "string"
59409
+ }
59410
+ },
59411
+ "required": [
59412
+ "kind",
59413
+ "ref"
59414
+ ],
59415
+ "additionalProperties": false
59416
+ }
59417
+ },
59418
+ "reviewState": {
59419
+ "type": "string",
59420
+ "enum": [
59421
+ "fresh",
59422
+ "reviewed",
59423
+ "stale",
59424
+ "contradicted"
59425
+ ]
59426
+ },
59427
+ "confidence": {
59428
+ "type": "number"
59429
+ },
59430
+ "reviewedAt": {
59431
+ "type": "number"
59432
+ },
59433
+ "reviewedBy": {
59434
+ "type": "string"
59435
+ },
59436
+ "staleReason": {
59437
+ "type": "string"
59438
+ },
59439
+ "createdAt": {
59440
+ "type": "number"
59441
+ },
59442
+ "updatedAt": {
59443
+ "type": "number"
59444
+ }
59445
+ },
59446
+ "required": [
59447
+ "id",
59448
+ "scope",
59449
+ "cls",
59450
+ "summary",
59451
+ "tags",
59452
+ "provenance",
59453
+ "reviewState",
59454
+ "confidence",
59455
+ "createdAt",
59456
+ "updatedAt"
59457
+ ],
59458
+ "additionalProperties": true
59459
+ }
59460
+ },
59461
+ "required": [
59462
+ "record"
59463
+ ],
59464
+ "additionalProperties": false
59465
+ },
59466
+ "invokable": true
59467
+ },
58164
59468
  {
58165
59469
  "id": "memory.records.update-review",
58166
59470
  "title": "Update Memory Record Review",
@@ -80037,10 +81341,10 @@ export const OPERATOR_CONTRACT = {
80037
81341
  }
80038
81342
  ],
80039
81343
  "schemaCoverage": {
80040
- "methods": 320,
80041
- "typedInputs": 320,
81344
+ "methods": 327,
81345
+ "typedInputs": 327,
80042
81346
  "genericInputs": 0,
80043
- "typedOutputs": 320,
81347
+ "typedOutputs": 327,
80044
81348
  "genericOutputs": 0
80045
81349
  },
80046
81350
  "eventCoverage": {
@@ -80049,8 +81353,8 @@ export const OPERATOR_CONTRACT = {
80049
81353
  "withWireEvents": 31
80050
81354
  },
80051
81355
  "validationCoverage": {
80052
- "methods": 320,
80053
- "validated": 318,
81356
+ "methods": 327,
81357
+ "validated": 325,
80054
81358
  "skippedGeneric": 0,
80055
81359
  "skippedUntyped": 2
80056
81360
  }