@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
@@ -0,0 +1,36 @@
1
+ import type { FetchLike } from "./preview-client.js";
2
+ import { isTerminalRunPhase, type PatzeCodeRunRecord } from "./run-record.js";
3
+ export type RunStatusEvent = {
4
+ run_id: string;
5
+ phase: string;
6
+ status: string;
7
+ error_code: string;
8
+ terminal: boolean;
9
+ };
10
+ export type RunTraceEvent = {
11
+ run_id: string;
12
+ item: unknown;
13
+ };
14
+ export type RunStreamHandlers = {
15
+ onStatus: (event: RunStatusEvent) => void;
16
+ onTrace?: (event: RunTraceEvent) => void;
17
+ onComplete: (run: PatzeCodeRunRecord | null) => void;
18
+ onError?: (message: string) => void;
19
+ };
20
+ export declare function streamPatzeCodeRun(input: {
21
+ apiBase: string;
22
+ headers: Record<string, string>;
23
+ runId: string;
24
+ fetchImpl?: FetchLike;
25
+ handlers: RunStreamHandlers;
26
+ timeoutMs?: number;
27
+ }): Promise<void>;
28
+ export declare function fetchPatzeCodeRun(input: {
29
+ apiBase: string;
30
+ headers: Record<string, string>;
31
+ runId: string;
32
+ fetchImpl?: FetchLike;
33
+ }): Promise<PatzeCodeRunRecord | null>;
34
+ export declare function parseTraceItem(raw: unknown): import("./agent-trace.js").AgentTraceEvent | null;
35
+ export { isTerminalRunPhase };
36
+ //# sourceMappingURL=run-stream-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-stream-client.d.ts","sourceRoot":"","sources":["../../src/backend/run-stream-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EACL,kBAAkB,EAElB,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAA;IACpD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACpC,CAAA;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwFhB;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAmBrC;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,qDAE1C;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,109 @@
1
+ import { parseAgentTraceItem } from "./agent-trace.js";
2
+ import { consumeSseResponse } from "./sse-parse.js";
3
+ import { isTerminalRunPhase, normalizePatzeCodeRunRecord, } from "./run-record.js";
4
+ export async function streamPatzeCodeRun(input) {
5
+ const fetchImpl = input.fetchImpl ?? fetch;
6
+ const url = new URL(`/internal/patze-code/user-task-runs/${encodeURIComponent(input.runId)}/stream`, input.apiBase);
7
+ const controller = new AbortController();
8
+ const timer = setTimeout(() => controller.abort(), input.timeoutMs ?? 600_000);
9
+ try {
10
+ const response = await fetchImpl(url, {
11
+ method: "GET",
12
+ headers: {
13
+ ...input.headers,
14
+ Accept: "text/event-stream",
15
+ },
16
+ signal: controller.signal,
17
+ });
18
+ if (!response.ok) {
19
+ input.handlers.onError?.(`run stream failed (${response.status})`);
20
+ const run = await fetchPatzeCodeRun({
21
+ apiBase: input.apiBase,
22
+ headers: input.headers,
23
+ runId: input.runId,
24
+ fetchImpl,
25
+ });
26
+ input.handlers.onComplete(run);
27
+ return;
28
+ }
29
+ let completed = false;
30
+ await consumeSseResponse(response, {
31
+ onEvent: (event) => {
32
+ if (completed) {
33
+ return;
34
+ }
35
+ try {
36
+ const payload = JSON.parse(event.data);
37
+ if (event.event === "status") {
38
+ input.handlers.onStatus({
39
+ run_id: String(payload.run_id ?? input.runId),
40
+ phase: String(payload.phase ?? ""),
41
+ status: String(payload.status ?? ""),
42
+ error_code: String(payload.error_code ?? ""),
43
+ terminal: payload.terminal === true,
44
+ });
45
+ }
46
+ else if (event.event === "trace") {
47
+ input.handlers.onTrace?.({
48
+ run_id: String(payload.run_id ?? input.runId),
49
+ item: payload.item,
50
+ });
51
+ }
52
+ else if (event.event === "complete") {
53
+ completed = true;
54
+ input.handlers.onComplete(normalizePatzeCodeRunRecord(payload.run));
55
+ }
56
+ }
57
+ catch {
58
+ input.handlers.onError?.("invalid stream event");
59
+ }
60
+ },
61
+ }, { signal: controller.signal });
62
+ if (!completed) {
63
+ const run = await fetchPatzeCodeRun({
64
+ apiBase: input.apiBase,
65
+ headers: input.headers,
66
+ runId: input.runId,
67
+ fetchImpl,
68
+ });
69
+ input.handlers.onComplete(run);
70
+ }
71
+ }
72
+ catch (error) {
73
+ const message = error instanceof Error ? error.message : "run stream failed";
74
+ input.handlers.onError?.(message);
75
+ const run = await fetchPatzeCodeRun({
76
+ apiBase: input.apiBase,
77
+ headers: input.headers,
78
+ runId: input.runId,
79
+ fetchImpl,
80
+ });
81
+ input.handlers.onComplete(run);
82
+ }
83
+ finally {
84
+ clearTimeout(timer);
85
+ }
86
+ }
87
+ export async function fetchPatzeCodeRun(input) {
88
+ const fetchImpl = input.fetchImpl ?? fetch;
89
+ const url = new URL(`/internal/patze-code/user-task-runs/${encodeURIComponent(input.runId)}`, input.apiBase);
90
+ try {
91
+ const response = await fetchImpl(url, {
92
+ method: "GET",
93
+ headers: { ...input.headers, Accept: "application/json" },
94
+ });
95
+ if (!response.ok) {
96
+ return null;
97
+ }
98
+ const body = (await response.json());
99
+ return normalizePatzeCodeRunRecord(body.run);
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ }
105
+ export function parseTraceItem(raw) {
106
+ return parseAgentTraceItem(raw);
107
+ }
108
+ export { isTerminalRunPhase };
109
+ //# sourceMappingURL=run-stream-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-stream-client.js","sourceRoot":"","sources":["../../src/backend/run-stream-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ResolvedConfig } from "../config/config.js";
2
+ import type { FetchLike } from "./preview-client.js";
3
+ import { type PatzeCodeRunRecord } from "./run-record.js";
4
+ export type PatzeCodeRunListItem = PatzeCodeRunRecord & {
5
+ created_at: string;
6
+ updated_at: string;
7
+ workflow_mode: string;
8
+ outcome_summary: string;
9
+ };
10
+ export type ListRunsResult = {
11
+ ok: true;
12
+ runs: PatzeCodeRunListItem[];
13
+ } | {
14
+ ok: false;
15
+ kind: "auth" | "network" | "blocked";
16
+ message: string;
17
+ };
18
+ export declare function fetchPatzeCodeRuns(input: {
19
+ apiBase: string;
20
+ headers: Record<string, string>;
21
+ limit?: number;
22
+ fetchImpl?: FetchLike;
23
+ }): Promise<ListRunsResult>;
24
+ export declare function fetchPatzeCodeRunDetail(input: {
25
+ apiBase: string;
26
+ headers: Record<string, string>;
27
+ runId: string;
28
+ fetchImpl?: FetchLike;
29
+ }): Promise<PatzeCodeRunListItem | null>;
30
+ export declare function listPatzeCodeRunsForConfig(input: {
31
+ config: ResolvedConfig;
32
+ limit?: number;
33
+ fetchImpl?: FetchLike;
34
+ }): Promise<ListRunsResult>;
35
+ //# sourceMappingURL=runs-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs-client.d.ts","sourceRoot":"","sources":["../../src/backend/runs-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,oBAAoB,EAAE,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAiBxE,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyC1B;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAmBvC;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,MAAM,EAAE,cAAc,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1B"}
@@ -0,0 +1,87 @@
1
+ import { PatzeBackendClient } from "./client.js";
2
+ import { normalizePatzeCodeRunRecord, } from "./run-record.js";
3
+ function normalizeRunListItem(raw) {
4
+ const base = normalizePatzeCodeRunRecord(raw);
5
+ if (!base) {
6
+ return null;
7
+ }
8
+ const row = raw;
9
+ return {
10
+ ...base,
11
+ created_at: String(row.created_at ?? ""),
12
+ updated_at: String(row.updated_at ?? ""),
13
+ workflow_mode: String(row.workflow_mode ?? ""),
14
+ outcome_summary: String(row.outcome_summary ?? base.outcome_summary ?? ""),
15
+ };
16
+ }
17
+ export async function fetchPatzeCodeRuns(input) {
18
+ const fetchImpl = input.fetchImpl ?? fetch;
19
+ const url = new URL("/internal/patze-code/user-task-runs", input.apiBase);
20
+ if (input.limit) {
21
+ url.searchParams.set("limit", String(input.limit));
22
+ }
23
+ try {
24
+ const response = await fetchImpl(url, {
25
+ method: "GET",
26
+ headers: { ...input.headers, Accept: "application/json" },
27
+ });
28
+ const body = (await response.json().catch(() => ({})));
29
+ if (response.status === 401 || response.status === 403) {
30
+ return {
31
+ ok: false,
32
+ kind: response.status === 401 ? "auth" : "blocked",
33
+ message: String(body.error_code ?? body.detail ?? `runs list failed (${response.status})`),
34
+ };
35
+ }
36
+ if (!response.ok) {
37
+ return {
38
+ ok: false,
39
+ kind: "network",
40
+ message: `runs list failed (${response.status})`,
41
+ };
42
+ }
43
+ const runsRaw = body.runs;
44
+ const runs = Array.isArray(runsRaw)
45
+ ? runsRaw
46
+ .map((row) => normalizeRunListItem(row))
47
+ .filter((row) => row !== null)
48
+ : [];
49
+ return { ok: true, runs };
50
+ }
51
+ catch (error) {
52
+ const message = error instanceof Error ? error.message : "runs list failed";
53
+ return { ok: false, kind: "network", message };
54
+ }
55
+ }
56
+ export async function fetchPatzeCodeRunDetail(input) {
57
+ const fetchImpl = input.fetchImpl ?? fetch;
58
+ const url = new URL(`/internal/patze-code/user-task-runs/${encodeURIComponent(input.runId)}`, input.apiBase);
59
+ try {
60
+ const response = await fetchImpl(url, {
61
+ method: "GET",
62
+ headers: { ...input.headers, Accept: "application/json" },
63
+ });
64
+ if (!response.ok) {
65
+ return null;
66
+ }
67
+ const body = (await response.json());
68
+ return normalizeRunListItem(body.run);
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ }
74
+ export async function listPatzeCodeRunsForConfig(input) {
75
+ const config = input.config;
76
+ if (!config.api || !config.token || !config.userId) {
77
+ return { ok: false, kind: "auth", message: "Auth incomplete — run patze login first." };
78
+ }
79
+ const client = new PatzeBackendClient(config);
80
+ return fetchPatzeCodeRuns({
81
+ apiBase: client.baseUrl,
82
+ headers: client.buildHeaders(),
83
+ limit: input.limit,
84
+ fetchImpl: input.fetchImpl,
85
+ });
86
+ }
87
+ //# sourceMappingURL=runs-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs-client.js","sourceRoot":"","sources":["../../src/backend/runs-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ResolvedConfig } from "../config/config.js";
2
+ import type { FetchLike } from "./preview-client.js";
3
+ export type SessionResolveResult = {
4
+ ok: true;
5
+ userId: string;
6
+ keyLabel?: string;
7
+ } | {
8
+ ok: false;
9
+ message: string;
10
+ httpStatus: number | null;
11
+ };
12
+ export declare function resolvePatzeCodeSessionUser(input: {
13
+ config: ResolvedConfig;
14
+ fetchImpl?: FetchLike;
15
+ timeoutMs?: number;
16
+ }): Promise<SessionResolveResult>;
17
+ //# sourceMappingURL=session-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-client.d.ts","sourceRoot":"","sources":["../../src/backend/session-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,oBAAoB,GAC5B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAA;AAE7D,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,MAAM,EAAE,cAAc,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA2DhC"}
@@ -0,0 +1,54 @@
1
+ export async function resolvePatzeCodeSessionUser(input) {
2
+ if (!input.config.api || !input.config.token) {
3
+ return { ok: false, message: "api or token missing", httpStatus: null };
4
+ }
5
+ const fetchImpl = input.fetchImpl ?? fetch;
6
+ const url = new URL("/internal/patze-code/session", input.config.api);
7
+ const controller = new AbortController();
8
+ const timer = setTimeout(() => controller.abort(), input.timeoutMs ?? 8_000);
9
+ try {
10
+ const response = await fetchImpl(url, {
11
+ method: "GET",
12
+ headers: {
13
+ Accept: "application/json",
14
+ "X-Internal-API-Key": input.config.token,
15
+ },
16
+ signal: controller.signal,
17
+ });
18
+ let body;
19
+ try {
20
+ body = await response.json();
21
+ }
22
+ catch {
23
+ return {
24
+ ok: false,
25
+ message: `session returned non-JSON (${response.status})`,
26
+ httpStatus: response.status,
27
+ };
28
+ }
29
+ if (!response.ok) {
30
+ const detail = body && typeof body === "object" && typeof body.detail === "string"
31
+ ? String(body.detail)
32
+ : `session failed (${response.status})`;
33
+ return { ok: false, message: detail, httpStatus: response.status };
34
+ }
35
+ const userId = body && typeof body === "object" && typeof body.user_id === "string"
36
+ ? body.user_id.trim()
37
+ : "";
38
+ if (!userId) {
39
+ return { ok: false, message: "session response missing user_id", httpStatus: response.status };
40
+ }
41
+ const keyLabel = body && typeof body === "object" && typeof body.key_label === "string"
42
+ ? body.key_label
43
+ : undefined;
44
+ return { ok: true, userId, keyLabel };
45
+ }
46
+ catch (error) {
47
+ const message = error instanceof Error ? error.message : "session request failed";
48
+ return { ok: false, message, httpStatus: null };
49
+ }
50
+ finally {
51
+ clearTimeout(timer);
52
+ }
53
+ }
54
+ //# sourceMappingURL=session-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-client.js","sourceRoot":"","sources":["../../src/backend/session-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type SseEvent = {
2
+ event: string;
3
+ data: string;
4
+ };
5
+ export type SseHandlers = {
6
+ onEvent: (event: SseEvent) => void;
7
+ };
8
+ /**
9
+ * Incrementally parse text/event-stream frames from a fetch Response body.
10
+ */
11
+ export declare function consumeSseResponse(response: Response, handlers: SseHandlers, options?: {
12
+ signal?: AbortSignal;
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=sse-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-parse.d.ts","sourceRoot":"","sources":["../../src/backend/sse-parse.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;CACnC,CAAA;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,WAAW,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACrC,OAAO,CAAC,IAAI,CAAC,CA4Df"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Incrementally parse text/event-stream frames from a fetch Response body.
3
+ */
4
+ export async function consumeSseResponse(response, handlers, options = {}) {
5
+ if (!response.body) {
6
+ throw new Error("SSE response has no body");
7
+ }
8
+ const reader = response.body.getReader();
9
+ const decoder = new TextDecoder();
10
+ let buffer = "";
11
+ let eventName = "message";
12
+ let dataLines = [];
13
+ const flush = () => {
14
+ if (dataLines.length === 0) {
15
+ eventName = "message";
16
+ return;
17
+ }
18
+ handlers.onEvent({
19
+ event: eventName,
20
+ data: dataLines.join("\n"),
21
+ });
22
+ eventName = "message";
23
+ dataLines = [];
24
+ };
25
+ try {
26
+ while (true) {
27
+ if (options.signal?.aborted) {
28
+ throw new DOMException("Aborted", "AbortError");
29
+ }
30
+ const { done, value } = await reader.read();
31
+ if (done) {
32
+ break;
33
+ }
34
+ buffer += decoder.decode(value, { stream: true });
35
+ let newlineIndex = buffer.indexOf("\n");
36
+ while (newlineIndex >= 0) {
37
+ let line = buffer.slice(0, newlineIndex);
38
+ buffer = buffer.slice(newlineIndex + 1);
39
+ if (line.endsWith("\r")) {
40
+ line = line.slice(0, -1);
41
+ }
42
+ if (line === "") {
43
+ flush();
44
+ }
45
+ else if (line.startsWith(":")) {
46
+ // comment
47
+ }
48
+ else if (line.startsWith("event:")) {
49
+ eventName = line.slice(6).trim() || "message";
50
+ }
51
+ else if (line.startsWith("data:")) {
52
+ dataLines.push(line.slice(5).trimStart());
53
+ }
54
+ newlineIndex = buffer.indexOf("\n");
55
+ }
56
+ }
57
+ flush();
58
+ }
59
+ finally {
60
+ reader.releaseLock();
61
+ }
62
+ }
63
+ //# sourceMappingURL=sse-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-parse.js","sourceRoot":"","sources":["../../src/backend/sse-parse.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAkB,EAClB,QAAqB,EACrB,UAAoC,EAAE;IAEtC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,SAAS,GAAG,SAAS,CAAA;IACzB,IAAI,SAAS,GAAa,EAAE,CAAA;IAE5B,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,SAAS,GAAG,SAAS,CAAA;YACrB,OAAM;QACR,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC;YACf,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,SAAS,GAAG,SAAS,CAAA;QACrB,SAAS,GAAG,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YACjD,CAAC;YACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAK;YACP,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;YAEjD,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACvC,OAAO,YAAY,IAAI,CAAC,EAAE,CAAC;gBACzB,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;gBACxC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAA;gBACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC1B,CAAC;gBAED,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAA;gBACT,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,UAAU;gBACZ,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAA;gBAC/C,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;gBAC3C,CAAC;gBAED,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAA;IACT,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { FetchLike } from "../../backend/preview-client.js";
2
+ import type { OneShotAgentOptions } from "../one-shot-args.js";
3
+ import type { Printer } from "../ui/printer.js";
4
+ import type { ParsedArgv } from "../argv.js";
5
+ export declare function runOneShotAgent(options: OneShotAgentOptions, printer: Printer, fetchImpl?: FetchLike): Promise<number>;
6
+ export declare function resolveOneShotPrompt(options: OneShotAgentOptions | null, argv: ParsedArgv): Promise<OneShotAgentOptions | null>;
7
+ export declare function formatOneShotModelLine(cwd: string): string;
8
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAIhE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAG5C,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,mBAAmB,GAAG,IAAI,EACnC,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAsBrC;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D"}
@@ -0,0 +1,72 @@
1
+ import { loadConfig } from "../../config/config.js";
2
+ import { resolveEffectiveModel } from "../../config/models.js";
3
+ import { readStdinPrompt } from "../read-stdin.js";
4
+ import { InteractiveSession } from "../interactive/session.js";
5
+ import { runAgentTurn } from "../interactive/agent-turn.js";
6
+ import { runGoal } from "./goal.js";
7
+ import { flagBoolean } from "../argv.js";
8
+ export async function runOneShotAgent(options, printer, fetchImpl) {
9
+ const session = new InteractiveSession(options.cwd);
10
+ if (options.model) {
11
+ session.setModelOverride(options.model);
12
+ }
13
+ if (options.dryRun) {
14
+ const parsed = {
15
+ command: ["goal"],
16
+ positional: [options.prompt],
17
+ flags: new Map([["dry-run", true]]),
18
+ raw: [],
19
+ };
20
+ return runGoal(parsed, printer);
21
+ }
22
+ let partialActive = false;
23
+ const canStreamPartials = Boolean(process.stdout.isTTY);
24
+ const result = await runAgentTurn(session, options.prompt, {
25
+ cwd: options.cwd,
26
+ fetchImpl,
27
+ onTranscriptLine: (line) => {
28
+ printer.line(line);
29
+ },
30
+ onTranscriptPartial: canStreamPartials
31
+ ? (chunk) => {
32
+ partialActive = true;
33
+ process.stdout.write(chunk);
34
+ }
35
+ : undefined,
36
+ });
37
+ if (partialActive) {
38
+ process.stdout.write("\n");
39
+ }
40
+ if (!result.streamed) {
41
+ for (const line of result.lines) {
42
+ printer.line(line);
43
+ }
44
+ }
45
+ return result.exitCode;
46
+ }
47
+ export async function resolveOneShotPrompt(options, argv) {
48
+ if (options?.prompt) {
49
+ return options;
50
+ }
51
+ if (argv.command.length > 0) {
52
+ return null;
53
+ }
54
+ const stdinPrompt = await readStdinPrompt();
55
+ if (!stdinPrompt) {
56
+ return null;
57
+ }
58
+ const cwdFlag = argv.flags.get("cwd") ?? argv.flags.get("C");
59
+ const modelFlag = argv.flags.get("model") ?? argv.flags.get("m");
60
+ return {
61
+ prompt: stdinPrompt,
62
+ cwd: typeof cwdFlag === "string" ? cwdFlag : process.cwd(),
63
+ model: typeof modelFlag === "string" ? modelFlag : null,
64
+ dryRun: flagBoolean(argv.flags, "dry-run"),
65
+ };
66
+ }
67
+ export function formatOneShotModelLine(cwd) {
68
+ const config = loadConfig(cwd);
69
+ const model = resolveEffectiveModel({ configModel: config.model ?? null });
70
+ return `model · ${model}`;
71
+ }
72
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ export type PlanPreviewResult = {
8
8
  export type PlanPreviewOptions = {
9
9
  cwd?: string;
10
10
  fetchImpl?: FetchLike;
11
+ modelHint?: string | null;
12
+ conversationContext?: string | null;
13
+ executionMode?: "local" | "cloud";
11
14
  };
12
15
  export declare function runPlanPreview(objective: string, options?: PlanPreviewOptions): Promise<PlanPreviewResult>;
13
16
  //# sourceMappingURL=plan.d.ts.map
@@ -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;AASD,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;IACrB,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;AASD,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAyD5B"}
@@ -40,6 +40,9 @@ export async function runPlanPreview(objective, options = {}) {
40
40
  objective: objective.trim(),
41
41
  cwd,
42
42
  config,
43
+ modelHint: options.modelHint,
44
+ conversationContext: options.conversationContext,
45
+ executionMode: options.executionMode,
43
46
  });
44
47
  const result = await postUserTaskPreview({
45
48
  apiBase: client.baseUrl,
@@ -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,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":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PatzeCodeRunListItem } from "../../backend/runs-client.js";
2
+ export declare function formatRunsListLines(runs: PatzeCodeRunListItem[]): string[];
3
+ export declare function formatRunOpenLines(run: PatzeCodeRunListItem): string[];
4
+ //# sourceMappingURL=runs-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs-format.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/runs-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAcxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAkB1E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAyBtE"}