@patze/code-cli 0.10.4 → 0.10.6

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/CHANGELOG.md +38 -0
  2. package/README.md +12 -5
  3. package/VERSION +1 -1
  4. package/dist/backend/auth.d.ts.map +1 -1
  5. package/dist/backend/auth.js +3 -1
  6. package/dist/backend/auth.js.map +1 -1
  7. package/dist/cli/commands/login.d.ts +21 -0
  8. package/dist/cli/commands/login.d.ts.map +1 -1
  9. package/dist/cli/commands/login.js +54 -7
  10. package/dist/cli/commands/login.js.map +1 -1
  11. package/dist/cli/commands/plan.d.ts.map +1 -1
  12. package/dist/cli/commands/plan.js +0 -2
  13. package/dist/cli/commands/plan.js.map +1 -1
  14. package/dist/cli/help.d.ts.map +1 -1
  15. package/dist/cli/help.js +5 -4
  16. package/dist/cli/help.js.map +1 -1
  17. package/dist/cli/interactive/agent-turn-classify.d.ts +8 -0
  18. package/dist/cli/interactive/agent-turn-classify.d.ts.map +1 -0
  19. package/dist/cli/interactive/agent-turn-classify.js +32 -0
  20. package/dist/cli/interactive/agent-turn-classify.js.map +1 -0
  21. package/dist/cli/interactive/agent-turn-format.d.ts +10 -0
  22. package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -1
  23. package/dist/cli/interactive/agent-turn-format.js +76 -53
  24. package/dist/cli/interactive/agent-turn-format.js.map +1 -1
  25. package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
  26. package/dist/cli/interactive/agent-turn.js +16 -5
  27. package/dist/cli/interactive/agent-turn.js.map +1 -1
  28. package/dist/cli/interactive/header.d.ts.map +1 -1
  29. package/dist/cli/interactive/header.js +8 -8
  30. package/dist/cli/interactive/header.js.map +1 -1
  31. package/dist/cli/interactive/line-editor.d.ts.map +1 -1
  32. package/dist/cli/interactive/line-editor.js +11 -0
  33. package/dist/cli/interactive/line-editor.js.map +1 -1
  34. package/dist/cli/interactive/redact-input.d.ts +10 -0
  35. package/dist/cli/interactive/redact-input.d.ts.map +1 -0
  36. package/dist/cli/interactive/redact-input.js +18 -0
  37. package/dist/cli/interactive/redact-input.js.map +1 -0
  38. package/dist/cli/interactive/shell.d.ts.map +1 -1
  39. package/dist/cli/interactive/shell.js +2 -1
  40. package/dist/cli/interactive/shell.js.map +1 -1
  41. package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
  42. package/dist/cli/interactive/slash-dispatch.js +74 -2
  43. package/dist/cli/interactive/slash-dispatch.js.map +1 -1
  44. package/dist/cli/interactive/slash-registry.d.ts.map +1 -1
  45. package/dist/cli/interactive/slash-registry.js +2 -0
  46. package/dist/cli/interactive/slash-registry.js.map +1 -1
  47. package/dist/config/config.d.ts.map +1 -1
  48. package/dist/config/config.js +21 -7
  49. package/dist/config/config.js.map +1 -1
  50. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,41 @@ All notable changes to `@patze/code-cli` are documented here.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
+ ## [0.10.6] - 2026-05-29
8
+
9
+ ### Changed (composer + turn UX — no trust-loop behavior change)
10
+
11
+ - **Conversational turns** (e.g. “เห็นข้อความผมไหมครับ”, greetings, short questions) get a **short human reply** instead of running server preview or dumping Task/Thinking/Tools sections
12
+ - **Coding tasks** use a **compact one-screen summary** (`Task · …`, status line, digest shorthand, `Next · /diff · /context`) — full detail stays in `/context`
13
+ - Removed fake “Thinking” / verbose Safety walls from default output (less AI-slop)
14
+ - Composer placeholder: `Ask or type / for commands`
15
+ - Startup tips shortened; duplicate navigation hints removed
16
+
17
+ ### Unchanged
18
+
19
+ - Trust loop, apply/verify gating, permission enforcement, server preview for real coding tasks when auth is ready
20
+
21
+ ## [0.10.5] - 2026-05-29
22
+
23
+ ### Added
24
+
25
+ - `/login` and `/logout` slash commands in the interactive shell
26
+ - `/login` with no args shows auth status + setup guidance
27
+ - `/login <api-url> <token> [user-id]` saves credentials locally (token masked in output)
28
+ - `/logout` clears saved credentials (env vars untouched; other settings kept)
29
+ - Secret-bearing `/login` input is redacted from transcript and excluded from ↑↓ recall history
30
+ - Empty-composer placeholder: `Type / for commands, or describe a task` (color TTY only)
31
+ - Stage notice under startup card and in `patze --help`: `Beta · Dev demo — for internal testing only`
32
+
33
+ ### Changed
34
+
35
+ - Auth is **ready** with `api + token` only — `user-id` is optional everywhere (`isAuthConfigured`, `patze login`, `/login`, plan preview)
36
+ - `globalConfigPath()` resolves `homedir()` at call time (test isolation; no behavior change in normal use)
37
+
38
+ ### Unchanged
39
+
40
+ - Trust loop, apply/verify gating, permission enforcement, network/backend contracts
41
+
7
42
  ## [0.10.4] - 2026-05-29
8
43
 
9
44
  ### Changed (live command palette — no behavior change)
@@ -12,6 +47,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
12
47
  - Commands with required args (e.g. `/goal <task>`) complete to `/name ` and wait for input
13
48
  - In-session history via ↑↓ when palette is closed; cursor editing and Ctrl+C clear/exit
14
49
  - Removed legacy readline Tab completer (superseded by live menu)
50
+ - Startup hint: `Type / for commands · ↑↓ to navigate · Tab/Enter to select`
15
51
 
16
52
  ### Unchanged
17
53
 
@@ -133,6 +169,8 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
133
169
 
134
170
  - `patze code inspect`, `patze code plan --preview`, local workspace boundaries
135
171
 
172
+ [0.10.6]: https://github.com/patzeagent/patzelife-plugin-agentdiscord/compare/patze-code-cli-v0.10.5...patze-code-cli-v0.10.6
173
+ [0.10.5]: https://github.com/patzeagent/patzelife-plugin-agentdiscord/compare/patze-code-cli-v0.10.4...patze-code-cli-v0.10.5
136
174
  [0.10.4]: https://github.com/patzeagent/patzelife-plugin-agentdiscord/compare/patze-code-cli-v0.10.3...patze-code-cli-v0.10.4
137
175
  [0.10.3]: https://github.com/patzeagent/patzelife-plugin-agentdiscord/compare/patze-code-cli-v0.10.2...patze-code-cli-v0.10.3
138
176
  [0.10.2]: https://github.com/patzeagent/patzelife-plugin-agentdiscord/compare/patze-code-cli-v0.10.1...patze-code-cli-v0.10.2
package/README.md CHANGED
@@ -28,7 +28,7 @@ Registry:
28
28
 
29
29
  ```bash
30
30
  npm install -g @patze/code-cli@beta
31
- # or pinned: @patze/code-cli@0.10.4
31
+ # or pinned: @patze/code-cli@0.10.5
32
32
  patze --version
33
33
  ```
34
34
 
@@ -44,7 +44,7 @@ git init
44
44
  # 2. Optional — server preview auth (use env, never commit secrets)
45
45
  export PATZE_CODE_API=https://api.example.com
46
46
  export PATZE_CODE_TOKEN=<internal-api-key>
47
- export PATZE_CODE_USER_ID=<user-uuid>
47
+ export PATZE_CODE_USER_ID=<user-uuid> # optional
48
48
 
49
49
  # 3. Read-only checks
50
50
  patze status
@@ -59,12 +59,13 @@ patze
59
59
  Running `patze` shows a status card and tips:
60
60
 
61
61
  ```text
62
- ╭─ Patze Code · v0.10.4 ────────────────────────────────────╮
62
+ ╭─ Patze Code · v0.10.5 ────────────────────────────────────╮
63
63
  │ workspace /mnt/d/pat-test │
64
64
  │ auth incomplete │
65
65
  │ permission Read-only │
66
66
  │ safety preview-first · read-only │
67
67
  ╰───────────────────────────────────────────────────────────╯
68
+ Beta · Dev demo — for internal testing only
68
69
 
69
70
  ! auth incomplete — run `patze login` or set PATZE_CODE_* env
70
71
 
@@ -93,6 +94,12 @@ argument (e.g. `/goal <task>`) complete to `/goal ` and wait for your input.
93
94
  When the palette is closed, ↑↓ recalls in-session history. The composer is
94
95
  TTY-only; piped / scripted input stays on readline and remains deterministic.
95
96
 
97
+ Authenticate from inside the shell with `/login` (or `/login <api-url> <token>`
98
+ to save directly — `user-id` is optional; the token is masked in output and
99
+ never kept in transcript or recall history). `/logout` clears saved credentials.
100
+ Environment variables `PATZE_CODE_API` / `PATZE_CODE_TOKEN` also work
101
+ (`PATZE_CODE_USER_ID` is optional).
102
+
96
103
  Inside `patze`:
97
104
 
98
105
  ```text
@@ -116,7 +123,7 @@ prompt → inspect → plan → diff → permissions → approve → apply → v
116
123
 
117
124
  Docs: [`docs/trust-loop.md`](docs/trust-loop.md) · [`docs/safety-model.md`](docs/safety-model.md)
118
125
 
119
- ## Command status (0.10.3)
126
+ ## Command status (0.10.5)
120
127
 
121
128
  ### Interactive (`patze` shell)
122
129
 
@@ -148,7 +155,7 @@ Docs: [`docs/trust-loop.md`](docs/trust-loop.md) · [`docs/safety-model.md`](doc
148
155
  | `patze --version` | ✅ | |
149
156
  | `patze status [--check]` | ✅ | |
150
157
  | `patze doctor [--check]` | ✅ | Read-only; network only with `--check` |
151
- | `patze login <api> <token> <id>` | ✅ | Writes local config |
158
+ | `patze login <api> <token> [id]` | ✅ | Writes local config (user-id optional) |
152
159
  | `patze goal "<task>" --dry-run` | ✅ | Non-interactive plan |
153
160
  | `patze code inspect` | ✅ | |
154
161
  | `patze code plan --preview` | ✅ | Needs auth |
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.4
1
+ 0.10.6
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/backend/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAOvD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,GAAG,OAAO,CAEV"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/backend/auth.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,OAAO,CAAA;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE,CAOvD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,GAAG,OAAO,CAIV"}
@@ -7,6 +7,8 @@ export function describeAuth(state) {
7
7
  return lines;
8
8
  }
9
9
  export function isAuthConfigured(input) {
10
- return Boolean(input.api && input.token && input.userId);
10
+ // user id is optional: the backend authenticates with the token
11
+ // (X-Internal-API-Key); X-Internal-User-Id is sent only when present.
12
+ return Boolean(input.api && input.token);
11
13
  }
12
14
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/backend/auth.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACvD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAIhC;IACC,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/backend/auth.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACvD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAIhC;IACC,gEAAgE;IAChE,sEAAsE;IACtE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC"}
@@ -1,4 +1,25 @@
1
1
  import type { Printer } from "../ui/printer.js";
2
2
  import type { ParsedArgv } from "../argv.js";
3
+ export type LoginCredentials = {
4
+ api: string;
5
+ token: string;
6
+ userId?: string;
7
+ };
8
+ export type LogoutResult = {
9
+ path: string;
10
+ existed: boolean;
11
+ removedFile: boolean;
12
+ };
13
+ /**
14
+ * Persist credentials to the global config file, preserving any other
15
+ * settings (approval/sandbox/allow/deny) already present. Returns the
16
+ * path written. File mode 0o600 keeps the token owner-only.
17
+ */
18
+ export declare function saveCredentials(creds: LoginCredentials): string;
19
+ /**
20
+ * Remove credential fields from the global config. Other settings are
21
+ * kept; if nothing else remains, the file is deleted.
22
+ */
23
+ export declare function clearCredentials(): LogoutResult;
3
24
  export declare function runLogin(argv: ParsedArgv, printer: Printer): Promise<number>;
4
25
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAsBlF"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAcD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAW/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,CAe/C;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBlF"}
@@ -1,19 +1,66 @@
1
- import { writeFileSync, mkdirSync } from "node:fs";
1
+ import { writeFileSync, mkdirSync, readFileSync, existsSync, rmSync } from "node:fs";
2
2
  import { dirname } from "node:path";
3
3
  import { globalConfigPath } from "../../config/config.js";
4
4
  import { flagString } from "../argv.js";
5
+ function readGlobalConfigRaw(path) {
6
+ try {
7
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
8
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
9
+ return parsed;
10
+ }
11
+ }
12
+ catch {
13
+ // ignore malformed/missing file
14
+ }
15
+ return {};
16
+ }
17
+ /**
18
+ * Persist credentials to the global config file, preserving any other
19
+ * settings (approval/sandbox/allow/deny) already present. Returns the
20
+ * path written. File mode 0o600 keeps the token owner-only.
21
+ */
22
+ export function saveCredentials(creds) {
23
+ const path = globalConfigPath();
24
+ mkdirSync(dirname(path), { recursive: true });
25
+ const existing = readGlobalConfigRaw(path);
26
+ const next = { ...existing, api: creds.api, token: creds.token };
27
+ // user id is optional; keep any previously saved value when omitted.
28
+ if (creds.userId) {
29
+ next.userId = creds.userId;
30
+ }
31
+ writeFileSync(path, `${JSON.stringify(next, null, 2)}\n`, { mode: 0o600 });
32
+ return path;
33
+ }
34
+ /**
35
+ * Remove credential fields from the global config. Other settings are
36
+ * kept; if nothing else remains, the file is deleted.
37
+ */
38
+ export function clearCredentials() {
39
+ const path = globalConfigPath();
40
+ if (!existsSync(path)) {
41
+ return { path, existed: false, removedFile: false };
42
+ }
43
+ const next = { ...readGlobalConfigRaw(path) };
44
+ delete next.api;
45
+ delete next.token;
46
+ delete next.userId;
47
+ if (Object.keys(next).length === 0) {
48
+ rmSync(path, { force: true });
49
+ return { path, existed: true, removedFile: true };
50
+ }
51
+ writeFileSync(path, `${JSON.stringify(next, null, 2)}\n`, { mode: 0o600 });
52
+ return { path, existed: true, removedFile: false };
53
+ }
5
54
  export async function runLogin(argv, printer) {
6
55
  const api = flagString(argv.flags, "api") ?? argv.positional[0] ?? null;
7
56
  const token = flagString(argv.flags, "token") ?? argv.positional[1] ?? null;
8
57
  const userId = flagString(argv.flags, "user-id") ?? flagString(argv.flags, "user") ?? argv.positional[2] ?? null;
9
- if (!api || !token || !userId) {
10
- printer.error("Usage: patze login <api-url> <token> <user-id>");
11
- printer.error(" patze login --api <url> --token <token> --user-id <uuid>");
58
+ if (!api || !token) {
59
+ printer.error("Usage: patze login <api-url> <token> [user-id]");
60
+ printer.error(" patze login --api <url> --token <token> [--user-id <uuid>]");
12
61
  return 2;
13
62
  }
14
- const path = globalConfigPath();
15
- mkdirSync(dirname(path), { recursive: true });
16
- writeFileSync(path, `${JSON.stringify({ api, token, userId }, null, 2)}\n`, { mode: 0o600 });
63
+ const path = saveCredentials({ api, token, userId: userId ?? undefined });
17
64
  printer.info(`Saved credentials to ${path}`);
18
65
  printer.line("Run `patze status` to verify connectivity.");
19
66
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAgB,EAAE,OAAgB;IAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAEhH,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC/D,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAA;QAChF,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;IAC/B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,aAAa,CACX,IAAI,EACJ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACtD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAA;IAED,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAcvC,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAA;QAChE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,OAAO,MAAiC,CAAA;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;IAC/B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,IAAI,GAA4B,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IACzF,qEAAqE;IACrE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC5B,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1E,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAA;IAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IACrD,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAA;IAC7C,OAAO,IAAI,CAAC,GAAG,CAAA;IACf,OAAO,IAAI,CAAC,KAAK,CAAA;IACjB,OAAO,IAAI,CAAC,MAAM,CAAA;IAClB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACnD,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAgB,EAAE,OAAgB;IAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;IAEhH,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC/D,OAAO,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;QAClF,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,CAAA;IAEzE,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;IAC5C,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAA;AAKxC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACnC,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAUD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsD5B"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAA;AAKxC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACnC,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AASD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAsD5B"}
@@ -10,8 +10,6 @@ function missingAuthMessage(config) {
10
10
  missing.push("api");
11
11
  if (!config.token)
12
12
  missing.push("token");
13
- if (!config.userId)
14
- missing.push("userId");
15
13
  return `Auth incomplete (missing: ${missing.join(", ")}). Run \`patze login\` or set PATZE_CODE_* env vars.`;
16
14
  }
17
15
  export async function runPlanPreview(objective, options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,mBAAmB,GAGpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAc1D,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC1C,OAAO,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAA;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAE9B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE;gBACN,6CAA6C;gBAC7C,qBAAqB;gBACrB,qDAAqD;aACtD,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,KAAK;SACnB,CAAA;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,KAAK;SACnB,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAClC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;QAC3B,GAAG;QACH,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE;QAC9B,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACrC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;QAC3B,MAAM;KACP,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;AACpE,CAAC"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/cli/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,mBAAmB,GAGpB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAc1D,SAAS,kBAAkB,CAAC,MAAsB;IAChD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,6BAA6B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAA;AAC9G,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAA8B,EAAE;IAEhC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAA;IAE9B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE;gBACN,6CAA6C;gBAC7C,qBAAqB;gBACrB,qDAAqD;aACtD,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,KAAK;SACnB,CAAA;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC;YAClC,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,KAAK;SACnB,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,mBAAmB,CAAC;QAClC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;QAC3B,GAAG;QACH,MAAM;KACP,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC,OAAQ;QACxB,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE;QAC9B,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACrC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;QAC3B,MAAM;KACP,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IACpE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;AACpE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkChD"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmChD"}
package/dist/cli/help.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { CLI_VERSION } from "../version.js";
2
2
  export function printHelp(printer) {
3
- printer.line(`Patze Code · v${CLI_VERSION} — local terminal coding agent (internal beta)`);
3
+ printer.line(`Patze Code · v${CLI_VERSION} — local terminal coding agent`);
4
+ printer.line("Beta · Dev demo — for internal testing only");
4
5
  printer.line("");
5
6
  printer.line("Usage:");
6
7
  printer.line(" patze Interactive shell (trust loop)");
@@ -8,7 +9,7 @@ export function printHelp(printer) {
8
9
  printer.line(" patze --version Show version");
9
10
  printer.line(" patze status [--check] Local posture + trust-loop snapshot");
10
11
  printer.line(" patze doctor [--check] Read-only diagnostics (no network by default)");
11
- printer.line(" patze login <api> <token> <id> Save credentials locally");
12
+ printer.line(" patze login <api> <token> [id] Save credentials locally");
12
13
  printer.line(' patze goal "<task>" --dry-run Plan without mutation');
13
14
  printer.line(" patze code inspect|plan|diff Read-only / preview commands");
14
15
  printer.line(" patze code apply|verify Disabled or help-only — use /apply /verify in shell");
@@ -19,8 +20,8 @@ export function printHelp(printer) {
19
20
  printer.line(" prompt → inspect → plan → diff → permissions → approve → apply → verify");
20
21
  printer.line("");
21
22
  printer.line("Slash commands (inside patze):");
22
- printer.line(" /help /status /context /goal /inspect /plan /permissions /tools");
23
- printer.line(" /diff /approve /apply /verify /reject /reset /clear /exit");
23
+ printer.line(" /help /status /login /logout /context /goal /inspect /plan");
24
+ printer.line(" /permissions /tools /diff /approve /apply /verify /reject /reset /clear /exit");
24
25
  printer.line("");
25
26
  printer.line("Safety:");
26
27
  printer.line(" • No auto-apply · no --yes · no shell verify");
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,WAAW,gDAAgD,CAAC,CAAA;IAC1F,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC/E,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC7D,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;IACpF,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;IAC9F,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACzE,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACtE,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC7E,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAA;IACpG,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACvC,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAA;IACzF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC9C,OAAO,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IACjF,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;IAC3E,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvB,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC9D,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5B,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACtE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;IACvF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;AACtF,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,OAAO,CAAC,IAAI,CAAC,iBAAiB,WAAW,gCAAgC,CAAC,CAAA;IAC1E,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;IAC3D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC/E,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC7D,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;IACpF,OAAO,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAA;IAC9F,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACzE,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACtE,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAA;IAC7E,OAAO,CAAC,IAAI,CAAC,sFAAsF,CAAC,CAAA;IACpG,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACvC,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAA;IACzF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC9C,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC5E,OAAO,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAC/F,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvB,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC9D,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACrE,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACxD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC5B,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACtE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;IACvF,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;AACtF,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type TurnKind = "conversation" | "task";
2
+ /**
3
+ * Decide whether free-text input is a casual/meta message or a coding task.
4
+ * Conversational turns skip server preview and return a short reply instead.
5
+ */
6
+ export declare function classifyTurnInput(text: string): TurnKind;
7
+ export declare function inputLooksThai(text: string): boolean;
8
+ //# sourceMappingURL=agent-turn-classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-turn-classify.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAA;AAE9C;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAqCxD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Decide whether free-text input is a casual/meta message or a coding task.
3
+ * Conversational turns skip server preview and return a short reply instead.
4
+ */
5
+ export function classifyTurnInput(text) {
6
+ const trimmed = text.trim();
7
+ if (!trimmed) {
8
+ return "conversation";
9
+ }
10
+ const hasCodeIntent = /\b(file|files|code|function|class|module|bug|error|test|tests|api|refactor|implement|fix|add|create|build|write|remove|migrate|debug|patch|diff|lint|deploy|readme|config)\b/i.test(trimmed) || /[{}();=`]/.test(trimmed);
11
+ const taskLead = /^(fix|add|refactor|implement|update|create|build|write|remove|migrate|test|debug|improve|review|rename|extract|optimize)\b/i.test(trimmed);
12
+ if (taskLead || (hasCodeIntent && trimmed.length > 24)) {
13
+ return "task";
14
+ }
15
+ const conversational = /^(hi|hello|hey|thanks|thank you|ok|okay|yes|no|help)\b/i.test(trimmed) ||
16
+ /^(do you|can you|are you|what is|what's|how do)/i.test(trimmed) ||
17
+ /[\??]/.test(trimmed) ||
18
+ /(ไหม|มั้ย|หรือเปล่า|ได้ไหม)/.test(trimmed) ||
19
+ /(เห็น|ได้ยิน|ข้อความ|สวัสดี|ช่วย.*ไหม|พิมพ์)/.test(trimmed) ||
20
+ /(do you see|can you see|hear me)/i.test(trimmed);
21
+ if (conversational && !hasCodeIntent) {
22
+ return "conversation";
23
+ }
24
+ if (trimmed.length <= 48 && !hasCodeIntent && !taskLead) {
25
+ return "conversation";
26
+ }
27
+ return "task";
28
+ }
29
+ export function inputLooksThai(text) {
30
+ return /[\u0E00-\u0E7F]/.test(text);
31
+ }
32
+ //# sourceMappingURL=agent-turn-classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-turn-classify.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-classify.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,MAAM,aAAa,GACjB,+KAA+K,CAAC,IAAI,CAClL,OAAO,CACR,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEhC,MAAM,QAAQ,GACZ,6HAA6H,CAAC,IAAI,CAChI,OAAO,CACR,CAAA;IAEH,IAAI,QAAQ,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,cAAc,GAClB,yDAAyD,CAAC,IAAI,CAAC,OAAO,CAAC;QACvE,kDAAkD,CAAC,IAAI,CAAC,OAAO,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACrB,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5D,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEnD,IAAI,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC"}
@@ -11,5 +11,15 @@ export type AgentTurnModel = {
11
11
  authReady: boolean;
12
12
  mutationsEnabled: false;
13
13
  };
14
+ export type ConversationTurnContext = {
15
+ authReady: boolean;
16
+ permissionMode: string;
17
+ permissionLabel: string;
18
+ };
19
+ /** Short reply for meta/chat prompts — no server preview, no fake “Thinking”. */
20
+ export declare function formatConversationTurnLines(objective: string, context: ConversationTurnContext): string[];
21
+ /** Compact task turn — one screen, no AI-slop sections. Details live in /context. */
14
22
  export declare function formatAgentTurnLines(model: AgentTurnModel): string[];
23
+ /** Verbose formatter kept for /context and tests that need full preview fields. */
24
+ export declare function formatAgentTurnVerboseLines(model: AgentTurnModel): string[];
15
25
  //# sourceMappingURL=agent-turn-format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-format.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC9B,aAAa,EAAE,mBAAmB,CAAA;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,KAAK,CAAA;CACxB,CAAA;AAiBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CA2CpE"}
1
+ {"version":3,"file":"agent-turn-format.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-format.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAG7D,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAA;IAC9B,aAAa,EAAE,mBAAmB,CAAA;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,KAAK,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAoBD,iFAAiF;AACjF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,EAAE,CAQV;AA6BD,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CA8BpE;AAED,mFAAmF;AACnF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAY3E"}
@@ -1,70 +1,93 @@
1
1
  import { formatInspectSummaryCompact } from "../commands/inspect-format.js";
2
2
  import { formatPreviewResponseLines } from "../commands/plan-format.js";
3
+ import { inputLooksThai } from "./agent-turn-classify.js";
3
4
  function useColor() {
4
5
  return !process.env.NO_COLOR;
5
6
  }
6
- function sectionTitle(title) {
7
+ function dim(text) {
7
8
  if (!useColor()) {
8
- return title;
9
+ return text;
9
10
  }
10
- return `\x1b[1m${title}\x1b[0m`;
11
+ return `\x1b[2m${text}\x1b[0m`;
11
12
  }
12
- function bullet(line) {
13
- return ` - ${line}`;
13
+ function shortDigest(value) {
14
+ if (value.length <= 14) {
15
+ return value;
16
+ }
17
+ return `${value.slice(0, 8)}…${value.slice(-4)}`;
18
+ }
19
+ /** Short reply for meta/chat prompts — no server preview, no fake “Thinking”. */
20
+ export function formatConversationTurnLines(objective, context) {
21
+ const thai = inputLooksThai(objective);
22
+ const reply = pickConversationReply(objective, thai, context.authReady);
23
+ const status = dim(` ${context.permissionLabel} · ${context.authReady ? "auth ready" : "auth incomplete"} · read-only · no auto-apply`);
24
+ const hint = dim(thai ? " /help · /status · / — เมนูคำสั่ง" : " /help · /status · / for commands");
25
+ return [reply, "", status, hint];
26
+ }
27
+ function pickConversationReply(text, thai, authReady) {
28
+ if (/(เห็น|ได้ยิน|ข้อความ|do you see|can you see|hear me)/i.test(text)) {
29
+ return thai
30
+ ? "เห็นครับ พิมพ์งานที่อยากให้ช่วยได้เลย"
31
+ : "I see your message. Describe a coding task when you're ready.";
32
+ }
33
+ if (/^(hi|hello|hey|สวัสดี)/i.test(text.trim())) {
34
+ return thai
35
+ ? "สวัสดีครับ พิมพ์งานหรือ /help ได้เลย"
36
+ : "Hi. Describe a task or type / for commands.";
37
+ }
38
+ if (/^(help|\/?help|ช่วย)/i.test(text.trim())) {
39
+ return thai
40
+ ? "พิมพ์ /help ดูคำสั่ง · / เปิดเมนู · อธิบายงานเป็นข้อความธรรมดา"
41
+ : "Type /help for commands, / for the menu, or describe a task.";
42
+ }
43
+ if (/^(thanks|thank you|ขอบคุณ)/i.test(text.trim())) {
44
+ return thai ? "ครับ" : "You're welcome.";
45
+ }
46
+ if (!authReady && thai) {
47
+ return "รับทราบครับ ตั้ง auth ด้วย /login หรือ env ก่อน preview จาก server";
48
+ }
49
+ return thai
50
+ ? "รับทราบครับ บอกงาน coding ที่ต้องการได้เลย"
51
+ : "Got it. Describe a coding task, or type / for commands.";
14
52
  }
53
+ /** Compact task turn — one screen, no AI-slop sections. Details live in /context. */
15
54
  export function formatAgentTurnLines(model) {
16
- const lines = [
17
- sectionTitle("Task"),
18
- bullet(`accepted: ${model.objective}`),
19
- "",
20
- sectionTitle("Thinking"),
21
- bullet("Understand the request within the current workspace boundaries."),
22
- bullet(model.authReady
23
- ? "Auth is ready request a server preview digest."
24
- : "Auth is incomplete — stay local with a dry-run plan."),
25
- bullet("Do not mutate files or shell state in this turn."),
26
- "",
27
- sectionTitle("Tools"),
28
- ...model.toolSteps.map((step) => bullet(step)),
29
- "",
30
- sectionTitle("Context"),
31
- ...formatInspectSummaryCompact(model.inspectSummary).map((line) => bullet(line)),
32
- "",
33
- sectionTitle("Plan"),
34
- bullet(`source: ${model.planSource === "server" ? "server preview" : "local dry-run"}`),
35
- ...formatPlanSection(model),
36
- "",
37
- sectionTitle("Safety"),
38
- bullet(`permission mode: ${model.permissionLabel} (${model.permissionMode})`),
39
- bullet("mutations: disabled"),
40
- bullet("auto-apply: forbidden"),
41
- bullet(`network: ${model.planSource === "server" ? "preview endpoint only" : "none"}`),
42
- "",
43
- sectionTitle("Next"),
44
- bullet("/diff — review patch proposal when preview includes one"),
45
- bullet(model.previewResult.source === "server" && model.previewResult.status === "ok"
46
- ? "/approve — available when a pending preview action exists"
47
- : "/approve — review pending action after a successful preview"),
48
- bullet("/permissions — inspect or change permission mode"),
49
- bullet("/context — show stored goal, inspect, and preview state"),
50
- bullet("/exit — leave interactive mode"),
51
- ];
55
+ const planLabel = model.planSource === "server" ? "server preview" : "local dry-run";
56
+ const ws = model.inspectSummary;
57
+ const lines = [`Task · ${model.objective}`, ""];
58
+ lines.push(dim(` ${model.permissionLabel} · ${planLabel} · ${model.previewResult.status} · mutations off`));
59
+ lines.push(dim(` workspace · ${ws.root} · ${ws.fileCount} files · ${ws.directoryCount} dirs`));
60
+ if (model.previewResult.source === "server" && model.previewResult.server) {
61
+ const server = model.previewResult.server;
62
+ const approval = server.approval_required ? "approval required" : "no approval gate";
63
+ lines.push(dim(` preview · ${server.status} · ${approval}`));
64
+ if (server.artifact_digest) {
65
+ lines.push(dim(` digest · ${shortDigest(server.artifact_digest)}`));
66
+ }
67
+ if (server.finding_codes?.length) {
68
+ lines.push(dim(` findings · ${server.finding_codes.join(", ")}`));
69
+ }
70
+ }
71
+ else if (model.previewResult.localSteps?.length) {
72
+ const preview = model.previewResult.localSteps.slice(0, 2).join("; ");
73
+ lines.push(dim(` plan · ${preview}${model.previewResult.localSteps.length > 2 ? "" : ""}`));
74
+ }
75
+ lines.push("");
76
+ lines.push(dim(" Next · /diff · /context · /permissions"));
52
77
  return lines;
53
78
  }
54
- function formatPlanSection(model) {
55
- const lines = [];
79
+ /** Verbose formatter kept for /context and tests that need full preview fields. */
80
+ export function formatAgentTurnVerboseLines(model) {
81
+ const lines = [
82
+ `objective: ${model.objective}`,
83
+ `plan: ${model.planSource}`,
84
+ ...formatInspectSummaryCompact(model.inspectSummary).map((line) => `inspect: ${line}`),
85
+ ];
56
86
  if (model.previewResult.source === "server" && model.previewResult.server) {
57
- lines.push(...formatPreviewResponseLines(model.previewResult.server).map((line) => bullet(line)));
58
- return lines;
59
- }
60
- lines.push(bullet(`status: ${model.previewResult.status}`));
61
- const steps = model.previewResult.localSteps ?? [];
62
- if (steps.length) {
63
- lines.push(bullet("steps:"));
64
- for (const step of steps) {
65
- lines.push(` • ${step}`);
66
- }
87
+ lines.push(...formatPreviewResponseLines(model.previewResult.server));
67
88
  }
89
+ lines.push(`permission: ${model.permissionLabel} (${model.permissionMode})`);
90
+ lines.push(`tools: ${model.toolSteps.join(", ")}`);
68
91
  return lines;
69
92
  }
70
93
  //# sourceMappingURL=agent-turn-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn-format.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-turn-format.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-format.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-turn.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAK7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAItD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAEjD,wBAAsB,YAAY,CAChC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAiG1B"}
1
+ {"version":3,"file":"agent-turn.d.ts","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAK7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAKtD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAA;AAEjD,wBAAsB,YAAY,CAChC,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA6G1B"}