funolio-agent 1.0.75 → 1.1.65

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 (236) hide show
  1. package/dist/auth/credential-reader.d.ts.map +1 -1
  2. package/dist/auth/credential-reader.js +4 -3
  3. package/dist/auth/credential-reader.js.map +1 -1
  4. package/dist/auth/token-refresh.d.ts +8 -0
  5. package/dist/auth/token-refresh.d.ts.map +1 -1
  6. package/dist/auth/token-refresh.js +82 -52
  7. package/dist/auth/token-refresh.js.map +1 -1
  8. package/dist/auto-organizer.d.ts.map +1 -1
  9. package/dist/auto-organizer.js +6 -7
  10. package/dist/auto-organizer.js.map +1 -1
  11. package/dist/bench-prefix.d.ts +16 -0
  12. package/dist/bench-prefix.d.ts.map +1 -0
  13. package/dist/bench-prefix.js +25 -0
  14. package/dist/bench-prefix.js.map +1 -0
  15. package/dist/bot-manager.d.ts.map +1 -1
  16. package/dist/bot-manager.js +23 -14
  17. package/dist/bot-manager.js.map +1 -1
  18. package/dist/chat-sync.d.ts +42 -0
  19. package/dist/chat-sync.d.ts.map +1 -0
  20. package/dist/chat-sync.js +95 -0
  21. package/dist/chat-sync.js.map +1 -0
  22. package/dist/clerk-model.d.ts +7 -0
  23. package/dist/clerk-model.d.ts.map +1 -1
  24. package/dist/clerk-model.js +42 -8
  25. package/dist/clerk-model.js.map +1 -1
  26. package/dist/cli-bootstrap-history.d.ts +10 -0
  27. package/dist/cli-bootstrap-history.d.ts.map +1 -0
  28. package/dist/cli-bootstrap-history.js +112 -0
  29. package/dist/cli-bootstrap-history.js.map +1 -0
  30. package/dist/cli-models.d.ts +8 -0
  31. package/dist/cli-models.d.ts.map +1 -0
  32. package/dist/cli-models.js +91 -0
  33. package/dist/cli-models.js.map +1 -0
  34. package/dist/cli-session-epoch.d.ts +13 -3
  35. package/dist/cli-session-epoch.d.ts.map +1 -1
  36. package/dist/cli-session-epoch.js +53 -4
  37. package/dist/cli-session-epoch.js.map +1 -1
  38. package/dist/codex-app-server-manager.d.ts +64 -4
  39. package/dist/codex-app-server-manager.d.ts.map +1 -1
  40. package/dist/codex-app-server-manager.js +755 -55
  41. package/dist/codex-app-server-manager.js.map +1 -1
  42. package/dist/commands/pool.d.ts +32 -0
  43. package/dist/commands/pool.d.ts.map +1 -1
  44. package/dist/commands/pool.js +145 -66
  45. package/dist/commands/pool.js.map +1 -1
  46. package/dist/commands/start.d.ts +21 -0
  47. package/dist/commands/start.d.ts.map +1 -1
  48. package/dist/commands/start.js +484 -63
  49. package/dist/commands/start.js.map +1 -1
  50. package/dist/commands/status.d.ts.map +1 -1
  51. package/dist/commands/status.js +5 -2
  52. package/dist/commands/status.js.map +1 -1
  53. package/dist/config.d.ts +1 -0
  54. package/dist/config.d.ts.map +1 -1
  55. package/dist/config.js +170 -58
  56. package/dist/config.js.map +1 -1
  57. package/dist/context-window.d.ts +37 -1
  58. package/dist/context-window.d.ts.map +1 -1
  59. package/dist/context-window.js +202 -16
  60. package/dist/context-window.js.map +1 -1
  61. package/dist/live-activity.d.ts +3 -1
  62. package/dist/live-activity.d.ts.map +1 -1
  63. package/dist/live-activity.js.map +1 -1
  64. package/dist/local-chat-execution.d.ts +114 -0
  65. package/dist/local-chat-execution.d.ts.map +1 -0
  66. package/dist/local-chat-execution.js +349 -0
  67. package/dist/local-chat-execution.js.map +1 -0
  68. package/dist/local-cli-pty-manager.d.ts +138 -3
  69. package/dist/local-cli-pty-manager.d.ts.map +1 -1
  70. package/dist/local-cli-pty-manager.js +1415 -111
  71. package/dist/local-cli-pty-manager.js.map +1 -1
  72. package/dist/local-conversation-gateway.d.ts +110 -0
  73. package/dist/local-conversation-gateway.d.ts.map +1 -0
  74. package/dist/local-conversation-gateway.js +175 -0
  75. package/dist/local-conversation-gateway.js.map +1 -0
  76. package/dist/local-data.d.ts +235 -5
  77. package/dist/local-data.d.ts.map +1 -1
  78. package/dist/local-data.js +1066 -87
  79. package/dist/local-data.js.map +1 -1
  80. package/dist/local-db.d.ts +6 -0
  81. package/dist/local-db.d.ts.map +1 -1
  82. package/dist/local-db.js +376 -4
  83. package/dist/local-db.js.map +1 -1
  84. package/dist/local-funnel.d.ts.map +1 -1
  85. package/dist/local-funnel.js +6 -5
  86. package/dist/local-funnel.js.map +1 -1
  87. package/dist/local-server.d.ts +30 -0
  88. package/dist/local-server.d.ts.map +1 -1
  89. package/dist/local-server.js +2898 -319
  90. package/dist/local-server.js.map +1 -1
  91. package/dist/managed-process-registry.d.ts +59 -0
  92. package/dist/managed-process-registry.d.ts.map +1 -0
  93. package/dist/managed-process-registry.js +390 -0
  94. package/dist/managed-process-registry.js.map +1 -0
  95. package/dist/mcp/claude-config-writer.d.ts +5 -5
  96. package/dist/mcp/claude-config-writer.d.ts.map +1 -1
  97. package/dist/mcp/claude-config-writer.js +19 -11
  98. package/dist/mcp/claude-config-writer.js.map +1 -1
  99. package/dist/mcp/index.d.ts +4 -2
  100. package/dist/mcp/index.d.ts.map +1 -1
  101. package/dist/mcp/index.js.map +1 -1
  102. package/dist/mcp/sync-cli-config.d.ts +42 -4
  103. package/dist/mcp/sync-cli-config.d.ts.map +1 -1
  104. package/dist/mcp/sync-cli-config.js +497 -17
  105. package/dist/mcp/sync-cli-config.js.map +1 -1
  106. package/dist/message-loop.d.ts.map +1 -1
  107. package/dist/message-loop.js +43 -1
  108. package/dist/message-loop.js.map +1 -1
  109. package/dist/mqtt-client.d.ts +34 -0
  110. package/dist/mqtt-client.d.ts.map +1 -1
  111. package/dist/mqtt-client.js +270 -45
  112. package/dist/mqtt-client.js.map +1 -1
  113. package/dist/mqtt-data-relay.d.ts +44 -0
  114. package/dist/mqtt-data-relay.d.ts.map +1 -0
  115. package/dist/mqtt-data-relay.js +106 -0
  116. package/dist/mqtt-data-relay.js.map +1 -0
  117. package/dist/orchestration/capabilities.d.ts +13 -0
  118. package/dist/orchestration/capabilities.d.ts.map +1 -0
  119. package/dist/orchestration/capabilities.js +152 -0
  120. package/dist/orchestration/capabilities.js.map +1 -0
  121. package/dist/orchestration/dispatch-executor.d.ts +83 -0
  122. package/dist/orchestration/dispatch-executor.d.ts.map +1 -0
  123. package/dist/orchestration/dispatch-executor.js +266 -0
  124. package/dist/orchestration/dispatch-executor.js.map +1 -0
  125. package/dist/orchestration/dispatch-hint.d.ts +134 -0
  126. package/dist/orchestration/dispatch-hint.d.ts.map +1 -0
  127. package/dist/orchestration/dispatch-hint.js +247 -0
  128. package/dist/orchestration/dispatch-hint.js.map +1 -0
  129. package/dist/orchestration/dispatch-runner.d.ts +106 -0
  130. package/dist/orchestration/dispatch-runner.d.ts.map +1 -0
  131. package/dist/orchestration/dispatch-runner.js +604 -0
  132. package/dist/orchestration/dispatch-runner.js.map +1 -0
  133. package/dist/orchestration/dispatch-tools.d.ts +167 -0
  134. package/dist/orchestration/dispatch-tools.d.ts.map +1 -0
  135. package/dist/orchestration/dispatch-tools.js +328 -0
  136. package/dist/orchestration/dispatch-tools.js.map +1 -0
  137. package/dist/orchestration/front-door-policy.d.ts +35 -10
  138. package/dist/orchestration/front-door-policy.d.ts.map +1 -1
  139. package/dist/orchestration/front-door-policy.js +30 -267
  140. package/dist/orchestration/front-door-policy.js.map +1 -1
  141. package/dist/orchestration/orchestrator-dispatch-prompt.d.ts +43 -0
  142. package/dist/orchestration/orchestrator-dispatch-prompt.d.ts.map +1 -0
  143. package/dist/orchestration/orchestrator-dispatch-prompt.js +267 -0
  144. package/dist/orchestration/orchestrator-dispatch-prompt.js.map +1 -0
  145. package/dist/orchestration/orchestrator-operating-prompt.d.ts +14 -0
  146. package/dist/orchestration/orchestrator-operating-prompt.d.ts.map +1 -1
  147. package/dist/orchestration/orchestrator-operating-prompt.js +157 -31
  148. package/dist/orchestration/orchestrator-operating-prompt.js.map +1 -1
  149. package/dist/orchestration/plan-import.d.ts +39 -0
  150. package/dist/orchestration/plan-import.d.ts.map +1 -0
  151. package/dist/orchestration/plan-import.js +547 -0
  152. package/dist/orchestration/plan-import.js.map +1 -0
  153. package/dist/orchestration/worker-operating-prompt.d.ts +2 -0
  154. package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -1
  155. package/dist/orchestration/worker-operating-prompt.js +36 -46
  156. package/dist/orchestration/worker-operating-prompt.js.map +1 -1
  157. package/dist/orchestrator.d.ts +195 -3
  158. package/dist/orchestrator.d.ts.map +1 -1
  159. package/dist/orchestrator.js +1970 -432
  160. package/dist/orchestrator.js.map +1 -1
  161. package/dist/providers/anthropic.d.ts.map +1 -1
  162. package/dist/providers/anthropic.js +8 -4
  163. package/dist/providers/anthropic.js.map +1 -1
  164. package/dist/providers/claude-cli.d.ts.map +1 -1
  165. package/dist/providers/claude-cli.js +28 -3
  166. package/dist/providers/claude-cli.js.map +1 -1
  167. package/dist/providers/codex-cli.d.ts +10 -6
  168. package/dist/providers/codex-cli.d.ts.map +1 -1
  169. package/dist/providers/codex-cli.js +190 -17
  170. package/dist/providers/codex-cli.js.map +1 -1
  171. package/dist/providers/google.d.ts.map +1 -1
  172. package/dist/providers/google.js +15 -5
  173. package/dist/providers/google.js.map +1 -1
  174. package/dist/providers/index.d.ts +15 -1
  175. package/dist/providers/index.d.ts.map +1 -1
  176. package/dist/providers/index.js.map +1 -1
  177. package/dist/providers/openai.d.ts +1 -1
  178. package/dist/providers/openai.d.ts.map +1 -1
  179. package/dist/providers/openai.js +13 -5
  180. package/dist/providers/openai.js.map +1 -1
  181. package/dist/server-adapter.d.ts +8 -0
  182. package/dist/server-adapter.d.ts.map +1 -1
  183. package/dist/server-adapter.js +7 -0
  184. package/dist/server-adapter.js.map +1 -1
  185. package/dist/service-mode.d.ts +1 -1
  186. package/dist/service-mode.d.ts.map +1 -1
  187. package/dist/service-mode.js +64 -1
  188. package/dist/service-mode.js.map +1 -1
  189. package/dist/service-setup-only.d.ts +8 -0
  190. package/dist/service-setup-only.d.ts.map +1 -0
  191. package/dist/service-setup-only.js +37 -0
  192. package/dist/service-setup-only.js.map +1 -0
  193. package/dist/slash-commands.d.ts +21 -0
  194. package/dist/slash-commands.d.ts.map +1 -0
  195. package/dist/slash-commands.js +99 -0
  196. package/dist/slash-commands.js.map +1 -0
  197. package/dist/subagent/index.d.ts +4 -2
  198. package/dist/subagent/index.d.ts.map +1 -1
  199. package/dist/subagent/index.js.map +1 -1
  200. package/dist/summarization-pipeline.d.ts.map +1 -1
  201. package/dist/summarization-pipeline.js +1 -9
  202. package/dist/summarization-pipeline.js.map +1 -1
  203. package/dist/token-counter.d.ts.map +1 -1
  204. package/dist/token-counter.js +11 -4
  205. package/dist/token-counter.js.map +1 -1
  206. package/dist/tool-filter.d.ts.map +1 -1
  207. package/dist/tool-filter.js +10 -6
  208. package/dist/tool-filter.js.map +1 -1
  209. package/dist/tools/admin-tools.d.ts.map +1 -1
  210. package/dist/tools/admin-tools.js +13 -4
  211. package/dist/tools/admin-tools.js.map +1 -1
  212. package/dist/tools/run-command.d.ts.map +1 -1
  213. package/dist/tools/run-command.js +5 -1
  214. package/dist/tools/run-command.js.map +1 -1
  215. package/dist/tools/search-conversation-history.d.ts.map +1 -1
  216. package/dist/tools/search-conversation-history.js +12 -2
  217. package/dist/tools/search-conversation-history.js.map +1 -1
  218. package/dist/tools/todo-tasks.d.ts.map +1 -1
  219. package/dist/tools/todo-tasks.js +77 -5
  220. package/dist/tools/todo-tasks.js.map +1 -1
  221. package/dist/usage-log.d.ts +62 -0
  222. package/dist/usage-log.d.ts.map +1 -0
  223. package/dist/usage-log.js +98 -0
  224. package/dist/usage-log.js.map +1 -0
  225. package/dist/wizard-state.d.ts +13 -0
  226. package/dist/wizard-state.d.ts.map +1 -1
  227. package/dist/wizard-state.js +61 -3
  228. package/dist/wizard-state.js.map +1 -1
  229. package/dist/wizard-support.d.ts.map +1 -1
  230. package/dist/wizard-support.js +27 -1
  231. package/dist/wizard-support.js.map +1 -1
  232. package/dist/workflow-engine.d.ts +40 -1
  233. package/dist/workflow-engine.d.ts.map +1 -1
  234. package/dist/workflow-engine.js +753 -93
  235. package/dist/workflow-engine.js.map +1 -1
  236. package/package.json +2 -2
@@ -0,0 +1,8 @@
1
+ export interface CliModelOption {
2
+ id: string;
3
+ label: string;
4
+ reasoningEfforts?: string[];
5
+ speedTiers?: string[];
6
+ }
7
+ export declare function getCliModelOptions(provider: 'claude-cli' | 'codex-cli'): CliModelOption[];
8
+ //# sourceMappingURL=cli-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-models.d.ts","sourceRoot":"","sources":["../src/cli-models.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAkDD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,GAAG,cAAc,EAAE,CASzF"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getCliModelOptions = getCliModelOptions;
37
+ const fs = __importStar(require("fs"));
38
+ const os = __importStar(require("os"));
39
+ const path = __importStar(require("path"));
40
+ const config_1 = require("./config");
41
+ function fallbackModels(provider) {
42
+ return (config_1.WIZARD_PROVIDER_MODELS[provider] || []).map((entry) => ({
43
+ id: entry.id,
44
+ label: entry.label,
45
+ }));
46
+ }
47
+ function readCodexModelsCacheFile(filePath) {
48
+ try {
49
+ if (!fs.existsSync(filePath))
50
+ return null;
51
+ const parsed = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
52
+ const models = Array.isArray(parsed.models) ? parsed.models : [];
53
+ const normalized = models
54
+ .map((model) => {
55
+ const id = String(model.slug || '').trim();
56
+ if (!id)
57
+ return null;
58
+ const label = String(model.display_name || model.slug || '').trim() || id;
59
+ const reasoningEfforts = Array.isArray(model.supported_reasoning_levels)
60
+ ? model.supported_reasoning_levels
61
+ .map((level) => String(level?.effort || '').trim())
62
+ .filter(Boolean)
63
+ : [];
64
+ const speedTiers = Array.isArray(model.additional_speed_tiers)
65
+ ? model.additional_speed_tiers.map((tier) => String(tier || '').trim()).filter(Boolean)
66
+ : [];
67
+ return {
68
+ id,
69
+ label,
70
+ ...(reasoningEfforts.length > 0 ? { reasoningEfforts } : {}),
71
+ ...(speedTiers.length > 0 ? { speedTiers } : {}),
72
+ };
73
+ })
74
+ .filter((entry) => !!entry);
75
+ return normalized.length > 0 ? normalized : null;
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ function getCliModelOptions(provider) {
82
+ if (provider === 'claude-cli') {
83
+ return fallbackModels('claude-cli');
84
+ }
85
+ const codexHome = process.env.CODEX_HOME?.trim() || path.join(os.homedir(), '.codex');
86
+ const cached = readCodexModelsCacheFile(path.join(codexHome, 'models_cache.json'));
87
+ if (cached)
88
+ return cached;
89
+ return fallbackModels('codex-cli');
90
+ }
91
+ //# sourceMappingURL=cli-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-models.js","sourceRoot":"","sources":["../src/cli-models.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,gDASC;AArED,uCAAyB;AACzB,uCAAyB;AACzB,2CAA6B;AAC7B,qCAAkD;AAkBlD,SAAS,cAAc,CAAC,QAAoC;IAC1D,OAAO,CAAC,+BAAsB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9D,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB;IAChD,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAA2B,CAAC;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM;aACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC;YACrB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC1E,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC;gBACtE,CAAC,CAAC,KAAK,CAAC,0BAA0B;qBAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;qBAClD,MAAM,CAAC,OAAO,CAAC;gBACpB,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC;gBAC5D,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACvF,CAAC,CAAC,EAAE,CAAC;YACP,OAAO;gBACL,EAAE;gBACF,KAAK;gBACL,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxB,CAAC;QAC7B,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAA2B,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAoC;IACrE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACnF,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
@@ -1,10 +1,20 @@
1
1
  import * as data from './local-data';
2
2
  export declare const CLI_SESSION_EPOCH_MAX_TURNS = 20;
3
- export declare const CLI_SESSION_EPOCH_MAX_INPUT_TOKENS = 100000;
3
+ export declare const CLI_SESSION_EPOCH_MAX_INPUT_TOKENS: number;
4
+ export type CliSessionEpochResetReason = 'user_clear' | 'user_new' | 'user_compact' | 'turn_limit' | 'token_limit' | 'resume_failed' | 'provider_changed';
5
+ export type WarmSessionReuseOutcome = 'reuse' | 'cold_start' | 'epoch_reset';
6
+ export interface WarmSessionReuseResult {
7
+ outcome: WarmSessionReuseOutcome;
8
+ resumeSessionId: string | null;
9
+ resetReason: CliSessionEpochResetReason | null;
10
+ existing: data.CliSessionEpochRow | undefined;
11
+ topicId: string | null;
12
+ }
4
13
  export declare function localTimestamp(): string;
5
- export declare function selectCliSessionEpoch(conversationId: string, botId: string, providerName: string): {
14
+ export declare function selectCliSessionEpoch(conversationId: string, botId: string, providerName: string, forceNewEpoch?: CliSessionEpochResetReason, sessionScopeKey?: string | null): {
6
15
  existing: data.CliSessionEpochRow | undefined;
7
16
  resumeSessionId: string | null;
8
- resetReason: string | null;
17
+ resetReason: CliSessionEpochResetReason | null;
9
18
  };
19
+ export declare function evaluateWarmSessionReuse(conversationId: string, botId: string, providerName: string, forceNewEpoch?: CliSessionEpochResetReason, sessionScopeKey?: string | null): WarmSessionReuseResult;
10
20
  //# sourceMappingURL=cli-session-epoch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-session-epoch.d.ts","sourceRoot":"","sources":["../src/cli-session-epoch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,kCAAkC,SAAS,CAAC;AAEzD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB;IACD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAeA"}
1
+ {"version":3,"file":"cli-session-epoch.d.ts","sourceRoot":"","sources":["../src/cli-session-epoch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AAErC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAc9C,eAAO,MAAM,kCAAkC,QAAyC,CAAC;AAEzF,MAAM,MAAM,0BAA0B,GAClC,YAAY,GACZ,UAAU,GACV,cAAc,GACd,YAAY,GACZ,aAAa,GACb,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,MAAM,uBAAuB,GAC/B,OAAO,GACP,YAAY,GACZ,aAAa,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,uBAAuB,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC/C,QAAQ,EAAE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAC9C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,0BAA0B,EAC1C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B;IACD,QAAQ,EAAE,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAC9C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,EAAE,0BAA0B,GAAG,IAAI,CAAC;CAChD,CA2BA;AAED,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,0BAA0B,EAC1C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC9B,sBAAsB,CA2BxB"}
@@ -36,16 +36,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.CLI_SESSION_EPOCH_MAX_INPUT_TOKENS = exports.CLI_SESSION_EPOCH_MAX_TURNS = void 0;
37
37
  exports.localTimestamp = localTimestamp;
38
38
  exports.selectCliSessionEpoch = selectCliSessionEpoch;
39
+ exports.evaluateWarmSessionReuse = evaluateWarmSessionReuse;
39
40
  const data = __importStar(require("./local-data"));
40
41
  exports.CLI_SESSION_EPOCH_MAX_TURNS = 20;
41
- exports.CLI_SESSION_EPOCH_MAX_INPUT_TOKENS = 100000;
42
+ const DEFAULT_CLI_SESSION_EPOCH_MAX_INPUT_TOKENS = 200000;
43
+ const CLI_SESSION_EPOCH_MAX_INPUT_TOKENS_ENV = 'FUNOLIO_CLI_SESSION_EPOCH_MAX_INPUT_TOKENS';
44
+ function resolveCliSessionEpochMaxInputTokens() {
45
+ const raw = process.env[CLI_SESSION_EPOCH_MAX_INPUT_TOKENS_ENV]?.trim();
46
+ if (!raw)
47
+ return DEFAULT_CLI_SESSION_EPOCH_MAX_INPUT_TOKENS;
48
+ const parsed = Number.parseInt(raw, 10);
49
+ if (!Number.isFinite(parsed) || parsed <= 0) {
50
+ return DEFAULT_CLI_SESSION_EPOCH_MAX_INPUT_TOKENS;
51
+ }
52
+ return parsed;
53
+ }
54
+ exports.CLI_SESSION_EPOCH_MAX_INPUT_TOKENS = resolveCliSessionEpochMaxInputTokens();
42
55
  function localTimestamp() {
43
56
  return new Date().toISOString().replace('T', ' ').replace('Z', '');
44
57
  }
45
- function selectCliSessionEpoch(conversationId, botId, providerName) {
46
- const existing = data.getCliSessionEpoch(conversationId, botId);
58
+ function selectCliSessionEpoch(conversationId, botId, providerName, forceNewEpoch, sessionScopeKey) {
59
+ const existing = data.getCliSessionEpoch(conversationId, botId, sessionScopeKey);
47
60
  if (!existing) {
48
- return { existing: undefined, resumeSessionId: null, resetReason: null };
61
+ return { existing: undefined, resumeSessionId: null, resetReason: forceNewEpoch || null };
62
+ }
63
+ if (forceNewEpoch) {
64
+ return { existing, resumeSessionId: null, resetReason: forceNewEpoch };
49
65
  }
50
66
  if (existing.provider !== providerName) {
51
67
  return { existing, resumeSessionId: null, resetReason: 'provider_changed' };
@@ -56,6 +72,39 @@ function selectCliSessionEpoch(conversationId, botId, providerName) {
56
72
  if ((existing.last_input_tokens || 0) >= exports.CLI_SESSION_EPOCH_MAX_INPUT_TOKENS) {
57
73
  return { existing, resumeSessionId: null, resetReason: 'token_limit' };
58
74
  }
75
+ if (!String(existing.session_id || '').trim()
76
+ || (existing.reset_reason === 'prewarm'
77
+ && (existing.epoch_turn_count || 0) === 0)) {
78
+ return { existing, resumeSessionId: null, resetReason: null };
79
+ }
59
80
  return { existing, resumeSessionId: existing.session_id, resetReason: null };
60
81
  }
82
+ function evaluateWarmSessionReuse(conversationId, botId, providerName, forceNewEpoch, sessionScopeKey) {
83
+ const plan = selectCliSessionEpoch(conversationId, botId, providerName, forceNewEpoch, sessionScopeKey);
84
+ if (!plan.existing) {
85
+ return {
86
+ outcome: 'cold_start',
87
+ resumeSessionId: null,
88
+ resetReason: plan.resetReason,
89
+ existing: undefined,
90
+ topicId: null,
91
+ };
92
+ }
93
+ if (plan.resumeSessionId) {
94
+ return {
95
+ outcome: 'reuse',
96
+ resumeSessionId: plan.resumeSessionId,
97
+ resetReason: null,
98
+ existing: plan.existing,
99
+ topicId: plan.existing.topic_id,
100
+ };
101
+ }
102
+ return {
103
+ outcome: plan.resetReason ? 'epoch_reset' : 'cold_start',
104
+ resumeSessionId: null,
105
+ resetReason: plan.resetReason,
106
+ existing: plan.existing,
107
+ topicId: plan.existing.topic_id,
108
+ };
109
+ }
61
110
  //# sourceMappingURL=cli-session-epoch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-session-epoch.js","sourceRoot":"","sources":["../src/cli-session-epoch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wCAEC;AAED,sDAuBC;AAhCD,mDAAqC;AAExB,QAAA,2BAA2B,GAAG,EAAE,CAAC;AACjC,QAAA,kCAAkC,GAAG,MAAM,CAAC;AAEzD,SAAgB,cAAc;IAC5B,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAgB,qBAAqB,CACnC,cAAsB,EACtB,KAAa,EACb,YAAoB;IAMpB,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACvC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,mCAA2B,EAAE,CAAC;QACpE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,0CAAkC,EAAE,CAAC;QAC5E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"cli-session-epoch.js","sourceRoot":"","sources":["../src/cli-session-epoch.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ import type { LLMMessage } from './providers/index';
4
4
  type ProviderUsage = {
5
5
  inputTokens: number;
6
6
  outputTokens: number;
7
+ inputTokensFresh?: number;
8
+ inputTokensCacheCreation?: number;
9
+ inputTokensCacheRead?: number;
7
10
  };
8
11
  type OutboundCallback = (text: string) => Promise<void> | void;
9
12
  type SpawnedProcess = ChildProcessWithoutNullStreams;
@@ -27,6 +30,15 @@ export interface CodexAppServerBotSettings {
27
30
  sandboxPolicy?: string | null;
28
31
  approvalPolicy?: string | null;
29
32
  }
33
+ export interface CodexAppServerToolEvent {
34
+ kind: 'call' | 'result';
35
+ toolName: string;
36
+ toolCallId: string;
37
+ arguments?: Record<string, any>;
38
+ output?: string;
39
+ isError?: boolean;
40
+ }
41
+ export type CodexAppServerToolCallback = (event: CodexAppServerToolEvent) => Promise<void> | void;
30
42
  export interface CodexAppServerTurnOptions {
31
43
  runtimeMode?: AgentRuntimeMode | null;
32
44
  conversationId: string;
@@ -43,8 +55,10 @@ export interface CodexAppServerTurnOptions {
43
55
  codexSettings?: CodexAppServerBotSettings | null;
44
56
  abortSignal?: AbortSignal;
45
57
  onChunk?: OutboundCallback;
58
+ onCommentary?: OutboundCallback;
46
59
  onThinkingChunk?: OutboundCallback;
47
60
  onDetail?: OutboundCallback;
61
+ onToolEvent?: CodexAppServerToolCallback;
48
62
  }
49
63
  export interface CodexAppServerEventEntry {
50
64
  ts: string;
@@ -64,20 +78,49 @@ export interface CodexAppServerTurnResult {
64
78
  eventLog: CodexAppServerEventLog;
65
79
  thinking?: string;
66
80
  }
81
+ export interface CodexAppServerWarmOptions {
82
+ runtimeMode?: AgentRuntimeMode | null;
83
+ conversationId: string;
84
+ botId: string;
85
+ botName?: string | null;
86
+ cwd: string;
87
+ projectId?: string | number | null;
88
+ currentTodoTaskId?: string | number | null;
89
+ timeoutMs?: number;
90
+ /**
91
+ * Optional thread-bootstrap params. When provided, warmSession calls
92
+ * thread/start (or thread/resume) during warm so Send only has to do
93
+ * turn/start. Omitting them preserves the legacy "init handshake only"
94
+ * warm behavior, which is still useful as a mild pre-warm.
95
+ */
96
+ systemPrompt?: string | null;
97
+ model?: string | null;
98
+ codexSettings?: CodexAppServerBotSettings | null;
99
+ resumeSessionId?: string | null;
100
+ primerMessages?: LLMMessage[] | null;
101
+ }
102
+ export interface CodexAppServerWarmResult {
103
+ reusedExistingSession: boolean;
104
+ readyAgeMs: number;
105
+ sessionId: string | null;
106
+ hiddenPrimerCompleted: boolean;
107
+ }
67
108
  declare function delay(ms: number): Promise<void>;
68
109
  declare function sessionKey(conversationId: string, botId: string): string;
69
110
  declare function createEventLog(): CodexAppServerEventLog;
70
111
  declare function serializeEventLog(eventLog: CodexAppServerEventLog): string;
71
- declare function scrubCodexAppServerEnv(baseEnv: NodeJS.ProcessEnv, extraEnv: Record<string, string>): Record<string, string>;
112
+ declare function scrubCodexAppServerEnv(baseEnv: NodeJS.ProcessEnv, extraEnv: Record<string, string>, sessionKey?: string): Record<string, string>;
113
+ declare function computeEnvFingerprint(env: Record<string, string>): string;
72
114
  declare function buildCodexAppServerToolEnv(input: {
73
115
  botId: string;
74
116
  botName?: string | null;
75
117
  projectId?: string | number | null;
76
- todoTaskId?: string | number | null;
77
118
  }): Record<string, string>;
119
+ declare function buildTurnMcpToolEnv(sessionEnv: Record<string, string>, currentTodoTaskId?: string | number | null): Record<string, string>;
78
120
  declare function buildCodexAppServerInput(messages: LLMMessage[]): Array<{
79
- type: 'text';
80
- text: string;
121
+ type: string;
122
+ text?: string;
123
+ url?: string;
81
124
  }>;
82
125
  declare function buildTurnUsage(tokenUsage: any): ProviderUsage | undefined;
83
126
  declare function buildApprovalResponse(method: string, params: any): any;
@@ -90,12 +133,26 @@ export declare class CodexAppServerManager {
90
133
  private readonly logWarn;
91
134
  private readonly clientInfo;
92
135
  constructor(deps?: CodexAppServerManagerDeps);
136
+ warmSession(opts: CodexAppServerWarmOptions): Promise<CodexAppServerWarmResult>;
137
+ /**
138
+ * Issues thread/start (or thread/resume if resumeSessionId is provided)
139
+ * during warm-up, populating session.threadId so runTurn can skip the
140
+ * call. Failure leaves the session with no thread id — runTurn will
141
+ * retry from scratch via its normal path.
142
+ */
143
+ private bootstrapWarmThread;
93
144
  runTurn(opts: CodexAppServerTurnOptions): Promise<CodexAppServerTurnResult>;
145
+ hasActiveSession(conversationId: string, botId: string): boolean;
94
146
  closeSessionByConversation(conversationId: string, botId: string): void;
147
+ closeSessionsByConversation(conversationId: string): number;
148
+ closeWarmSessionsByConversation(conversationId: string): number;
149
+ closeSessionsByBotId(botId: string): void;
95
150
  closeAll(): void;
151
+ closeSessionByKey(key: string): void;
96
152
  private closeSession;
97
153
  private createSession;
98
154
  private initializeSession;
155
+ private syncTurnMcpConfig;
99
156
  private runTurnInternal;
100
157
  private sendNotification;
101
158
  private sendResponse;
@@ -108,6 +165,7 @@ export declare class CodexAppServerManager {
108
165
  private handleProcessError;
109
166
  private handleProcessClose;
110
167
  private emitChunk;
168
+ private emitCommentary;
111
169
  private emitThinkingChunk;
112
170
  private emitDetail;
113
171
  }
@@ -117,7 +175,9 @@ export declare const __codexAppServerTestUtils: {
117
175
  LOCAL_ONLY_ERROR: string;
118
176
  buildCodexAppServerInput: typeof buildCodexAppServerInput;
119
177
  buildCodexAppServerToolEnv: typeof buildCodexAppServerToolEnv;
178
+ buildTurnMcpToolEnv: typeof buildTurnMcpToolEnv;
120
179
  scrubCodexAppServerEnv: typeof scrubCodexAppServerEnv;
180
+ computeEnvFingerprint: typeof computeEnvFingerprint;
121
181
  buildApprovalResponse: typeof buildApprovalResponse;
122
182
  buildTurnUsage: typeof buildTurnUsage;
123
183
  createEventLog: typeof createEventLog;
@@ -1 +1 @@
1
- {"version":3,"file":"codex-app-server-manager.d.ts","sourceRoot":"","sources":["../src/codex-app-server-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-app-server-manager.d.ts","sourceRoot":"","sources":["../src/codex-app-server-manager.ts"],"names":[],"mappings":"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"}