@smartmemory/compose 0.2.2-beta → 0.2.3-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 (67) hide show
  1. package/contracts/checkpoint.schema.json +85 -0
  2. package/dist/assets/{App-QGVt8tH2.js → App-j8fWZcGr.js} +5 -5
  3. package/dist/assets/{arc-yX1Dy9Ls.js → arc-BFqOo_jJ.js} +1 -1
  4. package/dist/assets/{architectureDiagram-3BPJPVTR-BhtVN7Go.js → architectureDiagram-3BPJPVTR-D722w0RE.js} +1 -1
  5. package/dist/assets/{blockDiagram-GPEHLZMM-Do_uWvAL.js → blockDiagram-GPEHLZMM-B4w0mOAJ.js} +1 -1
  6. package/dist/assets/{c4Diagram-AAUBKEIU-DhjfNEZ_.js → c4Diagram-AAUBKEIU-D6LE8-j8.js} +1 -1
  7. package/dist/assets/channel-BD-5_hPW.js +1 -0
  8. package/dist/assets/{chunk-2J33WTMH-ZLuzLSr5.js → chunk-2J33WTMH-CrazA7xu.js} +1 -1
  9. package/dist/assets/{chunk-4BX2VUAB-BkfYx42O.js → chunk-4BX2VUAB-Cp90GiCM.js} +1 -1
  10. package/dist/assets/{chunk-55IACEB6-UGWHui37.js → chunk-55IACEB6-Bnais1SK.js} +1 -1
  11. package/dist/assets/{chunk-727SXJPM-DENLKVEd.js → chunk-727SXJPM-kD07Sqp5.js} +1 -1
  12. package/dist/assets/{chunk-AQP2D5EJ-BV-AIq0h.js → chunk-AQP2D5EJ-DmIxhJc8.js} +1 -1
  13. package/dist/assets/{chunk-FMBD7UC4-BO5q1BN_.js → chunk-FMBD7UC4-Jti_und8.js} +1 -1
  14. package/dist/assets/{chunk-ND2GUHAM-rAAtIsqf.js → chunk-ND2GUHAM-Ipx3noKz.js} +1 -1
  15. package/dist/assets/{chunk-QZHKN3VN-DmZo3sCU.js → chunk-QZHKN3VN-CeblRnPF.js} +1 -1
  16. package/dist/assets/classDiagram-4FO5ZUOK-mSW5R7DY.js +1 -0
  17. package/dist/assets/classDiagram-v2-Q7XG4LA2-mSW5R7DY.js +1 -0
  18. package/dist/assets/{cose-bilkent-S5V4N54A-BlBShGhI.js → cose-bilkent-S5V4N54A-fNQlSmHt.js} +1 -1
  19. package/dist/assets/{dagre-BM42HDAG-urcL7_B8.js → dagre-BM42HDAG-D27D6YAL.js} +1 -1
  20. package/dist/assets/{diagram-2AECGRRQ-DlfCvqLR.js → diagram-2AECGRRQ-CtXeohzN.js} +1 -1
  21. package/dist/assets/{diagram-5GNKFQAL-h5gTsYDo.js → diagram-5GNKFQAL-C_BqZkx0.js} +1 -1
  22. package/dist/assets/{diagram-KO2AKTUF-BbEbRrVo.js → diagram-KO2AKTUF-B29ynQz4.js} +1 -1
  23. package/dist/assets/{diagram-LMA3HP47-jog00Zl2.js → diagram-LMA3HP47-DAYJMc2I.js} +1 -1
  24. package/dist/assets/{diagram-OG6HWLK6-B0JVsR6S.js → diagram-OG6HWLK6-CBJMis3l.js} +1 -1
  25. package/dist/assets/{erDiagram-TEJ5UH35-DkUnalKg.js → erDiagram-TEJ5UH35-nd3GWiPn.js} +1 -1
  26. package/dist/assets/{flowDiagram-I6XJVG4X-DewNd_kM.js → flowDiagram-I6XJVG4X-HFUno_nV.js} +1 -1
  27. package/dist/assets/{ganttDiagram-6RSMTGT7-DzDBcVj5.js → ganttDiagram-6RSMTGT7-CPPAAjwR.js} +1 -1
  28. package/dist/assets/{gitGraphDiagram-PVQCEYII-D0CX5WgP.js → gitGraphDiagram-PVQCEYII-NBq1F6K2.js} +1 -1
  29. package/dist/assets/{index-D4GJb_6L.js → index-uHKnp74B.js} +2 -2
  30. package/dist/assets/{infoDiagram-5YYISTIA-B1zzuW9l.js → infoDiagram-5YYISTIA-D-TOBtCq.js} +1 -1
  31. package/dist/assets/{ishikawaDiagram-YF4QCWOH-3hFmuv1F.js → ishikawaDiagram-YF4QCWOH-nXOztZiZ.js} +1 -1
  32. package/dist/assets/{journeyDiagram-JHISSGLW-w9c-l95A.js → journeyDiagram-JHISSGLW-Bko3tTdh.js} +1 -1
  33. package/dist/assets/{kanban-definition-UN3LZRKU-9cL90JL0.js → kanban-definition-UN3LZRKU-1e-7i8st.js} +1 -1
  34. package/dist/assets/{linear-DyDb5wz8.js → linear-Dx5ZJB7F.js} +1 -1
  35. package/dist/assets/{mindmap-definition-RKZ34NQL-DBQqsZiD.js → mindmap-definition-RKZ34NQL-CNwNkDqN.js} +1 -1
  36. package/dist/assets/{pieDiagram-4H26LBE5-BbIHZku5.js → pieDiagram-4H26LBE5-C5fvCej-.js} +1 -1
  37. package/dist/assets/{quadrantDiagram-W4KKPZXB-DEQSG_lM.js → quadrantDiagram-W4KKPZXB-4NoQsF61.js} +1 -1
  38. package/dist/assets/{requirementDiagram-4Y6WPE33-BeVnwIwF.js → requirementDiagram-4Y6WPE33-q5WxB9LO.js} +1 -1
  39. package/dist/assets/{sankeyDiagram-5OEKKPKP-Be-ROw_I.js → sankeyDiagram-5OEKKPKP-DlQNB367.js} +1 -1
  40. package/dist/assets/{sequenceDiagram-3UESZ5HK-E-tnxahu.js → sequenceDiagram-3UESZ5HK-BzHclOKt.js} +1 -1
  41. package/dist/assets/{stateDiagram-AJRCARHV-3rgFN7hL.js → stateDiagram-AJRCARHV-BvWRI9zK.js} +1 -1
  42. package/dist/assets/stateDiagram-v2-BHNVJYJU-CDlF0VA8.js +1 -0
  43. package/dist/assets/{timeline-definition-PNZ67QCA-Dcs4QFbE.js → timeline-definition-PNZ67QCA-j2wKjAti.js} +1 -1
  44. package/dist/assets/{vennDiagram-CIIHVFJN-BstUQ900.js → vennDiagram-CIIHVFJN-B77g7htC.js} +1 -1
  45. package/dist/assets/{wardley-L42UT6IY-CO77hXwj.js → wardley-L42UT6IY-83Im2mo2.js} +1 -1
  46. package/dist/assets/{wardleyDiagram-YWT4CUSO-BvrP3shF.js → wardleyDiagram-YWT4CUSO-CK-XB-bO.js} +1 -1
  47. package/dist/assets/{xychartDiagram-2RQKCTM6-Btu4JcQO.js → xychartDiagram-2RQKCTM6-D42FcVOY.js} +1 -1
  48. package/dist/index.html +1 -1
  49. package/lib/checkpoint/anchor.js +66 -0
  50. package/lib/checkpoint/atomic.js +83 -0
  51. package/lib/checkpoint/checkpoint-writer.js +131 -0
  52. package/lib/checkpoint/fingerprint.js +145 -0
  53. package/lib/checkpoint/git.js +58 -0
  54. package/lib/checkpoint/prompts.js +206 -0
  55. package/lib/checkpoint/reconciler.js +207 -0
  56. package/lib/checkpoint/render.js +107 -0
  57. package/lib/checkpoint/store/index.js +67 -0
  58. package/lib/checkpoint/store/jsonl.js +80 -0
  59. package/package.json +1 -1
  60. package/server/compose-mcp-tools.js +30 -0
  61. package/server/compose-mcp.js +40 -0
  62. package/server/session-routes.js +65 -0
  63. package/server/vision-routes.js +15 -0
  64. package/dist/assets/channel-D6hNrRZ2.js +0 -1
  65. package/dist/assets/classDiagram-4FO5ZUOK-DvsVLUph.js +0 -1
  66. package/dist/assets/classDiagram-v2-Q7XG4LA2-DvsVLUph.js +0 -1
  67. package/dist/assets/stateDiagram-v2-BHNVJYJU-DY_OtnIg.js +0 -1
@@ -48,6 +48,7 @@ function getSchemaValidator() {
48
48
 
49
49
  import { randomUUID } from 'node:crypto';
50
50
  import { getTargetRoot, resolveProjectPath, loadProjectConfig } from './project-root.js';
51
+ import { anchorBoundary } from '../lib/checkpoint/checkpoint-writer.js';
51
52
  import { appendGateLogEntry, readGateLog, mapResolveOutcomeToSchema } from './gate-log-store.js';
52
53
  import { addOpenLoop, resolveOpenLoop, listOpenLoops } from './open-loops-store.js';
53
54
 
@@ -281,6 +282,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
281
282
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
282
283
  // COMP-OBS-STATUS: emit status snapshot after lifecycle transition (advance)
283
284
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
285
+ // COMP-RESUME: best-effort anchor checkpoint at the phase boundary
286
+ anchorBoundary(getTargetRoot(), { item, trigger: 'phase-transition' });
284
287
  res.json({ from, to: targetPhase, outcome });
285
288
  } catch (err) {
286
289
  const status = err.message.includes('not found') ? 404 : 400;
@@ -311,6 +314,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
311
314
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
312
315
  // COMP-OBS-STATUS: emit status snapshot after lifecycle transition (skip)
313
316
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
317
+ // COMP-RESUME: best-effort anchor checkpoint at the phase boundary
318
+ anchorBoundary(getTargetRoot(), { item, trigger: 'phase-transition' });
314
319
  res.json({ from, to: targetPhase, outcome: 'skipped', reason });
315
320
  } catch (err) {
316
321
  const status = err.message.includes('not found') ? 404 : 400;
@@ -341,6 +346,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
341
346
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
342
347
  // COMP-OBS-STATUS: emit status snapshot after lifecycle transition (kill)
343
348
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
349
+ // COMP-RESUME: best-effort anchor checkpoint at the (terminal) phase boundary
350
+ anchorBoundary(getTargetRoot(), { item, trigger: 'phase-transition' });
344
351
  res.json({ phase: from, reason });
345
352
  } catch (err) {
346
353
  const status = err.message.includes('not found') ? 404 : 400;
@@ -370,6 +377,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
370
377
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
371
378
  // COMP-OBS-STATUS: emit status snapshot after lifecycle transition (complete)
372
379
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
380
+ // COMP-RESUME: best-effort anchor checkpoint at the (terminal) phase boundary
381
+ anchorBoundary(getTargetRoot(), { item, trigger: 'phase-transition' });
373
382
 
374
383
  // COMP-MCP-MIGRATION: reconcile cockpit complete with record_completion
375
384
  // (commit-bound completion writer). Best-effort: failures emit a decision
@@ -561,6 +570,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
561
570
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
562
571
  // COMP-OBS-STATUS: emit status snapshot after iteration complete
563
572
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
573
+ // COMP-RESUME: best-effort anchor checkpoint at iteration-complete boundary
574
+ anchorBoundary(getTargetRoot(), { item, trigger: 'iteration-complete' });
564
575
  }
565
576
  } else {
566
577
  // per-attempt update: NO DecisionEvent (Decision 2 — would flood strip)
@@ -614,6 +625,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
614
625
  emitDriftAxes(broadcastMessage, store, item, projectRoot, now);
615
626
  // COMP-OBS-STATUS: emit status snapshot after iteration abort
616
627
  emitStatusSnapshot(broadcastMessage, store, item.lifecycle.featureCode, now);
628
+ // COMP-RESUME: best-effort anchor checkpoint at iteration-complete (abort) boundary
629
+ anchorBoundary(getTargetRoot(), { item, trigger: 'iteration-complete' });
617
630
  }
618
631
  res.json({ aborted: true });
619
632
  } catch (err) {
@@ -835,6 +848,8 @@ export function attachVisionRoutes(app, { store, scheduleBroadcast, broadcastMes
835
848
  // COMP-OBS-DRIFT: emit drift axes before status so STATUS reads fresh drift_axes
836
849
  emitDriftAxes(broadcastMessage, store, resolvedItem, projectRoot, resolvedAt);
837
850
  emitStatusSnapshot(broadcastMessage, store, resolvedItem.lifecycle.featureCode, resolvedAt);
851
+ // COMP-RESUME: best-effort anchor checkpoint at gate-resolution boundary
852
+ anchorBoundary(getTargetRoot(), { item: resolvedItem, trigger: 'gate-resolution' });
838
853
  }
839
854
  }
840
855
  res.json({ gateId: req.params.id, gateOutcome: outcome });
@@ -1 +0,0 @@
1
- import{ai as o,aj as n}from"./App-QGVt8tH2.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-DENLKVEd.js";import{_ as i}from"./App-QGVt8tH2.js";import"./chunk-FMBD7UC4-BO5q1BN_.js";import"./chunk-ND2GUHAM-rAAtIsqf.js";import"./chunk-55IACEB6-UGWHui37.js";import"./chunk-2J33WTMH-ZLuzLSr5.js";import"./mobile-CG5tLa2S.js";import"./index-D4GJb_6L.js";import"./graph-CJVNlri5.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-DENLKVEd.js";import{_ as i}from"./App-QGVt8tH2.js";import"./chunk-FMBD7UC4-BO5q1BN_.js";import"./chunk-ND2GUHAM-rAAtIsqf.js";import"./chunk-55IACEB6-UGWHui37.js";import"./chunk-2J33WTMH-ZLuzLSr5.js";import"./mobile-CG5tLa2S.js";import"./index-D4GJb_6L.js";import"./graph-CJVNlri5.js";var b={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as s}from"./chunk-AQP2D5EJ-BV-AIq0h.js";import{_ as i}from"./App-QGVt8tH2.js";import"./chunk-55IACEB6-UGWHui37.js";import"./chunk-2J33WTMH-ZLuzLSr5.js";import"./mobile-CG5tLa2S.js";import"./index-D4GJb_6L.js";import"./graph-CJVNlri5.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};