@macintacos/caret 0.3.0 → 0.4.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 (98) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +49 -14
  3. package/commands/discovery.md +1 -1
  4. package/dist/cli.js +1600 -200
  5. package/opencode/caret.plugin.ts +238 -14
  6. package/opencode/index.ts +8 -0
  7. package/package.json +10 -2
  8. package/ui/dist/assets/{angular-html-B6NJ8Crx.js → angular-html-kKPIob-B.js} +1 -1
  9. package/ui/dist/assets/{angular-ts-FdEJue4l.js → angular-ts-CKjP4O1R.js} +1 -1
  10. package/ui/dist/assets/{apl-8jCzQ5pt.js → apl-DCRQgCPD.js} +1 -1
  11. package/ui/dist/assets/{astro-D6Uv3Zd6.js → astro-BYbWYON5.js} +1 -1
  12. package/ui/dist/assets/{blade-DdLBtQgs.js → blade-CwhP_dxJ.js} +1 -1
  13. package/ui/dist/assets/{c-BtgVJzRT.js → c-CJEVusFw.js} +1 -1
  14. package/ui/dist/assets/{cobol-BOF3ihbS.js → cobol-DIBOqviT.js} +1 -1
  15. package/ui/dist/assets/{coffee-Br1deUOy.js → coffee-BS7TY60J.js} +1 -1
  16. package/ui/dist/assets/{cpp-BuRF7xA8.js → cpp-D1DVYlIO.js} +1 -1
  17. package/ui/dist/assets/{crystal-C2zE7OWx.js → crystal-1wNBwJ9X.js} +1 -1
  18. package/ui/dist/assets/{css-iBwOFG5O.js → css-DcRg7BqA.js} +1 -1
  19. package/ui/dist/assets/{dist-CtqCYfGw.js → dist-BPvuZVb2.js} +1 -1
  20. package/ui/dist/assets/{dist-C4FPvSXr.js → dist-BeSPrXBn.js} +1 -1
  21. package/ui/dist/assets/{dist-DIdA1vYB.js → dist-Bm-_E_MU.js} +1 -1
  22. package/ui/dist/assets/{dist-jmyqwp8P.js → dist-Buh6GXb2.js} +1 -1
  23. package/ui/dist/assets/{dist--moZHrIw.js → dist-C0x7GorT.js} +1 -1
  24. package/ui/dist/assets/{dist-Dm7ikdu5.js → dist-C2049AtS.js} +1 -1
  25. package/ui/dist/assets/{dist-zkfAcw6C.js → dist-C7ysmu-x.js} +1 -1
  26. package/ui/dist/assets/{dist-D2IYj7rL.js → dist-CA76eI1h.js} +1 -1
  27. package/ui/dist/assets/{dist-DhFSo_KF.js → dist-CZ-hU0oG.js} +1 -1
  28. package/ui/dist/assets/{dist-Diqv5yoL.js → dist-Cyz1Y8uV.js} +1 -1
  29. package/ui/dist/assets/{dist-DheG7L5T.js → dist-CzDZ2KMv.js} +1 -1
  30. package/ui/dist/assets/{dist-DXeIzOJW.js → dist-DBvtZoff.js} +1 -1
  31. package/ui/dist/assets/{dist-CDXacocg.js → dist-DNG5YE4w.js} +1 -1
  32. package/ui/dist/assets/{dist-DvWv2GjQ.js → dist-DPr7mnLy.js} +1 -1
  33. package/ui/dist/assets/{dist-DSFoRH4B.js → dist-Dhe__fm5.js} +1 -1
  34. package/ui/dist/assets/{dist-D0u8lgi2.js → dist-afCEYO1j.js} +1 -1
  35. package/ui/dist/assets/{dist-CsIQFmL2.js → dist-fAkxRpOI.js} +1 -1
  36. package/ui/dist/assets/{edge-C8C1WH_b.js → edge-DhG5RI3d.js} +1 -1
  37. package/ui/dist/assets/{elixir-ChioPNrw.js → elixir-k8JKnHNU.js} +1 -1
  38. package/ui/dist/assets/{elm-DrMVy3GL.js → elm-BCt58sPl.js} +1 -1
  39. package/ui/dist/assets/{erb-B3LvCl6V.js → erb-gEaFK19o.js} +1 -1
  40. package/ui/dist/assets/{git-rebase-Bv1Z90mV.js → git-rebase-PGNnuu_q.js} +1 -1
  41. package/ui/dist/assets/{glimmer-js-_Cj2ZxqT.js → glimmer-js-BShMa8kS.js} +1 -1
  42. package/ui/dist/assets/{glimmer-ts-eeir-ofz.js → glimmer-ts-BBjvNufU.js} +1 -1
  43. package/ui/dist/assets/{glsl-Zcj4mBmc.js → glsl-CVu5XUh6.js} +1 -1
  44. package/ui/dist/assets/{graphql-DcI0CImY.js → graphql-CpSUkXDO.js} +1 -1
  45. package/ui/dist/assets/{hack-CRMO6OEY.js → hack-vYYr_EuM.js} +1 -1
  46. package/ui/dist/assets/{haml-vpaJ2U9N.js → haml-aiyqEFS_.js} +1 -1
  47. package/ui/dist/assets/{handlebars-BmRnoKX5.js → handlebars-vKdd7ZE6.js} +1 -1
  48. package/ui/dist/assets/{html-CWopqLKh.js → html-BSDB9v3Y.js} +1 -1
  49. package/ui/dist/assets/{html-derivative-kjil5-1g.js → html-derivative-V8cBpxuT.js} +1 -1
  50. package/ui/dist/assets/{http-BsiD1_wo.js → http-DXSNVmLc.js} +1 -1
  51. package/ui/dist/assets/{hurl-BSOSzca8.js → hurl-eKV70JUb.js} +1 -1
  52. package/ui/dist/assets/{index-anQLM8ZA.js → index-C3YoPLgV.js} +4 -4
  53. package/ui/dist/assets/{java-B3dX7M_O.js → java-DGolWD2l.js} +1 -1
  54. package/ui/dist/assets/{javascript-FM1qUZzw.js → javascript-DcKrb1R6.js} +1 -1
  55. package/ui/dist/assets/{jinja-DVVPq-Qq.js → jinja-O0MduF1V.js} +1 -1
  56. package/ui/dist/assets/{jison-DZjXlKnT.js → jison-BGBc5HtG.js} +1 -1
  57. package/ui/dist/assets/{json-psWWRfU7.js → json-B-Q47BuG.js} +1 -1
  58. package/ui/dist/assets/{jsx-Bv0NBlC9.js → jsx-B__N5PZx.js} +1 -1
  59. package/ui/dist/assets/{julia-DRPZCNs5.js → julia-BfiIt3AD.js} +1 -1
  60. package/ui/dist/assets/{just-CznON7Md.js → just-CN940-eY.js} +1 -1
  61. package/ui/dist/assets/{latex-99tFYwaR.js → latex-wUKEeqEd.js} +1 -1
  62. package/ui/dist/assets/{liquid-8z3tzRYn.js → liquid-D2cnd1Ez.js} +1 -1
  63. package/ui/dist/assets/{lua-BZoKCS17.js → lua-BQiIdljT.js} +1 -1
  64. package/ui/dist/assets/{marko-BU9z-RZr.js → marko-BCqypbre.js} +1 -1
  65. package/ui/dist/assets/{mdc-C38yLzkY.js → mdc-105-eiCZ.js} +1 -1
  66. package/ui/dist/assets/{nginx-UMVInepI.js → nginx-C5dkaLo6.js} +1 -1
  67. package/ui/dist/assets/{nim-Du4jXclQ.js → nim-RJQN31Xa.js} +1 -1
  68. package/ui/dist/assets/{perl-CoEbwzPf.js → perl-DZkWjug_.js} +1 -1
  69. package/ui/dist/assets/{php-ubTDGUam.js → php-OoKYDxlw.js} +1 -1
  70. package/ui/dist/assets/{pug-Bmsmvvm7.js → pug-CDXuXfau.js} +1 -1
  71. package/ui/dist/assets/{qml-YXj-z032.js → qml-BSj8AX1e.js} +1 -1
  72. package/ui/dist/assets/{r-BNkIpWO8.js → r-DlO747T6.js} +1 -1
  73. package/ui/dist/assets/{razor-ZM--hAhl.js → razor-D1gVuaXL.js} +1 -1
  74. package/ui/dist/assets/{regexp-CHr2m78T.js → regexp-CGVqhulu.js} +1 -1
  75. package/ui/dist/assets/{rst-Xx0XAo8H.js → rst-DtURuW7a.js} +1 -1
  76. package/ui/dist/assets/{ruby-BWgyGqGH.js → ruby-Bc3kUlvr.js} +1 -1
  77. package/ui/dist/assets/{sas-CwTmTlh0.js → sas-CFQgZChj.js} +1 -1
  78. package/ui/dist/assets/{scss-DNgS20lR.js → scss-B8cq7hhb.js} +1 -1
  79. package/ui/dist/assets/{shellscript-Dkezxj03.js → shellscript-C_GHS-ym.js} +1 -1
  80. package/ui/dist/assets/{shellsession-D6yCCjOL.js → shellsession-CTplGpC8.js} +1 -1
  81. package/ui/dist/assets/{soy-lzhm7a9Y.js → soy-BgD_ErAN.js} +1 -1
  82. package/ui/dist/assets/{sql-Yo8AWGPM.js → sql-BnGnr4ii.js} +1 -1
  83. package/ui/dist/assets/{stata-D62k9gHq.js → stata-qCQsVpGc.js} +1 -1
  84. package/ui/dist/assets/{surrealql-qp-qEg-3.js → surrealql-BqH_LSaF.js} +1 -1
  85. package/ui/dist/assets/{svelte-DLztoC2n.js → svelte-Bu1vTtJQ.js} +1 -1
  86. package/ui/dist/assets/{templ-Cu6WsZcl.js → templ-B5jQzs9l.js} +1 -1
  87. package/ui/dist/assets/{tex-CqZU9zkk.js → tex-BJ-wZPSn.js} +1 -1
  88. package/ui/dist/assets/{ts-tags-ClqaCWh2.js → ts-tags-DuLm-TvJ.js} +1 -1
  89. package/ui/dist/assets/{tsx-Cj58ow-S.js → tsx-BPiBkGlY.js} +1 -1
  90. package/ui/dist/assets/{twig-CgaKnAdg.js → twig-CdQnHxAS.js} +1 -1
  91. package/ui/dist/assets/{typescript-CKElJ_dH.js → typescript-Dp_zdoqe.js} +1 -1
  92. package/ui/dist/assets/{vue-DtckUkhv.js → vue-BmKvlxSZ.js} +1 -1
  93. package/ui/dist/assets/{vue-html-Cqq7SmCi.js → vue-html-CizabNef.js} +1 -1
  94. package/ui/dist/assets/{vue-vine-Dp4BXiQa.js → vue-vine-JH1Msnx4.js} +1 -1
  95. package/ui/dist/assets/{xml-C3UNSSfc.js → xml-DW7DdZow.js} +1 -1
  96. package/ui/dist/assets/{xsl-BL_LCJsy.js → xsl-6zDkD8bR.js} +1 -1
  97. package/ui/dist/assets/{yaml-CD_CHV62.js → yaml-W1qZ5vOg.js} +1 -1
  98. package/ui/dist/index.html +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "caret",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Review, annotate, and approve Claude Code plans in a local web UI.",
5
5
  "author": { "name": "macintacos" },
6
6
  "homepage": "https://github.com/macintacos/caret",
package/README.md CHANGED
@@ -22,8 +22,24 @@ _Review-UI screenshots coming soon._
22
22
 
23
23
  ## Install
24
24
 
25
- caret needs [`bun`](https://bun.sh) on your `PATH` — it runs from a `bun` bundle — plus
26
- the [`claude`](https://claude.com/claude-code) CLI you already have.
25
+ caret needs [`bun`](https://bun.sh) on your `PATH` — it runs from a `bun` bundle.
26
+
27
+ The quickest path is the one-shot installer. It registers the _published_ caret with
28
+ whichever agents you have — [Claude Code](https://claude.com/claude-code) and/or
29
+ [OpenCode](https://opencode.ai) — installing prebuilt artifacts, with no `git clone` and
30
+ no compile step:
31
+
32
+ ```sh
33
+ curl -fsSL https://raw.githubusercontent.com/macintacos/caret/trunk/scripts/install.sh | bash
34
+ ```
35
+
36
+ It detects which agents are present and installs into each (into both when both are
37
+ there). Set `CARET_AGENTS=claude` or `CARET_AGENTS=claude,opencode` to choose
38
+ non-interactively, or `CARET_DRY_RUN=1` to preview the exact commands without changing
39
+ anything. Restart the agent afterward, then try `/caret:demo`.
40
+
41
+ Prefer to run the steps yourself? The per-agent instructions below are exactly what the
42
+ installer automates.
27
43
 
28
44
  ### Claude Code
29
45
 
@@ -52,22 +68,41 @@ claude plugin marketplace remove caret
52
68
 
53
69
  ### OpenCode
54
70
 
55
- caret also installs into [OpenCode](https://opencode.ai), as an auto-loaded plugin. The
56
- script installer detects OpenCode (and, if you also have Claude Code, asks which to
57
- install into — or set `CARET_AGENTS`):
71
+ caret installs into [OpenCode](https://opencode.ai) as a first-class
72
+ [plugin](https://opencode.ai/docs/plugins/): add its package to your OpenCode `plugin`
73
+ array and restart OpenCode once.
74
+
75
+ ```jsonc
76
+ // ~/.config/opencode/opencode.json
77
+ { "plugin": ["@macintacos/caret"] }
78
+ ```
79
+
80
+ On its next start OpenCode installs `@macintacos/caret` (and its one dependency) into its
81
+ own cache and loads it — no separate caret install, though it still needs
82
+ [`bun`](https://bun.sh) on your `PATH`. From then on, when OpenCode's Plan agent presents
83
+ a plan, caret opens it for review just as it does for Claude Code.
84
+
85
+ Want the `/caret:demo`, `/caret:discovery`, and `/caret:debug` slash commands too — or
86
+ prefer not to hand-edit the config? Run the published package's installer, which adds the
87
+ array entry and drops the command files for you:
58
88
 
59
89
  ```sh
60
- curl -fsSL https://raw.githubusercontent.com/macintacos/caret/trunk/scripts/install.sh \
61
- | CARET_AGENTS=opencode bash
90
+ bunx --no-cache @macintacos/caret@latest install --target opencode
62
91
  ```
63
92
 
64
- The installer drops a `caret.ts` plugin plus the `/caret:demo`, `/caret:discovery`, and
65
- `/caret:debug` commands into your OpenCode config dir, along with a `package.json` for its
66
- one dependency (`@opencode-ai/plugin`) — it never touches your existing `plugin` config
67
- array. **Restart OpenCode once** after installing (plugins load at startup), then
68
- `/caret:demo` works. Approving or requesting changes flows back exactly as in Claude Code.
69
- **Update** by re-running the installer; **uninstall** with
70
- `caret install-opencode --uninstall` (which also removes that `package.json` entry). See
93
+ The [one-shot installer](#install) above does the same as part of its run (and its
94
+ `CARET_AGENTS=opencode,claude` covers both agents at once). If you already have the caret
95
+ binary on your `PATH` — from `npm i -g @macintacos/caret`, say —
96
+ `caret install --target opencode` works too.
97
+
98
+ **Update**: caret checks its
99
+ [latest release](https://github.com/macintacos/caret/releases) at OpenCode startup and
100
+ toasts you when a newer version is available. To take it, delete OpenCode's cached copy of
101
+ caret and restart — `rm -rf ~/.cache/opencode/node_modules/@macintacos/caret` makes
102
+ OpenCode reinstall the latest on its next start. (Prefer to control the version yourself?
103
+ Pin it in the array — `"@macintacos/caret@<version>"` — and bump that when you want to
104
+ move.) **Uninstall**: remove the array entry, or run
105
+ `bunx --no-cache @macintacos/caret@latest install --target opencode --uninstall`. See
71
106
  [`doc/ADVANCED.md`](doc/ADVANCED.md#the-opencode-adapter) for how the integration works.
72
107
 
73
108
  ## Using caret
@@ -32,4 +32,4 @@ rather than treating it as a failure of this command.
32
32
  If the command exits non-zero, no report could be produced at all: present the exit code
33
33
  and stderr instead, and suggest `/caret:debug` for log-side diagnosis. If the binary
34
34
  itself is missing (a source checkout that has never been built), say so and point at
35
- `scripts/install.sh` or `mise run build`.
35
+ `mise run build` (or `mise run build --install`).