@cortexkit/aft 0.57.1 → 0.58.0

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 (50) hide show
  1. package/dist/adapters/opencode.d.ts +27 -0
  2. package/dist/adapters/opencode.d.ts.map +1 -1
  3. package/dist/adapters/pi.d.ts.map +1 -1
  4. package/dist/adapters/types.d.ts +14 -0
  5. package/dist/adapters/types.d.ts.map +1 -1
  6. package/dist/commands/backups.d.ts +7 -0
  7. package/dist/commands/backups.d.ts.map +1 -0
  8. package/dist/commands/doctor.d.ts +35 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/index.d.ts.map +1 -1
  11. package/dist/commands/setup.d.ts +26 -0
  12. package/dist/commands/setup.d.ts.map +1 -1
  13. package/dist/doctor/features.d.ts +39 -0
  14. package/dist/doctor/features.d.ts.map +1 -0
  15. package/dist/doctor/opencode.d.ts +10 -0
  16. package/dist/doctor/opencode.d.ts.map +1 -1
  17. package/dist/index.js +3442 -732
  18. package/dist/lib/binary-install.d.ts +42 -0
  19. package/dist/lib/binary-install.d.ts.map +1 -0
  20. package/dist/lib/binary-probe.d.ts.map +1 -1
  21. package/dist/lib/bridge-tool-failures.d.ts.map +1 -1
  22. package/dist/lib/cli-logger.d.ts +34 -0
  23. package/dist/lib/cli-logger.d.ts.map +1 -0
  24. package/dist/lib/config-migration.d.ts +37 -0
  25. package/dist/lib/config-migration.d.ts.map +1 -0
  26. package/dist/lib/diagnostics.d.ts +14 -1
  27. package/dist/lib/diagnostics.d.ts.map +1 -1
  28. package/dist/lib/feature-plan.d.ts +111 -0
  29. package/dist/lib/feature-plan.d.ts.map +1 -0
  30. package/dist/lib/fs-errors.d.ts +34 -0
  31. package/dist/lib/fs-errors.d.ts.map +1 -0
  32. package/dist/lib/jsonc.d.ts.map +1 -1
  33. package/dist/lib/omp-helpers.d.ts +1 -1
  34. package/dist/lib/omp-helpers.d.ts.map +1 -1
  35. package/dist/lib/onnx-fix.d.ts.map +1 -1
  36. package/dist/lib/onnx.d.ts +18 -0
  37. package/dist/lib/onnx.d.ts.map +1 -1
  38. package/dist/lib/plugin-load.d.ts +51 -0
  39. package/dist/lib/plugin-load.d.ts.map +1 -0
  40. package/dist/lib/sanitize.d.ts +6 -0
  41. package/dist/lib/sanitize.d.ts.map +1 -1
  42. package/dist/setup/feature-list.d.ts +89 -0
  43. package/dist/setup/feature-list.d.ts.map +1 -0
  44. package/dist/setup/feature-wizard.d.ts +69 -0
  45. package/dist/setup/feature-wizard.d.ts.map +1 -0
  46. package/dist/setup/host-generation.d.ts +6 -0
  47. package/dist/setup/host-generation.d.ts.map +1 -1
  48. package/dist/setup/opencode-config.d.ts +53 -0
  49. package/dist/setup/opencode-config.d.ts.map +1 -1
  50. package/package.json +3 -2
@@ -28,10 +28,37 @@ export declare class OpenCodeAdapter implements HarnessAdapter {
28
28
  * Register the TUI sidebar plugin in tui.json(c). Only setup/doctor call
29
29
  * this: the plugin itself must never auto-inject the entry at load time,
30
30
  * because that silently undoes a user's deliberate removal on every launch.
31
+ *
32
+ * V1 only. OpenCode 2 resolves a TUI plugin from the package's own `tui`
33
+ * entrypoint, so there is nothing to register: the GA CLI (checked against
34
+ * 2.0.14) contains no reference to `tui.json` or `tui.jsonc` at all. Writing
35
+ * the file there left a config the host never reads, which reads to a user
36
+ * like a setup step that did something.
31
37
  */
32
38
  ensureTuiPluginEntry(): Promise<PluginEntryResult>;
39
+ tuiPluginEntryApplies(): boolean;
33
40
  needsTuiPluginEntryUpdate(): boolean;
34
41
  private ensureConfigEntry;
42
+ /**
43
+ * Whether OpenCode 2's built-in shell tool plugin is removed in the server
44
+ * config. `not_applicable` on any host that is not known to be OpenCode 2:
45
+ * OpenCode 1 has no such plugin, and an unresolved generation must not be
46
+ * guessed at.
47
+ */
48
+ hostShellState(): "disabled" | "enabled" | "not_applicable";
49
+ /** Whether the user AFT config leaves AFT's bash registered and runnable. */
50
+ aftBashEnabled(): boolean;
51
+ /**
52
+ * Add (`disabled: true`) or remove the `-opencode.tool.shell` entry in the
53
+ * OpenCode 2 server config. Idempotent; refuses on any other generation.
54
+ */
55
+ setHostShellDisabled(disabled: boolean): PluginEntryResult;
56
+ /**
57
+ * Run a config write, turning a filesystem failure into an error result.
58
+ * A host installed with `sudo npm i -g` can leave its config directory owned
59
+ * by root; setup and doctor must report that with the fix, not crash.
60
+ */
61
+ private tryWrite;
35
62
  private configEntryNeedsUpdate;
36
63
  getPluginCacheInfo(): PluginCacheInfo;
37
64
  getStorageDir(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAYrC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAgKpB,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,WAAW,cAAc;IAClC,QAAQ,CAAC,iBAAiB,6BAAe;IACzC,QAAQ,CAAC,sBAAsB,SAAgB;IAC/C,OAAO,CAAC,aAAa,CAAoC;IAEzD,WAAW,IAAI,OAAO;IAatB,oBAAoB,IAAI,qBAAqB;IAK7C;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAIxD,OAAO,CAAC,gBAAgB;IAIxB,cAAc,IAAI,MAAM,GAAG,IAAI;IAO/B,iBAAiB,IAAI,kBAAkB;IAqBvC,cAAc,IAAI,OAAO;IAMnB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKrD,sBAAsB,IAAI,OAAO;IAKjC,iBAAiB,IAAI,OAAO;IAO5B;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAaxD,yBAAyB,IAAI,OAAO;IAOpC,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,sBAAsB;IAe9B,kBAAkB,IAAI,eAAe;IAgCrC,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIlB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAC9C,MAAM,EACF,SAAS,GACT,qBAAqB,GACrB,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IAgDF,qEAAqE;IACrE,mBAAmB,IAAI,MAAM;IAI7B,mEAAmE;IACnE,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWlD"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/adapters/opencode.ts"],"names":[],"mappings":"AAgBA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AAgBrC,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAgKpB,qBAAa,eAAgB,YAAW,cAAc;IACpD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,WAAW,cAAc;IAClC,QAAQ,CAAC,iBAAiB,6BAAe;IACzC,QAAQ,CAAC,sBAAsB,SAAgB;IAC/C,OAAO,CAAC,aAAa,CAAoC;IAEzD,WAAW,IAAI,OAAO;IAatB,oBAAoB,IAAI,qBAAqB;IAK7C;;;;;;;OAOG;IACH,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAIxD,OAAO,CAAC,gBAAgB;IAIxB,cAAc,IAAI,MAAM,GAAG,IAAI;IAO/B,iBAAiB,IAAI,kBAAkB;IAqBvC,cAAc,IAAI,OAAO;IAMnB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAKrD,sBAAsB,IAAI,OAAO;IAKjC,iBAAiB,IAAI,OAAO;IAO5B;;;;;;;;;;OAUG;IACG,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAsBxD,qBAAqB,IAAI,OAAO;IAIhC,yBAAyB,IAAI,OAAO;IAWpC,OAAO,CAAC,iBAAiB;IAuDzB;;;;;OAKG;IACH,cAAc,IAAI,UAAU,GAAG,SAAS,GAAG,gBAAgB;IAM3D,6EAA6E;IAC7E,cAAc,IAAI,OAAO;IAKzB;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,iBAAiB;IA0D1D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,sBAAsB;IAe9B,kBAAkB,IAAI,eAAe;IAiCrC,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIlB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAC9C,MAAM,EACF,SAAS,GACT,qBAAqB,GACrB,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IAgDF,qEAAqE;IACrE,mBAAmB,IAAI,MAAM;IAI7B,mEAAmE;IACnE,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWlD"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/adapters/pi.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA+IpB,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;IAC9B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,iBAAiB,uBAAe;IACzC,QAAQ,CAAC,sBAAsB,2BAAgB;IAE/C,WAAW,IAAI,OAAO;IAUtB,cAAc,IAAI,MAAM,GAAG,IAAI;IAwB/B,iBAAiB,IAAI,kBAAkB;IAoBvC,cAAc,IAAI,OAAO;IAInB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmCrD,kBAAkB,IAAI,eAAe;IA+BrC,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIlB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;QAC/C,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC;QAC5E,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAUF,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWlD"}
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../src/adapters/pi.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA+IpB,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,IAAI,EAAG,IAAI,CAAU;IAC9B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,iBAAiB,uBAAe;IACzC,QAAQ,CAAC,sBAAsB,2BAAgB;IAE/C,WAAW,IAAI,OAAO;IAUtB,cAAc,IAAI,MAAM,GAAG,IAAI;IAwB/B,iBAAiB,IAAI,kBAAkB;IAoBvC,cAAc,IAAI,OAAO;IAInB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmCrD,kBAAkB,IAAI,eAAe;IA+BrC,aAAa,IAAI,MAAM;IAIvB,UAAU,IAAI,MAAM;IAIpB,cAAc,IAAI,MAAM;IAIlB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;QAC/C,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC;QAC5E,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAUF,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWlD"}
@@ -30,6 +30,14 @@ export interface PluginCacheInfo {
30
30
  cached?: string;
31
31
  latest?: string;
32
32
  exists: boolean;
33
+ /**
34
+ * The npm registration the harness config holds for the plugin, exactly as
35
+ * written (for example `@cortexkit/aft-opencode` or
36
+ * `@cortexkit/aft-opencode@0.57.2`). Only OpenCode reports it; doctor uses it
37
+ * to say whether `doctor --fix` must pin the entry as well as update the
38
+ * plugin.
39
+ */
40
+ configuredEntry?: string;
33
41
  }
34
42
  export interface PluginEntryResult {
35
43
  /** True if the plugin was added or was already present. */
@@ -71,6 +79,12 @@ export interface HarnessAdapter {
71
79
  */
72
80
  hasTuiPluginEntry?(): boolean;
73
81
  ensureTuiPluginEntry?(): Promise<PluginEntryResult>;
82
+ /**
83
+ * Whether this host reads a TUI config entry at all. OpenCode 2 loads the
84
+ * TUI plugin from the package's own entrypoint, so a missing tui.json entry
85
+ * there is not something to repair. Absent means the entry applies.
86
+ */
87
+ tuiPluginEntryApplies?(): boolean;
74
88
  getPluginCacheInfo(): PluginCacheInfo;
75
89
  getStorageDir(): string;
76
90
  getLogFile(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC;IACvB,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAEhC,iBAAiB,IAAI,kBAAkB,CAAC;IAExC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC;IAE1B;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEhD;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,OAAO,CAAC;IAC9B,oBAAoB,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpD,kBAAkB,IAAI,eAAe,CAAC;IACtC,aAAa,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,MAAM,CAAC;IAErB,yDAAyD;IACzD,cAAc,IAAI,MAAM,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QACxC,MAAM,EACF,SAAS,GACT,qBAAqB,GACrB,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mIAAmI;QACnI,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/C,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3C,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,OAAO,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC;;;;;OAKG;IACH,WAAW,IAAI,OAAO,CAAC;IACvB,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAEhC,iBAAiB,IAAI,kBAAkB,CAAC;IAExC;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAAC;IAE1B;;;OAGG;IACH,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEhD;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,OAAO,CAAC;IAC9B,oBAAoB,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpD;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,OAAO,CAAC;IAElC,kBAAkB,IAAI,eAAe,CAAC;IACtC,aAAa,IAAI,MAAM,CAAC;IACxB,UAAU,IAAI,MAAM,CAAC;IAErB,yDAAyD;IACzD,cAAc,IAAI,MAAM,CAAC;IAEzB;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QACxC,MAAM,EACF,SAAS,GACT,qBAAqB,GACrB,YAAY,GACZ,WAAW,GACX,gBAAgB,GAChB,OAAO,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,mIAAmI;QACnI,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC,CAAC;CACJ"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Forward `backups <subcommand>` to the native binary. The Rust command owns
3
+ * argument validation, the dry-run default, and routing the purge through a
4
+ * running AFT daemon, so this wrapper adds no behavior of its own.
5
+ */
6
+ export declare function runBackups(argv: string[]): number;
7
+ //# sourceMappingURL=backups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backups.d.ts","sourceRoot":"","sources":["../../src/commands/backups.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAgBjD"}
@@ -1,8 +1,12 @@
1
1
  import type { HarnessAdapter } from "../adapters/types.js";
2
+ import { type GitState } from "../doctor/features.js";
3
+ import { type BinaryDownloader } from "../lib/binary-install.js";
2
4
  import { collectDiagnostics, type DiagnosticReport } from "../lib/diagnostics.js";
5
+ import { type NativeRunner } from "../lib/feature-plan.js";
3
6
  import { resolveAdaptersForCommand } from "../lib/harness-select.js";
4
7
  import { type ClearResult } from "../lib/lsp-cache.js";
5
8
  import { runOnnxFix } from "../lib/onnx-fix.js";
9
+ import { type FeatureSetupDeps, type GhStatus } from "../setup/feature-wizard.js";
6
10
  import { type OpenCodeHostDetection } from "../setup/host-generation.js";
7
11
  export type DoctorClearTarget = "plugin-cache" | "lsp-cache" | "binary-cache";
8
12
  export declare const DOCTOR_CLEAR_TARGET_OPTIONS: {
@@ -23,6 +27,18 @@ export interface DoctorOptions {
23
27
  detectOpenCodeHost?: () => OpenCodeHostDetection;
24
28
  /** Optional ONNX repair override lets tests exercise --fix without a download. */
25
29
  applyOnnxFix?: typeof runOnnxFix;
30
+ /** `doctor --reconfigure`: rerun the feature wizard. */
31
+ reconfigure?: boolean;
32
+ /** Native binary runner for the feature plan and config migration (tests stub it). */
33
+ runNative?: NativeRunner;
34
+ /** Overrides for the reconfigure wizard's prompts. */
35
+ features?: FeatureSetupDeps;
36
+ /** Binary downloader for --fix (tests stub it). */
37
+ downloadBinary?: BinaryDownloader;
38
+ /** `npm install` runner for the --fix plugin update (tests stub it). */
39
+ runNpmInstall?: PluginNpmInstaller;
40
+ /** GitHub CLI check for the GitHub read/write report (tests stub it). */
41
+ checkGh?: () => GhStatus;
26
42
  }
27
43
  export interface RemovalHealth {
28
44
  available: boolean;
@@ -33,6 +49,11 @@ export interface RemovalHealth {
33
49
  runningBackgroundTasks?: number;
34
50
  undoHistorySessions?: number;
35
51
  message?: string;
52
+ /**
53
+ * Whether AFT may run git. The same status request that reports removal
54
+ * state carries it, so doctor learns it without a second binary call.
55
+ */
56
+ git?: GitState;
36
57
  }
37
58
  export interface CacheClearSummary {
38
59
  hadErrors: boolean;
@@ -61,6 +82,8 @@ export declare function buildDoctorProfileArgs(argv: string[]): string[];
61
82
  /** Run the native sampler directly so doctor does not add its normal diagnostics output. */
62
83
  export declare function runDoctorProfile(argv: string[]): number;
63
84
  export declare function runDoctor(options: DoctorOptions): Promise<number>;
85
+ /** The doctor invocation as the user typed it, for the run's header. */
86
+ export declare function doctorCommandLine(argv: string[]): string;
64
87
  declare function collectRemovalHealth(adapters: HarnessAdapter[]): Promise<RemovalHealth>;
65
88
  /** Render AFT's durable removal costs; the section is shown even when state is unavailable. */
66
89
  export declare function renderRemovalSection(health: RemovalHealth): string[];
@@ -89,10 +112,21 @@ export interface BinaryCacheClearResult {
89
112
  keptVersion: string | null;
90
113
  }
91
114
  export declare function clearOldBinaries(): BinaryCacheClearResult;
115
+ /**
116
+ * The doctor line for OpenCode 2's built-in shell tool plugin, or null on any
117
+ * other host. A warning only when AFT's bash is enabled and the host's shell is
118
+ * still there beside it; `doctor --fix` and `aft setup` disable it then.
119
+ */
120
+ export declare function hostShellDoctorLine(adapter: HarnessAdapter | undefined): {
121
+ level: "info" | "warn";
122
+ text: string;
123
+ } | null;
92
124
  export interface DoctorFixPlanItem {
93
- kind: "plugin" | "plugin-update" | "binary" | "onnx" | "storage" | "schema";
125
+ kind: "plugin" | "plugin-update" | "binary" | "onnx" | "storage" | "schema" | "config";
94
126
  message: string;
95
127
  }
128
+ /** Runs `npm install` in a plugin cache directory; tests stub it. */
129
+ export type PluginNpmInstaller = (installDir: string) => Promise<void>;
96
130
  export declare function buildDoctorFixPlan(adapters: HarnessAdapter[], report: DiagnosticReport): DoctorFixPlanItem[];
97
131
  export declare function shouldSkipDoctorFixConfirmation(argv: string[]): boolean;
98
132
  export declare function doctorSkewBinaryDownloadDecision(argv: string[]): "prompt" | "proceed" | "skip";
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAgB/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAgB/C"}
@@ -1,8 +1,34 @@
1
+ import { OpenCodeAdapter } from "../adapters/opencode.js";
2
+ import { type BinaryDownloader } from "../lib/binary-install.js";
1
3
  import { resolveAdaptersForCommand } from "../lib/harness-select.js";
4
+ import { type FeatureSetupDeps } from "../setup/feature-wizard.js";
2
5
  import { type OpenCodeHostDetection } from "../setup/host-generation.js";
3
6
  export interface SetupOptions {
4
7
  resolveAdapters?: typeof resolveAdaptersForCommand;
5
8
  detectOpenCodeHost?: () => OpenCodeHostDetection;
9
+ /** Overrides for the feature step (native runner, prompts). */
10
+ features?: FeatureSetupDeps;
11
+ /** Path of an installed binary matching this CLI, or null (tests stub it). */
12
+ findBinary?: (version: string) => string | null;
13
+ /** Binary downloader (tests stub it; defaults to the one doctor --fix uses). */
14
+ downloadBinary?: BinaryDownloader;
15
+ /** Answers the OpenCode 2 host-shell question (tests stub it; defaults to a prompt). */
16
+ confirmHostShell?: (message: string, defaultYes: boolean) => Promise<boolean>;
17
+ /** Whether setup may prompt; defaults to whether stdin is a terminal. */
18
+ interactive?: boolean;
6
19
  }
7
20
  export declare function runSetup(argv: string[], options?: SetupOptions): Promise<number>;
21
+ export declare const HOST_SHELL_QUESTION = "OpenCode's own shell tool: disable it so agents use AFT's bash?";
22
+ /**
23
+ * Offer to remove OpenCode 2's built-in shell tool plugin.
24
+ *
25
+ * OpenCode 2 registers its own command tool, `shell`, beside AFT's `bash`, and
26
+ * rewrites the description of anything named `shell`. Removing the host's
27
+ * shell plugin (`-opencode.tool.shell` under `plugins`) leaves AFT's bash as
28
+ * the one command tool. The default follows whether AFT's bash is enabled: with
29
+ * bash disabled, removing the host's shell would leave no command tool at all.
30
+ * A terminal run asks; `--yes` and non-terminal runs apply the default. Either
31
+ * way the write is idempotent. Other hosts are skipped.
32
+ */
33
+ export declare function offerHostShellDisable(adapter: OpenCodeAdapter, argv: string[], options?: SetupOptions): Promise<"ok" | "failed" | "skipped">;
8
34
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEhG,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,qBAAqB,CAAC;CAClD;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiG1F"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAMlF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,EACL,KAAK,gBAAgB,EAItB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAE/F,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,OAAO,yBAAyB,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,qBAAqB,CAAC;IACjD,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAChD,gFAAgF;IAChF,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwD1F;AAwFD,eAAO,MAAM,mBAAmB,oEACmC,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC,CAyBtC"}
@@ -0,0 +1,39 @@
1
+ import type { SetupPlan } from "../lib/feature-plan.js";
2
+ import type { GhStatus } from "../setup/feature-wizard.js";
3
+ /** Whether AFT may run git, as the binary's status reports it. */
4
+ export interface GitState {
5
+ available: boolean;
6
+ /** Machine-readable cause, e.g. `macos_developer_tools_missing`. */
7
+ reason?: string;
8
+ /** The explanation and remedy the sidebar shows for the same state. */
9
+ message?: string;
10
+ }
11
+ /**
12
+ * What AFT does with git, in user terms. Without git each of these is either
13
+ * unavailable (aft_conflicts) or takes the fallback the engine uses outside a
14
+ * repository, so the list names what the user loses.
15
+ */
16
+ export declare const GIT_BACKED_FEATURES: string[];
17
+ export interface FeatureStatusFinding {
18
+ /** One line naming the problem. */
19
+ text: string;
20
+ /** What to do about it, when there is something to do. */
21
+ remedy?: string;
22
+ }
23
+ export interface FeatureStatusReport {
24
+ /** One compressed line per plan group. */
25
+ lines: string[];
26
+ /** Features that are turned on but cannot work here; doctor counts these as problems. */
27
+ problems: FeatureStatusFinding[];
28
+ /** Machine facts that switch features off without being a fault (a Mac without developer tools). */
29
+ notes: FeatureStatusFinding[];
30
+ }
31
+ export interface FeatureStatusContext {
32
+ /** GitHub CLI state; asked only when GitHub read or write is on. */
33
+ checkGh?: () => GhStatus;
34
+ /** Git state from the binary's status, or null when it could not be asked. */
35
+ git?: GitState | null;
36
+ }
37
+ /** Build the Features section from the plan and the machine facts doctor can check. */
38
+ export declare function renderFeatureStatus(plan: SetupPlan, context?: FeatureStatusContext): FeatureStatusReport;
39
+ //# sourceMappingURL=features.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/doctor/features.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAqB3D,kEAAkE;AAClE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,UAM/B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0CAA0C;IAC1C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yFAAyF;IACzF,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,oGAAoG;IACpG,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,QAAQ,CAAC;IACzB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB;AAuED,uFAAuF;AACvF,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAgErB"}
@@ -15,7 +15,17 @@ export interface OpenCodeDoctorResult {
15
15
  takenLoadPath: OpenCodeLoadPath | null;
16
16
  pluginVersion: string | null;
17
17
  problems: string[];
18
+ /**
19
+ * The entry-needs-pinning line when it is one of `problems`, so a caller
20
+ * that reports the same fix another way can leave it out.
21
+ */
22
+ pinProblem: string | null;
18
23
  }
24
+ /**
25
+ * The problem line for an entry `doctor --fix` would rewrite. It names the
26
+ * entry --fix writes, so the report and the fix always agree.
27
+ */
28
+ export declare function pinProblem(entry: string, pinned: string): string;
19
29
  export declare function expectedOpenCodeLoadPath(detection: OpenCodeHostDetection): OpenCodeLoadPath | null;
20
30
  export declare function diagnoseOpenCodeLoad(input: OpenCodeDoctorInput): OpenCodeDoctorResult;
21
31
  //# sourceMappingURL=opencode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/doctor/opencode.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,6BAA6B,CAAC;AAa9F,eAAO,MAAM,mBAAmB,oFAItB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA0ID,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,GAC/B,gBAAgB,GAAG,IAAI,CAQzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CA8CrF"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/doctor/opencode.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAuB,MAAM,6BAA6B,CAAC;AAe9F,eAAO,MAAM,mBAAmB,oFAItB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,qBAAqB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AA2GD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhE;AAuBD,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,qBAAqB,GAC/B,gBAAgB,GAAG,IAAI,CAQzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CA8CrF"}