@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.
- package/CHANGELOG.md +38 -0
- package/README.md +12 -5
- package/VERSION +1 -1
- package/dist/backend/auth.d.ts.map +1 -1
- package/dist/backend/auth.js +3 -1
- package/dist/backend/auth.js.map +1 -1
- package/dist/cli/commands/login.d.ts +21 -0
- package/dist/cli/commands/login.d.ts.map +1 -1
- package/dist/cli/commands/login.js +54 -7
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js +0 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +5 -4
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/agent-turn-classify.d.ts +8 -0
- package/dist/cli/interactive/agent-turn-classify.d.ts.map +1 -0
- package/dist/cli/interactive/agent-turn-classify.js +32 -0
- package/dist/cli/interactive/agent-turn-classify.js.map +1 -0
- package/dist/cli/interactive/agent-turn-format.d.ts +10 -0
- package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn-format.js +76 -53
- package/dist/cli/interactive/agent-turn-format.js.map +1 -1
- package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
- package/dist/cli/interactive/agent-turn.js +16 -5
- package/dist/cli/interactive/agent-turn.js.map +1 -1
- package/dist/cli/interactive/header.d.ts.map +1 -1
- package/dist/cli/interactive/header.js +8 -8
- package/dist/cli/interactive/header.js.map +1 -1
- package/dist/cli/interactive/line-editor.d.ts.map +1 -1
- package/dist/cli/interactive/line-editor.js +11 -0
- package/dist/cli/interactive/line-editor.js.map +1 -1
- package/dist/cli/interactive/redact-input.d.ts +10 -0
- package/dist/cli/interactive/redact-input.d.ts.map +1 -0
- package/dist/cli/interactive/redact-input.js +18 -0
- package/dist/cli/interactive/redact-input.js.map +1 -0
- package/dist/cli/interactive/shell.d.ts.map +1 -1
- package/dist/cli/interactive/shell.js +2 -1
- package/dist/cli/interactive/shell.js.map +1 -1
- package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
- package/dist/cli/interactive/slash-dispatch.js +74 -2
- package/dist/cli/interactive/slash-dispatch.js.map +1 -1
- package/dist/cli/interactive/slash-registry.d.ts.map +1 -1
- package/dist/cli/interactive/slash-registry.js +2 -0
- package/dist/cli/interactive/slash-registry.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +21 -7
- package/dist/config/config.js.map +1 -1
- 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.
|
|
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.
|
|
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.
|
|
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>
|
|
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.
|
|
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,
|
|
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"}
|
package/dist/backend/auth.js
CHANGED
|
@@ -7,6 +7,8 @@ export function describeAuth(state) {
|
|
|
7
7
|
return lines;
|
|
8
8
|
}
|
|
9
9
|
export function isAuthConfigured(input) {
|
|
10
|
-
|
|
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
|
package/dist/backend/auth.js.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
|
10
|
-
printer.error("Usage: patze login <api-url> <token>
|
|
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 =
|
|
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;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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,
|
|
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"}
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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>
|
|
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
|
|
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");
|
package/dist/cli/help.js.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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
|
|
7
|
+
function dim(text) {
|
|
7
8
|
if (!useColor()) {
|
|
8
|
-
return
|
|
9
|
+
return text;
|
|
9
10
|
}
|
|
10
|
-
return `\x1b[
|
|
11
|
+
return `\x1b[2m${text}\x1b[0m`;
|
|
11
12
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
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
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
55
|
-
|
|
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)
|
|
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":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"agent-turn-format.js","sourceRoot":"","sources":["../../../src/cli/interactive/agent-turn-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAoBzD,SAAS,QAAQ;IACf,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAA;AAC9B,CAAC;AAED,SAAS,GAAG,CAAC,IAAY;IACvB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,UAAU,IAAI,SAAS,CAAA;AAChC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAClD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,2BAA2B,CACzC,SAAiB,EACjB,OAAgC;IAEhC,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACtC,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACvE,MAAM,MAAM,GAAG,GAAG,CAChB,KAAK,OAAO,CAAC,eAAe,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,8BAA8B,CACrH,CAAA;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAA;IACpG,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,IAAa,EAAE,SAAkB;IAC5E,IAAI,uDAAuD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,IAAI;YACT,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,+DAA+D,CAAA;IACrE,CAAC;IACD,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI;YACT,CAAC,CAAC,sCAAsC;YACxC,CAAC,CAAC,6CAA6C,CAAA;IACnD,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9C,OAAO,IAAI;YACT,CAAC,CAAC,gEAAgE;YAClE,CAAC,CAAC,8DAA8D,CAAA;IACpE,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAA;IAC1C,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,oEAAoE,CAAA;IAC7E,CAAC;IACD,OAAO,IAAI;QACT,CAAC,CAAC,4CAA4C;QAC9C,CAAC,CAAC,yDAAyD,CAAA;AAC/D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,KAAqB;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAA;IACpF,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,CAAA;IAC/B,MAAM,KAAK,GAAa,CAAC,UAAU,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAEzD,KAAK,CAAC,IAAI,CACR,GAAG,CACD,KAAK,KAAK,CAAC,eAAe,MAAM,SAAS,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,kBAAkB,CAC5F,CACF,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC,cAAc,OAAO,CAAC,CAAC,CAAA;IAE/F,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAA;QACpF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAA;QAC7D,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC/F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,2BAA2B,CAAC,KAAqB;IAC/D,MAAM,KAAK,GAAG;QACZ,cAAc,KAAK,CAAC,SAAS,EAAE;QAC/B,SAAS,KAAK,CAAC,UAAU,EAAE;QAC3B,GAAG,2BAA2B,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC;KACvF,CAAA;IACD,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IACvE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,cAAc,GAAG,CAAC,CAAA;IAC5E,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAClD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -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;
|
|
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"}
|