@runeya/runeya 2.0.143 → 2.0.145

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 (135) hide show
  1. package/agent/index.js +7 -1
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-THV3LJOF.js +11 -0
  4. package/{chat-X3X527EX.js → chat-XYCHMTFE.js} +9 -9
  5. package/{chunk-7HIPFSOA.js → chunk-57P45FNY.js} +11 -3
  6. package/chunk-57P45FNY.js.map +1 -0
  7. package/{chunk-UR3HL373.js → chunk-FE53XX4M.js} +8 -8
  8. package/{chunk-IXO5KIO5.js → chunk-KS7A5CTW.js} +12 -1
  9. package/{chunk-IXO5KIO5.js.map → chunk-KS7A5CTW.js.map} +1 -1
  10. package/{chunk-XAFOP677.js → chunk-MZSDTA4A.js} +480 -233
  11. package/chunk-MZSDTA4A.js.map +1 -0
  12. package/{chunk-7L6AQUBR.js → chunk-NCO4OOYT.js} +6 -2
  13. package/{chunk-7L6AQUBR.js.map → chunk-NCO4OOYT.js.map} +1 -1
  14. package/{chunk-P73PTVII.js → chunk-ONVAH65J.js} +103 -33
  15. package/chunk-ONVAH65J.js.map +1 -0
  16. package/{chunk-NSS47H26.js → chunk-Q4RPY3VW.js} +330 -74
  17. package/chunk-Q4RPY3VW.js.map +1 -0
  18. package/{chunk-GXE5TLLJ.js → chunk-QF56Z6LI.js} +17 -17
  19. package/{companion-2LHKU577.js → companion-HBYSY2D5.js} +11 -7
  20. package/{desktop-installer-page-6JDSXK2E.js → desktop-installer-page-I5FHFDES.js} +11 -8
  21. package/desktop-installer-page-I5FHFDES.js.map +1 -0
  22. package/{desktop-launcher-YPNRQMIS.js → desktop-launcher-GD4QPM66.js} +3 -3
  23. package/index.js +25 -12
  24. package/index.js.map +1 -1
  25. package/{install-gate-2NNH7RM2.js → install-gate-JAEK4BDZ.js} +2 -2
  26. package/mcp-server/index.js +7 -1
  27. package/mcp-server/index.js.map +1 -1
  28. package/package.json +1 -1
  29. package/settings-manager-QVQRJO6V.js +10 -0
  30. package/src-DCCEUWE6.js +385 -0
  31. package/{src-5TEXF3SU.js → src-IODFUZ7A.js} +100 -59
  32. package/src-IODFUZ7A.js.map +1 -0
  33. package/{vault-resolver-VK6W5J6W.js → vault-resolver-PN3TYCLJ.js} +3 -2
  34. package/vault-resolver-PN3TYCLJ.js.map +1 -0
  35. package/web/assets/{AgentScalarChatInterface.vue-B-SjOsdj.js → AgentScalarChatInterface.vue-npQgDxeP.js} +1 -1
  36. package/web/assets/{AgentTerminalPage-JzC8DUgu.js → AgentTerminalPage-BTH3yCS2.js} +1 -1
  37. package/web/assets/{AiChatModals-D1928AxG.js → AiChatModals-It9jnB26.js} +1 -1
  38. package/web/assets/AppLayout-BTg2CADo.js +1 -0
  39. package/web/assets/{AppLayout-8sBPr3od.css → AppLayout-tsw5Ow0w.css} +1 -1
  40. package/web/assets/{AuditPage-BZIJ3_Kr.js → AuditPage-2PKKGLZs.js} +1 -1
  41. package/web/assets/{CloudAccountPage-DBv470sT.js → CloudAccountPage-CHL61gLe.js} +1 -1
  42. package/web/assets/{CloudMessagingPage-qCI8-UDL.js → CloudMessagingPage-cgKnABPH.js} +1 -1
  43. package/web/assets/DashboardPage-CRntTMKY.js +1 -0
  44. package/web/assets/{DashboardPage-D9-PpC3F.css → DashboardPage-FvNuC_e4.css} +1 -1
  45. package/web/assets/{DirectoryPickerDialog-B5DvDfQP.js → DirectoryPickerDialog-DCyhT3-W.js} +1 -1
  46. package/web/assets/{EnvironmentForm-Bw8Djnqm.js → EnvironmentForm-C96PFWRE.js} +1 -1
  47. package/web/assets/{EnvironmentFormPage-B59uiYtp.js → EnvironmentFormPage-ChorAd63.js} +1 -1
  48. package/web/assets/{EnvironmentListPage-W9zLDZAg.js → EnvironmentListPage-Dw9ziaI8.js} +1 -1
  49. package/web/assets/KanbanBoardPage-BZHbEj-q.js +4 -0
  50. package/web/assets/KanbanBoardPage-eHmsrFGA.css +1 -0
  51. package/web/assets/{KanbanListPage-Bn9k8Rpc.js → KanbanListPage-B0jlfKqs.js} +1 -1
  52. package/web/assets/{LaunchProjectPage-Dc7v1UjQ.js → LaunchProjectPage-BVs1JwbV.js} +1 -1
  53. package/web/assets/LaunchServicesPage-DoLDPqQq.css +1 -0
  54. package/web/assets/LaunchServicesPage-PBYJly9N.js +1 -0
  55. package/web/assets/{LaunchShell-LonTJpb3.js → LaunchShell-CGNYr-do.js} +1 -1
  56. package/web/assets/{LogViewer-DkuqWYkQ.js → LogViewer-BDObx29F.js} +1 -1
  57. package/web/assets/{OrgKeyPrompt-By1VjlSN.js → OrgKeyPrompt-BbcwiwGw.js} +1 -1
  58. package/web/assets/{ProcessControls-C0skzKGL.js → ProcessControls-DY0HTKde.js} +1 -1
  59. package/web/assets/{ProcessDetailPage-BvPX6z_X.js → ProcessDetailPage-BZ9kIQqn.js} +1 -1
  60. package/web/assets/{ProjectCreateDialog-C4o9u15L.js → ProjectCreateDialog-C1wVDPcK.js} +1 -1
  61. package/web/assets/{ProjectLocationGate-BJ1CSQt0.js → ProjectLocationGate-bUd_tFpI.js} +1 -1
  62. package/web/assets/{ProjectPublishDialog-Cp-zXdGm.js → ProjectPublishDialog-APUS1WEN.js} +1 -1
  63. package/web/assets/{RandomJobTestPage-DF4a1U13.js → RandomJobTestPage-BFNC827R.js} +1 -1
  64. package/web/assets/ScenarioEditorPage-DFVsMVu5.js +14 -0
  65. package/web/assets/{SendToChatDialog-Dg2SHkVD.js → SendToChatDialog-QHIkxNio.js} +1 -1
  66. package/web/assets/{ServiceControlsBar-q2VHWaxK.js → ServiceControlsBar-_UQXb6g0.js} +1 -1
  67. package/web/assets/ServiceDetailPage-DGIXgHwR.js +2 -0
  68. package/web/assets/{ServiceFormPage-tT_n7WUy.js → ServiceFormPage-RliAfS3_.js} +1 -1
  69. package/web/assets/SettingsPage-BSSHxxjM.js +2086 -0
  70. package/web/assets/{SettingsPage-aGSxZw1n.css → SettingsPage-W8YszhUL.css} +1 -1
  71. package/web/assets/{UnlockPage-BKAdMJkb.js → UnlockPage-17EgfpJs.js} +1 -1
  72. package/web/assets/{VaultMigrationPage-D9KUTTss.js → VaultMigrationPage-DeMxpXXJ.js} +1 -1
  73. package/web/assets/{VersionBadge-moKP5bAv.js → VersionBadge-DBquJl76.js} +1 -1
  74. package/web/assets/{WikiPage-hLUndDxo.js → WikiPage-GtwpJPqf.js} +1 -1
  75. package/web/assets/{WikiView-rrjXRR72.js → WikiView-BqaqxMxW.js} +1 -1
  76. package/web/assets/{add-scalar-classes-CBfRr8B2.js → add-scalar-classes-DhSSqZ5l.js} +2 -2
  77. package/web/assets/{agent.store-B3dVemmT.js → agent.store-Co44dMZf.js} +1 -1
  78. package/web/assets/app-mode-BVpTuh0i.js +1 -0
  79. package/web/assets/auth-Bk1GP5sB.js +2 -0
  80. package/web/assets/{cloud-chat.store-Wg1poFem.js → cloud-chat.store-CadB14dZ.js} +1 -1
  81. package/web/assets/{cloud-client-DQlUaoAw.js → cloud-client-0zD_NI6q.js} +2 -2
  82. package/web/assets/{cloud-session-DRUqcSGP.js → cloud-session-Cjw54Y--.js} +2 -2
  83. package/web/assets/dist-N4nrnbnA.js +1 -0
  84. package/web/assets/{editor.store-SoH48ux2.js → editor.store-DmM6ZlTm.js} +1 -1
  85. package/web/assets/i18n-8FjeJaKW.js +1 -0
  86. package/web/assets/{index-D_x2s8Ut.js → index-B9DJf2V0.js} +101 -101
  87. package/web/assets/{index-C_JV7fYy.css → index-teBqdnuv.css} +1 -1
  88. package/web/assets/{modal-CpsVK_dA.js → modal-UK8xRSnh.js} +1 -1
  89. package/web/assets/{project-launch.store-C3fZeRGb.js → project-launch.store-B5nhdGdh.js} +1 -1
  90. package/web/assets/{project.store-BEk4fciH.js → project.store-Bm2JWNbd.js} +1 -1
  91. package/web/assets/{scenario.store-D-JrRiVO.js → scenario.store-88w6P6s2.js} +2 -2
  92. package/web/assets/{service.store-B5uYZtyM.js → service.store-XS50iGKo.js} +1 -1
  93. package/web/assets/{settings-scope-Blnwj3rR.js → settings-scope-CKPq86HZ.js} +1 -1
  94. package/web/assets/{settings.store-Bo3FYs1o.js → settings.store-BCJ0LJQA.js} +1 -1
  95. package/web/assets/src-BDZKZr9n.css +1 -0
  96. package/web/assets/{src-DValZNJU.js → src-Cgix2VOi.js} +5 -5
  97. package/web/assets/{src-CAwAaB5j.js → src-DBipSD56.js} +1 -1
  98. package/web/assets/{trpc-DbsE5GvQ.js → trpc-CfuFkKgp.js} +3 -3
  99. package/web/assets/{useCloudOrg-DygUBG1a.js → useCloudOrg-J8DAnocE.js} +1 -1
  100. package/web/assets/{useEnvVarAutocomplete-DmYNOXgd.js → useEnvVarAutocomplete-C6zOXYqi.js} +1 -1
  101. package/web/assets/{useProjectCatalog-D2mHB7dg.js → useProjectCatalog-BB5IR6o8.js} +1 -1
  102. package/web/assets/{useProjectCloudOrg-avTCVold.js → useProjectCloudOrg-BnlKts7x.js} +1 -1
  103. package/web/assets/{useServiceUrlHost-Q3fzGox3.js → useServiceUrlHost-hKbKtPMu.js} +1 -1
  104. package/web/assets/{vue-draggable-plus-WgrMXXmE.js → vue-draggable-plus-D5ni4jMk.js} +1 -1
  105. package/web/index.html +19 -18
  106. package/agent-manager-M4NA5YFD.js +0 -11
  107. package/chunk-7HIPFSOA.js.map +0 -1
  108. package/chunk-NSS47H26.js.map +0 -1
  109. package/chunk-P73PTVII.js.map +0 -1
  110. package/chunk-XAFOP677.js.map +0 -1
  111. package/desktop-installer-page-6JDSXK2E.js.map +0 -1
  112. package/settings-manager-32SVMAFN.js +0 -10
  113. package/src-5TEXF3SU.js.map +0 -1
  114. package/web/assets/AppLayout-CVQIBYqg.js +0 -1
  115. package/web/assets/DashboardPage-D0UZM0mr.js +0 -1
  116. package/web/assets/KanbanBoardPage-DRACMk_D.css +0 -1
  117. package/web/assets/KanbanBoardPage-DwPqoJDJ.js +0 -4
  118. package/web/assets/LaunchServicesPage-CXUS9O3y.js +0 -1
  119. package/web/assets/LaunchServicesPage-DJDIN8HU.css +0 -1
  120. package/web/assets/ScenarioEditorPage-Dl-gEkJI.js +0 -14
  121. package/web/assets/ServiceDetailPage-CJ8WaFod.js +0 -2
  122. package/web/assets/SettingsPage-CWakkv0V.js +0 -2086
  123. package/web/assets/auth-BCrvnP1U.js +0 -2
  124. package/web/assets/dist-DoChtT9t.js +0 -1
  125. package/web/assets/i18n-BszFg0ko.js +0 -1
  126. package/web/assets/src-DuBXN1hu.css +0 -1
  127. /package/{agent-manager-M4NA5YFD.js.map → agent-manager-THV3LJOF.js.map} +0 -0
  128. /package/{chat-X3X527EX.js.map → chat-XYCHMTFE.js.map} +0 -0
  129. /package/{chunk-UR3HL373.js.map → chunk-FE53XX4M.js.map} +0 -0
  130. /package/{chunk-GXE5TLLJ.js.map → chunk-QF56Z6LI.js.map} +0 -0
  131. /package/{companion-2LHKU577.js.map → companion-HBYSY2D5.js.map} +0 -0
  132. /package/{desktop-launcher-YPNRQMIS.js.map → desktop-launcher-GD4QPM66.js.map} +0 -0
  133. /package/{install-gate-2NNH7RM2.js.map → install-gate-JAEK4BDZ.js.map} +0 -0
  134. /package/{settings-manager-32SVMAFN.js.map → settings-manager-QVQRJO6V.js.map} +0 -0
  135. /package/{vault-resolver-VK6W5J6W.js.map → src-DCCEUWE6.js.map} +0 -0
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  settingsManager
3
- } from "./chunk-UR3HL373.js";
3
+ } from "./chunk-FE53XX4M.js";
4
4
  import {
5
5
  COMPANION_SIGNATURE,
6
6
  activeSessionRegistry,
7
7
  claudeSessionExists,
8
+ companionCreateDefaults,
9
+ companionInstructions,
10
+ companionSettings,
8
11
  companionSkips,
9
12
  companionSystemNote,
10
13
  companionThinkingIds,
@@ -35,7 +38,7 @@ import {
35
38
  stopCompanion,
36
39
  syncConversationFromClaudeTranscript,
37
40
  verifyJwt
38
- } from "./chunk-NSS47H26.js";
41
+ } from "./chunk-Q4RPY3VW.js";
39
42
  import {
40
43
  StoreDiskCoordinator,
41
44
  agentManager,
@@ -54,7 +57,11 @@ import {
54
57
  recordLocalRemoval,
55
58
  refsOfProjectId,
56
59
  serviceStore
57
- } from "./chunk-GXE5TLLJ.js";
60
+ } from "./chunk-QF56Z6LI.js";
61
+ import {
62
+ isCliAvailable,
63
+ resolveCliInvocation
64
+ } from "./chunk-OZBSOSAS.js";
58
65
  import {
59
66
  atomicWriteJsonSecure,
60
67
  atomicWriteSecure,
@@ -65,12 +72,24 @@ import {
65
72
  renameWithRetry,
66
73
  resolveConversationRunDir,
67
74
  wasRead
68
- } from "./chunk-7L6AQUBR.js";
75
+ } from "./chunk-NCO4OOYT.js";
76
+ import {
77
+ allVaultRoots,
78
+ env,
79
+ keyedFilePath,
80
+ legacyMachineFilePath,
81
+ listOrgVaults,
82
+ machineFilePath,
83
+ machineRoot,
84
+ orgVaultRoot,
85
+ vaultIdOfRoot
86
+ } from "./chunk-KS7A5CTW.js";
69
87
  import {
70
88
  AGENT_STOP_FETCH_TIMEOUT,
71
89
  ApiKeysFileSchema,
72
90
  BUILTIN_VARIABLES,
73
91
  BootstrapCommandSchema,
92
+ CLAUDE_CODE_MODELS,
74
93
  DockerConfigSchema,
75
94
  HealthCheckSchema,
76
95
  JSLogParserSchema,
@@ -95,22 +114,7 @@ import {
95
114
  serviceUrlValues,
96
115
  urlHostFor,
97
116
  withDeprecatedAliases
98
- } from "./chunk-XAFOP677.js";
99
- import {
100
- allVaultRoots,
101
- env,
102
- keyedFilePath,
103
- legacyMachineFilePath,
104
- listOrgVaults,
105
- machineFilePath,
106
- machineRoot,
107
- orgVaultRoot,
108
- vaultIdOfRoot
109
- } from "./chunk-IXO5KIO5.js";
110
- import {
111
- isCliAvailable,
112
- resolveCliInvocation
113
- } from "./chunk-OZBSOSAS.js";
117
+ } from "./chunk-MZSDTA4A.js";
114
118
 
115
119
  // ../server/src/trpc/routers/chat.ts
116
120
  import { z as z9 } from "zod";
@@ -4257,12 +4261,12 @@ function getCloudApiUrl() {
4257
4261
  return (env.CLOUD_URL ?? DEFAULT_CLOUD_API_URL).replace(/\/+$/, "");
4258
4262
  }
4259
4263
  async function orgCloudUrl(orgId) {
4260
- const { readOrgClouds } = await import("./vault-resolver-VK6W5J6W.js");
4264
+ const { readOrgClouds } = await import("./vault-resolver-PN3TYCLJ.js");
4261
4265
  const clouds = await readOrgClouds();
4262
4266
  return (clouds[orgId] ?? getCloudApiUrl()).replace(/\/+$/, "");
4263
4267
  }
4264
4268
  async function accountForOrg(orgId) {
4265
- const { readOrgAccounts, readOrgClouds } = await import("./vault-resolver-VK6W5J6W.js");
4269
+ const { readOrgAccounts, readOrgClouds } = await import("./vault-resolver-PN3TYCLJ.js");
4266
4270
  const [stampedAccounts, stampedClouds, accounts] = await Promise.all([
4267
4271
  readOrgAccounts(),
4268
4272
  readOrgClouds(),
@@ -4479,7 +4483,7 @@ var cloudAuthRouter = router({
4479
4483
  * du projet ouvert, sous quel compte il se synchronise.
4480
4484
  */
4481
4485
  accounts: protectedProcedure.query(async () => {
4482
- const { readOrgAccounts } = await import("./vault-resolver-VK6W5J6W.js");
4486
+ const { readOrgAccounts } = await import("./vault-resolver-PN3TYCLJ.js");
4483
4487
  return { accounts: await cloudSessionStore.list(), orgAccounts: await readOrgAccounts() };
4484
4488
  }),
4485
4489
  /** The cloud session (user + org), fetched with the stored token. */
@@ -4497,7 +4501,7 @@ var cloudAuthRouter = router({
4497
4501
  const identity = await readCloudIdentity(account.cloudUrl, await cloudSessionStore.getToken(accountId) ?? "");
4498
4502
  if (identity) {
4499
4503
  const settled = await cloudSessionStore.describe(accountId, identity);
4500
- const { renameOrgAccount } = await import("./vault-resolver-VK6W5J6W.js");
4504
+ const { renameOrgAccount } = await import("./vault-resolver-PN3TYCLJ.js");
4501
4505
  await renameOrgAccount(accountId, settled);
4502
4506
  }
4503
4507
  }
@@ -5427,7 +5431,7 @@ function tailTranscript(opts) {
5427
5431
 
5428
5432
  // ../server/src/services/ai-runners/claude-pty-runner.ts
5429
5433
  async function getAgentManager() {
5430
- const { agentManager: agentManager2 } = await import("./agent-manager-M4NA5YFD.js");
5434
+ const { agentManager: agentManager2 } = await import("./agent-manager-THV3LJOF.js");
5431
5435
  return agentManager2;
5432
5436
  }
5433
5437
  function buildPtyArgs(params, sessionId, opts) {
@@ -6121,7 +6125,7 @@ async function shutdownCodexAppServer() {
6121
6125
  }
6122
6126
  }
6123
6127
  async function getAgentManager2() {
6124
- const { agentManager: agentManager2 } = await import("./agent-manager-M4NA5YFD.js");
6128
+ const { agentManager: agentManager2 } = await import("./agent-manager-THV3LJOF.js");
6125
6129
  return agentManager2;
6126
6130
  }
6127
6131
  function parseRuneyaCurlCommand(command) {
@@ -6554,6 +6558,52 @@ var CodexRunner = class {
6554
6558
  }
6555
6559
  };
6556
6560
 
6561
+ // ../server/src/services/cli-models.ts
6562
+ var CACHE_MS = 5 * 6e4;
6563
+ var MAX_PAGES = 10;
6564
+ var codexCache = /* @__PURE__ */ new Map();
6565
+ function parseCodexModels(result) {
6566
+ const data = result?.data;
6567
+ if (!Array.isArray(data)) return [];
6568
+ const models = [];
6569
+ for (const item of data) {
6570
+ if (!item || item.hidden === true || typeof item.model !== "string" || !item.model) continue;
6571
+ const label = typeof item.displayName === "string" && item.displayName ? item.displayName : item.model;
6572
+ models.push({ value: item.model, label });
6573
+ }
6574
+ return models;
6575
+ }
6576
+ async function fetchCodexModels(agentId) {
6577
+ const models = [];
6578
+ let cursor;
6579
+ for (let page = 0; page < MAX_PAGES; page++) {
6580
+ const res = await agentManager.agentMutation(
6581
+ agentId,
6582
+ "ai.codexRequest",
6583
+ { method: "model/list", params: cursor ? { cursor } : {} }
6584
+ );
6585
+ models.push(...parseCodexModels(res?.result));
6586
+ cursor = res?.result?.nextCursor;
6587
+ if (!cursor) break;
6588
+ }
6589
+ return models;
6590
+ }
6591
+ async function listCliModels(runner, agentId) {
6592
+ if (runner === "claude-code") return CLAUDE_CODE_MODELS.map((m) => ({ value: m, label: m }));
6593
+ const target = agentId ?? agentManager.getDefaultAgentId();
6594
+ if (!target) return [];
6595
+ const cached = codexCache.get(target);
6596
+ if (cached && Date.now() - cached.at < CACHE_MS) return cached.models;
6597
+ try {
6598
+ const models = await fetchCodexModels(target);
6599
+ codexCache.set(target, { at: Date.now(), models });
6600
+ return models;
6601
+ } catch (err) {
6602
+ console.warn(`[cli-models] model/list a \xE9chou\xE9 sur l'agent ${target}:`, err.message);
6603
+ return [];
6604
+ }
6605
+ }
6606
+
6557
6607
  // ../server/src/trpc/routers/chat.ts
6558
6608
  function toConversationSummary(conv) {
6559
6609
  const { messages, ...rest } = conv;
@@ -6822,6 +6872,7 @@ async function buildCliSystemContext(conv, jwt) {
6822
6872
  const resolvedServices = await Promise.all(ownServices.map((s) => resolveServiceVariables(s)));
6823
6873
  let systemContext = generateAdminLlmsTxt(resolvedServices, jwt, project);
6824
6874
  if (!conv?.isCompanion) systemContext += "\n\n" + companionSystemNote();
6875
+ else systemContext += "\n\n" + companionInstructions((await companionSettings()).prompt);
6825
6876
  systemContext += await kanbanContextFor(conv, {
6826
6877
  ...ref?.id ? { projectId: ref.id } : {},
6827
6878
  ...ref?.orgId ? { orgId: ref.orgId } : {}
@@ -6943,7 +6994,7 @@ async function startCodexSession(convId, prompt, opts = {}) {
6943
6994
  apiBaseUrl: `http://localhost:${env.PORT}`,
6944
6995
  apiToken: opts.jwt ?? "",
6945
6996
  model: opts.model ?? "",
6946
- effort: "normal",
6997
+ effort: opts.effort ?? "normal",
6947
6998
  signal: ac.signal,
6948
6999
  skipTokenInstructions: true,
6949
7000
  images: opts.images,
@@ -7091,10 +7142,13 @@ var chatRouter = router({
7091
7142
  if (!scenario) throw new TRPCError4({ code: "NOT_FOUND", message: "Scenario not found" });
7092
7143
  }
7093
7144
  const machineSettings = await settingsManager.getSettings();
7094
- const companionByDefault = machineSettings.companion?.enabledByDefault ?? false;
7145
+ const companionDefaults = companionCreateDefaults(
7146
+ machineSettings.companion ?? { enabledByDefault: false },
7147
+ input.runner
7148
+ );
7095
7149
  const extra = {
7096
7150
  ...input.agentId ? { agentId: input.agentId } : {},
7097
- ...companionByDefault ? { companionEnabled: true } : {}
7151
+ ...companionDefaults
7098
7152
  };
7099
7153
  const conv = await conversationStore.create(
7100
7154
  input.title,
@@ -7141,7 +7195,11 @@ var chatRouter = router({
7141
7195
  setCompanion: protectedProcedure.input(z9.object({
7142
7196
  id: Id128Schema,
7143
7197
  enabled: z9.boolean(),
7144
- runner: z9.enum(["claude-code", "codex"]).optional()
7198
+ runner: z9.enum(["claude-code", "codex"]).optional(),
7199
+ /** Chaîne vide = modèle par défaut du runner. */
7200
+ model: z9.string().max(200).optional(),
7201
+ /** Chaîne vide = effort par défaut. */
7202
+ effort: z9.enum(["low", "normal", "high", ""]).optional()
7145
7203
  })).mutation(async ({ input }) => {
7146
7204
  const existing = await conversationStore.get(input.id);
7147
7205
  if (!existing) throw new TRPCError4({ code: "NOT_FOUND", message: "Conversation not found" });
@@ -7150,7 +7208,9 @@ var chatRouter = router({
7150
7208
  }
7151
7209
  const conv = await conversationStore.update(input.id, {
7152
7210
  companionEnabled: input.enabled,
7153
- ...input.runner ? { companionRunner: input.runner } : {}
7211
+ ...input.runner ? { companionRunner: input.runner } : {},
7212
+ ...input.model !== void 0 ? { companionModel: input.model } : {},
7213
+ ...input.effort !== void 0 ? { companionEffort: input.effort } : {}
7154
7214
  });
7155
7215
  if (!conv) throw new TRPCError4({ code: "NOT_FOUND", message: "Conversation not found" });
7156
7216
  if (!input.enabled) stopCompanion(conv);
@@ -7353,6 +7413,15 @@ var chatRouter = router({
7353
7413
  return [];
7354
7414
  }
7355
7415
  }),
7416
+ /**
7417
+ * Les modèles proposés pour un runner CLI : alias fixes pour Claude Code,
7418
+ * `model/list` de l'app-server pour Codex, sur l'agent visé (celui par
7419
+ * défaut sinon). Liste vide si Codex ne répond pas.
7420
+ */
7421
+ listCliModels: protectedProcedure.input(z9.object({
7422
+ runner: z9.enum(["claude-code", "codex"]),
7423
+ agentId: Id128Schema.optional()
7424
+ })).query(async ({ input }) => ({ models: await listCliModels(input.runner, input.agentId) })),
7356
7425
  checkCliAvailability: protectedProcedure.input(z9.object({ agentId: Id128Schema.optional() }).optional()).query(async ({ input }) => {
7357
7426
  if (input?.agentId) {
7358
7427
  try {
@@ -8059,7 +8128,8 @@ Context:
8059
8128
  }
8060
8129
  const transcriptActivityAt = getLastTranscriptActivity(input.sessionId);
8061
8130
  const lastActivityAt = lastChunkAt && transcriptActivityAt ? Math.max(lastChunkAt, transcriptActivityAt) : lastChunkAt ?? transcriptActivityAt;
8062
- return { running, lastActivityAt };
8131
+ const idleMs = lastActivityAt === null ? null : Math.max(0, Date.now() - lastActivityAt);
8132
+ return { running, lastActivityAt, idleMs };
8063
8133
  }),
8064
8134
  /**
8065
8135
  * Convert the on-disk Claude transcript into Runeya Message[] and persist
@@ -8215,4 +8285,4 @@ export {
8215
8285
  startCliSession,
8216
8286
  chatRouter
8217
8287
  };
8218
- //# sourceMappingURL=chunk-P73PTVII.js.map
8288
+ //# sourceMappingURL=chunk-ONVAH65J.js.map