@smartmemory/compose 0.1.33-beta → 0.1.35-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.
- package/README.md +42 -0
- package/bin/compose.js +22 -4
- package/dist/assets/{App-1c_7rycT.js → App-DMCO9aNs.js} +5 -5
- package/dist/assets/{arc-5LGcKaXC.js → arc-DsXb95RZ.js} +1 -1
- package/dist/assets/{architectureDiagram-3BPJPVTR-BGsvZBSe.js → architectureDiagram-3BPJPVTR-BaBYippI.js} +1 -1
- package/dist/assets/{blockDiagram-GPEHLZMM-CppawQ7y.js → blockDiagram-GPEHLZMM-HwB_eL3_.js} +1 -1
- package/dist/assets/{c4Diagram-AAUBKEIU-u6006T49.js → c4Diagram-AAUBKEIU-CPSXghc8.js} +1 -1
- package/dist/assets/channel-TOlxWxU-.js +1 -0
- package/dist/assets/{chunk-2J33WTMH-VIEW3rXo.js → chunk-2J33WTMH-CCN3bc9J.js} +1 -1
- package/dist/assets/{chunk-4BX2VUAB-NhdSQDlD.js → chunk-4BX2VUAB-DuqFxpoV.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-BmobEJTk.js → chunk-55IACEB6-DT20mkDV.js} +1 -1
- package/dist/assets/{chunk-727SXJPM-CkHPoJZX.js → chunk-727SXJPM-ByMH6Qvp.js} +1 -1
- package/dist/assets/{chunk-AQP2D5EJ-DhlFWYJI.js → chunk-AQP2D5EJ-CLgYtOHw.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-Dzli17sA.js → chunk-FMBD7UC4-BXWmTsAA.js} +1 -1
- package/dist/assets/{chunk-ND2GUHAM-BZM0pKix.js → chunk-ND2GUHAM-C2WgVbpE.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-Bw_VU3w3.js → chunk-QZHKN3VN-DFuQRJeh.js} +1 -1
- package/dist/assets/classDiagram-4FO5ZUOK-DZsvwI1V.js +1 -0
- package/dist/assets/classDiagram-v2-Q7XG4LA2-DZsvwI1V.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-CUhMB816.js → cose-bilkent-S5V4N54A-CdyvK5N2.js} +1 -1
- package/dist/assets/{dagre-BM42HDAG-DaUl17l5.js → dagre-BM42HDAG-Drkta_n5.js} +1 -1
- package/dist/assets/{diagram-2AECGRRQ-CPZwMXfB.js → diagram-2AECGRRQ-BRiBkuu5.js} +1 -1
- package/dist/assets/{diagram-5GNKFQAL-B9-N5E5R.js → diagram-5GNKFQAL-IrSBDK26.js} +1 -1
- package/dist/assets/{diagram-KO2AKTUF-CkfEzzGz.js → diagram-KO2AKTUF-BUktYepH.js} +1 -1
- package/dist/assets/{diagram-LMA3HP47-DLAWiWIJ.js → diagram-LMA3HP47-B5erGOiF.js} +1 -1
- package/dist/assets/{diagram-OG6HWLK6-DTCE5jRG.js → diagram-OG6HWLK6-5KoSfwod.js} +1 -1
- package/dist/assets/{erDiagram-TEJ5UH35-BCIuV-ft.js → erDiagram-TEJ5UH35-CXSf-i6t.js} +1 -1
- package/dist/assets/{flowDiagram-I6XJVG4X-DmztP2OP.js → flowDiagram-I6XJVG4X-DiwEgd9q.js} +1 -1
- package/dist/assets/{ganttDiagram-6RSMTGT7-CXZwtSzf.js → ganttDiagram-6RSMTGT7-zQ94YEl2.js} +1 -1
- package/dist/assets/{gitGraphDiagram-PVQCEYII-XDMhXGQ7.js → gitGraphDiagram-PVQCEYII-CWNWantF.js} +1 -1
- package/dist/assets/{index-CCu-56GD.js → index-CyFM4bTc.js} +2 -2
- package/dist/assets/{infoDiagram-5YYISTIA-Da1XvUtC.js → infoDiagram-5YYISTIA-BcnrgEm6.js} +1 -1
- package/dist/assets/{ishikawaDiagram-YF4QCWOH-DTw3_1vI.js → ishikawaDiagram-YF4QCWOH-BRzURsJQ.js} +1 -1
- package/dist/assets/{journeyDiagram-JHISSGLW-1q57kJBE.js → journeyDiagram-JHISSGLW-CdwMwMPo.js} +1 -1
- package/dist/assets/{kanban-definition-UN3LZRKU-CHEt8drj.js → kanban-definition-UN3LZRKU-Difj4Zd-.js} +1 -1
- package/dist/assets/{katex-CQk2-UhE.js → katex-C5jXJg4s.js} +3 -3
- package/dist/assets/{linear-Dm9uGrY9.js → linear-CKwgBFBW.js} +1 -1
- package/dist/assets/{mindmap-definition-RKZ34NQL-AfCfq9He.js → mindmap-definition-RKZ34NQL-C2aCD1L4.js} +1 -1
- package/dist/assets/{pieDiagram-4H26LBE5-BwZQV6vN.js → pieDiagram-4H26LBE5-C9qGrfV0.js} +1 -1
- package/dist/assets/{quadrantDiagram-W4KKPZXB-BSH6R7JT.js → quadrantDiagram-W4KKPZXB-COA0Z2JV.js} +1 -1
- package/dist/assets/{requirementDiagram-4Y6WPE33-DgXRRUBB.js → requirementDiagram-4Y6WPE33-BJCU8yFE.js} +1 -1
- package/dist/assets/{sankeyDiagram-5OEKKPKP-zwgrKh_8.js → sankeyDiagram-5OEKKPKP-vYzK7FJ6.js} +1 -1
- package/dist/assets/{sequenceDiagram-3UESZ5HK-CCbQVXMX.js → sequenceDiagram-3UESZ5HK-Bkh_RWpN.js} +1 -1
- package/dist/assets/{stateDiagram-AJRCARHV-BIBvILDx.js → stateDiagram-AJRCARHV-BlUsbYTW.js} +1 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-_AUWPuja.js +1 -0
- package/dist/assets/{timeline-definition-PNZ67QCA-tTCXjToz.js → timeline-definition-PNZ67QCA-DuYEZwxg.js} +1 -1
- package/dist/assets/{vennDiagram-CIIHVFJN-Bxb5N93O.js → vennDiagram-CIIHVFJN-D9a3Q3Ni.js} +1 -1
- package/dist/assets/{wardley-L42UT6IY-Dw-_rF2D.js → wardley-L42UT6IY-h2fQnc_J.js} +1 -1
- package/dist/assets/{wardleyDiagram-YWT4CUSO-rMkJu1Qs.js → wardleyDiagram-YWT4CUSO-C-_dzSY5.js} +1 -1
- package/dist/assets/{xychartDiagram-2RQKCTM6-B_CW8fFS.js → xychartDiagram-2RQKCTM6-CKxMIB7j.js} +1 -1
- package/dist/index.html +1 -1
- package/lib/build.js +60 -13
- package/lib/changelog-writer.js +111 -83
- package/lib/completion-writer.js +26 -9
- package/lib/feature-writer.js +62 -38
- package/lib/roadmap-gen.js +41 -14
- package/lib/tracker/cli.js +31 -0
- package/lib/tracker/factory.js +93 -0
- package/lib/tracker/github-api.js +115 -0
- package/lib/tracker/github-provider.js +641 -0
- package/lib/tracker/local-provider.js +202 -0
- package/lib/tracker/provider.js +40 -0
- package/lib/tracker/sync-engine.js +131 -0
- package/package.json +3 -2
- package/dist/assets/channel-9SpKIWte.js +0 -1
- package/dist/assets/classDiagram-4FO5ZUOK-1x8GC0fS.js +0 -1
- package/dist/assets/classDiagram-v2-Q7XG4LA2-1x8GC0fS.js +0 -1
- package/dist/assets/stateDiagram-v2-BHNVJYJU-CpvhwvDI.js +0 -1
package/README.md
CHANGED
|
@@ -82,6 +82,48 @@ Check what you're running:
|
|
|
82
82
|
compose --version
|
|
83
83
|
```
|
|
84
84
|
|
|
85
|
+
## Tracker providers
|
|
86
|
+
|
|
87
|
+
Compose can persist feature data to different backends via the `tracker` block in `.compose/compose.json`.
|
|
88
|
+
|
|
89
|
+
**Default (local) — zero configuration required:**
|
|
90
|
+
|
|
91
|
+
```json
|
|
92
|
+
{ "tracker": { "provider": "local" } }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
`local` is the default when no `tracker` block is present. All writes go to the filesystem exactly as before — no behavior change.
|
|
96
|
+
|
|
97
|
+
**GitHub provider:**
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"tracker": {
|
|
102
|
+
"provider": "github",
|
|
103
|
+
"github": {
|
|
104
|
+
"repo": "owner/repo",
|
|
105
|
+
"projectNumber": 42,
|
|
106
|
+
"branch": "main",
|
|
107
|
+
"roadmapPath": "ROADMAP.md",
|
|
108
|
+
"changelogPath": "CHANGELOG.md",
|
|
109
|
+
"cacheTtlSeconds": 300,
|
|
110
|
+
"auth": { "tokenEnv": "GITHUB_TOKEN" }
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The GitHub provider syncs features to **Issues** (one per feature), **Projects v2** (`Status` custom field), and **Contents API** (roadmap + changelog files). Requires a token in the named env var (or `gh auth login` fallback) with `repo` and `project` scopes.
|
|
117
|
+
|
|
118
|
+
CLI verbs:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
compose tracker status # show provider health + pending op-log + conflict ledger
|
|
122
|
+
compose tracker sync # reconcile op-log against remote provider
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
See [docs/configuration.md](docs/configuration.md) for the full `tracker` config reference.
|
|
126
|
+
|
|
85
127
|
## Documentation
|
|
86
128
|
|
|
87
129
|
Topic-scoped reference:
|
package/bin/compose.js
CHANGED
|
@@ -340,7 +340,7 @@ async function runInit(flags) {
|
|
|
340
340
|
let hasStratum = !noStratum && spawnSync('which', ['stratum-mcp'], { encoding: 'utf-8' }).status === 0
|
|
341
341
|
if (!noStratum && !hasStratum) {
|
|
342
342
|
console.log('stratum-mcp not found — installing via pip...')
|
|
343
|
-
const pipResult = spawnSync('pip', ['install', 'stratum'], {
|
|
343
|
+
const pipResult = spawnSync('pip', ['install', 'stratum-mcp'], {
|
|
344
344
|
stdio: 'inherit',
|
|
345
345
|
encoding: 'utf-8',
|
|
346
346
|
})
|
|
@@ -350,11 +350,13 @@ async function runInit(flags) {
|
|
|
350
350
|
if (hasStratum) {
|
|
351
351
|
console.log('stratum-mcp installed successfully')
|
|
352
352
|
} else {
|
|
353
|
-
console.warn('Warning: pip install stratum succeeded but stratum-mcp not found on PATH')
|
|
353
|
+
console.warn('Warning: pip install stratum-mcp succeeded but stratum-mcp not found on PATH')
|
|
354
|
+
console.warn(' The binary may live in a pyenv version dir not on $PATH.')
|
|
355
|
+
console.warn(' Try: ln -sf "$(python -c \'import sys,os; print(os.path.join(sys.prefix, "bin", "stratum-mcp"))\')" ~/.local/bin/stratum-mcp')
|
|
354
356
|
}
|
|
355
357
|
} else {
|
|
356
|
-
console.warn('Warning: pip install stratum failed — Stratum will be disabled')
|
|
357
|
-
console.warn(' Install manually: pip install stratum')
|
|
358
|
+
console.warn('Warning: pip install stratum-mcp failed — Stratum will be disabled')
|
|
359
|
+
console.warn(' Install manually: pip install stratum-mcp (requires Python >= 3.11)')
|
|
358
360
|
}
|
|
359
361
|
}
|
|
360
362
|
const hasLifecycle = !noLifecycle
|
|
@@ -2672,6 +2674,22 @@ if (cmd === 'build') {
|
|
|
2672
2674
|
process.exit(1)
|
|
2673
2675
|
}
|
|
2674
2676
|
|
|
2677
|
+
} else if (cmd === 'tracker') {
|
|
2678
|
+
// ---------------------------------------------------------------------------
|
|
2679
|
+
// compose tracker status — print provider name, canonical, pendingOps, conflicts, mixedSources
|
|
2680
|
+
// compose tracker sync — flush op-log and report drained/quarantined counts
|
|
2681
|
+
// COMP-TRACKER-PROVIDER T18
|
|
2682
|
+
// ---------------------------------------------------------------------------
|
|
2683
|
+
try {
|
|
2684
|
+
const { runTrackerCli } = await import('../lib/tracker/cli.js')
|
|
2685
|
+
const result = await runTrackerCli(process.cwd(), args)
|
|
2686
|
+
console.log(result.output)
|
|
2687
|
+
if (result.exitCode !== 0) process.exit(result.exitCode)
|
|
2688
|
+
} catch (err) {
|
|
2689
|
+
console.error(`tracker: ${err.message}`)
|
|
2690
|
+
process.exit(1)
|
|
2691
|
+
}
|
|
2692
|
+
|
|
2675
2693
|
} else {
|
|
2676
2694
|
console.error(`Unknown command: ${cmd}`)
|
|
2677
2695
|
process.exit(1)
|