@monotykamary/localterm-server 2.66.8 → 2.66.9

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 (125) hide show
  1. package/dist/agent-git-status.d.ts +3 -0
  2. package/dist/agent-git-status.d.ts.map +1 -0
  3. package/dist/agent-git-status.js +46 -0
  4. package/dist/agent-git-status.js.map +1 -0
  5. package/dist/agent-log-utils.d.ts +18 -0
  6. package/dist/agent-log-utils.d.ts.map +1 -0
  7. package/dist/agent-log-utils.js +123 -0
  8. package/dist/agent-log-utils.js.map +1 -0
  9. package/dist/agent-models.d.ts +4 -0
  10. package/dist/agent-models.d.ts.map +1 -0
  11. package/dist/agent-models.js +100 -0
  12. package/dist/agent-models.js.map +1 -0
  13. package/dist/agent-runner.d.ts +3 -5
  14. package/dist/agent-runner.d.ts.map +1 -1
  15. package/dist/agent-runner.js +8 -522
  16. package/dist/agent-runner.js.map +1 -1
  17. package/dist/agent-session-reader.d.ts +3 -0
  18. package/dist/agent-session-reader.d.ts.map +1 -0
  19. package/dist/agent-session-reader.js +113 -0
  20. package/dist/agent-session-reader.js.map +1 -0
  21. package/dist/build-pty-environment.d.ts +8 -0
  22. package/dist/build-pty-environment.d.ts.map +1 -0
  23. package/dist/build-pty-environment.js +44 -0
  24. package/dist/build-pty-environment.js.map +1 -0
  25. package/dist/caffeinate-automatic-detector.d.ts +57 -0
  26. package/dist/caffeinate-automatic-detector.d.ts.map +1 -0
  27. package/dist/caffeinate-automatic-detector.js +275 -0
  28. package/dist/caffeinate-automatic-detector.js.map +1 -0
  29. package/dist/caffeinate-battery-guard.d.ts +35 -0
  30. package/dist/caffeinate-battery-guard.d.ts.map +1 -0
  31. package/dist/caffeinate-battery-guard.js +190 -0
  32. package/dist/caffeinate-battery-guard.js.map +1 -0
  33. package/dist/caffeinate-manager.d.ts +5 -31
  34. package/dist/caffeinate-manager.d.ts.map +1 -1
  35. package/dist/caffeinate-manager.js +55 -400
  36. package/dist/caffeinate-manager.js.map +1 -1
  37. package/dist/cdp/cdp-client.d.ts +4 -70
  38. package/dist/cdp/cdp-client.d.ts.map +1 -1
  39. package/dist/cdp/cdp-client.js +58 -418
  40. package/dist/cdp/cdp-client.js.map +1 -1
  41. package/dist/cdp/cdp-connection.d.ts +72 -0
  42. package/dist/cdp/cdp-connection.d.ts.map +1 -0
  43. package/dist/cdp/cdp-connection.js +272 -0
  44. package/dist/cdp/cdp-connection.js.map +1 -0
  45. package/dist/cdp/constants.d.ts +6 -0
  46. package/dist/cdp/constants.d.ts.map +1 -0
  47. package/dist/cdp/constants.js +9 -0
  48. package/dist/cdp/constants.js.map +1 -0
  49. package/dist/cdp/target-registry.d.ts +41 -0
  50. package/dist/cdp/target-registry.d.ts.map +1 -0
  51. package/dist/cdp/target-registry.js +118 -0
  52. package/dist/cdp/target-registry.js.map +1 -0
  53. package/dist/constants.d.ts +2 -0
  54. package/dist/constants.d.ts.map +1 -1
  55. package/dist/constants.js +2 -0
  56. package/dist/constants.js.map +1 -1
  57. package/dist/git-branch-metadata.d.ts +11 -0
  58. package/dist/git-branch-metadata.d.ts.map +1 -0
  59. package/dist/git-branch-metadata.js +85 -0
  60. package/dist/git-branch-metadata.js.map +1 -0
  61. package/dist/git-diff-cache.d.ts +13 -0
  62. package/dist/git-diff-cache.d.ts.map +1 -0
  63. package/dist/git-diff-cache.js +32 -0
  64. package/dist/git-diff-cache.js.map +1 -0
  65. package/dist/git-diff-parser.d.ts +15 -0
  66. package/dist/git-diff-parser.d.ts.map +1 -0
  67. package/dist/git-diff-parser.js +196 -0
  68. package/dist/git-diff-parser.js.map +1 -0
  69. package/dist/git-diff-service.d.ts +10 -0
  70. package/dist/git-diff-service.d.ts.map +1 -0
  71. package/dist/git-diff-service.js +395 -0
  72. package/dist/git-diff-service.js.map +1 -0
  73. package/dist/git-diff.d.ts +8 -41
  74. package/dist/git-diff.d.ts.map +1 -1
  75. package/dist/git-diff.js +5 -944
  76. package/dist/git-diff.js.map +1 -1
  77. package/dist/github-pr.d.ts +32 -0
  78. package/dist/github-pr.d.ts.map +1 -0
  79. package/dist/github-pr.js +266 -0
  80. package/dist/github-pr.js.map +1 -0
  81. package/dist/pi-binary-resolver.d.ts +6 -0
  82. package/dist/pi-binary-resolver.d.ts.map +1 -0
  83. package/dist/pi-binary-resolver.js +70 -0
  84. package/dist/pi-binary-resolver.js.map +1 -0
  85. package/dist/pi-rpc-client.d.ts +14 -0
  86. package/dist/pi-rpc-client.d.ts.map +1 -0
  87. package/dist/pi-rpc-client.js +87 -0
  88. package/dist/pi-rpc-client.js.map +1 -0
  89. package/dist/session-client-hub.d.ts +57 -0
  90. package/dist/session-client-hub.d.ts.map +1 -0
  91. package/dist/session-client-hub.js +435 -0
  92. package/dist/session-client-hub.js.map +1 -0
  93. package/dist/session-command-executor.d.ts +14 -0
  94. package/dist/session-command-executor.d.ts.map +1 -0
  95. package/dist/session-command-executor.js +207 -0
  96. package/dist/session-command-executor.js.map +1 -0
  97. package/dist/session-git-event-bridge.d.ts +16 -0
  98. package/dist/session-git-event-bridge.d.ts.map +1 -0
  99. package/dist/session-git-event-bridge.js +56 -0
  100. package/dist/session-git-event-bridge.js.map +1 -0
  101. package/dist/session-lifecycle-policy.d.ts +15 -0
  102. package/dist/session-lifecycle-policy.d.ts.map +1 -0
  103. package/dist/session-lifecycle-policy.js +105 -0
  104. package/dist/session-lifecycle-policy.js.map +1 -0
  105. package/dist/session-manager.d.ts +11 -42
  106. package/dist/session-manager.d.ts.map +1 -1
  107. package/dist/session-manager.js +72 -987
  108. package/dist/session-manager.js.map +1 -1
  109. package/dist/session-output-coordinator.d.ts +21 -0
  110. package/dist/session-output-coordinator.d.ts.map +1 -0
  111. package/dist/session-output-coordinator.js +134 -0
  112. package/dist/session-output-coordinator.js.map +1 -0
  113. package/dist/session-output-transport.d.ts +22 -0
  114. package/dist/session-output-transport.d.ts.map +1 -0
  115. package/dist/session-output-transport.js +160 -0
  116. package/dist/session-output-transport.js.map +1 -0
  117. package/dist/session.d.ts +0 -4
  118. package/dist/session.d.ts.map +1 -1
  119. package/dist/session.js +11 -258
  120. package/dist/session.js.map +1 -1
  121. package/dist/shell-hook-builder.d.ts +16 -0
  122. package/dist/shell-hook-builder.d.ts.map +1 -0
  123. package/dist/shell-hook-builder.js +230 -0
  124. package/dist/shell-hook-builder.js.map +1 -0
  125. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ export declare const gitStatusSet: (cwd: string) => Set<string>;
2
+ export declare const computeChangedFiles: (before: Set<string>, cwd: string) => string[];
3
+ //# sourceMappingURL=agent-git-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-git-status.d.ts","sourceRoot":"","sources":["../src/agent-git-status.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,GAAG,CAAC,MAAM,CAWpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,WAAY,GAAG,CAAC,MAAM,CAAC,OAAO,MAAM,KAAG,MAAM,EAO5E,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { MAX_AUTOMATION_CHANGED_FILES } from "./constants.js";
3
+ const parseGitStatus = (output) => {
4
+ const set = new Set();
5
+ for (const line of output.split("\n")) {
6
+ if (line.length < 3)
7
+ continue;
8
+ let filePath = line.slice(3);
9
+ const arrow = filePath.indexOf(" -> ");
10
+ if (arrow !== -1)
11
+ filePath = filePath.slice(arrow + 4);
12
+ if (filePath.startsWith('"') && filePath.endsWith('"')) {
13
+ filePath = filePath.slice(1, -1);
14
+ }
15
+ if (filePath.length > 0)
16
+ set.add(filePath);
17
+ }
18
+ return set;
19
+ };
20
+ export const gitStatusSet = (cwd) => {
21
+ try {
22
+ const result = spawnSync("git", ["-C", cwd, "status", "--porcelain"], {
23
+ encoding: "utf8",
24
+ timeout: 5000,
25
+ });
26
+ if (result.error || result.status !== 0)
27
+ return new Set();
28
+ return parseGitStatus(result.stdout);
29
+ }
30
+ catch {
31
+ return new Set();
32
+ }
33
+ };
34
+ export const computeChangedFiles = (before, cwd) => {
35
+ const after = gitStatusSet(cwd);
36
+ const changed = [];
37
+ for (const filePath of after)
38
+ if (!before.has(filePath))
39
+ changed.push(filePath);
40
+ for (const filePath of before)
41
+ if (!after.has(filePath))
42
+ changed.push(filePath);
43
+ changed.sort();
44
+ return changed.slice(0, MAX_AUTOMATION_CHANGED_FILES);
45
+ };
46
+ //# sourceMappingURL=agent-git-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-git-status.js","sourceRoot":"","sources":["../src/agent-git-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,cAAc,GAAG,CAAC,MAAc,EAAe,EAAE;IACrD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAe,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE;YACpE,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAC1D,OAAO,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAmB,EAAE,GAAW,EAAY,EAAE;IAChF,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,QAAQ,IAAI,KAAK;QAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,KAAK,MAAM,QAAQ,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;AACxD,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { AgentLogEntry } from "./types.js";
2
+ export declare const truncateFindings: (raw: string) => string | null;
3
+ export declare const truncateLog: (raw: string) => string | null;
4
+ export declare const extractAssistantText: (message: {
5
+ content?: unknown;
6
+ } | null) => string;
7
+ export declare const extractAssistantThinking: (message: {
8
+ content?: unknown;
9
+ } | null) => string;
10
+ export declare const formatToolInput: (args: unknown) => string;
11
+ export declare const truncateToolInput: (raw: string) => string;
12
+ export declare const capSessionToolResult: (raw: string) => string;
13
+ export declare const truncateToolResult: (raw: string) => string;
14
+ export declare const capLogEntries: (entries: AgentLogEntry[]) => AgentLogEntry[];
15
+ export declare const extractToolResultText: (part: {
16
+ content?: unknown;
17
+ }) => string;
18
+ //# sourceMappingURL=agent-log-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-log-utils.d.ts","sourceRoot":"","sources":["../src/agent-log-utils.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAahD,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,MAAM,GAAG,IACmB,CAAC;AAE5E,eAAO,MAAM,WAAW,QAAS,MAAM,KAAG,MAAM,GAAG,IACc,CAAC;AAElE,eAAO,MAAM,oBAAoB,YAAa;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,KAAG,MAS5E,CAAC;AAIF,eAAO,MAAM,wBAAwB,YAAa;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,KAAG,MAShF,CAAC;AASF,eAAO,MAAM,eAAe,SAAU,OAAO,KAAG,MAgB/C,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAS,MAAM,KAAG,MAMvC,CAAC;AAKV,eAAO,MAAM,oBAAoB,QAAS,MAAM,KAAG,MAQlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,KAAG,MAMxC,CAAC;AAaV,eAAO,MAAM,aAAa,YAAa,aAAa,EAAE,KAAG,aAAa,EAWrE,CAAC;AAIF,eAAO,MAAM,qBAAqB,SAAU;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,MAanE,CAAC"}
@@ -0,0 +1,123 @@
1
+ import { AUTOMATION_SESSION_TOOL_MAX_BYTES, AUTOMATION_SESSION_TOOL_MAX_LINES, MAX_AUTOMATION_FINDINGS_LENGTH, MAX_AUTOMATION_LOG_ENTRIES, MAX_AUTOMATION_LOG_LENGTH, MAX_AUTOMATION_TOOL_INPUT_LENGTH, MAX_AUTOMATION_TOOL_RESULT_LENGTH, } from "./constants.js";
2
+ const FINDINGS_TRUNCATION_MARKER = "\n…[truncated]";
3
+ const LOG_TRUNCATION_MARKER = "\n…[log truncated]";
4
+ const truncate = (raw, max, marker) => {
5
+ if (raw.length === 0)
6
+ return null;
7
+ // Slice below `max` by the marker length so the result (text + marker) fits
8
+ // the schema's `.max(max)` — otherwise the stored value exceeds the cap and
9
+ // the file fails to load next time.
10
+ return raw.length > max ? raw.slice(0, Math.max(0, max - marker.length)) + marker : raw;
11
+ };
12
+ export const truncateFindings = (raw) => truncate(raw, MAX_AUTOMATION_FINDINGS_LENGTH, FINDINGS_TRUNCATION_MARKER);
13
+ export const truncateLog = (raw) => truncate(raw, MAX_AUTOMATION_LOG_LENGTH, LOG_TRUNCATION_MARKER);
14
+ export const extractAssistantText = (message) => {
15
+ if (!message || !Array.isArray(message.content))
16
+ return "";
17
+ return message.content
18
+ .filter((block) => {
19
+ const blockType = block?.type;
20
+ return blockType === "text";
21
+ })
22
+ .map((block) => block.text)
23
+ .join("");
24
+ };
25
+ // The assistant's reasoning blocks, concatenated. Hidden by default in the UI
26
+ // (behind a "show thinking" toggle) since it's noisy but sometimes useful.
27
+ export const extractAssistantThinking = (message) => {
28
+ if (!message || !Array.isArray(message.content))
29
+ return "";
30
+ return message.content
31
+ .filter((block) => {
32
+ const blockType = block?.type;
33
+ return blockType === "thinking";
34
+ })
35
+ .map((block) => block.thinking)
36
+ .join("");
37
+ };
38
+ const TOOL_RESULT_TRUNCATION_MARKER = "…[truncated]";
39
+ const TOOL_INPUT_TRUNCATION_MARKER = "…";
40
+ const SESSION_TOOL_TRUNCATION_MARKER = "\n…[output truncated]";
41
+ // Format a tool call's arguments as a short header string (the path a read
42
+ // took, the command bash ran, the pattern grep searched). Mirrors pi's per-tool
43
+ // render (read shows the path, bash the command) with a generic fallback.
44
+ export const formatToolInput = (args) => {
45
+ if (!args || typeof args !== "object")
46
+ return "";
47
+ const record = args;
48
+ const command = record.command;
49
+ if (typeof command === "string")
50
+ return command;
51
+ const filePath = record.file_path ?? record.path;
52
+ const pattern = record.pattern;
53
+ if (typeof pattern === "string")
54
+ return typeof filePath === "string" ? `${pattern} · ${filePath}` : pattern;
55
+ if (typeof filePath === "string")
56
+ return filePath;
57
+ try {
58
+ const json = JSON.stringify(args);
59
+ return json === "{}" ? "" : json;
60
+ }
61
+ catch {
62
+ return "";
63
+ }
64
+ };
65
+ export const truncateToolInput = (raw) => raw.length > MAX_AUTOMATION_TOOL_INPUT_LENGTH
66
+ ? raw.slice(0, Math.max(0, MAX_AUTOMATION_TOOL_INPUT_LENGTH - TOOL_INPUT_TRUNCATION_MARKER.length)) + TOOL_INPUT_TRUNCATION_MARKER
67
+ : raw;
68
+ // Safety-net cap for a session-transcript tool result, matching pi core's
69
+ // tool-output truncation (2000 lines or 50 KB, head kept). The session file is
70
+ // already pi-truncated, so this rarely fires.
71
+ export const capSessionToolResult = (raw) => {
72
+ const lines = raw.split("\n");
73
+ let out = raw;
74
+ if (lines.length > AUTOMATION_SESSION_TOOL_MAX_LINES)
75
+ out = lines.slice(0, AUTOMATION_SESSION_TOOL_MAX_LINES).join("\n");
76
+ if (out.length > AUTOMATION_SESSION_TOOL_MAX_BYTES)
77
+ out = out.slice(0, AUTOMATION_SESSION_TOOL_MAX_BYTES);
78
+ return out === raw ? raw : out + SESSION_TOOL_TRUNCATION_MARKER;
79
+ };
80
+ export const truncateToolResult = (raw) => raw.length > MAX_AUTOMATION_TOOL_RESULT_LENGTH
81
+ ? raw.slice(0, Math.max(0, MAX_AUTOMATION_TOOL_RESULT_LENGTH - TOOL_RESULT_TRUNCATION_MARKER.length)) + TOOL_RESULT_TRUNCATION_MARKER
82
+ : raw;
83
+ const entrySize = (entry) => {
84
+ let size = entry.text.length;
85
+ if (entry.type === "assistant" && entry.thinking)
86
+ size += entry.thinking.length;
87
+ if (entry.type === "tool")
88
+ size += entry.name.length;
89
+ return size;
90
+ };
91
+ // Bound the structured log: cap the entry count, then drop oldest entries
92
+ // until the total is under the byte cap (keeps the recent turns, which hold
93
+ // the final answer). User/assistant text is kept full per entry; only the
94
+ // total is bounded for storage.
95
+ export const capLogEntries = (entries) => {
96
+ let trimmed = entries.length > MAX_AUTOMATION_LOG_ENTRIES
97
+ ? entries.slice(entries.length - MAX_AUTOMATION_LOG_ENTRIES)
98
+ : entries;
99
+ let total = trimmed.reduce((sum, entry) => sum + entrySize(entry), 0);
100
+ while (total > MAX_AUTOMATION_LOG_LENGTH && trimmed.length > 1) {
101
+ total -= entrySize(trimmed[0]);
102
+ trimmed = trimmed.slice(1);
103
+ }
104
+ return trimmed;
105
+ };
106
+ // Extract the text of a tool_result content block: it's either a plain string
107
+ // or an array of content blocks (Anthropic's tool_result.content shape).
108
+ export const extractToolResultText = (part) => {
109
+ const content = part.content;
110
+ if (typeof content === "string")
111
+ return content;
112
+ if (Array.isArray(content)) {
113
+ return content
114
+ .filter((block) => {
115
+ const blockType = block?.type;
116
+ return blockType === "text";
117
+ })
118
+ .map((block) => block.text)
119
+ .join("");
120
+ }
121
+ return "";
122
+ };
123
+ //# sourceMappingURL=agent-log-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-log-utils.js","sourceRoot":"","sources":["../src/agent-log-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { AgentModelInfo } from "./types.js";
2
+ export declare const listAgentModels: (shimsDir: string, piBinaryPath?: string) => Promise<AgentModelInfo[]>;
3
+ export declare const __resetAgentModelCache: () => void;
4
+ //# sourceMappingURL=agent-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-models.d.ts","sourceRoot":"","sources":["../src/agent-models.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA4FjD,eAAO,MAAM,eAAe,aAChB,MAAM,iBACD,MAAM,KACpB,OAAO,CAAC,cAAc,EAAE,CAO1B,CAAC;AAIF,eAAO,MAAM,sBAAsB,QAAO,IAEzC,CAAC"}
@@ -0,0 +1,100 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { RpcClient } from "./pi-rpc-client.js";
5
+ import { resolvePiAndPath } from "./pi-binary-resolver.js";
6
+ // Cache of the available-models list (pi's RPC get_available_models). The list
7
+ // rarely changes, so cache it for a few minutes; the first call spawns pi
8
+ // (slow, ~1-5s), later calls reuse the cache.
9
+ const MODEL_CACHE_TTL_MS = 5 * 60 * 1000;
10
+ let cachedModels = null;
11
+ const listModelsViaRpcWith = async (binary, pathEnv, extraFlags) => {
12
+ const args = ["--mode", "rpc", "--no-session", ...extraFlags];
13
+ const client = new RpcClient(binary, args, os.tmpdir(), {
14
+ ...process.env,
15
+ PATH: pathEnv || process.env.PATH,
16
+ });
17
+ client.send({ type: "get_available_models", id: "models" });
18
+ let models = [];
19
+ const deadline = Date.now() + 15_000;
20
+ while (Date.now() < deadline) {
21
+ const line = await client.nextLine(Math.min(1000, deadline - Date.now()));
22
+ if (line === null) {
23
+ if (client.closed)
24
+ break;
25
+ continue;
26
+ }
27
+ let event;
28
+ try {
29
+ event = JSON.parse(line);
30
+ }
31
+ catch {
32
+ continue;
33
+ }
34
+ if (event.type === "response" && event.id === "models" && event.success) {
35
+ const raw = event.data?.models;
36
+ if (Array.isArray(raw)) {
37
+ models = raw
38
+ .map((model) => {
39
+ const entry = model;
40
+ return {
41
+ id: String(entry.id ?? ""),
42
+ name: String(entry.name ?? entry.id ?? ""),
43
+ provider: String(entry.provider ?? ""),
44
+ ...(typeof entry.contextWindow === "number"
45
+ ? { contextWindow: entry.contextWindow }
46
+ : {}),
47
+ ...(typeof entry.reasoning === "boolean" ? { reasoning: entry.reasoning } : {}),
48
+ };
49
+ })
50
+ .filter((model) => model.id.length > 0);
51
+ }
52
+ break;
53
+ }
54
+ }
55
+ client.close();
56
+ return models;
57
+ };
58
+ const listModelsViaRpc = async (shimsDir, extraFlags) => {
59
+ const { binary: realPi, pathEnv } = resolvePiAndPath(shimsDir);
60
+ // Prefer the localterm shim for the model list: it injects the pi-process
61
+ // secrets (so every provider with a key registers its models) then execs the
62
+ // real pi. The bare real pi has none of those keys, so most providers don't
63
+ // register and the list is nearly empty.
64
+ let binary = realPi;
65
+ const shimPi = path.join(shimsDir, "pi");
66
+ try {
67
+ if (fs.statSync(shimPi).isFile()) {
68
+ fs.accessSync(shimPi, fs.constants.X_OK);
69
+ binary = shimPi;
70
+ }
71
+ }
72
+ catch {
73
+ // no shim; fall back to the real pi
74
+ }
75
+ if (!binary)
76
+ return [];
77
+ return listModelsViaRpcWith(binary, pathEnv, extraFlags);
78
+ };
79
+ // List models available to the pi harness. Tries with extensions on (the
80
+ // default, so custom-provider models appear); if that yields nothing (e.g. the
81
+ // provider extensions crash headless), retries with --no-extensions for the
82
+ // built-in providers. Cached for a few minutes. A `piBinaryPath` override
83
+ // (tests) bypasses the shim + cache.
84
+ export const listAgentModels = async (shimsDir, piBinaryPath) => {
85
+ if (piBinaryPath)
86
+ return listModelsViaRpcWith(piBinaryPath, process.env.PATH ?? "", []);
87
+ if (cachedModels && Date.now() - cachedModels.at < MODEL_CACHE_TTL_MS)
88
+ return cachedModels.models;
89
+ let models = await listModelsViaRpc(shimsDir, []);
90
+ if (models.length === 0)
91
+ models = await listModelsViaRpc(shimsDir, ["--no-extensions"]);
92
+ cachedModels = { at: Date.now(), models };
93
+ return models;
94
+ };
95
+ // Test-only: reset the model-list cache so a case never sees another case's
96
+ // (or another file's) cached result.
97
+ export const __resetAgentModelCache = () => {
98
+ cachedModels = null;
99
+ };
100
+ //# sourceMappingURL=agent-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-models.js","sourceRoot":"","sources":["../src/agent-models.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { AgentHarnessConfig, AgentLogEntry, AgentModelInfo, AgentSessionEntry, AutomationRunner } from "./types.js";
1
+ import type { AgentHarnessConfig, AgentLogEntry, AutomationRunner } from "./types.js";
2
+ export { __resetAgentModelCache, listAgentModels } from "./agent-models.js";
3
+ export { readAgentSession } from "./agent-session-reader.js";
2
4
  type AgentRunner = Extract<AutomationRunner, {
3
5
  kind: "agent";
4
6
  }>;
@@ -34,8 +36,4 @@ export interface AgentHarness {
34
36
  }
35
37
  export declare const runAgent: (request: AgentRunRequest) => Promise<AgentRunResult>;
36
38
  export declare const compactAgent: (request: AgentCompactRequest) => Promise<AgentCompactResult>;
37
- export declare const listAgentModels: (shimsDir: string, piBinaryPath?: string) => Promise<AgentModelInfo[]>;
38
- export declare const __resetAgentModelCache: () => void;
39
- export declare const readAgentSession: (sessionFile: string, untilMs?: number) => Promise<AgentSessionEntry[]>;
40
- export {};
41
39
  //# sourceMappingURL=agent-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAIhE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAK7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;IAErC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACpE;AAoqBD,eAAO,MAAM,QAAQ,YAAa,eAAe,KAAG,OAAO,CAAC,cAAc,CACC,CAAC;AAE5E,eAAO,MAAM,YAAY,YAAa,mBAAmB,KAAG,OAAO,CAAC,kBAAkB,CACd,CAAC;AA4FzE,eAAO,MAAM,eAAe,aAChB,MAAM,iBACD,MAAM,KACpB,OAAO,CAAC,cAAc,EAAE,CAO1B,CAAC;AAIF,eAAO,MAAM,sBAAsB,QAAO,IAEzC,CAAC;AA4BF,eAAO,MAAM,gBAAgB,gBACd,MAAM,YACT,MAAM,KACf,OAAO,CAAC,iBAAiB,EAAE,CAkH7B,CAAC"}
1
+ {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../src/agent-runner.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,KAAK,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAIhE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAI3B,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAK7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;IAErC,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACpE;AAwWD,eAAO,MAAM,QAAQ,YAAa,eAAe,KAAG,OAAO,CAAC,cAAc,CACC,CAAC;AAE5E,eAAO,MAAM,YAAY,YAAa,mBAAmB,KAAG,OAAO,CAAC,kBAAkB,CACd,CAAC"}