plan-assistant 1.5.0 → 1.6.0-alpha.1

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 (117) hide show
  1. package/README.md +31 -12
  2. package/build/client/_app/immutable/chunks/{CLpU78SQ.js → 5KpFG7Y3.js} +1 -1
  3. package/build/client/_app/immutable/chunks/AMggw8F_.js +1 -0
  4. package/build/client/_app/immutable/chunks/{3hcDFuOy.js → B0Br67Jm.js} +22 -22
  5. package/build/client/_app/immutable/chunks/{DAI9x5pz.js → BGuzEOEG.js} +1 -1
  6. package/build/client/_app/immutable/chunks/{C8APfMGc.js → BPC30ZkC.js} +1 -1
  7. package/build/client/_app/immutable/chunks/{C6lsq0EQ.js → BT-rYp04.js} +1 -1
  8. package/build/client/_app/immutable/chunks/{CuTEmqRN.js → BXachUYg.js} +1 -1
  9. package/build/client/_app/immutable/chunks/{BBUci_EN.js → BdxNwExl.js} +1 -1
  10. package/build/client/_app/immutable/chunks/{BExD98LF.js → Bdy6d4YN.js} +1 -1
  11. package/build/client/_app/immutable/chunks/{Bv2Fvpd-.js → BkkBWYh4.js} +1 -1
  12. package/build/client/_app/immutable/chunks/{CtvUvmNP.js → Bmsplg2Y.js} +1 -1
  13. package/build/client/_app/immutable/chunks/{B7UpUR8j.js → Bn0XLNse.js} +1 -1
  14. package/build/client/_app/immutable/chunks/{CsdQ7qj_.js → BuxFeYZa.js} +1 -1
  15. package/build/client/_app/immutable/chunks/{DmIm4oWg.js → C2OLrLCJ.js} +1 -1
  16. package/build/client/_app/immutable/chunks/C88p_n1l.js +3 -0
  17. package/build/client/_app/immutable/chunks/{CaQ_EsFt.js → CFomSPzW.js} +1 -1
  18. package/build/client/_app/immutable/chunks/{DVyAwrwy.js → CFx4VLDw.js} +1 -1
  19. package/build/client/_app/immutable/chunks/{BP4iV_qy.js → CRUUUIwS.js} +1 -1
  20. package/build/client/_app/immutable/chunks/{CQ3jUvrt.js → CRuCklg1.js} +1 -1
  21. package/build/client/_app/immutable/chunks/{PzsI0t6r.js → CUHvMbx0.js} +1 -1
  22. package/build/client/_app/immutable/chunks/{BE3d1fW1.js → C_5efo6-.js} +1 -1
  23. package/build/client/_app/immutable/chunks/{DgYrUT6W.js → Cb177sm-.js} +1 -1
  24. package/build/client/_app/immutable/chunks/{CMEI75WY.js → Cb9ekAV0.js} +1 -1
  25. package/build/client/_app/immutable/chunks/{Cklag6Wh.js → CdiHcRRA.js} +1 -1
  26. package/build/client/_app/immutable/chunks/{Bp1XOP3Y.js → CgIOtWnS.js} +1 -1
  27. package/build/client/_app/immutable/chunks/{Bc8p4D6T.js → CghPw8Xx.js} +1 -1
  28. package/build/client/_app/immutable/chunks/{BkgST-kf.js → Cmym6IfH.js} +1 -1
  29. package/build/client/_app/immutable/chunks/{C8TKm6Ie.js → Cvpo3167.js} +1 -1
  30. package/build/client/_app/immutable/chunks/{BxbztSiI.js → Cy0JyQfD.js} +1 -1
  31. package/build/client/_app/immutable/chunks/{D-JOz5e5.js → D-0mahX7.js} +1 -1
  32. package/build/client/_app/immutable/chunks/{DX0JfudZ.js → D8823oiN.js} +1 -1
  33. package/build/client/_app/immutable/chunks/{60AcEuIB.js → DIjXbgfi.js} +1 -1
  34. package/build/client/_app/immutable/chunks/{5WozQe49.js → DUIJXtzj.js} +1 -1
  35. package/build/client/_app/immutable/chunks/{2MoIsY2H.js → DXlvMCt6.js} +1 -1
  36. package/build/client/_app/immutable/chunks/{DhhVlT3Q.js → Dffa6mVP.js} +1 -1
  37. package/build/client/_app/immutable/chunks/{DmJI01FD.js → DgzenGSu.js} +1 -1
  38. package/build/client/_app/immutable/chunks/{DwtNXPRV.js → DqaGnr0n.js} +4 -4
  39. package/build/client/_app/immutable/chunks/{D82Ibe2Y.js → Drf3oeac.js} +1 -1
  40. package/build/client/_app/immutable/chunks/{v0r-xbZ1.js → EBvoHjF1.js} +1 -1
  41. package/build/client/_app/immutable/chunks/{BHlQNJvI.js → Fqo6xqtt.js} +1 -1
  42. package/build/client/_app/immutable/chunks/QDQklEwM.js +1 -0
  43. package/build/client/_app/immutable/chunks/{CDe5iF5C.js → Q_gMk3PN.js} +1 -1
  44. package/build/client/_app/immutable/chunks/{wkCjElX-.js → XHkT9caI.js} +1 -1
  45. package/build/client/_app/immutable/chunks/{BSmyMpB9.js → Zxe_1j0j.js} +1 -1
  46. package/build/client/_app/immutable/chunks/{NVoraB0x.js → czbfzgw3.js} +1 -1
  47. package/build/client/_app/immutable/chunks/{BLkN0eN4.js → mlMCI16G.js} +1 -1
  48. package/build/client/_app/immutable/chunks/{B5dqmTZt.js → qFFXeAvY.js} +1 -1
  49. package/build/client/_app/immutable/entry/{app.3iFud8JB.js → app.C_pWXh8R.js} +2 -2
  50. package/build/client/_app/immutable/entry/start.DfbNX0kb.js +1 -0
  51. package/build/client/_app/immutable/nodes/{1.DV_Uu5i6.js → 1.DN_p76XO.js} +1 -1
  52. package/build/client/_app/immutable/nodes/3.B0eShLlr.js +1 -0
  53. package/build/client/_app/version.json +1 -1
  54. package/build/server/chunks/{1-B0EuD9t5.js → 1-CEFNOpUG.js} +2 -2
  55. package/build/server/chunks/{1-B0EuD9t5.js.map → 1-CEFNOpUG.js.map} +1 -1
  56. package/build/server/chunks/{2-1iFROMDo.js → 2-qGWtN2-9.js} +3 -2
  57. package/build/server/chunks/{2-1iFROMDo.js.map → 2-qGWtN2-9.js.map} +1 -1
  58. package/build/server/chunks/{3-ChRVOXhH.js → 3-OUU46X3b.js} +6 -7
  59. package/build/server/chunks/3-OUU46X3b.js.map +1 -0
  60. package/build/server/chunks/{_page.svelte-Bg0Bxr-a.js → _page.svelte-DcqVlJwT.js} +13 -11
  61. package/build/server/chunks/_page.svelte-DcqVlJwT.js.map +1 -0
  62. package/build/server/chunks/_server.ts-BOWeAYnM.js +13 -0
  63. package/build/server/chunks/_server.ts-BOWeAYnM.js.map +1 -0
  64. package/build/server/chunks/{_server.ts-CEtvrNT1.js → _server.ts-BbMhMik1.js} +4 -3
  65. package/build/server/chunks/_server.ts-BbMhMik1.js.map +1 -0
  66. package/build/server/chunks/{_server.ts-H4qb8W_h.js → _server.ts-BhmTJZsP.js} +3 -4
  67. package/build/server/chunks/_server.ts-BhmTJZsP.js.map +1 -0
  68. package/build/server/chunks/{_server.ts-C91-5A8I.js → _server.ts-BjSxqsHx.js} +5 -7
  69. package/build/server/chunks/_server.ts-BjSxqsHx.js.map +1 -0
  70. package/build/server/chunks/{_server.ts-sRxHDQa9.js → _server.ts-C7d7vtwn.js} +3 -2
  71. package/build/server/chunks/_server.ts-C7d7vtwn.js.map +1 -0
  72. package/build/server/chunks/{_server.ts-B-Tg4-8H.js → _server.ts-D9nBKsq1.js} +2 -2
  73. package/build/server/chunks/{_server.ts-B-Tg4-8H.js.map → _server.ts-D9nBKsq1.js.map} +1 -1
  74. package/build/server/chunks/_server.ts-DTGwAmWz.js +14 -0
  75. package/build/server/chunks/_server.ts-DTGwAmWz.js.map +1 -0
  76. package/build/server/chunks/{_server.ts-DLQy-IHP.js → _server.ts-DiMlmks0.js} +2 -2
  77. package/build/server/chunks/{_server.ts-DLQy-IHP.js.map → _server.ts-DiMlmks0.js.map} +1 -1
  78. package/build/server/chunks/{hooks.server-rdEjirDu.js → hooks.server-DigZpFgW.js} +4 -3
  79. package/build/server/chunks/{hooks.server-rdEjirDu.js.map → hooks.server-DigZpFgW.js.map} +1 -1
  80. package/build/server/chunks/{idle-timer-CouFy_WF.js → idle-timer-BshN5Svi.js} +3 -2
  81. package/build/server/chunks/idle-timer-BshN5Svi.js.map +1 -0
  82. package/build/server/chunks/{session-manager-Df52lIJ3.js → session-manager-scAVAR7S.js} +10 -12
  83. package/build/server/chunks/session-manager-scAVAR7S.js.map +1 -0
  84. package/build/server/index.js +2 -2
  85. package/build/server/index.js.map +1 -1
  86. package/build/server/manifest.js +12 -12
  87. package/build/server/manifest.js.map +1 -1
  88. package/dist/cli/commands/clean.js +31 -28
  89. package/dist/cli/commands/export.js +2 -6
  90. package/dist/cli/commands/feedback.js +2 -6
  91. package/dist/cli/commands/status.js +6 -10
  92. package/dist/cli/commands/stop.js +7 -16
  93. package/dist/cli/markdown-parser.js +0 -8
  94. package/dist/cli/markdown-to-plan.js +1 -42
  95. package/dist/cli/server-client.js +15 -21
  96. package/dist/cli/session-reader.js +12 -8
  97. package/dist/cli/session-resolver.js +10 -0
  98. package/dist/lib/server/session-manager.js +8 -9
  99. package/dist/lib/utils/status.js +53 -0
  100. package/package.json +1 -1
  101. package/build/client/_app/immutable/chunks/CT9cgEPP.js +0 -1
  102. package/build/client/_app/immutable/chunks/DcuidqoU.js +0 -1
  103. package/build/client/_app/immutable/chunks/JT4pIYWD.js +0 -3
  104. package/build/client/_app/immutable/entry/start.CfusPEA0.js +0 -1
  105. package/build/client/_app/immutable/nodes/3.C2JIlVS_.js +0 -1
  106. package/build/server/chunks/3-ChRVOXhH.js.map +0 -1
  107. package/build/server/chunks/_page.svelte-Bg0Bxr-a.js.map +0 -1
  108. package/build/server/chunks/_server.ts-5D7tHXsH.js +0 -15
  109. package/build/server/chunks/_server.ts-5D7tHXsH.js.map +0 -1
  110. package/build/server/chunks/_server.ts-C91-5A8I.js.map +0 -1
  111. package/build/server/chunks/_server.ts-CEtvrNT1.js.map +0 -1
  112. package/build/server/chunks/_server.ts-H4qb8W_h.js.map +0 -1
  113. package/build/server/chunks/_server.ts-VG3gOvsa.js +0 -14
  114. package/build/server/chunks/_server.ts-VG3gOvsa.js.map +0 -1
  115. package/build/server/chunks/_server.ts-sRxHDQa9.js.map +0 -1
  116. package/build/server/chunks/idle-timer-CouFy_WF.js.map +0 -1
  117. package/build/server/chunks/session-manager-Df52lIJ3.js.map +0 -1
package/README.md CHANGED
@@ -18,24 +18,28 @@ This will:
18
18
 
19
19
  | Command | Description |
20
20
  |---------|-------------|
21
+ | `plan-assistant init [--output <file>]` | Generate a plan template (stdout if no `--output`) |
21
22
  | `plan-assistant review <file>` | Parse and open plan for review |
22
23
  | `plan-assistant status <file-or-id>` | Check review status (exit codes: 0=approved, 3=needs-work, 4=reviewing, 5=no feedback) |
23
24
  | `plan-assistant feedback <file-or-id>` | Output feedback JSON |
24
- | `plan-assistant list` | List all sessions |
25
- | `plan-assistant init` | Generate a plan template |
26
- | `plan-assistant clean` | Remove orphaned sessions |
25
+ | `plan-assistant list [--dir <path>]` | List all sessions |
26
+ | `plan-assistant stop [<file-or-id>]` | Stop running server(s) |
27
+ | `plan-assistant clean [--all] [--older-than <dur>]` | Remove old/orphaned sessions |
27
28
  | `plan-assistant export <file-or-id>` | Export as self-contained HTML |
28
- | `plan-assistant help` | Show help |
29
+ | `plan-assistant help [format]` | Show help or plan format reference |
29
30
 
30
31
  ### Common flags
31
32
 
32
33
  - `--pretty` — Human-readable output (default: JSON for AI parsing)
33
- - `--port <N>` — Specific port for review server
34
- - `--wait`Block until feedback is submitted (status command)
35
- - `--unresolved` — Only show unresolved comments (feedback command)
36
- - `--phase <id>` Filter to a specific phase (feedback command)
37
- - `--dry-run` — Preview what would be removed (clean command)
38
- - `--output <file>` Write to file instead of stdout (init, export commands)
34
+ - `--port <N>` — Specific port for review server (review)
35
+ - `--host <H>` Hostname for browser URL, e.g. host IP when running in Docker (review)
36
+ - `--no-wait` — Don't wait for feedback, just start the server (review)
37
+ - `--reuse`Reuse an already-running server for another session (review)
38
+ - `--wait` — Block until feedback is submitted (status)
39
+ - `--unresolved`Only show unresolved comments (feedback)
40
+ - `--phase <id>` — Filter to a specific phase (feedback)
41
+ - `--dry-run` — Preview what would be removed (clean)
42
+ - `--output <file>` — Write to file instead of stdout (init, export)
39
43
 
40
44
  ## Features
41
45
 
@@ -252,6 +256,21 @@ Add `.plan-sessions/` to your `.gitignore`.
252
256
  npm install
253
257
  npm run dev # SvelteKit dev server on port 5199
254
258
  npm run build # Build CLI + server
255
- npm test # Run parser tests
256
- npm run check # Type check
259
+ npm run build:cli # CLI only (tsconfig.cli.json → bin/)
260
+ npm test # Vitest (parser, diff, status, export tests)
261
+ npm run check # svelte-check + TypeScript
262
+ ```
263
+
264
+ ### Architecture
265
+
266
+ ```
267
+ src/
268
+ cli/ CLI entry point, commands, markdown parser
269
+ lib/
270
+ components/ Svelte 5 components (plan/, feedback/)
271
+ stores/ Rune-based stores (plan, feedback)
272
+ server/ Session manager, file watcher, SSE, idle timer
273
+ types/ TypeScript type definitions
274
+ utils/ Diff engine, status helpers
275
+ routes/ SvelteKit pages and API routes
257
276
  ```
@@ -1,4 +1,4 @@
1
- import{g as qt}from"./D82Ibe2Y.js";import{_ as m,n as Ot,l as t1,c as b1,d as S1,o as Ht,r as Xt,u as it,b as Qt,s as Jt,p as Zt,a as $t,g as te,q as ee,k as se,t as ie,J as re,v as ae,x as st,y as ne,z as ue,A as oe}from"./DwtNXPRV.js";import{g as le}from"./B5dqmTZt.js";import{s as ce}from"./Bv2Fvpd-.js";import{c as he}from"./DcuidqoU.js";var de="flowchart-",P1,pe=(P1=class{constructor(){this.vertexCounter=0,this.config=b1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Qt,this.setAccDescription=Jt,this.setDiagramTitle=Zt,this.getAccTitle=$t,this.getAccDescription=te,this.getDiagramTitle=ee,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return se.sanitizeText(i,this.config)}lookUpDomId(i){for(const a of this.vertices.values())if(a.id===i)return a.domId;return i}addVertex(i,a,n,u,o,f,c={},A){var L,C;if(!i||i.trim().length===0)return;let r;if(A!==void 0){let d;A.includes(`
1
+ import{g as qt}from"./Drf3oeac.js";import{_ as m,n as Ot,l as t1,c as b1,d as S1,o as Ht,r as Xt,u as it,b as Qt,s as Jt,p as Zt,a as $t,g as te,q as ee,k as se,t as ie,J as re,v as ae,x as st,y as ne,z as ue,A as oe}from"./DqaGnr0n.js";import{g as le}from"./qFFXeAvY.js";import{s as ce}from"./BkkBWYh4.js";import{c as he}from"./AMggw8F_.js";var de="flowchart-",P1,pe=(P1=class{constructor(){this.vertexCounter=0,this.config=b1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Qt,this.setAccDescription=Jt,this.setDiagramTitle=Zt,this.getAccTitle=$t,this.getAccDescription=te,this.getDiagramTitle=ee,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return se.sanitizeText(i,this.config)}lookUpDomId(i){for(const a of this.vertices.values())if(a.id===i)return a.domId;return i}addVertex(i,a,n,u,o,f,c={},A){var L,C;if(!i||i.trim().length===0)return;let r;if(A!==void 0){let d;A.includes(`
2
2
  `)?d=A+`
3
3
  `:d=`{
4
4
  `+A+`
@@ -0,0 +1 @@
1
+ import{ap as o,aq as n}from"./DqaGnr0n.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};