@x12i/memorix-service 3.0.5 → 3.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 (132) hide show
  1. package/README.md +8 -1
  2. package/dist/ai-services/client.d.ts +31 -0
  3. package/dist/ai-services/client.d.ts.map +1 -0
  4. package/dist/ai-services/client.js +104 -0
  5. package/dist/ai-services/client.js.map +1 -0
  6. package/dist/ai-services/config.d.ts +17 -0
  7. package/dist/ai-services/config.d.ts.map +1 -0
  8. package/dist/ai-services/config.js +44 -0
  9. package/dist/ai-services/config.js.map +1 -0
  10. package/dist/ai-services/normalize-output.d.ts +23 -0
  11. package/dist/ai-services/normalize-output.d.ts.map +1 -0
  12. package/dist/ai-services/normalize-output.js +148 -0
  13. package/dist/ai-services/normalize-output.js.map +1 -0
  14. package/dist/ai-services/skill-execution.d.ts +23 -0
  15. package/dist/ai-services/skill-execution.d.ts.map +1 -0
  16. package/dist/ai-services/skill-execution.js +54 -0
  17. package/dist/ai-services/skill-execution.js.map +1 -0
  18. package/dist/ai-services/types.d.ts +62 -0
  19. package/dist/ai-services/types.d.ts.map +1 -0
  20. package/dist/ai-services/types.js +3 -0
  21. package/dist/ai-services/types.js.map +1 -0
  22. package/dist/app.d.ts.map +1 -1
  23. package/dist/app.js +37 -6
  24. package/dist/app.js.map +1 -1
  25. package/dist/assist/ask.d.ts +35 -0
  26. package/dist/assist/ask.d.ts.map +1 -0
  27. package/dist/assist/ask.js +346 -0
  28. package/dist/assist/ask.js.map +1 -0
  29. package/dist/assist/facts.d.ts +5 -0
  30. package/dist/assist/facts.d.ts.map +1 -0
  31. package/dist/assist/facts.js +237 -0
  32. package/dist/assist/facts.js.map +1 -0
  33. package/dist/assist/merge-ask-proposal.d.ts +9 -0
  34. package/dist/assist/merge-ask-proposal.d.ts.map +1 -0
  35. package/dist/assist/merge-ask-proposal.js +57 -0
  36. package/dist/assist/merge-ask-proposal.js.map +1 -0
  37. package/dist/assist/types.d.ts +60 -0
  38. package/dist/assist/types.d.ts.map +1 -0
  39. package/dist/assist/types.js +57 -0
  40. package/dist/assist/types.js.map +1 -0
  41. package/dist/assist/validate.d.ts +4 -0
  42. package/dist/assist/validate.d.ts.map +1 -0
  43. package/dist/assist/validate.js +319 -0
  44. package/dist/assist/validate.js.map +1 -0
  45. package/dist/cli.js +29 -6
  46. package/dist/cli.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/isolation.d.ts +1 -1
  52. package/dist/isolation.d.ts.map +1 -1
  53. package/dist/journey/collect.js +2 -2
  54. package/dist/journey/collect.js.map +1 -1
  55. package/dist/journey/coverage.js +3 -3
  56. package/dist/journey/coverage.js.map +1 -1
  57. package/dist/known-packs.d.ts +1 -1
  58. package/dist/known-packs.d.ts.map +1 -1
  59. package/dist/known-packs.js +1 -1
  60. package/dist/known-packs.js.map +1 -1
  61. package/dist/live.d.ts +2 -1
  62. package/dist/live.d.ts.map +1 -1
  63. package/dist/live.js +239 -2
  64. package/dist/live.js.map +1 -1
  65. package/dist/magit/magit-pack-service.d.ts +167 -0
  66. package/dist/magit/magit-pack-service.d.ts.map +1 -0
  67. package/dist/magit/magit-pack-service.js +699 -0
  68. package/dist/magit/magit-pack-service.js.map +1 -0
  69. package/dist/magit/pack-to-patchset.d.ts +45 -0
  70. package/dist/magit/pack-to-patchset.d.ts.map +1 -0
  71. package/dist/magit/pack-to-patchset.js +196 -0
  72. package/dist/magit/pack-to-patchset.js.map +1 -0
  73. package/dist/magit/package-catalog-bridge.d.ts +58 -0
  74. package/dist/magit/package-catalog-bridge.d.ts.map +1 -0
  75. package/dist/magit/package-catalog-bridge.js +220 -0
  76. package/dist/magit/package-catalog-bridge.js.map +1 -0
  77. package/dist/magit/proposal-to-pack.d.ts +22 -0
  78. package/dist/magit/proposal-to-pack.d.ts.map +1 -0
  79. package/dist/magit/proposal-to-pack.js +68 -0
  80. package/dist/magit/proposal-to-pack.js.map +1 -0
  81. package/dist/mongo-metadata-store.d.ts.map +1 -1
  82. package/dist/mongo-metadata-store.js +11 -3
  83. package/dist/mongo-metadata-store.js.map +1 -1
  84. package/dist/openapi/openapi.json +665 -1
  85. package/dist/org-sources.d.ts +14 -0
  86. package/dist/org-sources.d.ts.map +1 -0
  87. package/dist/org-sources.js +31 -0
  88. package/dist/org-sources.js.map +1 -0
  89. package/dist/pipeline-compile.d.ts +51 -0
  90. package/dist/pipeline-compile.d.ts.map +1 -0
  91. package/dist/pipeline-compile.js +203 -0
  92. package/dist/pipeline-compile.js.map +1 -0
  93. package/dist/platform.d.ts +22 -1
  94. package/dist/platform.d.ts.map +1 -1
  95. package/dist/platform.js +150 -21
  96. package/dist/platform.js.map +1 -1
  97. package/dist/routes/ai-services.d.ts +4 -0
  98. package/dist/routes/ai-services.d.ts.map +1 -0
  99. package/dist/routes/ai-services.js +239 -0
  100. package/dist/routes/ai-services.js.map +1 -0
  101. package/dist/routes/assist.d.ts +4 -0
  102. package/dist/routes/assist.d.ts.map +1 -0
  103. package/dist/routes/assist.js +75 -0
  104. package/dist/routes/assist.js.map +1 -0
  105. package/dist/routes/connector-invocations.js +2 -2
  106. package/dist/routes/data-journey.js +11 -11
  107. package/dist/routes/data-journey.js.map +1 -1
  108. package/dist/routes/intelligence.d.ts.map +1 -1
  109. package/dist/routes/intelligence.js +19 -1
  110. package/dist/routes/intelligence.js.map +1 -1
  111. package/dist/routes/memory.d.ts.map +1 -1
  112. package/dist/routes/memory.js +343 -41
  113. package/dist/routes/memory.js.map +1 -1
  114. package/dist/routes/metadata.d.ts.map +1 -1
  115. package/dist/routes/metadata.js +800 -8
  116. package/dist/routes/metadata.js.map +1 -1
  117. package/dist/routes/pipelines.d.ts.map +1 -1
  118. package/dist/routes/pipelines.js +28 -3
  119. package/dist/routes/pipelines.js.map +1 -1
  120. package/dist/routes/relationships.d.ts.map +1 -1
  121. package/dist/routes/relationships.js +29 -0
  122. package/dist/routes/relationships.js.map +1 -1
  123. package/dist/routes/simulation.d.ts +7 -0
  124. package/dist/routes/simulation.d.ts.map +1 -0
  125. package/dist/routes/simulation.js +22 -0
  126. package/dist/routes/simulation.js.map +1 -0
  127. package/dist/simulation.d.ts +26 -0
  128. package/dist/simulation.d.ts.map +1 -0
  129. package/dist/simulation.js +46 -0
  130. package/dist/simulation.js.map +1 -0
  131. package/openapi/openapi.json +665 -1
  132. package/package.json +19 -10
@@ -433,6 +433,24 @@
433
433
  "type": "object",
434
434
  "additionalProperties": true,
435
435
  "nullable": true
436
+ },
437
+ "lineage": {
438
+ "type": "object",
439
+ "nullable": true,
440
+ "description": "Latest install ledger entry for agentId (magitCommit when METADATA_MAGIT=1)",
441
+ "properties": {
442
+ "checksum": {
443
+ "type": "string"
444
+ },
445
+ "installedAt": {
446
+ "type": "string",
447
+ "format": "date-time"
448
+ },
449
+ "magitCommit": {
450
+ "type": "string",
451
+ "nullable": true
452
+ }
453
+ }
436
454
  }
437
455
  }
438
456
  }
@@ -814,6 +832,83 @@
814
832
  }
815
833
  }
816
834
  },
835
+ "/api/metadata/topology": {
836
+ "get": {
837
+ "operationId": "metadataTopology",
838
+ "summary": "Projected concrete metadata topology (OT↔OT relationships, feeds, pipeline wiring)",
839
+ "tags": [
840
+ "Metadata"
841
+ ],
842
+ "parameters": [
843
+ {
844
+ "$ref": "#/components/parameters/XMemorixOrgId"
845
+ },
846
+ {
847
+ "$ref": "#/components/parameters/XMemorixAgentIds"
848
+ }
849
+ ],
850
+ "responses": {
851
+ "200": {
852
+ "description": "Topology nodes and edges",
853
+ "content": {
854
+ "application/json": {
855
+ "schema": {
856
+ "type": "object",
857
+ "required": [
858
+ "scope",
859
+ "ok",
860
+ "nodes",
861
+ "edges"
862
+ ],
863
+ "properties": {
864
+ "scope": {
865
+ "$ref": "#/components/schemas/MemorixScope"
866
+ },
867
+ "ok": {
868
+ "type": "boolean"
869
+ },
870
+ "nodes": {
871
+ "type": "array",
872
+ "items": {
873
+ "type": "object",
874
+ "additionalProperties": true
875
+ }
876
+ },
877
+ "edges": {
878
+ "type": "array",
879
+ "items": {
880
+ "type": "object",
881
+ "additionalProperties": true
882
+ }
883
+ },
884
+ "issues": {
885
+ "type": "array",
886
+ "items": {
887
+ "type": "object",
888
+ "additionalProperties": true
889
+ }
890
+ },
891
+ "note": {
892
+ "type": "string"
893
+ }
894
+ }
895
+ }
896
+ }
897
+ }
898
+ },
899
+ "400": {
900
+ "description": "Bad request / validation",
901
+ "content": {
902
+ "application/json": {
903
+ "schema": {
904
+ "$ref": "#/components/schemas/ErrorEnvelope"
905
+ }
906
+ }
907
+ }
908
+ }
909
+ }
910
+ }
911
+ },
817
912
  "/api/metadata/validate": {
818
913
  "post": {
819
914
  "operationId": "metadataValidate",
@@ -1041,6 +1136,18 @@
1041
1136
  },
1042
1137
  "reinstall": {
1043
1138
  "type": "boolean"
1139
+ },
1140
+ "versionMessage": {
1141
+ "type": "string",
1142
+ "description": "Optional Magit save-version message when Magit is enabled (default on with durable Mongo; METADATA_MAGIT=0 disables); defaults to \"Install {agentId}\""
1143
+ },
1144
+ "commit": {
1145
+ "type": "string",
1146
+ "description": "Install pack reconstructed from this Magit commit (requires Magit)"
1147
+ },
1148
+ "proposalId": {
1149
+ "type": "string",
1150
+ "description": "When set with commit, ledger source is proposal-install and message includes the proposal id"
1044
1151
  }
1045
1152
  }
1046
1153
  },
@@ -1053,10 +1160,178 @@
1053
1160
  }
1054
1161
  }
1055
1162
  },
1163
+ "/api/metadata/proposals/{id}/stage": {
1164
+ "post": {
1165
+ "operationId": "metadataStageProposal",
1166
+ "summary": "Stage an intelligence proposal as a pack version (not live)",
1167
+ "description": "Merges the proposal draft into the agent pack, saves a Magit version (message proposal:<id>), and validates. Never installs. Requires Magit.",
1168
+ "tags": ["Metadata"],
1169
+ "parameters": [
1170
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1171
+ { "$ref": "#/components/parameters/XMemorixAgentIds" },
1172
+ {
1173
+ "name": "id",
1174
+ "in": "path",
1175
+ "required": true,
1176
+ "schema": { "type": "string" },
1177
+ "description": "Proposal id"
1178
+ }
1179
+ ],
1180
+ "requestBody": {
1181
+ "required": true,
1182
+ "content": {
1183
+ "application/json": {
1184
+ "schema": {
1185
+ "type": "object",
1186
+ "properties": {
1187
+ "agentId": { "type": "string" },
1188
+ "proposal": {
1189
+ "type": "object",
1190
+ "description": "Optional inline proposal body when not loading from the intelligence store",
1191
+ "properties": {
1192
+ "proposalId": { "type": "string" },
1193
+ "metadataKind": { "type": "string" },
1194
+ "metadataId": { "type": "string" },
1195
+ "draft": {},
1196
+ "scope": {
1197
+ "type": "object",
1198
+ "properties": {
1199
+ "agentIds": {
1200
+ "type": "array",
1201
+ "items": { "type": "string" }
1202
+ }
1203
+ }
1204
+ }
1205
+ }
1206
+ }
1207
+ }
1208
+ }
1209
+ }
1210
+ }
1211
+ },
1212
+ "responses": {
1213
+ "200": {
1214
+ "description": "Staged version (installed: false)",
1215
+ "content": {
1216
+ "application/json": {
1217
+ "schema": {
1218
+ "type": "object",
1219
+ "required": ["scope", "commit", "installed"],
1220
+ "properties": {
1221
+ "scope": { "$ref": "#/components/schemas/MemorixScope" },
1222
+ "proposalId": { "type": "string" },
1223
+ "agentId": { "type": "string" },
1224
+ "commit": { "type": "string" },
1225
+ "checksum": { "type": "string" },
1226
+ "pack": { "$ref": "#/components/schemas/MetadataPack" },
1227
+ "validation": {},
1228
+ "installed": { "type": "boolean", "enum": [false] },
1229
+ "note": { "type": "string" }
1230
+ }
1231
+ }
1232
+ }
1233
+ }
1234
+ },
1235
+ "400": {
1236
+ "description": "Bad request",
1237
+ "content": {
1238
+ "application/json": {
1239
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
1240
+ }
1241
+ }
1242
+ },
1243
+ "503": {
1244
+ "description": "Magit unavailable",
1245
+ "content": {
1246
+ "application/json": {
1247
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
1248
+ }
1249
+ }
1250
+ }
1251
+ }
1252
+ }
1253
+ },
1254
+ "/api/metadata/install/bundle": {
1255
+ "post": {
1256
+ "operationId": "metadataInstallBundle",
1257
+ "summary": "Atomic multi-agent install from one Magit commit",
1258
+ "description": "Installs the same commit for each agentId. On any failure, restores prior packs for agents already applied. Requires Magit.",
1259
+ "tags": ["Metadata"],
1260
+ "parameters": [
1261
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1262
+ { "$ref": "#/components/parameters/XMemorixAgentIds" }
1263
+ ],
1264
+ "requestBody": {
1265
+ "required": true,
1266
+ "content": {
1267
+ "application/json": {
1268
+ "schema": {
1269
+ "type": "object",
1270
+ "required": ["confirm", "commit"],
1271
+ "properties": {
1272
+ "confirm": { "type": "boolean", "enum": [true] },
1273
+ "commit": { "type": "string" },
1274
+ "agentIds": {
1275
+ "type": "array",
1276
+ "items": { "type": "string" },
1277
+ "minItems": 1
1278
+ },
1279
+ "message": { "type": "string" },
1280
+ "release": {
1281
+ "type": "string",
1282
+ "description": "Optional named release stamp (magitRelease)"
1283
+ }
1284
+ }
1285
+ }
1286
+ }
1287
+ }
1288
+ },
1289
+ "responses": {
1290
+ "200": {
1291
+ "description": "Bundle install result",
1292
+ "content": {
1293
+ "application/json": {
1294
+ "schema": {
1295
+ "type": "object",
1296
+ "properties": {
1297
+ "scope": { "$ref": "#/components/schemas/MemorixScope" },
1298
+ "installed": { "type": "boolean" },
1299
+ "rolledBack": { "type": "boolean" },
1300
+ "commit": { "type": "string" },
1301
+ "ledgerEntries": { "type": "array", "items": {} },
1302
+ "restoredAgentIds": {
1303
+ "type": "array",
1304
+ "items": { "type": "string" }
1305
+ }
1306
+ }
1307
+ }
1308
+ }
1309
+ }
1310
+ },
1311
+ "400": {
1312
+ "description": "Validation / rolled back failure",
1313
+ "content": {
1314
+ "application/json": {
1315
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
1316
+ }
1317
+ }
1318
+ },
1319
+ "503": {
1320
+ "description": "Magit unavailable",
1321
+ "content": {
1322
+ "application/json": {
1323
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
1324
+ }
1325
+ }
1326
+ }
1327
+ }
1328
+ }
1329
+ },
1056
1330
  "/api/metadata/publish": {
1057
1331
  "post": {
1058
1332
  "operationId": "metadataPublish",
1059
- "summary": "Explicit publish (confirm required)",
1333
+ "summary": "Publish a named pack release (Magit apply to live)",
1334
+ "description": "Requires Magit (default on with durable Mongo; METADATA_MAGIT=0 disables). Applies commit to live metadata for one or more agents atomically and records magitRelease on the ledger. On failure, restores prior packs for already-applied agents.",
1060
1335
  "tags": [
1061
1336
  "Metadata"
1062
1337
  ],
@@ -1150,6 +1425,27 @@
1150
1425
  "enum": [
1151
1426
  true
1152
1427
  ]
1428
+ },
1429
+ "release": {
1430
+ "type": "string"
1431
+ },
1432
+ "commit": {
1433
+ "type": "string"
1434
+ },
1435
+ "agentIds": {
1436
+ "type": "array",
1437
+ "items": {
1438
+ "type": "string"
1439
+ }
1440
+ },
1441
+ "agentId": {
1442
+ "type": "string"
1443
+ },
1444
+ "message": {
1445
+ "type": "string"
1446
+ },
1447
+ "planHash": {
1448
+ "type": "string"
1153
1449
  }
1154
1450
  }
1155
1451
  }
@@ -1158,6 +1454,323 @@
1158
1454
  }
1159
1455
  }
1160
1456
  },
1457
+ "/api/metadata/publish/plan": {
1458
+ "post": {
1459
+ "operationId": "metadataPublishPlan",
1460
+ "summary": "Read-only publish plan for a named release",
1461
+ "tags": ["Metadata"],
1462
+ "parameters": [
1463
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1464
+ { "$ref": "#/components/parameters/XMemorixAgentIds" }
1465
+ ],
1466
+ "requestBody": {
1467
+ "required": true,
1468
+ "content": {
1469
+ "application/json": {
1470
+ "schema": {
1471
+ "type": "object",
1472
+ "required": ["release", "commit"],
1473
+ "properties": {
1474
+ "release": { "type": "string" },
1475
+ "commit": { "type": "string" },
1476
+ "agentIds": { "type": "array", "items": { "type": "string" } },
1477
+ "agentId": { "type": "string" }
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ },
1483
+ "responses": {
1484
+ "200": { "description": "Publish plan" },
1485
+ "503": { "description": "Magit unavailable" }
1486
+ }
1487
+ }
1488
+ },
1489
+ "/api/metadata/rollback": {
1490
+ "post": {
1491
+ "operationId": "metadataRollback",
1492
+ "summary": "Restore agent pack to a prior Magit commit",
1493
+ "tags": ["Metadata"],
1494
+ "parameters": [
1495
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1496
+ { "$ref": "#/components/parameters/XMemorixAgentIds" }
1497
+ ],
1498
+ "requestBody": {
1499
+ "required": true,
1500
+ "content": {
1501
+ "application/json": {
1502
+ "schema": {
1503
+ "type": "object",
1504
+ "required": ["confirm", "commit"],
1505
+ "properties": {
1506
+ "confirm": { "type": "boolean", "enum": [true] },
1507
+ "commit": { "type": "string" },
1508
+ "agentId": { "type": "string" },
1509
+ "message": { "type": "string" }
1510
+ }
1511
+ }
1512
+ }
1513
+ }
1514
+ },
1515
+ "responses": {
1516
+ "200": { "description": "Restore result" },
1517
+ "400": { "description": "Validation / confirmation required" },
1518
+ "503": { "description": "Magit unavailable" }
1519
+ }
1520
+ }
1521
+ },
1522
+ "/api/metadata/diff": {
1523
+ "post": {
1524
+ "operationId": "metadataDiff",
1525
+ "summary": "Diff pack versions (kind/id rows)",
1526
+ "tags": ["Metadata"],
1527
+ "parameters": [
1528
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1529
+ { "$ref": "#/components/parameters/XMemorixAgentIds" }
1530
+ ],
1531
+ "requestBody": {
1532
+ "required": true,
1533
+ "content": {
1534
+ "application/json": {
1535
+ "schema": {
1536
+ "type": "object",
1537
+ "required": ["from", "to"],
1538
+ "properties": {
1539
+ "agentId": { "type": "string" },
1540
+ "from": { "type": "string", "description": "commit | live | HEAD" },
1541
+ "to": { "type": "string", "description": "commit | live | HEAD" }
1542
+ }
1543
+ }
1544
+ }
1545
+ }
1546
+ },
1547
+ "responses": {
1548
+ "200": { "description": "Diff rows" },
1549
+ "503": { "description": "Magit unavailable" }
1550
+ }
1551
+ }
1552
+ },
1553
+ "/api/metadata/versions/{commit}": {
1554
+ "get": {
1555
+ "operationId": "metadataPackAtCommit",
1556
+ "summary": "Pack reconstructed at a Magit commit",
1557
+ "tags": ["Metadata"],
1558
+ "parameters": [
1559
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
1560
+ { "$ref": "#/components/parameters/XMemorixAgentIds" },
1561
+ {
1562
+ "name": "commit",
1563
+ "in": "path",
1564
+ "required": true,
1565
+ "schema": { "type": "string" }
1566
+ },
1567
+ {
1568
+ "name": "agentId",
1569
+ "in": "query",
1570
+ "schema": { "type": "string" }
1571
+ }
1572
+ ],
1573
+ "responses": {
1574
+ "200": { "description": "Pack at commit" },
1575
+ "503": { "description": "Magit unavailable" }
1576
+ }
1577
+ }
1578
+ },
1579
+ "/api/metadata/versions": {
1580
+ "post": {
1581
+ "operationId": "metadataSaveVersion",
1582
+ "summary": "Save a pack version (not live; Magit-backed when METADATA_MAGIT=1)",
1583
+ "description": "Records a pack snapshot for history. Does not install. Requires METADATA_MAGIT=1 and a durable Mongo connection.",
1584
+ "tags": [
1585
+ "Metadata"
1586
+ ],
1587
+ "parameters": [
1588
+ {
1589
+ "$ref": "#/components/parameters/XMemorixOrgId"
1590
+ },
1591
+ {
1592
+ "$ref": "#/components/parameters/XMemorixAgentIds"
1593
+ }
1594
+ ],
1595
+ "requestBody": {
1596
+ "required": true,
1597
+ "content": {
1598
+ "application/json": {
1599
+ "schema": {
1600
+ "type": "object",
1601
+ "required": [
1602
+ "message"
1603
+ ],
1604
+ "properties": {
1605
+ "message": {
1606
+ "type": "string",
1607
+ "minLength": 1
1608
+ },
1609
+ "pack": {
1610
+ "$ref": "#/components/schemas/MetadataPack"
1611
+ },
1612
+ "packId": {
1613
+ "type": "string"
1614
+ }
1615
+ }
1616
+ },
1617
+ "example": {
1618
+ "packId": "opx",
1619
+ "message": "catalog draft before install"
1620
+ }
1621
+ }
1622
+ }
1623
+ },
1624
+ "responses": {
1625
+ "200": {
1626
+ "description": "Version saved (not installed)",
1627
+ "content": {
1628
+ "application/json": {
1629
+ "schema": {
1630
+ "type": "object",
1631
+ "required": [
1632
+ "scope",
1633
+ "saved",
1634
+ "commit",
1635
+ "checksum"
1636
+ ],
1637
+ "properties": {
1638
+ "scope": {
1639
+ "$ref": "#/components/schemas/MemorixScope"
1640
+ },
1641
+ "saved": {
1642
+ "type": "boolean"
1643
+ },
1644
+ "commit": {
1645
+ "type": "string"
1646
+ },
1647
+ "checksum": {
1648
+ "type": "string"
1649
+ },
1650
+ "reused": {
1651
+ "type": "boolean"
1652
+ },
1653
+ "agentId": {
1654
+ "type": "string"
1655
+ },
1656
+ "note": {
1657
+ "type": "string"
1658
+ },
1659
+ "result": {}
1660
+ }
1661
+ }
1662
+ }
1663
+ }
1664
+ },
1665
+ "400": {
1666
+ "description": "Bad request / validation",
1667
+ "content": {
1668
+ "application/json": {
1669
+ "schema": {
1670
+ "$ref": "#/components/schemas/ErrorEnvelope"
1671
+ }
1672
+ }
1673
+ }
1674
+ },
1675
+ "503": {
1676
+ "description": "Magit unavailable (flag off or no isolation)",
1677
+ "content": {
1678
+ "application/json": {
1679
+ "schema": {
1680
+ "$ref": "#/components/schemas/ErrorEnvelope"
1681
+ }
1682
+ }
1683
+ }
1684
+ }
1685
+ }
1686
+ },
1687
+ "get": {
1688
+ "operationId": "metadataListVersions",
1689
+ "summary": "List saved pack versions for an agent",
1690
+ "description": "Requires METADATA_MAGIT=1 and a durable Mongo connection.",
1691
+ "tags": [
1692
+ "Metadata"
1693
+ ],
1694
+ "parameters": [
1695
+ {
1696
+ "$ref": "#/components/parameters/XMemorixOrgId"
1697
+ },
1698
+ {
1699
+ "$ref": "#/components/parameters/XMemorixAgentIds"
1700
+ },
1701
+ {
1702
+ "name": "agentId",
1703
+ "in": "query",
1704
+ "required": false,
1705
+ "schema": {
1706
+ "type": "string"
1707
+ },
1708
+ "description": "Defaults to first scoped agent id"
1709
+ },
1710
+ {
1711
+ "name": "maxCount",
1712
+ "in": "query",
1713
+ "required": false,
1714
+ "schema": {
1715
+ "type": "integer",
1716
+ "minimum": 1
1717
+ }
1718
+ }
1719
+ ],
1720
+ "responses": {
1721
+ "200": {
1722
+ "description": "Version history",
1723
+ "content": {
1724
+ "application/json": {
1725
+ "schema": {
1726
+ "type": "object",
1727
+ "required": [
1728
+ "scope",
1729
+ "agentId",
1730
+ "versions"
1731
+ ],
1732
+ "properties": {
1733
+ "scope": {
1734
+ "$ref": "#/components/schemas/MemorixScope"
1735
+ },
1736
+ "agentId": {
1737
+ "type": "string"
1738
+ },
1739
+ "versions": {
1740
+ "type": "array",
1741
+ "items": {
1742
+ "type": "object",
1743
+ "additionalProperties": true
1744
+ }
1745
+ }
1746
+ }
1747
+ }
1748
+ }
1749
+ }
1750
+ },
1751
+ "400": {
1752
+ "description": "Bad request",
1753
+ "content": {
1754
+ "application/json": {
1755
+ "schema": {
1756
+ "$ref": "#/components/schemas/ErrorEnvelope"
1757
+ }
1758
+ }
1759
+ }
1760
+ },
1761
+ "503": {
1762
+ "description": "Magit unavailable",
1763
+ "content": {
1764
+ "application/json": {
1765
+ "schema": {
1766
+ "$ref": "#/components/schemas/ErrorEnvelope"
1767
+ }
1768
+ }
1769
+ }
1770
+ }
1771
+ }
1772
+ }
1773
+ },
1161
1774
  "/api/metadata/definition": {
1162
1775
  "get": {
1163
1776
  "operationId": "metadataGetDefinition",
@@ -5123,6 +5736,57 @@
5123
5736
  }
5124
5737
  }
5125
5738
  },
5739
+ "/api/intelligence/proposals/{id}": {
5740
+ "get": {
5741
+ "operationId": "intelligenceGetProposal",
5742
+ "summary": "Get one intelligence proposal by id",
5743
+ "description": "Returns the full proposal body from the durable artifact store. Stage via POST /api/metadata/proposals/{id}/stage — never auto-installs.",
5744
+ "tags": ["Intelligence"],
5745
+ "parameters": [
5746
+ { "$ref": "#/components/parameters/XMemorixOrgId" },
5747
+ { "$ref": "#/components/parameters/XMemorixAgentIds" },
5748
+ {
5749
+ "name": "id",
5750
+ "in": "path",
5751
+ "required": true,
5752
+ "schema": { "type": "string" }
5753
+ }
5754
+ ],
5755
+ "responses": {
5756
+ "200": {
5757
+ "description": "Proposal body",
5758
+ "content": {
5759
+ "application/json": {
5760
+ "schema": {
5761
+ "type": "object",
5762
+ "properties": {
5763
+ "scope": { "$ref": "#/components/schemas/MemorixScope" },
5764
+ "proposal": {},
5765
+ "note": { "type": "string" }
5766
+ }
5767
+ }
5768
+ }
5769
+ }
5770
+ },
5771
+ "404": {
5772
+ "description": "Not found",
5773
+ "content": {
5774
+ "application/json": {
5775
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
5776
+ }
5777
+ }
5778
+ },
5779
+ "503": {
5780
+ "description": "Durable store required",
5781
+ "content": {
5782
+ "application/json": {
5783
+ "schema": { "$ref": "#/components/schemas/ErrorEnvelope" }
5784
+ }
5785
+ }
5786
+ }
5787
+ }
5788
+ }
5789
+ },
5126
5790
  "/api/intelligence/compare": {
5127
5791
  "post": {
5128
5792
  "operationId": "intelligenceCompare",