@smartmemory/compose 0.2.53-beta → 0.2.55-beta

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 (77) hide show
  1. package/README.md +28 -0
  2. package/bin/compose.js +43 -0
  3. package/dist/assets/{App-Bu9KMtTa.js → App-gyObi7Fh.js} +231 -226
  4. package/dist/assets/{abnfDiagram-VRR7QNED-6zp3w9rx.js → abnfDiagram-VRR7QNED-DJ5dPOe-.js} +1 -1
  5. package/dist/assets/{arc-CnLxxuah.js → arc-CEbBvAxi.js} +1 -1
  6. package/dist/assets/{architectureDiagram-ZJ3FMSHR-COM46S9k.js → architectureDiagram-ZJ3FMSHR-D7Dutd2o.js} +1 -1
  7. package/dist/assets/{blockDiagram-677ZJIJ3-wKzgOwF8.js → blockDiagram-677ZJIJ3-B-FqnKY3.js} +1 -1
  8. package/dist/assets/{c4Diagram-LMCZKHZV-DIXC_mR6.js → c4Diagram-LMCZKHZV-DKyTJh_m.js} +1 -1
  9. package/dist/assets/channel-CmuM_CaB.js +1 -0
  10. package/dist/assets/{chunk-2Q5K7J3B-BqLqZX6m.js → chunk-2Q5K7J3B-oUMIjqtr.js} +1 -1
  11. package/dist/assets/{chunk-32BRIVSS-CarSmVlX.js → chunk-32BRIVSS-BX5Uyghd.js} +1 -1
  12. package/dist/assets/{chunk-5VM5RSS4-D-f_Jn3G.js → chunk-5VM5RSS4-DZGXdHnG.js} +1 -1
  13. package/dist/assets/{chunk-EX3LRPZG-DT42xo8E.js → chunk-EX3LRPZG-iz_V2kb-.js} +1 -1
  14. package/dist/assets/{chunk-JWPE2WC7-CwY1aZc4.js → chunk-JWPE2WC7-cneY4s8q.js} +1 -1
  15. package/dist/assets/{chunk-MOJQB5TN-DBbZU_KX.js → chunk-MOJQB5TN-NGLTNiNf.js} +1 -1
  16. package/dist/assets/{chunk-RYQCIY6F-DqxtcLJ3.js → chunk-RYQCIY6F-BjW2x61e.js} +1 -1
  17. package/dist/assets/{chunk-V7JOEXUC-Cy4Ixww6.js → chunk-V7JOEXUC-CU7ID8uE.js} +1 -1
  18. package/dist/assets/{chunk-VR4S4FIN-CFexfU_a.js → chunk-VR4S4FIN-CxmSp2Q2.js} +1 -1
  19. package/dist/assets/{chunk-XXDRQBXY-uE-zN_vc.js → chunk-XXDRQBXY-DHczIQQU.js} +1 -1
  20. package/dist/assets/classDiagram-OUVF2IWQ-D0HUdgLP.js +1 -0
  21. package/dist/assets/classDiagram-v2-EOCWNBFH-D0HUdgLP.js +1 -0
  22. package/dist/assets/{cose-bilkent-JH36ORCC-DIjpekos.js → cose-bilkent-JH36ORCC-DV1msdt2.js} +1 -1
  23. package/dist/assets/{cynefin-VYW2F7L2-Ba2gbQow.js → cynefin-VYW2F7L2-B-thkCgc.js} +1 -1
  24. package/dist/assets/{cynefinDiagram-TSTJHNR4-njGzb7Tg.js → cynefinDiagram-TSTJHNR4-B9sLmzW7.js} +1 -1
  25. package/dist/assets/{dagre-VKFMJZFB-DuyZREZ3.js → dagre-VKFMJZFB-CzVd8ZeS.js} +1 -1
  26. package/dist/assets/{diagram-FQU43EPY-Npq-5o3a.js → diagram-FQU43EPY-C2kUlpSd.js} +1 -1
  27. package/dist/assets/{diagram-G47NLZAW-fm4k3axC.js → diagram-G47NLZAW-Bpk-Et_a.js} +1 -1
  28. package/dist/assets/{diagram-NH7WQ7WH-B8EFGrTG.js → diagram-NH7WQ7WH-DOICKw5r.js} +1 -1
  29. package/dist/assets/{diagram-OA4YK3LP-BC7UHx9Q.js → diagram-OA4YK3LP-CUV9PnRC.js} +1 -1
  30. package/dist/assets/{diagram-WEI45ONY-BqjHLcCX.js → diagram-WEI45ONY-BmhIXYmr.js} +1 -1
  31. package/dist/assets/{ebnfDiagram-CCIWWBDH-D5zXd4Qg.js → ebnfDiagram-CCIWWBDH-BO_0Mcjb.js} +1 -1
  32. package/dist/assets/{erDiagram-Q63AITRT-DC2FMcra.js → erDiagram-Q63AITRT-Bd5yIkwb.js} +1 -1
  33. package/dist/assets/{flowDiagram-23GEKE2U-D7Dx7JU4.js → flowDiagram-23GEKE2U-BC1lVLbe.js} +1 -1
  34. package/dist/assets/{ganttDiagram-NO4QXBWP-8sQH2y5K.js → ganttDiagram-NO4QXBWP-CbHS2Md0.js} +1 -1
  35. package/dist/assets/{gitGraphDiagram-IHSO6WYX-Ci_rhxur.js → gitGraphDiagram-IHSO6WYX-DZtA0qeo.js} +1 -1
  36. package/dist/assets/index-C00QpUdP.js +119 -0
  37. package/dist/assets/index-LIwREYgH.css +1 -0
  38. package/dist/assets/{infoDiagram-FWYZ7A6U-B9FGQ0Cb.js → infoDiagram-FWYZ7A6U-Caji6WpL.js} +1 -1
  39. package/dist/assets/{ishikawaDiagram-FXEZZL3T-BEKLyH6A.js → ishikawaDiagram-FXEZZL3T-CNhNIQOK.js} +1 -1
  40. package/dist/assets/{journeyDiagram-5HDEW3XC-BM-IDVRo.js → journeyDiagram-5HDEW3XC-Dnso1Q2f.js} +1 -1
  41. package/dist/assets/{kanban-definition-HUTT4EX6-Beb2k3pt.js → kanban-definition-HUTT4EX6-CnpPLKHm.js} +1 -1
  42. package/dist/assets/{linear-Dwg7dTpz.js → linear-COgkPG4Y.js} +1 -1
  43. package/dist/assets/{mindmap-definition-LN4V7U3C-CeaynfcE.js → mindmap-definition-LN4V7U3C-CBH5P268.js} +1 -1
  44. package/dist/assets/{pegDiagram-2B236MQR-7SVdAVqj.js → pegDiagram-2B236MQR-C4FswqnY.js} +1 -1
  45. package/dist/assets/{pieDiagram-ENE6RG2P-CzqQ4TaE.js → pieDiagram-ENE6RG2P-DU_WHHdv.js} +1 -1
  46. package/dist/assets/{quadrantDiagram-ABIIQ3AL-B9B6W80N.js → quadrantDiagram-ABIIQ3AL-CDzGdzG9.js} +1 -1
  47. package/dist/assets/{railroadDiagram-RFXS5EU6-BRNLawsr.js → railroadDiagram-RFXS5EU6-DlRKrGUE.js} +1 -1
  48. package/dist/assets/{requirementDiagram-TGXJPOKE-CmASubeG.js → requirementDiagram-TGXJPOKE-DBLVKLPS.js} +1 -1
  49. package/dist/assets/{sankeyDiagram-HTMAVEWB-DiReR0OB.js → sankeyDiagram-HTMAVEWB-Be0dIvmC.js} +1 -1
  50. package/dist/assets/{sequenceDiagram-DBY2YBRQ-DVn5iZKR.js → sequenceDiagram-DBY2YBRQ-BCpYBQ8F.js} +1 -1
  51. package/dist/assets/{sizeCapture-X5ZJPWSS-C8CuDOdp.js → sizeCapture-X5ZJPWSS-BZnyrxa6.js} +1 -1
  52. package/dist/assets/{stateDiagram-2N3HPSRC-BIdkHglY.js → stateDiagram-2N3HPSRC-DMroM4ld.js} +1 -1
  53. package/dist/assets/stateDiagram-v2-6OUMAXLB-cykL6dtf.js +1 -0
  54. package/dist/assets/{swimlanes-5IMT3BWC-BlVsYyyN.js → swimlanes-5IMT3BWC-Dx9Lc7jS.js} +2 -2
  55. package/dist/assets/swimlanesDiagram-G3AALYLV-CJMK8pFj.js +8 -0
  56. package/dist/assets/{timeline-definition-FHXFAJF6-CnTqJmQ2.js → timeline-definition-FHXFAJF6-SlkJLwrF.js} +1 -1
  57. package/dist/assets/{vennDiagram-L72KCM5P-D_qZxRhe.js → vennDiagram-L72KCM5P-DH7Ad5bs.js} +1 -1
  58. package/dist/assets/{wardleyDiagram-EHGQE667-CT-WHFEO.js → wardleyDiagram-EHGQE667-yUzFRzyF.js} +1 -1
  59. package/dist/assets/{xychartDiagram-FW5EYKEG-CVRFHwUQ.js → xychartDiagram-FW5EYKEG-B-MsI0CO.js} +1 -1
  60. package/dist/index.html +2 -2
  61. package/lib/experiment-pricing.js +6 -2
  62. package/lib/feature-events.js +10 -0
  63. package/lib/smartmemory-client.js +139 -0
  64. package/lib/smartmemory-config.js +50 -0
  65. package/lib/smartmemory-ingest.js +115 -0
  66. package/lib/smartmemory-sync.js +275 -0
  67. package/package.json +1 -1
  68. package/server/gate-log-store.js +11 -1
  69. package/server/smartmemory-routes.js +113 -0
  70. package/server/vision-server.js +6 -0
  71. package/dist/assets/channel-DQJPWkb_.js +0 -1
  72. package/dist/assets/classDiagram-OUVF2IWQ-CTLbAiUK.js +0 -1
  73. package/dist/assets/classDiagram-v2-EOCWNBFH-CTLbAiUK.js +0 -1
  74. package/dist/assets/index-B7-HQenC.js +0 -119
  75. package/dist/assets/index-BxRamj_i.css +0 -1
  76. package/dist/assets/stateDiagram-v2-6OUMAXLB-B9yje3Er.js +0 -1
  77. package/dist/assets/swimlanesDiagram-G3AALYLV-BTLpU45n.js +0 -8
package/README.md CHANGED
@@ -161,6 +161,34 @@ Tunnel layer is yours: Tailscale (serve/funnel), Cloudflare Tunnel, or a reverse
161
161
 
162
162
  `compose remote rotate-secret --yes` invalidates every paired device (post-leak hammer).
163
163
 
164
+ ## SmartMemory coupling (opt-in)
165
+
166
+ Compose can feed its own lifecycle history (feature events, gate decisions, journal entries,
167
+ artifacts) into [SmartMemory](https://github.com/smartmemory) for relevance-ranked recall,
168
+ via a `smartmemory` block in `.compose/compose.json`:
169
+
170
+ ```json
171
+ {
172
+ "smartmemory": {
173
+ "enabled": true,
174
+ "baseUrl": "http://localhost:9001",
175
+ "apiKeyEnv": "SMARTMEMORY_API_KEY",
176
+ "timeoutMs": 3000
177
+ }
178
+ }
179
+ ```
180
+
181
+ `smartmemory` is absent by default, which means the coupling is fully off: no probes, no
182
+ network calls, no new log lines. With `enabled: true` and a reachable SmartMemory service,
183
+ compose ingests lifecycle events live (fail-open) and the cockpit gains a Recall tab on each
184
+ feature's detail panel.
185
+
186
+ ```bash
187
+ compose smartmemory sync # idempotent backfill of events, journal, artifacts
188
+ compose smartmemory sync --dry-run # preview counts without ingesting
189
+ compose smartmemory sync --feature CODE # scope the sync to one feature
190
+ ```
191
+
164
192
  ## Documentation
165
193
 
166
194
  Topic-scoped reference:
package/bin/compose.js CHANGED
@@ -3778,6 +3778,49 @@ if (cmd === 'build') {
3778
3778
  process.exit(1)
3779
3779
  }
3780
3780
 
3781
+ } else if (cmd === 'smartmemory') {
3782
+ // ---------------------------------------------------------------------------
3783
+ // compose smartmemory sync [--dry-run] [--feature <CODE>]
3784
+ // COMP-SMARTMEMORY-INGEST: idempotent backfill/re-sync of feature-events,
3785
+ // gate-log, journal entries, and per-feature artifacts into SmartMemory.
3786
+ // ---------------------------------------------------------------------------
3787
+ const sub = args[0]
3788
+
3789
+ if (sub === 'sync') {
3790
+ const { runSync } = await import('../lib/smartmemory-sync.js')
3791
+ const { flushPending } = await import('../lib/smartmemory-ingest.js')
3792
+ const flagIdx = (flag) => args.indexOf(flag)
3793
+ const flagVal = (flag) => {
3794
+ const i = flagIdx(flag)
3795
+ return i !== -1 && args[i + 1] ? args[i + 1] : null
3796
+ }
3797
+ const dryRun = args.includes('--dry-run')
3798
+ const feature = flagVal('--feature')
3799
+
3800
+ const { root: cwd } = resolveCwdWithWorkspace(args)
3801
+
3802
+ let result
3803
+ try {
3804
+ result = await runSync({ cwd, dryRun, feature })
3805
+ } catch (err) {
3806
+ console.error(`smartmemory sync failed: ${err.message}`)
3807
+ process.exit(1)
3808
+ }
3809
+
3810
+ console.log(
3811
+ `smartmemory sync: ingested=${result.ingested} unchanged=${result.unchanged} ` +
3812
+ `skipped=${result.skipped} failed=${result.failed}` +
3813
+ (result.stoppedOnQuota ? ' (stopped: workspace quota reached)' : '')
3814
+ )
3815
+ await flushPending()
3816
+ process.exit(0)
3817
+ }
3818
+
3819
+ console.error(`Unknown smartmemory subcommand: ${sub}`)
3820
+ console.error('Usage:')
3821
+ console.error(' compose smartmemory sync [--dry-run] [--feature <CODE>]')
3822
+ process.exit(1)
3823
+
3781
3824
  } else {
3782
3825
  console.error(`Unknown command: ${cmd}`)
3783
3826
  process.exit(1)