@smartmemory/compose 0.2.47-beta → 0.2.49-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 (63) hide show
  1. package/.claude/skills/compose/SKILL.md +2 -0
  2. package/.compose-deps.json +13 -0
  3. package/bin/compose.js +5 -2
  4. package/dist/assets/{App-D7E7S49Q.js → App-DOerhoDp.js} +160 -160
  5. package/dist/assets/{arc-LOW60tiI.js → arc-B1TqAC_R.js} +1 -1
  6. package/dist/assets/{architectureDiagram-3BPJPVTR-BDY00hRy.js → architectureDiagram-3BPJPVTR-C4hfxNOw.js} +1 -1
  7. package/dist/assets/{blockDiagram-GPEHLZMM-DiC_6ktq.js → blockDiagram-GPEHLZMM-DRqkGncy.js} +1 -1
  8. package/dist/assets/{c4Diagram-AAUBKEIU-CXZC8woU.js → c4Diagram-AAUBKEIU-Dc6swoQo.js} +1 -1
  9. package/dist/assets/channel-KsY1x-7s.js +1 -0
  10. package/dist/assets/{chunk-2J33WTMH-b8Rdk4S-.js → chunk-2J33WTMH-6HKDSnOw.js} +1 -1
  11. package/dist/assets/{chunk-4BX2VUAB-BSxn03f-.js → chunk-4BX2VUAB-CdqXgd68.js} +1 -1
  12. package/dist/assets/{chunk-55IACEB6-uUk1WzZ1.js → chunk-55IACEB6-D7VauOmU.js} +1 -1
  13. package/dist/assets/{chunk-727SXJPM-zvXhT6iZ.js → chunk-727SXJPM-CeKpXDif.js} +1 -1
  14. package/dist/assets/{chunk-AQP2D5EJ-B6GCyrIp.js → chunk-AQP2D5EJ-y2XL-YHV.js} +1 -1
  15. package/dist/assets/{chunk-FMBD7UC4-DlhrqkBp.js → chunk-FMBD7UC4-C1Z5m8DP.js} +1 -1
  16. package/dist/assets/{chunk-ND2GUHAM-lo_8kNzw.js → chunk-ND2GUHAM-DmqZMEQe.js} +1 -1
  17. package/dist/assets/{chunk-QZHKN3VN-on-yD-C0.js → chunk-QZHKN3VN-DY9GU2uD.js} +1 -1
  18. package/dist/assets/classDiagram-4FO5ZUOK-zDEDoVPk.js +1 -0
  19. package/dist/assets/classDiagram-v2-Q7XG4LA2-zDEDoVPk.js +1 -0
  20. package/dist/assets/{cose-bilkent-S5V4N54A-DxV7Y2bU.js → cose-bilkent-S5V4N54A-B34g9xzV.js} +1 -1
  21. package/dist/assets/{dagre-BM42HDAG-BHf9sURy.js → dagre-BM42HDAG-klZ_GOcw.js} +1 -1
  22. package/dist/assets/{diagram-2AECGRRQ-R9Puxzlh.js → diagram-2AECGRRQ-D0FmM6Wf.js} +1 -1
  23. package/dist/assets/{diagram-5GNKFQAL-BbjlClKx.js → diagram-5GNKFQAL-DYuhby6q.js} +1 -1
  24. package/dist/assets/{diagram-KO2AKTUF-r89Mx4m1.js → diagram-KO2AKTUF-CCtQZgal.js} +1 -1
  25. package/dist/assets/{diagram-LMA3HP47-CstVDJZ3.js → diagram-LMA3HP47-Cd1OqEln.js} +1 -1
  26. package/dist/assets/{diagram-OG6HWLK6-xmX57FKh.js → diagram-OG6HWLK6-CiJrhoxo.js} +1 -1
  27. package/dist/assets/{erDiagram-TEJ5UH35-DhLPxvrl.js → erDiagram-TEJ5UH35-C05_Iqmb.js} +1 -1
  28. package/dist/assets/{flowDiagram-I6XJVG4X-BExoUaNm.js → flowDiagram-I6XJVG4X-lXpnb-Ch.js} +1 -1
  29. package/dist/assets/{ganttDiagram-6RSMTGT7-BEXa5a22.js → ganttDiagram-6RSMTGT7-EPbL_2Hr.js} +1 -1
  30. package/dist/assets/{gitGraphDiagram-PVQCEYII-Cbes9api.js → gitGraphDiagram-PVQCEYII-COCoF_vW.js} +1 -1
  31. package/dist/assets/{index-DNuHtZwR.js → index-DlgxA8dX.js} +2 -2
  32. package/dist/assets/{infoDiagram-5YYISTIA-UBm4ssfm.js → infoDiagram-5YYISTIA-B1sJw6j5.js} +1 -1
  33. package/dist/assets/{ishikawaDiagram-YF4QCWOH-CksBYHCF.js → ishikawaDiagram-YF4QCWOH-CgdsWdgu.js} +1 -1
  34. package/dist/assets/{journeyDiagram-JHISSGLW-CKHkIHky.js → journeyDiagram-JHISSGLW-CyvHmE3z.js} +1 -1
  35. package/dist/assets/{kanban-definition-UN3LZRKU-CEahMFzE.js → kanban-definition-UN3LZRKU-Bqjdyv0T.js} +1 -1
  36. package/dist/assets/{linear-CqLVtYRk.js → linear-DecnRXf0.js} +1 -1
  37. package/dist/assets/{mindmap-definition-RKZ34NQL-C61zWt4M.js → mindmap-definition-RKZ34NQL-DM1x9vNY.js} +1 -1
  38. package/dist/assets/{pieDiagram-4H26LBE5-BIpZHyJW.js → pieDiagram-4H26LBE5-CRtmCvwV.js} +1 -1
  39. package/dist/assets/{quadrantDiagram-W4KKPZXB-Db7nRbZm.js → quadrantDiagram-W4KKPZXB-CsBLWg27.js} +1 -1
  40. package/dist/assets/{requirementDiagram-4Y6WPE33-BQqFCAr0.js → requirementDiagram-4Y6WPE33-DD-Gg_y5.js} +1 -1
  41. package/dist/assets/{sankeyDiagram-5OEKKPKP-D-oAAMci.js → sankeyDiagram-5OEKKPKP-BPdMN8UU.js} +1 -1
  42. package/dist/assets/{sequenceDiagram-3UESZ5HK-Dc4Cp0Om.js → sequenceDiagram-3UESZ5HK-D4AENdze.js} +1 -1
  43. package/dist/assets/{stateDiagram-AJRCARHV-B5DkQ8Pr.js → stateDiagram-AJRCARHV-DDplpCf_.js} +1 -1
  44. package/dist/assets/stateDiagram-v2-BHNVJYJU-J4t9AVzF.js +1 -0
  45. package/dist/assets/{timeline-definition-PNZ67QCA-DU9Fl-FW.js → timeline-definition-PNZ67QCA-BPm2AEQj.js} +1 -1
  46. package/dist/assets/{vennDiagram-CIIHVFJN-Bthz7siw.js → vennDiagram-CIIHVFJN-DQCDWwlj.js} +1 -1
  47. package/dist/assets/{wardley-L42UT6IY-nqdlFSIA.js → wardley-L42UT6IY-WERqOmJt.js} +1 -1
  48. package/dist/assets/{wardleyDiagram-YWT4CUSO-BJ1BC5zc.js → wardleyDiagram-YWT4CUSO-5teUSOiI.js} +1 -1
  49. package/dist/assets/{xychartDiagram-2RQKCTM6-Bib5JrbR.js → xychartDiagram-2RQKCTM6-Ba05SXXF.js} +1 -1
  50. package/dist/index.html +1 -1
  51. package/lib/build.js +5 -1
  52. package/lib/deps.js +98 -1
  53. package/lib/rtk.js +66 -0
  54. package/lib/state-migrations.js +210 -41
  55. package/lib/vision-writer.js +6 -13
  56. package/package.json +1 -1
  57. package/server/compose-mcp-tools.js +9 -1
  58. package/server/project-root.js +14 -0
  59. package/server/vision-store.js +6 -11
  60. package/dist/assets/channel-Dh96pu1k.js +0 -1
  61. package/dist/assets/classDiagram-4FO5ZUOK-BCqpDcaS.js +0 -1
  62. package/dist/assets/classDiagram-v2-Q7XG4LA2-BCqpDcaS.js +0 -1
  63. package/dist/assets/stateDiagram-v2-BHNVJYJU-BM1Uf6a_.js +0 -1
@@ -596,6 +596,8 @@ Authoritative list lives in `compose/.compose-deps.json`. Run `compose doctor` t
596
596
 
597
597
  The manifest declares 12 external skills/commands across `superpowers:*`, `interface-design:*`, `codex:review`, `refactor`, and `update-docs`. Each entry carries `id`, `required_for`, `install`, `fallback` (or null), and `optional`.
598
598
 
599
+ The manifest also has an optional `external_binaries` array for CLI tools (not skills). Today it declares `rtk` ([Rust Token Killer](https://github.com/rtk-ai/rtk), COMP-RTK-INTEROP) — a lossy output compressor compose routes its one LLM-bound `git diff` (the Codex review diff) through when present, degrading byte-identically when absent. `compose doctor` reports binaries alongside skills and surfaces each binary's `recommend` (for rtk: `rtk init -g`, which installs RTK's Claude Code hook so the agent's *own* Bash output is compressed too — the larger token win). Binary entries carry `id`, `detect`, `install`, `recommend` (or null), and `optional`; all are optional and never block the lifecycle.
600
+
599
601
  ### Degrade pattern
600
602
 
601
603
  At lifecycle entry (Phase 1), run `compose doctor --json`. For each missing dep:
@@ -85,5 +85,18 @@
85
85
  "fallback": "manual TODO surfaced in implementation report",
86
86
  "optional": true
87
87
  }
88
+ ],
89
+ "external_binaries": [
90
+ {
91
+ "id": "rtk",
92
+ "detect": "rtk --version",
93
+ "required_for": [
94
+ "LLM-bound git-diff compression (build review)",
95
+ "agent Bash output compression via `rtk init -g` hook"
96
+ ],
97
+ "install": "brew install rtk (or: cargo install --git https://github.com/rtk-ai/rtk)",
98
+ "recommend": "rtk init -g",
99
+ "optional": true
100
+ }
88
101
  ]
89
102
  }
package/bin/compose.js CHANGED
@@ -81,7 +81,7 @@ function resolveCwdWithWorkspace(args) {
81
81
  // --team flag (COMP-TEAMS)
82
82
  // ---------------------------------------------------------------------------
83
83
  import { parseTeamFlag } from '../lib/team-flag.js';
84
- import { loadDeps, checkExternalSkills, printDepReport, buildDepReport } from '../lib/deps.js';
84
+ import { loadDeps, checkExternalSkills, printDepReport, buildDepReport, checkExternalBinaries, printBinaryReport, buildBinaryReport } from '../lib/deps.js';
85
85
  import { checkLatestVersion } from '../lib/version-check.js';
86
86
 
87
87
  const [,, cmd, ...args] = process.argv
@@ -271,6 +271,7 @@ function syncSkills(agents) {
271
271
  if (deps) {
272
272
  const result = checkExternalSkills(deps)
273
273
  printDepReport(result)
274
+ printBinaryReport(checkExternalBinaries(deps))
274
275
  }
275
276
  }
276
277
 
@@ -302,7 +303,8 @@ async function runDoctor(flags = []) {
302
303
  // Single top-level JSON document — the deps report and the version block share one root
303
304
  // so consumers like `JSON.parse(stdout)` work. (Previously two concatenated objects.)
304
305
  const report = buildDepReport(result)
305
- console.log(JSON.stringify({ ...report, version: versionInfo }, null, 2))
306
+ const binaries = buildBinaryReport(checkExternalBinaries(deps))
307
+ console.log(JSON.stringify({ ...report, binaries, version: versionInfo }, null, 2))
306
308
  const allRequiredPresent = result.missing.every(d => d.optional)
307
309
  if (strict && !allRequiredPresent) process.exit(1)
308
310
  return
@@ -323,6 +325,7 @@ async function runDoctor(flags = []) {
323
325
  }
324
326
 
325
327
  const allRequiredPresent = printDepReport(result, { json: false, verbose })
328
+ printBinaryReport(checkExternalBinaries(deps))
326
329
  if (strict && !allRequiredPresent) process.exit(1)
327
330
  }
328
331