@chances-ai/cli 1.0.0 → 3.0.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 (66) hide show
  1. package/dist/boot/create-app.d.ts +3 -1
  2. package/dist/boot/create-app.d.ts.map +1 -1
  3. package/dist/boot/create-app.js +5 -6
  4. package/dist/boot/create-app.js.map +1 -1
  5. package/dist/boot/load-runtime.d.ts +7 -1
  6. package/dist/boot/load-runtime.d.ts.map +1 -1
  7. package/dist/boot/load-runtime.js +24 -4
  8. package/dist/boot/load-runtime.js.map +1 -1
  9. package/dist/commands/chat.d.ts +9 -1
  10. package/dist/commands/chat.d.ts.map +1 -1
  11. package/dist/commands/chat.js +95 -39
  12. package/dist/commands/chat.js.map +1 -1
  13. package/dist/commands/discover.d.ts +39 -0
  14. package/dist/commands/discover.d.ts.map +1 -0
  15. package/dist/commands/discover.js +280 -0
  16. package/dist/commands/discover.js.map +1 -0
  17. package/dist/commands/doctor.d.ts.map +1 -1
  18. package/dist/commands/doctor.js +5 -2
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/prompt.d.ts.map +1 -1
  21. package/dist/commands/prompt.js +30 -5
  22. package/dist/commands/prompt.js.map +1 -1
  23. package/dist/commands/stats.d.ts +42 -0
  24. package/dist/commands/stats.d.ts.map +1 -0
  25. package/dist/commands/stats.js +172 -0
  26. package/dist/commands/stats.js.map +1 -0
  27. package/dist/entrypoints/cli.d.ts.map +1 -1
  28. package/dist/entrypoints/cli.js +4 -0
  29. package/dist/entrypoints/cli.js.map +1 -1
  30. package/dist/slash/clear.d.ts +13 -0
  31. package/dist/slash/clear.d.ts.map +1 -0
  32. package/dist/slash/clear.js +28 -0
  33. package/dist/slash/clear.js.map +1 -0
  34. package/dist/slash/compact.d.ts +4 -0
  35. package/dist/slash/compact.d.ts.map +1 -0
  36. package/dist/slash/compact.js +68 -0
  37. package/dist/slash/compact.js.map +1 -0
  38. package/dist/slash/help.d.ts +13 -0
  39. package/dist/slash/help.d.ts.map +1 -0
  40. package/dist/slash/help.js +34 -0
  41. package/dist/slash/help.js.map +1 -0
  42. package/dist/slash/index.d.ts +22 -0
  43. package/dist/slash/index.d.ts.map +1 -0
  44. package/dist/slash/index.js +20 -0
  45. package/dist/slash/index.js.map +1 -0
  46. package/dist/slash/logout.d.ts +15 -0
  47. package/dist/slash/logout.d.ts.map +1 -0
  48. package/dist/slash/logout.js +44 -0
  49. package/dist/slash/logout.js.map +1 -0
  50. package/dist/slash/model.d.ts +14 -0
  51. package/dist/slash/model.d.ts.map +1 -0
  52. package/dist/slash/model.js +87 -0
  53. package/dist/slash/model.js.map +1 -0
  54. package/dist/slash/persist.d.ts +16 -0
  55. package/dist/slash/persist.d.ts.map +1 -0
  56. package/dist/slash/persist.js +46 -0
  57. package/dist/slash/persist.js.map +1 -0
  58. package/dist/slash/provider.d.ts +17 -0
  59. package/dist/slash/provider.d.ts.map +1 -0
  60. package/dist/slash/provider.js +98 -0
  61. package/dist/slash/provider.js.map +1 -0
  62. package/dist/slash/resume.d.ts +15 -0
  63. package/dist/slash/resume.d.ts.map +1 -0
  64. package/dist/slash/resume.js +76 -0
  65. package/dist/slash/resume.js.map +1 -0
  66. package/package.json +15 -13
@@ -0,0 +1,98 @@
1
+ import { createElement } from "react";
2
+ import { definePlugin } from "@chances-ai/plugin-api";
3
+ import { KNOWN_MODELS } from "@chances-ai/ai";
4
+ import { ApiKeyPrompt } from "@chances-ai/tui";
5
+ /**
6
+ * `/provider [list|use|add]`
7
+ *
8
+ * - `/provider list` — text dump of which providers are configured.
9
+ * - `/provider use <id>` — sets selection's provider; lets the router pick
10
+ * the first model of that provider for next turn.
11
+ * - `/provider add <id>` — TUI: opens ApiKeyPrompt to enter the key, then
12
+ * persists via AuthStore.setKey. Text mode: refuses
13
+ * with an env-var hint (matching pi's pattern:
14
+ * `<ENVKEY>=… chances` works headlessly).
15
+ *
16
+ * Default (no subcommand) is `list`.
17
+ */
18
+ export function makeProviderPlugin(deps) {
19
+ const command = {
20
+ name: "provider",
21
+ description: "List / switch / add provider credentials.",
22
+ run: async (args, slashCtx) => {
23
+ const sub = args[0] ?? "list";
24
+ if (sub === "list")
25
+ return runList(deps);
26
+ if (sub === "use") {
27
+ const target = args[1];
28
+ if (!target)
29
+ return "usage: /provider use <id>";
30
+ return runUse(deps, target);
31
+ }
32
+ if (sub === "add") {
33
+ const target = args[1];
34
+ if (!target)
35
+ return "usage: /provider add <id>";
36
+ return runAdd(deps, target, slashCtx.openModal);
37
+ }
38
+ return `unknown subcommand: ${sub} (try: list, use, add)`;
39
+ },
40
+ };
41
+ return definePlugin({
42
+ name: "builtin/provider",
43
+ onLoad(ctx) {
44
+ ctx.registerSlashCommand(command);
45
+ },
46
+ });
47
+ }
48
+ function runList(deps) {
49
+ const current = deps.ctx.selection.get();
50
+ const lines = KNOWN_MODELS.map((entry) => {
51
+ const has = deps.ctx.auth.hasCredentials(entry.id);
52
+ const active = entry.id === current.provider;
53
+ const marker = active ? "●" : has ? "✓" : "·";
54
+ return ` ${marker} ${entry.id.padEnd(12)} ${has ? "configured" : `set ${entry.envKey}`}`;
55
+ });
56
+ return [
57
+ "Providers (● = active, ✓ = configured, · = no credential):",
58
+ ...lines,
59
+ ].join("\n");
60
+ }
61
+ function runUse(deps, target) {
62
+ const entry = KNOWN_MODELS.find((e) => e.id === target);
63
+ if (!entry)
64
+ return `unknown provider: ${target}. /provider list shows what's known.`;
65
+ if (!deps.ctx.auth.hasCredentials(target)) {
66
+ return `provider ${target} has no credential — run /provider add ${target} or set ${entry.envKey}`;
67
+ }
68
+ deps.ctx.selection.set({ provider: target, model: undefined });
69
+ return `provider set to ${target} (router will pick a default model from this provider next turn)`;
70
+ }
71
+ async function runAdd(deps, target, openModal) {
72
+ const entry = KNOWN_MODELS.find((e) => e.id === target);
73
+ if (!entry)
74
+ return `unknown provider: ${target}. /provider list shows what's known.`;
75
+ if (!openModal) {
76
+ // Text/`-p` mode: we can't safely prompt for a credential with no TTY.
77
+ // Direct the user to the env-var path (pi's `getEnvApiKey` pattern —
78
+ // already wired in our AuthStore via envByProvider).
79
+ return [
80
+ `interactive credential entry is TUI-only.`,
81
+ `set ${entry.envKey}=<your-key> in your shell and re-run, or run /provider add ${target} from the interactive chat.`,
82
+ ].join("\n");
83
+ }
84
+ const key = await openModal((resolve) => renderApiKeyPrompt(target, resolve));
85
+ if (!key)
86
+ return `cancelled — no credential written for ${target}`;
87
+ try {
88
+ deps.ctx.auth.setKey(target, key);
89
+ }
90
+ catch (e) {
91
+ return `failed to write credential: ${e.message}`;
92
+ }
93
+ return `credential saved for ${target} (~/.config/chances/auth.json, 0600). Use /provider use ${target} to switch.`;
94
+ }
95
+ function renderApiKeyPrompt(provider, resolve) {
96
+ return createElement(ApiKeyPrompt, { provider, onSubmit: resolve });
97
+ }
98
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/slash/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type Plugin } from "@chances-ai/plugin-api";
2
+ import type { BuiltinSlashDeps } from "./index.js";
3
+ /**
4
+ * `/resume [id]`
5
+ * - With an id: triggers a respawn that re-enters the chat loop with the
6
+ * specified session. Unknown id → error.
7
+ * - Without args in TUI: opens SessionPicker (last 10 by updatedAt).
8
+ * - Without args in text mode: lists session ids the user can pass.
9
+ *
10
+ * The actual session-swap is delegated to the chat loop via `deps.respawn`.
11
+ * The slash command itself doesn't mutate the live engine — that would leave
12
+ * the SessionManager reference dangling. Step 8 wires the respawn loop.
13
+ */
14
+ export declare function makeResumePlugin(deps: BuiltinSlashDeps): Plugin;
15
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../src/slash/resume.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAqB,MAAM,wBAAwB,CAAC;AAEtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA2C/D"}
@@ -0,0 +1,76 @@
1
+ import { createElement } from "react";
2
+ import { definePlugin } from "@chances-ai/plugin-api";
3
+ import { SessionPicker } from "@chances-ai/tui";
4
+ /**
5
+ * `/resume [id]`
6
+ * - With an id: triggers a respawn that re-enters the chat loop with the
7
+ * specified session. Unknown id → error.
8
+ * - Without args in TUI: opens SessionPicker (last 10 by updatedAt).
9
+ * - Without args in text mode: lists session ids the user can pass.
10
+ *
11
+ * The actual session-swap is delegated to the chat loop via `deps.respawn`.
12
+ * The slash command itself doesn't mutate the live engine — that would leave
13
+ * the SessionManager reference dangling. Step 8 wires the respawn loop.
14
+ */
15
+ export function makeResumePlugin(deps) {
16
+ const command = {
17
+ name: "resume",
18
+ description: "Switch to a previously-saved session.",
19
+ run: async (args, slashCtx) => {
20
+ const sessions = deps.store.list().slice(0, 10);
21
+ if (sessions.length === 0)
22
+ return "no saved sessions in this workspace yet";
23
+ if (args.length === 0) {
24
+ if (slashCtx.openModal) {
25
+ const picked = await slashCtx.openModal((resolve) => {
26
+ const items = sessions.map((s) => ({
27
+ id: s.id,
28
+ title: s.title,
29
+ updatedAt: s.updatedAt,
30
+ preview: previewOf(s.turns),
31
+ }));
32
+ return renderSessionPicker(items, resolve);
33
+ });
34
+ if (!picked)
35
+ return "resume cancelled";
36
+ deps.respawn(picked.id);
37
+ return `resuming ${picked.id} (${picked.title})`;
38
+ }
39
+ // Text mode listing.
40
+ return [
41
+ "Recent sessions (run /resume <id> to switch):",
42
+ ...sessions.map((s) => ` ${s.id} ${s.updatedAt.slice(0, 10)} ${s.title}`),
43
+ ].join("\n");
44
+ }
45
+ const target = args[0];
46
+ const found = sessions.find((s) => s.id === target);
47
+ if (!found)
48
+ return `unknown session id: ${target}. /resume shows recent ids.`;
49
+ deps.respawn(target);
50
+ return `resuming ${target} (${found.title})`;
51
+ },
52
+ };
53
+ return definePlugin({
54
+ name: "builtin/resume",
55
+ onLoad(ctx) {
56
+ ctx.registerSlashCommand(command);
57
+ },
58
+ });
59
+ }
60
+ function previewOf(turns) {
61
+ for (const turn of turns) {
62
+ for (const msg of turn.messages) {
63
+ if (msg.role !== "user")
64
+ continue;
65
+ for (const part of msg.content) {
66
+ if (part.type === "text" && part.text.trim())
67
+ return part.text.trim();
68
+ }
69
+ }
70
+ }
71
+ return undefined;
72
+ }
73
+ function renderSessionPicker(items, resolve) {
74
+ return createElement(SessionPicker, { sessions: items, onChoose: resolve });
75
+ }
76
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../src/slash/resume.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chances-ai/cli",
3
- "version": "1.0.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "chances": "./dist/entrypoints/cli-node.js",
@@ -9,19 +9,21 @@
9
9
  "files": ["dist"],
10
10
  "dependencies": {
11
11
  "@ai-sdk/anthropic": "^1.2.0",
12
+ "@ai-sdk/google": "^1.2.0",
12
13
  "@ai-sdk/openai": "^1.3.0",
13
- "@chances-ai/ai": "1.0.0",
14
- "@chances-ai/config": "1.0.0",
15
- "@chances-ai/core": "1.0.0",
16
- "@chances-ai/memory": "1.0.0",
17
- "@chances-ai/native": "1.0.0",
18
- "@chances-ai/plugin-api": "1.0.0",
19
- "@chances-ai/plugin-logger": "1.0.0",
20
- "@chances-ai/runtime": "1.0.0",
21
- "@chances-ai/session": "1.0.0",
22
- "@chances-ai/telemetry": "1.0.0",
23
- "@chances-ai/tools": "1.0.0",
24
- "@chances-ai/tui": "1.0.0",
14
+ "@ai-sdk/openai-compatible": "^0.2.0",
15
+ "@chances-ai/ai": "3.0.0",
16
+ "@chances-ai/config": "3.0.0",
17
+ "@chances-ai/core": "3.0.0",
18
+ "@chances-ai/memory": "3.0.0",
19
+ "@chances-ai/native": "3.0.0",
20
+ "@chances-ai/plugin-api": "3.0.0",
21
+ "@chances-ai/plugin-logger": "3.0.0",
22
+ "@chances-ai/runtime": "3.0.0",
23
+ "@chances-ai/session": "3.0.0",
24
+ "@chances-ai/telemetry": "3.0.0",
25
+ "@chances-ai/tools": "3.0.0",
26
+ "@chances-ai/tui": "3.0.0",
25
27
  "ai": "^4.3.0",
26
28
  "ink": "^5.0.1",
27
29
  "react": "^18.3.1",