@namzu/cli 0.6.0 → 0.7.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 (182) hide show
  1. package/dist/__tests__/permission-rules-reach-the-turn.test.d.ts +31 -0
  2. package/dist/__tests__/permission-rules-reach-the-turn.test.d.ts.map +1 -0
  3. package/dist/__tests__/permission-rules-reach-the-turn.test.js +132 -0
  4. package/dist/__tests__/permission-rules-reach-the-turn.test.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +16 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/cli.test.js +7 -1
  9. package/dist/cli.test.js.map +1 -1
  10. package/dist/commands/__tests__/run-flags.test.js +0 -1
  11. package/dist/commands/__tests__/run-flags.test.js.map +1 -1
  12. package/dist/commands/__tests__/run-stream-flags.test.js +0 -1
  13. package/dist/commands/__tests__/run-stream-flags.test.js.map +1 -1
  14. package/dist/commands/run-stream.d.ts +3 -3
  15. package/dist/commands/run-stream.js +3 -3
  16. package/dist/commands/run.d.ts.map +1 -1
  17. package/dist/commands/run.js +4 -0
  18. package/dist/commands/run.js.map +1 -1
  19. package/dist/commands/stubs.d.ts +10 -0
  20. package/dist/commands/stubs.d.ts.map +1 -1
  21. package/dist/commands/stubs.js +12 -2
  22. package/dist/commands/stubs.js.map +1 -1
  23. package/dist/config/load.d.ts.map +1 -1
  24. package/dist/config/load.js +20 -4
  25. package/dist/config/load.js.map +1 -1
  26. package/dist/config/schema.d.ts +0 -12
  27. package/dist/config/schema.d.ts.map +1 -1
  28. package/dist/config/schema.js.map +1 -1
  29. package/dist/doctor/checks/credentials.d.ts +20 -0
  30. package/dist/doctor/checks/credentials.d.ts.map +1 -0
  31. package/dist/doctor/checks/credentials.js +58 -0
  32. package/dist/doctor/checks/credentials.js.map +1 -0
  33. package/dist/doctor/checks/credentials.test.d.ts +10 -0
  34. package/dist/doctor/checks/credentials.test.d.ts.map +1 -0
  35. package/dist/doctor/checks/credentials.test.js +47 -0
  36. package/dist/doctor/checks/credentials.test.js.map +1 -0
  37. package/dist/doctor/checks/index.d.ts +2 -1
  38. package/dist/doctor/checks/index.d.ts.map +1 -1
  39. package/dist/doctor/checks/index.js +3 -1
  40. package/dist/doctor/checks/index.js.map +1 -1
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/integrations/providers/discover.d.ts +3 -8
  46. package/dist/integrations/providers/discover.d.ts.map +1 -1
  47. package/dist/integrations/providers/discover.js +2 -12
  48. package/dist/integrations/providers/discover.js.map +1 -1
  49. package/dist/integrations/providers/discover.test.js +1 -28
  50. package/dist/integrations/providers/discover.test.js.map +1 -1
  51. package/dist/integrations/providers/index.d.ts +0 -1
  52. package/dist/integrations/providers/index.d.ts.map +1 -1
  53. package/dist/integrations/providers/index.js +0 -1
  54. package/dist/integrations/providers/index.js.map +1 -1
  55. package/dist/integrations/providers/oauth.d.ts +1 -1
  56. package/dist/integrations/providers/oauth.js +1 -1
  57. package/dist/integrations/providers/preferences.d.ts +2 -2
  58. package/dist/integrations/providers/preferences.js +2 -2
  59. package/dist/integrations/sessions/store.js +1 -1
  60. package/dist/integrations/sessions/store.js.map +1 -1
  61. package/dist/integrations/updates.d.ts +4 -12
  62. package/dist/integrations/updates.d.ts.map +1 -1
  63. package/dist/integrations/updates.js +6 -53
  64. package/dist/integrations/updates.js.map +1 -1
  65. package/dist/tui/App.d.ts.map +1 -1
  66. package/dist/tui/App.js +23 -131
  67. package/dist/tui/App.js.map +1 -1
  68. package/dist/tui/Picker.d.ts +4 -4
  69. package/dist/tui/Picker.d.ts.map +1 -1
  70. package/dist/tui/Picker.js +6 -8
  71. package/dist/tui/Picker.js.map +1 -1
  72. package/dist/tui/__tests__/deferred-tool-discovery.test.d.ts +24 -0
  73. package/dist/tui/__tests__/deferred-tool-discovery.test.d.ts.map +1 -0
  74. package/dist/tui/__tests__/deferred-tool-discovery.test.js +111 -0
  75. package/dist/tui/__tests__/deferred-tool-discovery.test.js.map +1 -0
  76. package/dist/tui/__tests__/to-agent-event.test.js +88 -0
  77. package/dist/tui/__tests__/to-agent-event.test.js.map +1 -1
  78. package/dist/tui/__tests__/working-directory.test.js +0 -6
  79. package/dist/tui/__tests__/working-directory.test.js.map +1 -1
  80. package/dist/tui/agent.d.ts +16 -2
  81. package/dist/tui/agent.d.ts.map +1 -1
  82. package/dist/tui/agent.js +83 -30
  83. package/dist/tui/agent.js.map +1 -1
  84. package/dist/tui/slashCommands.d.ts +0 -6
  85. package/dist/tui/slashCommands.d.ts.map +1 -1
  86. package/dist/tui/slashCommands.js +1 -21
  87. package/dist/tui/slashCommands.js.map +1 -1
  88. package/dist/tui/types.d.ts +12 -0
  89. package/dist/tui/types.d.ts.map +1 -1
  90. package/package.json +4 -5
  91. package/dist/commands/tools.d.ts +0 -16
  92. package/dist/commands/tools.d.ts.map +0 -1
  93. package/dist/commands/tools.js +0 -161
  94. package/dist/commands/tools.js.map +0 -1
  95. package/dist/integrations/clawtool/agents.d.ts +0 -31
  96. package/dist/integrations/clawtool/agents.d.ts.map +0 -1
  97. package/dist/integrations/clawtool/agents.js +0 -30
  98. package/dist/integrations/clawtool/agents.js.map +0 -1
  99. package/dist/integrations/clawtool/agents.test.d.ts +0 -2
  100. package/dist/integrations/clawtool/agents.test.d.ts.map +0 -1
  101. package/dist/integrations/clawtool/agents.test.js +0 -79
  102. package/dist/integrations/clawtool/agents.test.js.map +0 -1
  103. package/dist/integrations/clawtool/auth.d.ts +0 -26
  104. package/dist/integrations/clawtool/auth.d.ts.map +0 -1
  105. package/dist/integrations/clawtool/auth.js +0 -56
  106. package/dist/integrations/clawtool/auth.js.map +0 -1
  107. package/dist/integrations/clawtool/auth.test.d.ts +0 -2
  108. package/dist/integrations/clawtool/auth.test.d.ts.map +0 -1
  109. package/dist/integrations/clawtool/auth.test.js +0 -40
  110. package/dist/integrations/clawtool/auth.test.js.map +0 -1
  111. package/dist/integrations/clawtool/binary.d.ts +0 -25
  112. package/dist/integrations/clawtool/binary.d.ts.map +0 -1
  113. package/dist/integrations/clawtool/binary.js +0 -50
  114. package/dist/integrations/clawtool/binary.js.map +0 -1
  115. package/dist/integrations/clawtool/binary.test.d.ts +0 -2
  116. package/dist/integrations/clawtool/binary.test.d.ts.map +0 -1
  117. package/dist/integrations/clawtool/binary.test.js +0 -50
  118. package/dist/integrations/clawtool/binary.test.js.map +0 -1
  119. package/dist/integrations/clawtool/daemon.d.ts +0 -37
  120. package/dist/integrations/clawtool/daemon.d.ts.map +0 -1
  121. package/dist/integrations/clawtool/daemon.js +0 -109
  122. package/dist/integrations/clawtool/daemon.js.map +0 -1
  123. package/dist/integrations/clawtool/daemon.test.d.ts +0 -11
  124. package/dist/integrations/clawtool/daemon.test.d.ts.map +0 -1
  125. package/dist/integrations/clawtool/daemon.test.js +0 -118
  126. package/dist/integrations/clawtool/daemon.test.js.map +0 -1
  127. package/dist/integrations/clawtool/dispatch.d.ts +0 -33
  128. package/dist/integrations/clawtool/dispatch.d.ts.map +0 -1
  129. package/dist/integrations/clawtool/dispatch.js +0 -155
  130. package/dist/integrations/clawtool/dispatch.js.map +0 -1
  131. package/dist/integrations/clawtool/dispatch.test.d.ts +0 -2
  132. package/dist/integrations/clawtool/dispatch.test.d.ts.map +0 -1
  133. package/dist/integrations/clawtool/dispatch.test.js +0 -138
  134. package/dist/integrations/clawtool/dispatch.test.js.map +0 -1
  135. package/dist/integrations/clawtool/index.d.ts +0 -11
  136. package/dist/integrations/clawtool/index.d.ts.map +0 -1
  137. package/dist/integrations/clawtool/index.js +0 -10
  138. package/dist/integrations/clawtool/index.js.map +0 -1
  139. package/dist/integrations/clawtool/mcp.d.ts +0 -51
  140. package/dist/integrations/clawtool/mcp.d.ts.map +0 -1
  141. package/dist/integrations/clawtool/mcp.js +0 -174
  142. package/dist/integrations/clawtool/mcp.js.map +0 -1
  143. package/dist/integrations/clawtool/mcp.test.d.ts +0 -2
  144. package/dist/integrations/clawtool/mcp.test.d.ts.map +0 -1
  145. package/dist/integrations/clawtool/mcp.test.js +0 -126
  146. package/dist/integrations/clawtool/mcp.test.js.map +0 -1
  147. package/dist/integrations/clawtool/paths.d.ts +0 -8
  148. package/dist/integrations/clawtool/paths.d.ts.map +0 -1
  149. package/dist/integrations/clawtool/paths.js +0 -19
  150. package/dist/integrations/clawtool/paths.js.map +0 -1
  151. package/dist/integrations/clawtool/peers.d.ts +0 -67
  152. package/dist/integrations/clawtool/peers.d.ts.map +0 -1
  153. package/dist/integrations/clawtool/peers.js +0 -150
  154. package/dist/integrations/clawtool/peers.js.map +0 -1
  155. package/dist/integrations/clawtool/plugin.d.ts +0 -42
  156. package/dist/integrations/clawtool/plugin.d.ts.map +0 -1
  157. package/dist/integrations/clawtool/plugin.js +0 -38
  158. package/dist/integrations/clawtool/plugin.js.map +0 -1
  159. package/dist/integrations/clawtool/state.d.ts +0 -11
  160. package/dist/integrations/clawtool/state.d.ts.map +0 -1
  161. package/dist/integrations/clawtool/state.js +0 -41
  162. package/dist/integrations/clawtool/state.js.map +0 -1
  163. package/dist/integrations/clawtool/state.test.d.ts +0 -2
  164. package/dist/integrations/clawtool/state.test.d.ts.map +0 -1
  165. package/dist/integrations/clawtool/state.test.js +0 -38
  166. package/dist/integrations/clawtool/state.test.js.map +0 -1
  167. package/dist/integrations/clawtool/tooling.d.ts +0 -52
  168. package/dist/integrations/clawtool/tooling.d.ts.map +0 -1
  169. package/dist/integrations/clawtool/tooling.js +0 -91
  170. package/dist/integrations/clawtool/tooling.js.map +0 -1
  171. package/dist/integrations/clawtool/tooling.test.d.ts +0 -2
  172. package/dist/integrations/clawtool/tooling.test.d.ts.map +0 -1
  173. package/dist/integrations/clawtool/tooling.test.js +0 -58
  174. package/dist/integrations/clawtool/tooling.test.js.map +0 -1
  175. package/dist/integrations/clawtool/types.d.ts +0 -41
  176. package/dist/integrations/clawtool/types.d.ts.map +0 -1
  177. package/dist/integrations/clawtool/types.js +0 -9
  178. package/dist/integrations/clawtool/types.js.map +0 -1
  179. package/dist/integrations/providers/secrets.d.ts +0 -37
  180. package/dist/integrations/providers/secrets.d.ts.map +0 -1
  181. package/dist/integrations/providers/secrets.js +0 -69
  182. package/dist/integrations/providers/secrets.js.map +0 -1
@@ -8,23 +8,11 @@
8
8
  */
9
9
  import type { FormatName } from '../output/index.js';
10
10
  import type { PermissionsConfig } from '../permissions/rules.js';
11
- export interface ClawtoolConfig {
12
- /** Absolute path to the clawtool binary; overrides PATH lookup. */
13
- readonly binary?: string;
14
- /** HTTP base URL (e.g. http://127.0.0.1:8765); overrides daemon-state discovery. */
15
- readonly endpoint?: string;
16
- /** Override the bearer token (raw, no `Bearer ` prefix). */
17
- readonly token?: string;
18
- /** Spawn the daemon automatically if not running. Defaults to true. */
19
- readonly autoStart?: boolean;
20
- }
21
11
  export interface NamzuCliConfig {
22
12
  /** Default output format when not overridden by --format. */
23
13
  readonly format?: FormatName;
24
14
  /** Default quiet mode. */
25
15
  readonly quiet?: boolean;
26
- /** Clawtool integration overrides; defaults work zero-config. */
27
- readonly clawtool?: ClawtoolConfig;
28
16
  /**
29
17
  * Which tools may run without asking, keyed by tool name.
30
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,cAAc;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,cAAc;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,eAAO,MAAM,cAAc,EAAE,cAG3B,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhE,MAAM,WAAW,cAAc;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAA;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CACxC;AAED,eAAO,MAAM,cAAc,EAAE,cAG3B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiCH,MAAM,CAAC,MAAM,cAAc,GAAmB,MAAM,CAAC,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;CACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,MAAM,CAAC,MAAM,cAAc,GAAmB,MAAM,CAAC,MAAM,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;CACZ,CAAC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { DoctorCheck } from '@namzu/sdk';
2
+ /**
3
+ * Which credential sources namzu actually scanned, and what each yielded.
4
+ *
5
+ * This check exists because a source was *removed*. namzu used to read the
6
+ * secrets file of an external peer daemon it integrated with, and a user could
7
+ * have a working namzu with no environment variable set anywhere. When that
8
+ * integration went, their credential stopped being found — and the failure is
9
+ * an absence, not an error: the picker simply opens as though they never had
10
+ * one.
11
+ *
12
+ * `doctor` is the command someone runs when a credential stops being found, so
13
+ * the sentence explaining it does work here. Anywhere else it would sit where
14
+ * nobody looks.
15
+ *
16
+ * The list below is not written down twice: it is derived from what discovery
17
+ * returned, so it cannot drift from what discovery does.
18
+ */
19
+ export declare const credentialSourcesCheck: DoctorCheck;
20
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAA;AAIhE;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAwCpC,CAAA"}
@@ -0,0 +1,58 @@
1
+ import { discoverProviders } from '../../integrations/providers/discover.js';
2
+ /**
3
+ * Which credential sources namzu actually scanned, and what each yielded.
4
+ *
5
+ * This check exists because a source was *removed*. namzu used to read the
6
+ * secrets file of an external peer daemon it integrated with, and a user could
7
+ * have a working namzu with no environment variable set anywhere. When that
8
+ * integration went, their credential stopped being found — and the failure is
9
+ * an absence, not an error: the picker simply opens as though they never had
10
+ * one.
11
+ *
12
+ * `doctor` is the command someone runs when a credential stops being found, so
13
+ * the sentence explaining it does work here. Anywhere else it would sit where
14
+ * nobody looks.
15
+ *
16
+ * The list below is not written down twice: it is derived from what discovery
17
+ * returned, so it cannot drift from what discovery does.
18
+ */
19
+ export const credentialSourcesCheck = {
20
+ id: 'providers.credentials',
21
+ category: 'providers',
22
+ run: async () => {
23
+ let detected;
24
+ try {
25
+ detected = await discoverProviders();
26
+ }
27
+ catch (err) {
28
+ // Discovery is documented as non-throwing; if that ever stops being
29
+ // true, say which step failed rather than reporting "no credentials".
30
+ return {
31
+ status: 'inconclusive',
32
+ message: `credential discovery failed: ${err instanceof Error ? err.message : String(err)}`,
33
+ };
34
+ }
35
+ if (detected.length === 0) {
36
+ return {
37
+ status: 'warn',
38
+ message: 'no LLM credential found',
39
+ remediation: 'namzu scans environment variables (ANTHROPIC_API_KEY, OPENAI_API_KEY, OPENROUTER_API_KEY, …), the macOS Keychain, and local servers (Ollama, LM Studio). It no longer reads the secrets file of the peer daemon it used to integrate with — that integration was removed in @namzu/cli 0.7.0. If your key lived only in that file, export it as one of the environment variables above.',
40
+ };
41
+ }
42
+ const lines = detected.map((d) => {
43
+ switch (d.source.kind) {
44
+ case 'env':
45
+ return `${d.entry.id} (env · ${d.source.envName})`;
46
+ case 'keychain':
47
+ return `${d.entry.id} (keychain · ${d.source.service})`;
48
+ case 'probe':
49
+ return `${d.entry.id} (local · ${d.source.url.replace(/^https?:\/\//, '')})`;
50
+ }
51
+ });
52
+ return {
53
+ status: 'pass',
54
+ message: `${detected.length} provider credential(s) found: ${lines.join(', ')}`,
55
+ };
56
+ },
57
+ };
58
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IAClD,EAAE,EAAE,uBAAuB;IAC3B,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,KAAK,IAAgC,EAAE;QAC3C,IAAI,QAAuD,CAAA;QAC3D,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,oEAAoE;YACpE,sEAAsE;YACtE,OAAO;gBACN,MAAM,EAAE,cAAc;gBACtB,OAAO,EAAE,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aAC3F,CAAA;QACF,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;gBACN,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,yBAAyB;gBAClC,WAAW,EACV,yXAAyX;aAC1X,CAAA;QACF,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvB,KAAK,KAAK;oBACT,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAA;gBACnD,KAAK,UAAU;oBACd,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,CAAA;gBACxD,KAAK,OAAO;oBACX,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GAAG,CAAA;YAC9E,CAAC;QACF,CAAC,CAAC,CAAA;QACF,OAAO;YACN,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,kCAAkC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAC/E,CAAA;IACF,CAAC;CACD,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The removed credential source is explained where someone would look for it.
3
+ *
4
+ * A user whose key lived only in the removed daemon's secrets file does not get
5
+ * an error when it goes — they get an absence: discovery returns nothing and
6
+ * the picker opens as though they never had a credential. `doctor` is the
7
+ * command reached for at that moment, so the explanation has to be there.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=credentials.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.test.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The removed credential source is explained where someone would look for it.
3
+ *
4
+ * A user whose key lived only in the removed daemon's secrets file does not get
5
+ * an error when it goes — they get an absence: discovery returns nothing and
6
+ * the picker opens as though they never had a credential. `doctor` is the
7
+ * command reached for at that moment, so the explanation has to be there.
8
+ */
9
+ import { describe, expect, it, vi } from 'vitest';
10
+ const discoverProviders = vi.fn();
11
+ vi.mock('../../integrations/providers/discover.js', () => ({
12
+ discoverProviders: () => discoverProviders(),
13
+ }));
14
+ const { credentialSourcesCheck } = await import('./credentials.js');
15
+ const ctx = { cwd: '/tmp', env: {}, projectRoot: null };
16
+ describe('the credential-sources doctor check', () => {
17
+ it('warns when nothing is found, and says the secrets file is no longer read', async () => {
18
+ discoverProviders.mockResolvedValue([]);
19
+ const result = await credentialSourcesCheck.run(ctx);
20
+ expect(result.status).toBe('warn');
21
+ // The load-bearing part is the remediation, not the status: a bare "no
22
+ // credential found" is what the picker already says, and repeating it
23
+ // here would leave the user exactly where the silence did.
24
+ expect(result.remediation).toMatch(/no longer reads the secrets file/i);
25
+ expect(result.remediation).toMatch(/ANTHROPIC_API_KEY/);
26
+ });
27
+ it('names the source each credential actually came from', async () => {
28
+ discoverProviders.mockResolvedValue([
29
+ { entry: { id: 'anthropic' }, source: { kind: 'keychain', service: 'a-keychain-item' } },
30
+ { entry: { id: 'openai' }, source: { kind: 'env', envName: 'OPENAI_API_KEY' } },
31
+ ]);
32
+ const result = await credentialSourcesCheck.run(ctx);
33
+ expect(result.status).toBe('pass');
34
+ expect(result.message).toContain('anthropic (keychain · a-keychain-item)');
35
+ expect(result.message).toContain('openai (env · OPENAI_API_KEY)');
36
+ });
37
+ it('does not report "no credentials" when discovery itself failed', async () => {
38
+ // Discovery is documented as non-throwing. If that ever stops being true,
39
+ // the two states must stay distinguishable — "none found" would send the
40
+ // user hunting for a key that is already set.
41
+ discoverProviders.mockRejectedValue(new Error('keychain unreadable'));
42
+ const result = await credentialSourcesCheck.run(ctx);
43
+ expect(result.status).toBe('inconclusive');
44
+ expect(result.message).toContain('keychain unreadable');
45
+ });
46
+ });
47
+ //# sourceMappingURL=credentials.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.test.js","sourceRoot":"","sources":["../../../src/doctor/checks/credentials.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;AACjC,EAAE,CAAC,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;CAC5C,CAAC,CAAC,CAAA;AAEH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEnE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;AAEvD,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACzF,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAEvC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,uEAAuE;QACvE,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAA;QACvE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACpE,iBAAiB,CAAC,iBAAiB,CAAC;YACnC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE;YACxF,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE;SAC/E,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC9E,0EAA0E;QAC1E,yEAAyE;QACzE,8CAA8C;QAC9C,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAA;QAErE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import type { DoctorCheck } from '@namzu/sdk';
2
+ import { credentialSourcesCheck } from './credentials.js';
2
3
  import { providersRegisteredCheck } from './providers.js';
3
4
  import { cwdWritableCheck, tmpdirWritableCheck } from './runtime.js';
4
5
  import { sandboxPlatformCheck } from './sandbox.js';
5
6
  import { telemetryInstalledCheck } from './telemetry.js';
6
7
  import { vaultRegisteredCheck } from './vault.js';
7
- export { providersRegisteredCheck, cwdWritableCheck, tmpdirWritableCheck, sandboxPlatformCheck, telemetryInstalledCheck, vaultRegisteredCheck, };
8
+ export { credentialSourcesCheck, providersRegisteredCheck, cwdWritableCheck, tmpdirWritableCheck, sandboxPlatformCheck, telemetryInstalledCheck, vaultRegisteredCheck, };
8
9
  export declare const builtInDoctorChecks: readonly DoctorCheck[];
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACpB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAOrD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACpB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAQrD,CAAA"}
@@ -1,14 +1,16 @@
1
+ import { credentialSourcesCheck } from './credentials.js';
1
2
  import { providersRegisteredCheck } from './providers.js';
2
3
  import { cwdWritableCheck, tmpdirWritableCheck } from './runtime.js';
3
4
  import { sandboxPlatformCheck } from './sandbox.js';
4
5
  import { telemetryInstalledCheck } from './telemetry.js';
5
6
  import { vaultRegisteredCheck } from './vault.js';
6
- export { providersRegisteredCheck, cwdWritableCheck, tmpdirWritableCheck, sandboxPlatformCheck, telemetryInstalledCheck, vaultRegisteredCheck, };
7
+ export { credentialSourcesCheck, providersRegisteredCheck, cwdWritableCheck, tmpdirWritableCheck, sandboxPlatformCheck, telemetryInstalledCheck, vaultRegisteredCheck, };
7
8
  export const builtInDoctorChecks = [
8
9
  sandboxPlatformCheck,
9
10
  cwdWritableCheck,
10
11
  tmpdirWritableCheck,
11
12
  providersRegisteredCheck,
13
+ credentialSourcesCheck,
12
14
  vaultRegisteredCheck,
13
15
  telemetryInstalledCheck,
14
16
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EACN,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACpB,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IAC1D,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,uBAAuB;CACvB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/checks/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACpB,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IAC1D,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,wBAAwB;IACxB,sBAAsB;IACtB,oBAAoB;IACpB,uBAAuB;CACvB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  export { createDoctorRegistry, doctor, DoctorRegistry, registerDoctorCheck, runDoctor, } from './doctor/registry.js';
7
7
  export type { RunDoctorOptions } from './doctor/registry.js';
8
- export { builtInDoctorChecks, cwdWritableCheck, providersRegisteredCheck, sandboxPlatformCheck, telemetryInstalledCheck, tmpdirWritableCheck, vaultRegisteredCheck, } from './doctor/checks/index.js';
8
+ export { builtInDoctorChecks, credentialSourcesCheck, cwdWritableCheck, providersRegisteredCheck, sandboxPlatformCheck, telemetryInstalledCheck, tmpdirWritableCheck, vaultRegisteredCheck, } from './doctor/checks/index.js';
9
9
  export { runDoctorCommand } from './commands/doctor.js';
10
10
  export { runCli, type RunCliOptions } from './cli.js';
11
11
  export type { CommandContext, CommandDef, CommandHandler, CommandHandlerArgs, } from './commands/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACN,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,SAAS,GACT,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,WAAW,EACX,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,eAAe,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,YAAY,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACN,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,SAAS,GACT,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,kBAAkB,GAClB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,WAAW,EACX,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,eAAe,EACf,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,YAAY,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  // Doctor library API (pre-M0; preserved for embedded consumers).
7
7
  export { createDoctorRegistry, doctor, DoctorRegistry, registerDoctorCheck, runDoctor, } from './doctor/registry.js';
8
- export { builtInDoctorChecks, cwdWritableCheck, providersRegisteredCheck, sandboxPlatformCheck, telemetryInstalledCheck, tmpdirWritableCheck, vaultRegisteredCheck, } from './doctor/checks/index.js';
8
+ export { builtInDoctorChecks, credentialSourcesCheck, cwdWritableCheck, providersRegisteredCheck, sandboxPlatformCheck, telemetryInstalledCheck, tmpdirWritableCheck, vaultRegisteredCheck, } from './doctor/checks/index.js';
9
9
  export { runDoctorCommand } from './commands/doctor.js';
10
10
  // Shell + extension surface for the CLI.
11
11
  export { runCli } from './cli.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iEAAiE;AACjE,OAAO,EACN,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,SAAS,GACT,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAA;AAOrD,OAAO,EACN,WAAW,EACX,eAAe,GAEf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,eAAe,EAIf,YAAY,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iEAAiE;AACjE,OAAO,EACN,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB,SAAS,GACT,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EACN,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,GACpB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAA;AAOrD,OAAO,EACN,WAAW,EACX,eAAe,GAEf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACN,eAAe,EAIf,YAAY,GACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,cAAc,EAAuB,MAAM,oBAAoB,CAAA"}
@@ -3,12 +3,11 @@
3
3
  *
4
4
  * For each entry in `PROVIDER_REGISTRY`, ask three questions in order:
5
5
  * 1. Is one of its env vars set in `process.env`?
6
- * 2. Does clawtool's secrets.toml carry one of its env vars?
7
- * 3. Is the probe URL (if any) reachable right now?
6
+ * 2. Is the probe URL (if any) reachable right now?
8
7
  *
9
8
  * The first positive answer per provider wins; subsequent sources are
10
9
  * recorded as "also available from" so the picker can show alternatives
11
- * (e.g. anthropic via env, also available in `[secrets.personal]`).
10
+ * (e.g. anthropic via env, also reachable as a local server).
12
11
  *
13
12
  * Discovery is non-throwing. Network probes have short timeouts. The
14
13
  * picker can render immediately and refine if discovery completes later.
@@ -17,10 +16,6 @@ import { type ProviderId, type ProviderRegistryEntry } from './registry.js';
17
16
  export type DetectionSource = {
18
17
  readonly kind: 'env';
19
18
  readonly envName: string;
20
- } | {
21
- readonly kind: 'secrets-toml';
22
- readonly envName: string;
23
- readonly scope: string;
24
19
  } | {
25
20
  readonly kind: 'probe';
26
21
  readonly url: string;
@@ -51,7 +46,7 @@ export interface DetectedProvider {
51
46
  export interface DiscoverOptions {
52
47
  /** Override `process.env` for tests. */
53
48
  readonly env?: NodeJS.ProcessEnv;
54
- /** Override `homedir()` for tests (read clawtool secrets from a fixture). */
49
+ /** Override `homedir()` for tests. */
55
50
  readonly home?: string;
56
51
  /** Override the fetch impl for probe URLs (tests inject a mock). */
57
52
  readonly fetch?: typeof fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAG9F,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAA;CACjD;AAED,MAAM,WAAW,eAAe;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAC/B;AAID,wBAAsB,iBAAiB,CACtC,IAAI,GAAE,eAAoB,GACxB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAmEtC;AAmBD,yEAAyE;AACzE,wBAAgB,YAAY,CAC3B,IAAI,EAAE,SAAS,gBAAgB,EAAE,EACjC,EAAE,EAAE,UAAU,GACZ,gBAAgB,GAAG,IAAI,CAEzB"}
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE9F,MAAM,MAAM,eAAe,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1D,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,SAAS,eAAe,EAAE,CAAA;CACjD;AAED,MAAM,WAAW,eAAe;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IAChC,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAC/B;AAID,wBAAsB,iBAAiB,CACtC,IAAI,GAAE,eAAoB,GACxB,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CA4DtC;AAmBD,yEAAyE;AACzE,wBAAgB,YAAY,CAC3B,IAAI,EAAE,SAAS,gBAAgB,EAAE,EACjC,EAAE,EAAE,UAAU,GACZ,gBAAgB,GAAG,IAAI,CAEzB"}
@@ -3,23 +3,20 @@
3
3
  *
4
4
  * For each entry in `PROVIDER_REGISTRY`, ask three questions in order:
5
5
  * 1. Is one of its env vars set in `process.env`?
6
- * 2. Does clawtool's secrets.toml carry one of its env vars?
7
- * 3. Is the probe URL (if any) reachable right now?
6
+ * 2. Is the probe URL (if any) reachable right now?
8
7
  *
9
8
  * The first positive answer per provider wins; subsequent sources are
10
9
  * recorded as "also available from" so the picker can show alternatives
11
- * (e.g. anthropic via env, also available in `[secrets.personal]`).
10
+ * (e.g. anthropic via env, also reachable as a local server).
12
11
  *
13
12
  * Discovery is non-throwing. Network probes have short timeouts. The
14
13
  * picker can render immediately and refine if discovery completes later.
15
14
  */
16
15
  import { KEYCHAIN_SERVICE, readAgentKeychainCredential } from './keychain.js';
17
16
  import { PROVIDER_REGISTRY } from './registry.js';
18
- import { readClawtoolSecrets } from './secrets.js';
19
17
  const DEFAULT_PROBE_TIMEOUT_MS = 500;
20
18
  export async function discoverProviders(opts = {}) {
21
19
  const env = opts.env ?? process.env;
22
- const secrets = readClawtoolSecrets(opts.home);
23
20
  const detected = [];
24
21
  // macOS-only: read the third-party OAuth credential stored in the login
25
22
  // Keychain once. Only anthropic consumes it, but we scan up front so
@@ -38,13 +35,6 @@ export async function discoverProviders(opts = {}) {
38
35
  sources.push({ kind: 'env', envName });
39
36
  }
40
37
  }
41
- for (const cand of secrets) {
42
- if (entry.envVars.includes(cand.envName)) {
43
- if (apiKey === undefined)
44
- apiKey = cand.value;
45
- sources.push({ kind: 'secrets-toml', envName: cand.envName, scope: cand.scope });
46
- }
47
- }
48
38
  if (id === 'anthropic' && keychainCredential) {
49
39
  if (apiKey === undefined)
50
40
  apiKey = keychainCredential.accessToken;
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import { mkdirSync, mkdtempSync, writeFileSync } from 'node:fs';
1
+ import { mkdtempSync } from 'node:fs';
2
2
  import { tmpdir } from 'node:os';
3
3
  import { join } from 'node:path';
4
4
  import { describe, expect, it, vi } from 'vitest';
5
5
  import { discoverProviders, findDetected } from './discover.js';
6
6
  function tmpHome() {
7
7
  const home = mkdtempSync(join(tmpdir(), 'namzu-discover-'));
8
- mkdirSync(join(home, '.config', 'clawtool'), { recursive: true });
9
8
  return home;
10
9
  }
11
10
  // Every test must opt out of host-ambient sources (Keychain, network
@@ -57,32 +56,6 @@ describe('discoverProviders — env-var scan', () => {
57
56
  expect(findDetected(list, 'openai')).not.toBeNull();
58
57
  });
59
58
  });
60
- describe('discoverProviders — clawtool secrets.toml', () => {
61
- it('reads anthropic key from clawtool secrets', async () => {
62
- const home = tmpHome();
63
- writeFileSync(join(home, '.config', 'clawtool', 'secrets.toml'), '[secrets.work]\nANTHROPIC_API_KEY = "sk-from-toml"\n');
64
- const list = await discoverProviders({ ...HERMETIC, env: {}, home });
65
- const anthropic = findDetected(list, 'anthropic');
66
- expect(anthropic?.apiKey).toBe('sk-from-toml');
67
- if (anthropic?.source.kind === 'secrets-toml') {
68
- expect(anthropic.source.scope).toBe('work');
69
- expect(anthropic.source.envName).toBe('ANTHROPIC_API_KEY');
70
- }
71
- });
72
- it('env var wins over secrets.toml when both present', async () => {
73
- const home = tmpHome();
74
- writeFileSync(join(home, '.config', 'clawtool', 'secrets.toml'), '[secrets.work]\nANTHROPIC_API_KEY = "from-toml"\n');
75
- const list = await discoverProviders({
76
- ...HERMETIC,
77
- env: { ANTHROPIC_API_KEY: 'from-env' },
78
- home,
79
- });
80
- const anthropic = findDetected(list, 'anthropic');
81
- expect(anthropic?.apiKey).toBe('from-env');
82
- expect(anthropic?.source.kind).toBe('env');
83
- expect(anthropic?.alternatives.length).toBeGreaterThan(0);
84
- });
85
- });
86
59
  describe('discoverProviders — local probes', () => {
87
60
  it('detects ollama when its probe URL is reachable', async () => {
88
61
  const fetchMock = vi.fn().mockResolvedValue(new Response('', { status: 200 }));
@@ -1 +1 @@
1
- {"version":3,"file":"discover.test.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.test.js","sourceRoot":"","sources":["../../../src/integrations/providers/discover.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ export { maskSecret } from './mask.js';
4
4
  export { ensureFreshAnthropicToken, type OAuthMetadata, refreshAgentOAuthToken, } from './oauth.js';
5
5
  export { type Preferences, PREFERENCES_FILE_VERSION, PreferencesError, preferencesPath, type ReadResult, readPreferences, writePreferences, } from './preferences.js';
6
6
  export { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, type ProviderId, type ProviderRegistryEntry, type SdkProviderType, } from './registry.js';
7
- export { clawtoolSecretsPath, readClawtoolSecrets, type SecretCandidate } from './secrets.js';
8
7
  export { type AnthropicProfile, type BaseProfile, type BedrockProfile, type HttpProfile, type LMStudioProfile, type OllamaProfile, type OpenAIProfile, type OpenRouterProfile, PROVIDER_TYPES, type ProviderProfile, type ProviderType, type ProvidersFile, PROVIDERS_FILE_VERSION, ProfileValidationError, TYPE_ENV_FALLBACK, isProviderType, validateProfile, } from './schema.js';
9
8
  export { ProvidersStoreError, assertInvariants, findDefault, providersPath, readProfiles, resolveApiKey, writeProfiles, } from './store.js';
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EACzB,KAAK,aAAa,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,KAAK,WAAW,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AAG7F,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EACN,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EACzB,KAAK,aAAa,EAClB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EACN,KAAK,WAAW,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACpB,MAAM,eAAe,CAAA;AAGtB,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
@@ -4,7 +4,6 @@ export { maskSecret } from './mask.js';
4
4
  export { ensureFreshAnthropicToken, refreshAgentOAuthToken, } from './oauth.js';
5
5
  export { PREFERENCES_FILE_VERSION, PreferencesError, preferencesPath, readPreferences, writePreferences, } from './preferences.js';
6
6
  export { ALL_PROVIDER_IDS, PROVIDER_REGISTRY, } from './registry.js';
7
- export { clawtoolSecretsPath, readClawtoolSecrets } from './secrets.js';
8
7
  // Manual-profile escape hatch — kept for users who configure providers
9
8
  // by API key directly without going through the auto-discovery picker.
10
9
  export { PROVIDER_TYPES, PROVIDERS_FILE_VERSION, ProfileValidationError, TYPE_ENV_FALLBACK, isProviderType, validateProfile, } from './schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEN,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EAEzB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,GAIjB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAA;AAC7F,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EASN,cAAc,EAId,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,iBAAiB,EACjB,YAAY,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAEN,qBAAqB,EACrB,2BAA2B,GAC3B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EACN,yBAAyB,EAEzB,sBAAsB,GACtB,MAAM,YAAY,CAAA;AACnB,OAAO,EAEN,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,gBAAgB,EAChB,iBAAiB,GAIjB,MAAM,eAAe,CAAA;AACtB,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EASN,cAAc,EAId,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACb,MAAM,YAAY,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OAuth token refresh for a discovered subscription credential.
3
3
  *
4
- * The access token discovered from the macOS Keychain (or a clawtool secret)
4
+ * The access token discovered from the macOS Keychain
5
5
  * is short-lived (~8h). When it lapses the provider answers 401 and the
6
6
  * agent stream dies. Refreshing proactively against the public OAuth token
7
7
  * endpoint, using the long-lived refresh token, renews a stale token before
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * OAuth token refresh for a discovered subscription credential.
3
3
  *
4
- * The access token discovered from the macOS Keychain (or a clawtool secret)
4
+ * The access token discovered from the macOS Keychain
5
5
  * is short-lived (~8h). When it lapses the provider answers 401 and the
6
6
  * agent stream dies. Refreshing proactively against the public OAuth token
7
7
  * endpoint, using the long-lived refresh token, renews a stale token before
@@ -6,10 +6,10 @@
6
6
  * "version": 2,
7
7
  * "provider": "anthropic", // ProviderId
8
8
  * "model": "claude-opus-4-7", // optional model override
9
- * "subagents": { "active": [...] } // clawtool peer instances reserved for subagent dispatch
9
+ * "subagents": { "active": [...] } // instances reserved for subagent dispatch
10
10
  * }
11
11
  *
12
- * The previous schema (v1) stored a clawtool peer instance as the
12
+ * The previous schema (v1) stored a peer instance as the
13
13
  * default — a different primitive (subagent dispatch, not primary
14
14
  * chat). On-disk v1 files trigger a forced re-pick rather than an
15
15
  * auto-migration: mapping between the two semantics would surprise
@@ -6,10 +6,10 @@
6
6
  * "version": 2,
7
7
  * "provider": "anthropic", // ProviderId
8
8
  * "model": "claude-opus-4-7", // optional model override
9
- * "subagents": { "active": [...] } // clawtool peer instances reserved for subagent dispatch
9
+ * "subagents": { "active": [...] } // instances reserved for subagent dispatch
10
10
  * }
11
11
  *
12
- * The previous schema (v1) stored a clawtool peer instance as the
12
+ * The previous schema (v1) stored a peer instance as the
13
13
  * default — a different primitive (subagent dispatch, not primary
14
14
  * chat). On-disk v1 files trigger a forced re-pick rather than an
15
15
  * auto-migration: mapping between the two semantics would surprise
@@ -44,7 +44,7 @@ export async function openSessions(cwd) {
44
44
  }
45
45
  return { store, projectId, threadId: THREAD, tenantId: TENANT, root };
46
46
  }
47
- // Maps an embedder's own session key (e.g. the clawtool desktop's uuid) to a
47
+ // Maps an embedder's own session key (e.g. a desktop host's uuid) to a
48
48
  // namzu conversation id, so reopening that session resumes the same
49
49
  // transcript. Kept as a small JSON pointer beside cli.json.
50
50
  const DESKTOP_MAP = 'desktop-sessions.json';
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/integrations/sessions/store.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  /**
2
- * Update checks for namzu (npm) and clawtool (`clawtool upgrade --check`),
3
- * surfaced in the TUI so the user knows when a newer version is out. Both are
4
- * best-effort with short timeouts: offline / unpublished / no-clawtool just
5
- * yields `null`, never an error or a hang.
2
+ * Update check for namzu (npm), surfaced in the TUI so the user knows when a
3
+ * newer version is out. Best-effort with a short timeout: offline or
4
+ * unpublished yields `null`, never an error or a hang.
6
5
  */
7
6
  export interface UpdateInfo {
8
7
  readonly name: string;
@@ -15,13 +14,6 @@ export interface UpdateInfo {
15
14
  export declare function compareVersions(a: string, b: string): number;
16
15
  /** Newer @namzu/cli on npm, or null when up to date / unreachable. */
17
16
  export declare function checkNamzuUpdate(current: string): Promise<UpdateInfo | null>;
18
- /**
19
- * Newer clawtool, or null. Prefers the machine-readable
20
- * `upgrade --check --json` (newer binaries); falls back to parsing the
21
- * `current -> latest` line in the plain `upgrade --check` output (older
22
- * binaries that predate `--json`).
23
- */
24
- export declare function checkClawtoolUpdate(): Promise<UpdateInfo | null>;
25
- /** Run both checks in parallel; returns whichever have an update available. */
17
+ /** Returns an update when one is available. */
26
18
  export declare function checkUpdates(namzuVersion: string): Promise<readonly UpdateInfo[]>;
27
19
  //# sourceMappingURL=updates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../src/integrations/updates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAKD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAc5D;AAED,sEAAsE;AACtE,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkBlF;AAQD;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA+BtE;AAED,+EAA+E;AAC/E,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAMvF"}
1
+ {"version":3,"file":"updates.d.ts","sourceRoot":"","sources":["../../src/integrations/updates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,yCAAyC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACpB;AAID,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAc5D;AAED,sEAAsE;AACtE,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAkBlF;AAED,+CAA+C;AAC/C,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAGvF"}