@patze/code-cli 0.10.6 → 0.15.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 (146) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/VERSION +1 -1
  3. package/bin/patze.mjs +0 -0
  4. package/dist/backend/agent-trace.d.ts +15 -0
  5. package/dist/backend/agent-trace.d.ts.map +1 -0
  6. package/dist/backend/agent-trace.js +53 -0
  7. package/dist/backend/agent-trace.js.map +1 -0
  8. package/dist/backend/execute-client.d.ts +51 -0
  9. package/dist/backend/execute-client.d.ts.map +1 -0
  10. package/dist/backend/execute-client.js +140 -0
  11. package/dist/backend/execute-client.js.map +1 -0
  12. package/dist/backend/preview-payload.d.ts +15 -3
  13. package/dist/backend/preview-payload.d.ts.map +1 -1
  14. package/dist/backend/preview-payload.js +38 -10
  15. package/dist/backend/preview-payload.js.map +1 -1
  16. package/dist/backend/run-record.d.ts +16 -0
  17. package/dist/backend/run-record.d.ts.map +1 -0
  18. package/dist/backend/run-record.js +43 -0
  19. package/dist/backend/run-record.js.map +1 -0
  20. package/dist/backend/run-stream-client.d.ts +36 -0
  21. package/dist/backend/run-stream-client.d.ts.map +1 -0
  22. package/dist/backend/run-stream-client.js +109 -0
  23. package/dist/backend/run-stream-client.js.map +1 -0
  24. package/dist/backend/runs-client.d.ts +35 -0
  25. package/dist/backend/runs-client.d.ts.map +1 -0
  26. package/dist/backend/runs-client.js +87 -0
  27. package/dist/backend/runs-client.js.map +1 -0
  28. package/dist/backend/session-client.d.ts +17 -0
  29. package/dist/backend/session-client.d.ts.map +1 -0
  30. package/dist/backend/session-client.js +54 -0
  31. package/dist/backend/session-client.js.map +1 -0
  32. package/dist/backend/sse-parse.d.ts +14 -0
  33. package/dist/backend/sse-parse.d.ts.map +1 -0
  34. package/dist/backend/sse-parse.js +63 -0
  35. package/dist/backend/sse-parse.js.map +1 -0
  36. package/dist/cli/commands/agent.d.ts +8 -0
  37. package/dist/cli/commands/agent.d.ts.map +1 -0
  38. package/dist/cli/commands/agent.js +72 -0
  39. package/dist/cli/commands/agent.js.map +1 -0
  40. package/dist/cli/commands/plan.d.ts +3 -0
  41. package/dist/cli/commands/plan.d.ts.map +1 -1
  42. package/dist/cli/commands/plan.js +3 -0
  43. package/dist/cli/commands/plan.js.map +1 -1
  44. package/dist/cli/commands/runs-format.d.ts +4 -0
  45. package/dist/cli/commands/runs-format.d.ts.map +1 -0
  46. package/dist/cli/commands/runs-format.js +50 -0
  47. package/dist/cli/commands/runs-format.js.map +1 -0
  48. package/dist/cli/commands/runs.d.ts.map +1 -1
  49. package/dist/cli/commands/runs.js +78 -8
  50. package/dist/cli/commands/runs.js.map +1 -1
  51. package/dist/cli/commands/status-format.d.ts.map +1 -1
  52. package/dist/cli/commands/status-format.js +11 -0
  53. package/dist/cli/commands/status-format.js.map +1 -1
  54. package/dist/cli/help.d.ts.map +1 -1
  55. package/dist/cli/help.js +7 -3
  56. package/dist/cli/help.js.map +1 -1
  57. package/dist/cli/interactive/agent-execute-turn.d.ts +26 -0
  58. package/dist/cli/interactive/agent-execute-turn.d.ts.map +1 -0
  59. package/dist/cli/interactive/agent-execute-turn.js +127 -0
  60. package/dist/cli/interactive/agent-execute-turn.js.map +1 -0
  61. package/dist/cli/interactive/agent-stream-format.d.ts +24 -0
  62. package/dist/cli/interactive/agent-stream-format.d.ts.map +1 -0
  63. package/dist/cli/interactive/agent-stream-format.js +170 -0
  64. package/dist/cli/interactive/agent-stream-format.js.map +1 -0
  65. package/dist/cli/interactive/agent-turn-context.d.ts +11 -0
  66. package/dist/cli/interactive/agent-turn-context.d.ts.map +1 -0
  67. package/dist/cli/interactive/agent-turn-context.js +57 -0
  68. package/dist/cli/interactive/agent-turn-context.js.map +1 -0
  69. package/dist/cli/interactive/agent-turn-format.d.ts +4 -3
  70. package/dist/cli/interactive/agent-turn-format.d.ts.map +1 -1
  71. package/dist/cli/interactive/agent-turn-format.js +38 -39
  72. package/dist/cli/interactive/agent-turn-format.js.map +1 -1
  73. package/dist/cli/interactive/agent-turn.d.ts +5 -1
  74. package/dist/cli/interactive/agent-turn.d.ts.map +1 -1
  75. package/dist/cli/interactive/agent-turn.js +84 -7
  76. package/dist/cli/interactive/agent-turn.js.map +1 -1
  77. package/dist/cli/interactive/cloud-git.d.ts +13 -0
  78. package/dist/cli/interactive/cloud-git.d.ts.map +1 -0
  79. package/dist/cli/interactive/cloud-git.js +43 -0
  80. package/dist/cli/interactive/cloud-git.js.map +1 -0
  81. package/dist/cli/interactive/header.d.ts +2 -1
  82. package/dist/cli/interactive/header.d.ts.map +1 -1
  83. package/dist/cli/interactive/header.js +9 -1
  84. package/dist/cli/interactive/header.js.map +1 -1
  85. package/dist/cli/interactive/launcher.d.ts +3 -0
  86. package/dist/cli/interactive/launcher.d.ts.map +1 -0
  87. package/dist/cli/interactive/launcher.js +43 -0
  88. package/dist/cli/interactive/launcher.js.map +1 -0
  89. package/dist/cli/interactive/line-editor.d.ts.map +1 -1
  90. package/dist/cli/interactive/line-editor.js +19 -8
  91. package/dist/cli/interactive/line-editor.js.map +1 -1
  92. package/dist/cli/interactive/model-command.d.ts +6 -0
  93. package/dist/cli/interactive/model-command.d.ts.map +1 -0
  94. package/dist/cli/interactive/model-command.js +40 -0
  95. package/dist/cli/interactive/model-command.js.map +1 -0
  96. package/dist/cli/interactive/run-replay.d.ts +17 -0
  97. package/dist/cli/interactive/run-replay.d.ts.map +1 -0
  98. package/dist/cli/interactive/run-replay.js +114 -0
  99. package/dist/cli/interactive/run-replay.js.map +1 -0
  100. package/dist/cli/interactive/session-controller.d.ts +22 -0
  101. package/dist/cli/interactive/session-controller.d.ts.map +1 -0
  102. package/dist/cli/interactive/session-controller.js +103 -0
  103. package/dist/cli/interactive/session-controller.js.map +1 -0
  104. package/dist/cli/interactive/session-store.d.ts +20 -0
  105. package/dist/cli/interactive/session-store.d.ts.map +1 -0
  106. package/dist/cli/interactive/session-store.js +88 -0
  107. package/dist/cli/interactive/session-store.js.map +1 -0
  108. package/dist/cli/interactive/session.d.ts +30 -0
  109. package/dist/cli/interactive/session.d.ts.map +1 -1
  110. package/dist/cli/interactive/session.js +69 -0
  111. package/dist/cli/interactive/session.js.map +1 -1
  112. package/dist/cli/interactive/shell.d.ts.map +1 -1
  113. package/dist/cli/interactive/shell.js +14 -43
  114. package/dist/cli/interactive/shell.js.map +1 -1
  115. package/dist/cli/interactive/slash-dispatch.d.ts +7 -1
  116. package/dist/cli/interactive/slash-dispatch.d.ts.map +1 -1
  117. package/dist/cli/interactive/slash-dispatch.js +116 -8
  118. package/dist/cli/interactive/slash-dispatch.js.map +1 -1
  119. package/dist/cli/interactive/slash-registry.d.ts.map +1 -1
  120. package/dist/cli/interactive/slash-registry.js +6 -0
  121. package/dist/cli/interactive/slash-registry.js.map +1 -1
  122. package/dist/cli/interactive/transcript-format.d.ts +3 -0
  123. package/dist/cli/interactive/transcript-format.d.ts.map +1 -0
  124. package/dist/cli/interactive/transcript-format.js +29 -0
  125. package/dist/cli/interactive/transcript-format.js.map +1 -0
  126. package/dist/cli/main.d.ts.map +1 -1
  127. package/dist/cli/main.js +35 -3
  128. package/dist/cli/main.js.map +1 -1
  129. package/dist/cli/one-shot-args.d.ts +9 -0
  130. package/dist/cli/one-shot-args.d.ts.map +1 -0
  131. package/dist/cli/one-shot-args.js +35 -0
  132. package/dist/cli/one-shot-args.js.map +1 -0
  133. package/dist/cli/read-stdin.d.ts +2 -0
  134. package/dist/cli/read-stdin.d.ts.map +1 -0
  135. package/dist/cli/read-stdin.js +12 -0
  136. package/dist/cli/read-stdin.js.map +1 -0
  137. package/dist/config/config.d.ts +2 -0
  138. package/dist/config/config.d.ts.map +1 -1
  139. package/dist/config/config.js +8 -0
  140. package/dist/config/config.js.map +1 -1
  141. package/dist/config/models.d.ts +11 -0
  142. package/dist/config/models.d.ts.map +1 -0
  143. package/dist/config/models.js +51 -0
  144. package/dist/config/models.js.map +1 -0
  145. package/docs/known-limitations.md +12 -6
  146. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,92 @@ 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.15.0] - 2026-05-29
8
+
9
+ ### Added
10
+
11
+ - **`npm run e2e:cloud`** / **`e2e:cloud:interactive`** / **`e2e:cloud:all`** — dev-server cloud E2E (API + interactive `/cloud` flow).
12
+ - **Cloud execute (opt-in)** — `run-cloud.mjs` + server `FEATURE_PATZE_CODE_CLI_CLOUD_EXECUTE`; `/cloud` validates GitHub `origin`.
13
+ - **OpenTUI shell (optional)** — `PATZE_USE_OPENTUI=1` + Bun; falls back to Node readline shell.
14
+ - **`session-controller`** — shared interactive turn loop for Node shell and OpenTUI.
15
+
16
+ ### Changed
17
+
18
+ - Preview payload sends `metadata.execution_mode`, `cloud_repo_url`, `cloud_repo_ref`.
19
+ - Cloud no longer hard-blocked at CLI when server flag enables it.
20
+
21
+ ## [0.14.0] - 2026-05-29
22
+
23
+ ### Added
24
+
25
+ - **`patze runs list|open [--stream]`** — read-only sync with server run history.
26
+ - **Session persistence** — `~/.patze/sessions/<cwd-hash>.json` restores transcript, model, last run, execution mode.
27
+ - **Multi-turn context** — prior CLI turns forwarded as `metadata.conversation_context` to SDK prompt.
28
+ - **`/local`**, **`/cloud`**, **`/runs`** slash commands (cloud execute blocked honestly in beta).
29
+
30
+ ### Changed
31
+
32
+ - **`patze config`** shows resolved config paths (read-only).
33
+ - **`/reset`** starts a fresh conversation epoch without clearing model override.
34
+
35
+ ## [0.13.0] - 2026-05-29
36
+
37
+ ### Added
38
+
39
+ - **Cookbook one-shot mode:** `patze "task"`, `patze agent "task"`, piped stdin; flags `--model`, `--cwd`, `--dry-run`.
40
+ - **`/model`** session model picker + `metadata.model_hint` wired to server SDK execute.
41
+ - **`/run`** SSE replay (or stored trace fallback) and **`/last`** run summary.
42
+ - **Live tool/thinking upsert** during stream (`[~]`/`[x]`/`[…]` prefixes).
43
+
44
+ ### Changed
45
+
46
+ - Interactive header shows current model.
47
+
48
+ ## [0.12.0] - 2026-05-29
49
+
50
+ ### Added
51
+
52
+ - **Cookbook execute parity (local):** CLI pins `metadata.workspace_cwd` + `cookbook_cli_task` workflow; server runs Cursor SDK against the user's directory (not monorepo root).
53
+ - **Live assistant deltas** during SSE execute (`stream_delta` / partial transcript on TTY).
54
+ - **Streaming subprocess timeout** enforced while PATZE_TRACE lines are still arriving.
55
+
56
+ ### Changed
57
+
58
+ - Default SDK execute budget: **600s** (`PATZE_CODE_SDK_EXECUTE_TIMEOUT_SECONDS`).
59
+ - Run stream client default timeout: **600s**.
60
+
61
+ ## [0.11.1] - 2026-05-29
62
+
63
+ ### Fixed
64
+
65
+ - **Composer cursor** — TTY bordered input placed the cursor one line too high (on the top border). Cursor now aligns inside the input row.
66
+
67
+ ## [0.11.0] - 2026-05-29
68
+
69
+ ### Added
70
+
71
+ - **Real agent execute + SSE stream** for coding tasks when auth + preview succeed: `POST /internal/patze-code/user-task-execute` → `GET .../user-task-runs/{id}/stream`
72
+ - Live transcript rows during runs: `run` / `tool` / `agent` (trace + final output)
73
+ - Opt-out: `PATZE_CODE_CLI_EXECUTE=0` keeps preview-only behavior
74
+
75
+ ### Unchanged
76
+
77
+ - Trust loop: **no auto-apply**; `/diff` → `/approve` → `/apply` still required for workspace writes
78
+
79
+ ## [0.10.7] - 2026-05-29
80
+
81
+ ### Changed
82
+
83
+ - **Contextual replies** — workspace/folder/auth questions answered from local inspect (real cwd/root paths, file counts) instead of generic deflection
84
+ - **Transcript layout** — cookbook-style `you` / `agent` rows; no repeated status footer on every turn
85
+ - **Bordered composer** — TTY input uses a framed prompt (closer to [Cursor coding-agent-cli](https://github.com/cursor/cookbook/tree/main/sdk/coding-agent-cli))
86
+ - **`/login`** — auto-resolves `user_id` from `GET /internal/patze-code/session` when omitted
87
+ - **`/status --check`** — reports session user mapping when `userId` is not in config
88
+
89
+ ### Unchanged
90
+
91
+ - Trust loop: preview-first, no auto-apply, no SSE execute from CLI
92
+
7
93
  ## [0.10.6] - 2026-05-29
8
94
 
9
95
  ### Changed (composer + turn UX — no trust-loop behavior change)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.6
1
+ 0.15.0
package/bin/patze.mjs CHANGED
File without changes
@@ -0,0 +1,15 @@
1
+ export type AgentTraceKind = "thinking" | "tool" | "text" | "status" | "task";
2
+ export type AgentTraceStatus = "running" | "done" | "error";
3
+ export type AgentTraceEvent = {
4
+ id: string;
5
+ kind: AgentTraceKind;
6
+ title: string;
7
+ detail?: string;
8
+ status?: AgentTraceStatus;
9
+ toolName?: string;
10
+ streamDelta?: boolean;
11
+ };
12
+ export declare function parseAgentTraceItem(raw: unknown): AgentTraceEvent | null;
13
+ export declare function isIgnorableStatusTrace(event: AgentTraceEvent): boolean;
14
+ export declare function excerptTraceText(text: string, max?: number): string;
15
+ //# sourceMappingURL=agent-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-trace.d.ts","sourceRoot":"","sources":["../../src/backend/agent-trace.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAC7E,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;AAE3D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CA0BxE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAkBtE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAShE"}
@@ -0,0 +1,53 @@
1
+ export function parseAgentTraceItem(raw) {
2
+ if (!raw || typeof raw !== "object") {
3
+ return null;
4
+ }
5
+ const record = raw;
6
+ const kind = String(record.kind ?? "").trim();
7
+ if (!["thinking", "tool", "text", "status", "task"].includes(kind)) {
8
+ return null;
9
+ }
10
+ const title = String(record.title ?? "").trim();
11
+ if (!title) {
12
+ return null;
13
+ }
14
+ const statusRaw = String(record.status ?? "done").trim();
15
+ const status = statusRaw === "running" || statusRaw === "error" ? statusRaw : "done";
16
+ return {
17
+ id: String(record.id ?? `trace-${Date.now()}`),
18
+ kind,
19
+ title,
20
+ detail: typeof record.detail === "string" ? record.detail : undefined,
21
+ status,
22
+ toolName: typeof record.toolName === "string" ? record.toolName : undefined,
23
+ streamDelta: record.stream_delta === true,
24
+ };
25
+ }
26
+ export function isIgnorableStatusTrace(event) {
27
+ if (event.kind !== "status") {
28
+ return false;
29
+ }
30
+ const title = event.title.trim().toUpperCase();
31
+ const detail = (event.detail ?? "").trim().toUpperCase();
32
+ if (!title && !detail) {
33
+ return true;
34
+ }
35
+ return (title === "RUNNING" ||
36
+ title === "STATUS" ||
37
+ title === "PENDING" ||
38
+ title === "QUEUED" ||
39
+ title.includes("RUNNING") ||
40
+ detail === "RUNNING" ||
41
+ detail === "PENDING");
42
+ }
43
+ export function excerptTraceText(text, max = 240) {
44
+ const normalized = text.replace(/\r\n/g, "\n").replace(/\s+/g, " ").trim();
45
+ if (!normalized) {
46
+ return "";
47
+ }
48
+ if (normalized.length <= max) {
49
+ return normalized;
50
+ }
51
+ return `${normalized.slice(0, max - 1)}…`;
52
+ }
53
+ //# sourceMappingURL=agent-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-trace.js","sourceRoot":"","sources":["../../src/backend/agent-trace.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,MAAM,GAAG,GAA8B,CAAA;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAoB,CAAA;IAC/D,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACxD,MAAM,MAAM,GACV,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAEvE,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,SAAS,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9C,IAAI;QACJ,KAAK;QACL,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACrE,MAAM;QACN,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC3E,WAAW,EAAE,MAAM,CAAC,YAAY,KAAK,IAAI;KAC1C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAsB;IAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC9C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACxD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CACL,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,QAAQ;QAClB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QACzB,MAAM,KAAK,SAAS;QACpB,MAAM,KAAK,SAAS,CACrB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAG,GAAG,GAAG;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;AAC3C,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { PreviewTaskPayload } from "./preview-payload.js";
2
+ import type { FetchLike } from "./preview-client.js";
3
+ export type ExecuteAcceptedResponse = {
4
+ status: string;
5
+ run_id: string;
6
+ phase: string;
7
+ };
8
+ export type ExecuteCompletedResponse = {
9
+ status: string;
10
+ error_code: string;
11
+ preview_artifact_digest: string;
12
+ pipeline_digest: string;
13
+ review_digest: string;
14
+ agent_output_digest: string;
15
+ agent_output_length: number;
16
+ agent_output_preview?: string;
17
+ outcome_summary?: string;
18
+ finding_codes: string[];
19
+ run_id: string;
20
+ digest: string;
21
+ phase?: string;
22
+ agent_model?: string;
23
+ progress_steps?: string[];
24
+ deliverable_paths?: string[];
25
+ agent_trace?: unknown[];
26
+ };
27
+ export type ExecuteClientResult = {
28
+ ok: true;
29
+ kind: "accepted";
30
+ response: ExecuteAcceptedResponse;
31
+ httpStatus: number;
32
+ } | {
33
+ ok: true;
34
+ kind: "completed";
35
+ response: ExecuteCompletedResponse;
36
+ httpStatus: number;
37
+ } | {
38
+ ok: false;
39
+ kind: "auth" | "network" | "server";
40
+ message: string;
41
+ httpStatus: number | null;
42
+ };
43
+ export declare function postUserTaskExecute(input: {
44
+ apiBase: string;
45
+ headers: Record<string, string>;
46
+ payload: PreviewTaskPayload;
47
+ previewArtifactDigest: string;
48
+ fetchImpl?: FetchLike;
49
+ timeoutMs?: number;
50
+ }): Promise<ExecuteClientResult>;
51
+ //# sourceMappingURL=execute-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-client.d.ts","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,uBAAuB,EAAE,MAAM,CAAA;IAC/B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B,WAAW,CAAC,EAAE,OAAO,EAAE,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,wBAAwB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAA;AAElG,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,kBAAkB,CAAA;IAC3B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4E/B"}
@@ -0,0 +1,140 @@
1
+ export async function postUserTaskExecute(input) {
2
+ const fetchImpl = input.fetchImpl ?? fetch;
3
+ const url = new URL("/internal/patze-code/user-task-execute", input.apiBase);
4
+ const controller = new AbortController();
5
+ const timer = setTimeout(() => controller.abort(), input.timeoutMs ?? 180_000);
6
+ try {
7
+ const response = await fetchImpl(url, {
8
+ method: "POST",
9
+ headers: input.headers,
10
+ body: JSON.stringify({
11
+ ...input.payload,
12
+ preview_artifact_digest: input.previewArtifactDigest,
13
+ }),
14
+ signal: controller.signal,
15
+ });
16
+ let body;
17
+ try {
18
+ body = await response.json();
19
+ }
20
+ catch {
21
+ return {
22
+ ok: false,
23
+ kind: "server",
24
+ message: `execute returned non-JSON (${response.status})`,
25
+ httpStatus: response.status,
26
+ };
27
+ }
28
+ if (response.status === 401 || response.status === 403) {
29
+ return {
30
+ ok: false,
31
+ kind: "auth",
32
+ message: extractDetail(body) ?? `execute auth failed (${response.status})`,
33
+ httpStatus: response.status,
34
+ };
35
+ }
36
+ if (response.status === 202) {
37
+ const normalized = normalizeAccepted(body);
38
+ if (!normalized) {
39
+ return {
40
+ ok: false,
41
+ kind: "server",
42
+ message: "execute accepted with unexpected shape",
43
+ httpStatus: response.status,
44
+ };
45
+ }
46
+ return { ok: true, kind: "accepted", response: normalized, httpStatus: response.status };
47
+ }
48
+ if (response.status === 200 || response.status === 409) {
49
+ const normalized = normalizeCompleted(body);
50
+ if (!normalized) {
51
+ return {
52
+ ok: false,
53
+ kind: "server",
54
+ message: "execute returned unexpected shape",
55
+ httpStatus: response.status,
56
+ };
57
+ }
58
+ return { ok: true, kind: "completed", response: normalized, httpStatus: response.status };
59
+ }
60
+ return {
61
+ ok: false,
62
+ kind: "server",
63
+ message: extractDetail(body) ?? `execute failed (${response.status})`,
64
+ httpStatus: response.status,
65
+ };
66
+ }
67
+ catch (error) {
68
+ const message = error instanceof Error ? error.message : "execute request failed";
69
+ return { ok: false, kind: "network", message, httpStatus: null };
70
+ }
71
+ finally {
72
+ clearTimeout(timer);
73
+ }
74
+ }
75
+ function extractDetail(body) {
76
+ if (!body || typeof body !== "object") {
77
+ return null;
78
+ }
79
+ const detail = body.detail;
80
+ if (typeof detail === "string" && detail.trim()) {
81
+ return detail.trim();
82
+ }
83
+ const errorCode = body.error_code;
84
+ if (typeof errorCode === "string" && errorCode.trim()) {
85
+ return errorCode.trim();
86
+ }
87
+ return null;
88
+ }
89
+ function normalizeAccepted(body) {
90
+ if (!body || typeof body !== "object") {
91
+ return null;
92
+ }
93
+ const record = body;
94
+ const runId = String(record.run_id ?? "").trim();
95
+ if (!runId) {
96
+ return null;
97
+ }
98
+ return {
99
+ status: String(record.status ?? "accepted"),
100
+ run_id: runId,
101
+ phase: String(record.phase ?? "queued"),
102
+ };
103
+ }
104
+ function normalizeCompleted(body) {
105
+ if (!body || typeof body !== "object") {
106
+ return null;
107
+ }
108
+ const record = body;
109
+ const runId = String(record.run_id ?? "").trim();
110
+ if (!runId) {
111
+ return null;
112
+ }
113
+ const findingCodes = Array.isArray(record.finding_codes)
114
+ ? record.finding_codes.filter((item) => typeof item === "string")
115
+ : [];
116
+ return {
117
+ status: String(record.status ?? ""),
118
+ error_code: String(record.error_code ?? ""),
119
+ preview_artifact_digest: String(record.preview_artifact_digest ?? ""),
120
+ pipeline_digest: String(record.pipeline_digest ?? ""),
121
+ review_digest: String(record.review_digest ?? ""),
122
+ agent_output_digest: String(record.agent_output_digest ?? ""),
123
+ agent_output_length: Number(record.agent_output_length ?? 0),
124
+ agent_output_preview: typeof record.agent_output_preview === "string" ? record.agent_output_preview : undefined,
125
+ outcome_summary: typeof record.outcome_summary === "string" ? record.outcome_summary : undefined,
126
+ finding_codes: findingCodes,
127
+ run_id: runId,
128
+ digest: String(record.digest ?? ""),
129
+ phase: typeof record.phase === "string" ? record.phase : undefined,
130
+ agent_model: typeof record.agent_model === "string" ? record.agent_model : undefined,
131
+ progress_steps: Array.isArray(record.progress_steps)
132
+ ? record.progress_steps.filter((item) => typeof item === "string")
133
+ : undefined,
134
+ deliverable_paths: Array.isArray(record.deliverable_paths)
135
+ ? record.deliverable_paths.filter((item) => typeof item === "string")
136
+ : undefined,
137
+ agent_trace: Array.isArray(record.agent_trace) ? record.agent_trace : undefined,
138
+ };
139
+ }
140
+ //# sourceMappingURL=execute-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-client.js","sourceRoot":"","sources":["../../src/backend/execute-client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { ResolvedConfig } from "../config/config.js";
2
+ export declare const CLI_PINNED_WORKSPACE_SCOPE = "cli-local";
3
+ export declare const CLI_WORKFLOW_MODE = "cookbook_cli_task";
2
4
  export type PreviewTaskPayload = {
3
5
  owner_user_id: string;
4
6
  task_input: {
@@ -23,6 +25,12 @@ export type PreviewTaskPayload = {
23
25
  canary_requested: false;
24
26
  metadata: {
25
27
  source: string;
28
+ workspace_cwd?: string;
29
+ model_hint?: string;
30
+ conversation_context?: string;
31
+ execution_mode?: "local" | "cloud";
32
+ cloud_repo_url?: string;
33
+ cloud_repo_ref?: string;
26
34
  };
27
35
  repo_metadata: {
28
36
  repo: string;
@@ -33,7 +41,7 @@ export type PreviewTaskPayload = {
33
41
  repo_allowlist: string[];
34
42
  no_auto_apply: true;
35
43
  auto_apply_requested: false;
36
- cloud_requested: false;
44
+ cloud_requested: boolean;
37
45
  pr_requested: false;
38
46
  public_route_requested: false;
39
47
  ui_requested: false;
@@ -42,9 +50,13 @@ export type PreviewTaskPayload = {
42
50
  require_review_artifact_for_canary: true;
43
51
  };
44
52
  };
45
- export declare function buildPreviewPayload(input: {
53
+ export type PreviewBuildOptions = {
46
54
  objective: string;
47
55
  cwd: string;
48
56
  config: ResolvedConfig;
49
- }): PreviewTaskPayload;
57
+ modelHint?: string | null;
58
+ conversationContext?: string | null;
59
+ executionMode?: "local" | "cloud";
60
+ };
61
+ export declare function buildPreviewPayload(input: PreviewBuildOptions): PreviewTaskPayload;
50
62
  //# sourceMappingURL=preview-payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preview-payload.d.ts","sourceRoot":"","sources":["../../src/backend/preview-payload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,CAAA;QACvB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,YAAY,EAAE,MAAM,EAAE,CAAA;QACtB,OAAO,EAAE;YACP,MAAM,EAAE,SAAS,CAAA;YACjB,cAAc,EAAE,MAAM,CAAA;YACtB,iBAAiB,EAAE,MAAM,CAAA;SAC1B,CAAA;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,IAAI,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,sBAAsB,EAAE,MAAM,CAAA;SAC/B,CAAA;QACD,kBAAkB,EAAE,MAAM,EAAE,CAAA;QAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,gBAAgB,EAAE,KAAK,CAAA;QACvB,QAAQ,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAC5B,aAAa,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAChC,CAAA;IACD,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,aAAa,EAAE,IAAI,CAAA;QACnB,oBAAoB,EAAE,KAAK,CAAA;QAC3B,eAAe,EAAE,KAAK,CAAA;QACtB,YAAY,EAAE,KAAK,CAAA;QACnB,sBAAsB,EAAE,KAAK,CAAA;QAC7B,YAAY,EAAE,KAAK,CAAA;QACnB,uBAAuB,EAAE,KAAK,CAAA;QAC9B,gCAAgC,EAAE,KAAK,CAAA;QACvC,kCAAkC,EAAE,IAAI,CAAA;KACzC,CAAA;CACF,CAAA;AA6CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;CACvB,GAAG,kBAAkB,CAmDrB"}
1
+ {"version":3,"file":"preview-payload.d.ts","sourceRoot":"","sources":["../../src/backend/preview-payload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAIzD,eAAO,MAAM,0BAA0B,cAAc,CAAA;AACrD,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,CAAA;QACvB,aAAa,EAAE,MAAM,EAAE,CAAA;QACvB,YAAY,EAAE,MAAM,EAAE,CAAA;QACtB,OAAO,EAAE;YACP,MAAM,EAAE,SAAS,CAAA;YACjB,cAAc,EAAE,MAAM,CAAA;YACtB,iBAAiB,EAAE,MAAM,CAAA;SAC1B,CAAA;QACD,oBAAoB,EAAE;YACpB,QAAQ,EAAE,IAAI,CAAA;YACd,MAAM,EAAE,MAAM,CAAA;YACd,sBAAsB,EAAE,MAAM,CAAA;SAC/B,CAAA;QACD,kBAAkB,EAAE,MAAM,EAAE,CAAA;QAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,gBAAgB,EAAE,KAAK,CAAA;QACvB,QAAQ,EAAE;YACR,MAAM,EAAE,MAAM,CAAA;YACd,aAAa,CAAC,EAAE,MAAM,CAAA;YACtB,UAAU,CAAC,EAAE,MAAM,CAAA;YACnB,oBAAoB,CAAC,EAAE,MAAM,CAAA;YAC7B,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;YAClC,cAAc,CAAC,EAAE,MAAM,CAAA;YACvB,cAAc,CAAC,EAAE,MAAM,CAAA;SACxB,CAAA;QACD,aAAa,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAChC,CAAA;IACD,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;QACf,cAAc,EAAE,MAAM,EAAE,CAAA;QACxB,aAAa,EAAE,IAAI,CAAA;QACnB,oBAAoB,EAAE,KAAK,CAAA;QAC3B,eAAe,EAAE,OAAO,CAAA;QACxB,YAAY,EAAE,KAAK,CAAA;QACnB,sBAAsB,EAAE,KAAK,CAAA;QAC7B,YAAY,EAAE,KAAK,CAAA;QACnB,uBAAuB,EAAE,KAAK,CAAA;QAC9B,gCAAgC,EAAE,KAAK,CAAA;QACvC,kCAAkC,EAAE,IAAI,CAAA;KACzC,CAAA;CACF,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC,CAAA;AA6CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,kBAAkB,CA4ElF"}
@@ -2,6 +2,9 @@ import { createHash } from "node:crypto";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import { basename, relative, resolve } from "node:path";
4
4
  import { guessWorkspaceRoot } from "../runtime/workspace.js";
5
+ import { detectCloudRepository } from "../cli/interactive/cloud-git.js";
6
+ export const CLI_PINNED_WORKSPACE_SCOPE = "cli-local";
7
+ export const CLI_WORKFLOW_MODE = "cookbook_cli_task";
5
8
  const BROAD_SCOPES = new Set(["", ".", "./", "/", "**", "*", "repo", "workspace", "all"]);
6
9
  function sha256Hex(value) {
7
10
  return createHash("sha256").update(value, "utf8").digest("hex");
@@ -39,23 +42,48 @@ function resolveAllowedPaths(config, scope) {
39
42
  if (!isBroadScope(scope)) {
40
43
  return [scope];
41
44
  }
42
- return ["packages/patze-code-cli"];
45
+ return ["."];
43
46
  }
44
47
  export function buildPreviewPayload(input) {
45
- const root = guessWorkspaceRoot(input.cwd);
46
- const scopeRaw = relative(root, input.cwd).replace(/\\/g, "/") || ".";
47
- const scope = isBroadScope(scopeRaw) ? "packages/patze-code-cli" : scopeRaw;
48
+ const absoluteCwd = resolve(input.cwd);
49
+ const root = guessWorkspaceRoot(absoluteCwd);
50
+ const scopeRaw = relative(root, absoluteCwd).replace(/\\/g, "/") || ".";
51
+ const pinnedWorkspace = isBroadScope(scopeRaw);
52
+ const workspaceScope = pinnedWorkspace ? CLI_PINNED_WORKSPACE_SCOPE : scopeRaw;
48
53
  const repoId = resolveRepoId(root);
49
- const allowedPaths = resolveAllowedPaths(input.config, scope);
54
+ const allowedPaths = pinnedWorkspace ? ["."] : resolveAllowedPaths(input.config, workspaceScope);
50
55
  const deniedPaths = input.config.defaultDeny.map((pattern) => pattern.replace(/^\*\*\//, "").replace(/\/\*\*$/, ""));
51
56
  const userDigest = sha256Hex(`patze-code-cli:user:${input.config.userId ?? "anonymous"}`);
57
+ const modelHint = input.modelHint?.trim();
58
+ const conversationContext = input.conversationContext?.trim() ?? "";
59
+ const executionMode = input.executionMode ?? "local";
60
+ const metadata = {
61
+ source: "patze_code_cli",
62
+ workspace_cwd: absoluteCwd,
63
+ };
64
+ if (modelHint) {
65
+ metadata.model_hint = modelHint;
66
+ }
67
+ if (conversationContext) {
68
+ metadata.conversation_context = conversationContext.slice(0, 4000);
69
+ }
70
+ metadata.execution_mode = executionMode;
71
+ if (executionMode === "cloud") {
72
+ const cloud = detectCloudRepository(absoluteCwd);
73
+ if (cloud.ok) {
74
+ metadata.cloud_repo_url = cloud.url;
75
+ if (cloud.startingRef) {
76
+ metadata.cloud_repo_ref = cloud.startingRef;
77
+ }
78
+ }
79
+ }
52
80
  return {
53
81
  owner_user_id: input.config.userId ?? "",
54
82
  task_input: {
55
83
  objective: input.objective,
56
- workflow_mode: "cookbook_quickstart_local",
84
+ workflow_mode: CLI_WORKFLOW_MODE,
57
85
  repo_id: repoId,
58
- workspace_scope: scope,
86
+ workspace_scope: workspaceScope,
59
87
  allowed_paths: allowedPaths,
60
88
  denied_paths: deniedPaths.length ? deniedPaths : [".env", "node_modules", ".git"],
61
89
  consent: {
@@ -69,9 +97,9 @@ export function buildPreviewPayload(input) {
69
97
  review_artifact_digest: "",
70
98
  },
71
99
  expected_artifacts: ["preview"],
72
- rollback_notes: ["Patze CLI preview only — no apply or execute."],
100
+ rollback_notes: ["Patze CLI preview + execute — no auto-apply."],
73
101
  canary_requested: false,
74
- metadata: { source: "patze_code_cli" },
102
+ metadata,
75
103
  repo_metadata: { repo: repoId },
76
104
  },
77
105
  policy: {
@@ -79,7 +107,7 @@ export function buildPreviewPayload(input) {
79
107
  repo_allowlist: [repoId],
80
108
  no_auto_apply: true,
81
109
  auto_apply_requested: false,
82
- cloud_requested: false,
110
+ cloud_requested: executionMode === "cloud",
83
111
  pr_requested: false,
84
112
  public_route_requested: false,
85
113
  ui_requested: false,
@@ -1 +1 @@
1
- {"version":3,"file":"preview-payload.js","sourceRoot":"","sources":["../../src/backend/preview-payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preview-payload.js","sourceRoot":"","sources":["../../src/backend/preview-payload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type PatzeCodeRunRecord = {
2
+ run_id: string;
3
+ status: string;
4
+ phase: string;
5
+ error_code: string;
6
+ agent_output_preview: string;
7
+ outcome_summary: string;
8
+ agent_model: string;
9
+ finding_codes: string[];
10
+ deliverable_paths: string[];
11
+ agent_trace: unknown[];
12
+ };
13
+ export declare function normalizePatzeCodeRunRecord(raw: unknown): PatzeCodeRunRecord | null;
14
+ export declare function isTerminalRunPhase(phase: string): boolean;
15
+ export declare function pickRunReplyText(run: PatzeCodeRunRecord): string;
16
+ //# sourceMappingURL=run-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-record.d.ts","sourceRoot":"","sources":["../../src/backend/run-record.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,OAAO,EAAE,CAAA;CACvB,CAAA;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAwBnF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAahE"}
@@ -0,0 +1,43 @@
1
+ export function normalizePatzeCodeRunRecord(raw) {
2
+ if (!raw || typeof raw !== "object") {
3
+ return null;
4
+ }
5
+ const row = raw;
6
+ const runId = String(row.run_id ?? "").trim();
7
+ if (!runId) {
8
+ return null;
9
+ }
10
+ const findings = row.finding_codes;
11
+ return {
12
+ run_id: runId,
13
+ status: String(row.status ?? ""),
14
+ phase: String(row.phase ?? ""),
15
+ error_code: String(row.error_code ?? ""),
16
+ agent_output_preview: String(row.agent_output_preview ?? ""),
17
+ outcome_summary: String(row.outcome_summary ?? ""),
18
+ agent_model: String(row.agent_model ?? ""),
19
+ finding_codes: Array.isArray(findings) ? findings.map((item) => String(item)) : [],
20
+ deliverable_paths: Array.isArray(row.deliverable_paths)
21
+ ? row.deliverable_paths.map((item) => String(item))
22
+ : [],
23
+ agent_trace: Array.isArray(row.agent_trace) ? row.agent_trace : [],
24
+ };
25
+ }
26
+ export function isTerminalRunPhase(phase) {
27
+ return phase === "completed" || phase === "blocked" || phase === "failed";
28
+ }
29
+ export function pickRunReplyText(run) {
30
+ const preview = run.agent_output_preview.trim();
31
+ if (preview) {
32
+ return preview;
33
+ }
34
+ const summary = run.outcome_summary.trim();
35
+ if (summary) {
36
+ return summary;
37
+ }
38
+ if (run.error_code) {
39
+ return `Run ${run.phase}: ${run.error_code}`;
40
+ }
41
+ return `Run ${run.phase || run.status || "finished"}.`;
42
+ }
43
+ //# sourceMappingURL=run-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-record.js","sourceRoot":"","sources":["../../src/backend/run-record.ts"],"names":[],"mappings":"AAaA,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,GAAG,GAAG,GAA8B,CAAA;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAA;IAClC,OAAO;QACL,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;QACxC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC;QAC5D,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAClD,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAClF,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACrD,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnD,CAAC,CAAC,EAAE;QACN,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;KACnE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAA;IAC/C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAA;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,UAAU,EAAE,CAAA;IAC9C,CAAC;IACD,OAAO,OAAO,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,UAAU,GAAG,CAAA;AACxD,CAAC"}