@runeya/runeya 2.0.141 → 2.0.143

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 (110) hide show
  1. package/{chat-UQIVCG33.js → chat-X3X527EX.js} +3 -3
  2. package/{chunk-H2MAALKN.js → chunk-NSS47H26.js} +28 -11
  3. package/chunk-NSS47H26.js.map +1 -0
  4. package/{chunk-36CC5CZK.js → chunk-P73PTVII.js} +21 -55
  5. package/chunk-P73PTVII.js.map +1 -0
  6. package/{companion-EVCS2HNC.js → companion-2LHKU577.js} +2 -2
  7. package/index.js +6 -6
  8. package/{install-gate-SFHNMBWT.js → install-gate-2NNH7RM2.js} +2 -2
  9. package/package.json +1 -1
  10. package/{src-ZSQISY6W.js → src-5TEXF3SU.js} +6 -6
  11. package/{src-ZSQISY6W.js.map → src-5TEXF3SU.js.map} +1 -1
  12. package/web/assets/{AgentScalarChatInterface.vue-Df0_SDmK.js → AgentScalarChatInterface.vue-B-SjOsdj.js} +1 -1
  13. package/web/assets/{AgentTerminalPage-BGA_7YUb.js → AgentTerminalPage-JzC8DUgu.js} +1 -1
  14. package/web/assets/{AiChatModals-CaGj0i1I.js → AiChatModals-D1928AxG.js} +1 -1
  15. package/web/assets/AppLayout-8sBPr3od.css +1 -0
  16. package/web/assets/AppLayout-CVQIBYqg.js +1 -0
  17. package/web/assets/{AuditPage-BMYSSho1.js → AuditPage-BZIJ3_Kr.js} +1 -1
  18. package/web/assets/{CloudAccountPage-DJNbXhOH.js → CloudAccountPage-DBv470sT.js} +1 -1
  19. package/web/assets/CloudMessagingPage-Cn3JhJsY.css +1 -0
  20. package/web/assets/CloudMessagingPage-qCI8-UDL.js +2 -0
  21. package/web/assets/{DashboardPage-BjeN6ZQ3.js → DashboardPage-D0UZM0mr.js} +1 -1
  22. package/web/assets/{DirectoryPickerDialog-CNIrtkmh.js → DirectoryPickerDialog-B5DvDfQP.js} +1 -1
  23. package/web/assets/{EditorIcon-BGHxAlSR.js → EditorIcon-CypGLV6w.js} +1 -1
  24. package/web/assets/{EnvironmentForm-DTJsmGg_.js → EnvironmentForm-Bw8Djnqm.js} +1 -1
  25. package/web/assets/EnvironmentForm-CkKVSiT7.css +1 -0
  26. package/web/assets/EnvironmentFormPage-B59uiYtp.js +1 -0
  27. package/web/assets/EnvironmentFormPage-C1gS0BI_.css +1 -0
  28. package/web/assets/EnvironmentListPage-BKhq_xXN.css +1 -0
  29. package/web/assets/EnvironmentListPage-W9zLDZAg.js +1 -0
  30. package/web/assets/{FlagChip-CHio0TB3.js → FlagChip-R_T5qYpL.js} +1 -1
  31. package/web/assets/{KanbanBoardPage-DocxhfeF.js → KanbanBoardPage-DwPqoJDJ.js} +3 -3
  32. package/web/assets/{KanbanListPage-DR_DYt46.js → KanbanListPage-Bn9k8Rpc.js} +1 -1
  33. package/web/assets/{LaunchProjectPage-Dgtz9dX8.js → LaunchProjectPage-Dc7v1UjQ.js} +1 -1
  34. package/web/assets/{LaunchServicesPage-iM8a_UHk.js → LaunchServicesPage-CXUS9O3y.js} +1 -1
  35. package/web/assets/{LaunchShell-DccCGeLx.js → LaunchShell-LonTJpb3.js} +1 -1
  36. package/web/assets/LogViewer-DkuqWYkQ.js +3 -0
  37. package/web/assets/{LogViewer-DEsbVxax.css → LogViewer-OHdSLleq.css} +1 -1
  38. package/web/assets/{OrgKeyPrompt-Dx95YhKV.js → OrgKeyPrompt-By1VjlSN.js} +1 -1
  39. package/web/assets/{ProcessControls-BUMbz3Cc.js → ProcessControls-C0skzKGL.js} +1 -1
  40. package/web/assets/{ProcessDetailPage-DKVRY4sj.js → ProcessDetailPage-BvPX6z_X.js} +1 -1
  41. package/web/assets/{ProcessMetrics-DtneQJzo.js → ProcessMetrics-Crlfkelj.js} +1 -1
  42. package/web/assets/{ProjectCreateDialog-CdYIXATf.js → ProjectCreateDialog-C4o9u15L.js} +1 -1
  43. package/web/assets/{ProjectLocationGate-BpKnR1WI.js → ProjectLocationGate-BJ1CSQt0.js} +1 -1
  44. package/web/assets/{ProjectPublishDialog-BTZXEmZh.js → ProjectPublishDialog-Cp-zXdGm.js} +1 -1
  45. package/web/assets/{RandomJobTestPage-BLR9jVah.js → RandomJobTestPage-DF4a1U13.js} +1 -1
  46. package/web/assets/{ScenarioEditorPage-ebK_glPw.js → ScenarioEditorPage-Dl-gEkJI.js} +1 -1
  47. package/web/assets/{SendToChatDialog-VwH8FOP7.js → SendToChatDialog-Dg2SHkVD.js} +1 -1
  48. package/web/assets/{ServiceControlsBar-3dlgA6Sg.js → ServiceControlsBar-q2VHWaxK.js} +1 -1
  49. package/web/assets/ServiceDetailPage-CJ8WaFod.js +2 -0
  50. package/web/assets/ServiceDetailPage-COdaCZ6r.css +1 -0
  51. package/web/assets/{ServiceFormPage-DIJMr_Ij.js → ServiceFormPage-tT_n7WUy.js} +1 -1
  52. package/web/assets/{SettingsPage-4bd7gsHf.js → SettingsPage-CWakkv0V.js} +4 -4
  53. package/web/assets/{UnlockPage-F37odjgM.js → UnlockPage-BKAdMJkb.js} +1 -1
  54. package/web/assets/{VaultMigrationPage-CT6EFAXK.js → VaultMigrationPage-D9KUTTss.js} +1 -1
  55. package/web/assets/{VersionBadge-4MjBn5ih.js → VersionBadge-moKP5bAv.js} +1 -1
  56. package/web/assets/{WikiPage-Dhil7fWU.js → WikiPage-hLUndDxo.js} +1 -1
  57. package/web/assets/{WikiView-Ca2kGbvZ.js → WikiView-rrjXRR72.js} +1 -1
  58. package/web/assets/{add-scalar-classes-ny-bwITc.js → add-scalar-classes-CBfRr8B2.js} +1 -1
  59. package/web/assets/{agent.store-BBUsxY3E.js → agent.store-B3dVemmT.js} +1 -1
  60. package/web/assets/{auth-DgcowXmP.js → auth-BCrvnP1U.js} +2 -2
  61. package/web/assets/{cloud-chat.store-BT0ikifC.js → cloud-chat.store-Wg1poFem.js} +1 -1
  62. package/web/assets/{cloud-client-7eaj_DyS.js → cloud-client-DQlUaoAw.js} +2 -2
  63. package/web/assets/{cloud-session-BI06sY79.js → cloud-session-DRUqcSGP.js} +2 -2
  64. package/web/assets/{editor.store-uLBvEAgM.js → editor.store-SoH48ux2.js} +1 -1
  65. package/web/assets/i18n-BszFg0ko.js +1 -0
  66. package/web/assets/{index-CZJJuyAp.css → index-C_JV7fYy.css} +1 -1
  67. package/web/assets/{index-c8l1Vzb5.js → index-D_x2s8Ut.js} +4 -4
  68. package/web/assets/{modal-CNk5Pd2V.js → modal-CpsVK_dA.js} +1 -1
  69. package/web/assets/{project-launch.store-C0TgNDYm.js → project-launch.store-C3fZeRGb.js} +1 -1
  70. package/web/assets/{project.store-Dx530iqh.js → project.store-BEk4fciH.js} +1 -1
  71. package/web/assets/scenario.store-D-JrRiVO.js +7 -0
  72. package/web/assets/{service.store-CgzQ1QCL.js → service.store-B5uYZtyM.js} +1 -1
  73. package/web/assets/{settings-scope-54SF-1Hf.js → settings-scope-Blnwj3rR.js} +1 -1
  74. package/web/assets/{settings.store-Cz6g0qH2.js → settings.store-Bo3FYs1o.js} +1 -1
  75. package/web/assets/{src-Ds4DOFJs.js → src--GO-VSJ0.js} +2 -2
  76. package/web/assets/{src-BbRuct-7.js → src-CAwAaB5j.js} +1 -1
  77. package/web/assets/src-CcvmgMAA.css +1 -0
  78. package/web/assets/{src-gyxHZ5yB.js → src-DValZNJU.js} +2 -2
  79. package/web/assets/{src-DUVb4kUw.css → src-DuBXN1hu.css} +1 -1
  80. package/web/assets/{trpc-PGQoddea.js → trpc-DbsE5GvQ.js} +3 -3
  81. package/web/assets/{useCloudOrg-DePshxqA.js → useCloudOrg-DygUBG1a.js} +1 -1
  82. package/web/assets/{useEnvVarAutocomplete-lyIwYncA.js → useEnvVarAutocomplete-DmYNOXgd.js} +1 -1
  83. package/web/assets/{useProjectCatalog-BFmo-l75.js → useProjectCatalog-D2mHB7dg.js} +1 -1
  84. package/web/assets/{useProjectCloudOrg-DN7UK1So.js → useProjectCloudOrg-avTCVold.js} +1 -1
  85. package/web/assets/{useServiceUrlHost-D31YSsBc.js → useServiceUrlHost-Q3fzGox3.js} +1 -1
  86. package/web/assets/vue-draggable-plus-BHsveB8w.css +1 -0
  87. package/web/assets/vue-draggable-plus-WgrMXXmE.js +1 -0
  88. package/web/index.html +20 -20
  89. package/chunk-36CC5CZK.js.map +0 -1
  90. package/chunk-H2MAALKN.js.map +0 -1
  91. package/web/assets/AppLayout-C4sv2O-I.css +0 -1
  92. package/web/assets/AppLayout-CDOSGDLm.js +0 -1
  93. package/web/assets/CloudMessagingPage-BcEvuswL.css +0 -1
  94. package/web/assets/CloudMessagingPage-JXnnH4aT.js +0 -2
  95. package/web/assets/EnvironmentForm-CMwzl9kA.css +0 -1
  96. package/web/assets/EnvironmentFormPage-CYv6PG5q.css +0 -1
  97. package/web/assets/EnvironmentFormPage-HNIgKqaJ.js +0 -1
  98. package/web/assets/EnvironmentListPage-DRI3aFZw.js +0 -1
  99. package/web/assets/EnvironmentListPage-fRWTY84U.css +0 -1
  100. package/web/assets/LogViewer-DOcy8D-m.js +0 -3
  101. package/web/assets/ServiceDetailPage-C9MWIf-1.js +0 -2
  102. package/web/assets/ServiceDetailPage-DOycCWLP.css +0 -1
  103. package/web/assets/i18n-m0G6Pfwe.js +0 -1
  104. package/web/assets/scenario.store-DWezewHe.js +0 -7
  105. package/web/assets/src-CR9xphzo.css +0 -1
  106. package/web/assets/vue-draggable-plus-2Opxvs3C.css +0 -1
  107. package/web/assets/vue-draggable-plus-DE0HToYu.js +0 -1
  108. /package/{chat-UQIVCG33.js.map → chat-X3X527EX.js.map} +0 -0
  109. /package/{companion-EVCS2HNC.js.map → companion-2LHKU577.js.map} +0 -0
  110. /package/{install-gate-SFHNMBWT.js.map → install-gate-2NNH7RM2.js.map} +0 -0
@@ -4,9 +4,9 @@ import {
4
4
  startClaudeCodeSession,
5
5
  startCliSession,
6
6
  startCodexSession
7
- } from "./chunk-36CC5CZK.js";
7
+ } from "./chunk-P73PTVII.js";
8
8
  import "./chunk-UR3HL373.js";
9
- import "./chunk-H2MAALKN.js";
9
+ import "./chunk-NSS47H26.js";
10
10
  import "./chunk-GXE5TLLJ.js";
11
11
  import "./chunk-7L6AQUBR.js";
12
12
  import "./chunk-MD3VW4HQ.js";
@@ -20,4 +20,4 @@ export {
20
20
  startCliSession,
21
21
  startCodexSession
22
22
  };
23
- //# sourceMappingURL=chat-UQIVCG33.js.map
23
+ //# sourceMappingURL=chat-X3X527EX.js.map
@@ -239,12 +239,15 @@ var ProjectPathStore = class {
239
239
  *
240
240
  * Answers with the key as stored — the couple, or the bare id for an entry an
241
241
  * older version wrote — which is enough to say "taken" and to name it.
242
+ *
243
+ * `isKnown` écarte les entrées d'un projet que ce poste ne connaît plus : un
244
+ * projet disparu ne doit pas continuer de retenir son dossier.
242
245
  */
243
- async projectAt(path, exclude) {
246
+ async projectAt(path, exclude, isKnown = () => true) {
244
247
  const target = resolve(path);
245
248
  const excluded = exclude ? [projectKey(exclude), exclude.id] : [];
246
249
  for (const [key, dir] of Object.entries(await this.load())) {
247
- if (!excluded.includes(key) && resolve(dir) === target) return key;
250
+ if (!excluded.includes(key) && resolve(dir) === target && isKnown(key)) return key;
248
251
  }
249
252
  return null;
250
253
  }
@@ -595,6 +598,18 @@ var ProjectStore = class {
595
598
  const project = key ? this.projects.get(key) : void 0;
596
599
  return key && project ? { key, project } : null;
597
600
  }
601
+ /**
602
+ * Le projet déjà placé dans ce dossier, parmi ceux que ce poste connaît.
603
+ *
604
+ * Une entrée de `project-paths.json` peut survivre à son projet (supprimé
605
+ * ailleurs, ou avant que la suppression ne la nettoie). Elle ne réserve plus
606
+ * rien : le refus qui en découlait nommait un projet introuvable.
607
+ */
608
+ async projectAtPath(path, exclude) {
609
+ await this.load();
610
+ const ids = new Set(Array.from(this.projects.values(), (p) => p.id));
611
+ return projectPathStore.projectAt(path, exclude, (key) => this.projects.has(key) || ids.has(key));
612
+ }
598
613
  async list() {
599
614
  await this.load();
600
615
  await this.settleActiveEnvironments();
@@ -645,7 +660,7 @@ var ProjectStore = class {
645
660
  */
646
661
  async localRootFor(root) {
647
662
  if (collidesWithMachineRoot(root)) throw new LocalProjectInMachineRootError();
648
- if (await projectPathStore.projectAt(dirname(root))) throw new LocalProjectCloudLinkedError();
663
+ if (await this.projectAtPath(dirname(root))) throw new LocalProjectCloudLinkedError();
649
664
  const known = Array.from(this.projects.values()).find((p) => !p.orgId && vaultFor(p).root === root);
650
665
  if (known) throw new LocalProjectExistsError(known.name);
651
666
  const onDisk = await readLocalProjectAt(root);
@@ -689,7 +704,7 @@ var ProjectStore = class {
689
704
  await this.load();
690
705
  const root = localProjectVaultRoot(dir);
691
706
  if (collidesWithMachineRoot(root)) return { status: "machine-root", projectName: null };
692
- if (await projectPathStore.projectAt(resolve2(dir))) return { status: "cloud-linked", projectName: null };
707
+ if (await this.projectAtPath(resolve2(dir))) return { status: "cloud-linked", projectName: null };
693
708
  const known = Array.from(this.projects.values()).find((p) => !p.orgId && vaultFor(p).root === root);
694
709
  if (known) return { status: "listed", projectName: known.name };
695
710
  const onDisk = await readLocalProjectAt(root);
@@ -707,7 +722,7 @@ var ProjectStore = class {
707
722
  await this.load();
708
723
  const root = localProjectVaultRoot(dir);
709
724
  if (collidesWithMachineRoot(root)) throw new LocalProjectInMachineRootError();
710
- if (await projectPathStore.projectAt(resolve2(dir))) throw new LocalProjectCloudLinkedError();
725
+ if (await this.projectAtPath(resolve2(dir))) throw new LocalProjectCloudLinkedError();
711
726
  const found = await readLocalProjectAt(root);
712
727
  if (!found) throw new LocalProjectNotFoundError();
713
728
  const known = this.projects.get(projectKey(found));
@@ -898,6 +913,7 @@ var ProjectStore = class {
898
913
  this.projects.delete(key);
899
914
  await this.save();
900
915
  await this.discardVault(project);
916
+ await projectPathStore.clear(project);
901
917
  return true;
902
918
  }
903
919
  async addService(target, serviceId) {
@@ -1136,10 +1152,11 @@ ${new Error("trace").stack}`
1136
1152
  async sourcePaths() {
1137
1153
  const vaults = await allVaultRoots();
1138
1154
  const legacyPaths = [this.getLegacyFilePath(), await keyedFilePath(FILENAME4)];
1139
- return [
1155
+ const all = [
1140
1156
  ...legacyPaths.map((path) => ({ path, legacy: true })),
1141
1157
  ...vaults.map((root) => ({ path: join4(root, FILENAME4), legacy: false }))
1142
1158
  ];
1159
+ return all.filter((source, i) => !all.slice(i + 1).some((later) => later.path === source.path));
1143
1160
  }
1144
1161
  async diskFingerprint() {
1145
1162
  return fingerprintFiles((await this.sourcePaths()).map((s) => s.path));
@@ -1185,7 +1202,7 @@ ${new Error("trace").stack}`
1185
1202
  roots.set(item.id, root);
1186
1203
  } catch {
1187
1204
  const bucket = unreadable.get(root) ?? [];
1188
- bucket.push(item);
1205
+ if (!bucket.some((kept) => kept.id === item.id)) bucket.push(item);
1189
1206
  unreadable.set(root, bucket);
1190
1207
  }
1191
1208
  }
@@ -1387,7 +1404,7 @@ ${new Error("trace").stack}`
1387
1404
  if (options?.touch !== false) conv.updatedAt = Date.now();
1388
1405
  await this.save();
1389
1406
  if (!options?.silent) {
1390
- this.events.emit("changed", { type: "updated", conversation: this.snapshotConversation(conv) });
1407
+ this.events.emit("changed", { type: "updated", conversation: this.snapshotConversation(conv), messagesChanged: patch.messages !== void 0 });
1391
1408
  }
1392
1409
  return conv;
1393
1410
  }
@@ -2374,7 +2391,7 @@ async function runCompanionForTurn(conversationId) {
2374
2391
  if (!hasNew) {
2375
2392
  return skip(conversationId, "nothingNew", `rien de neuf \xE0 relire (${messageCount} messages)`);
2376
2393
  }
2377
- const { startCliSession } = await import("./chat-UQIVCG33.js");
2394
+ const { startCliSession } = await import("./chat-X3X527EX.js");
2378
2395
  const companionConv = await ensureCompanionConversation(conv);
2379
2396
  const isFirstTurn = (companionConv.messages?.length ?? 0) === 0;
2380
2397
  const exchange = formatExchange(conv.messages, from);
@@ -2495,7 +2512,7 @@ async function deliverToMainConversation(conv, message) {
2495
2512
  async function attemptDelivery(conv, message) {
2496
2513
  if (await writeToLivePty(conv.id, message)) return "pty";
2497
2514
  try {
2498
- const { startCliSession } = await import("./chat-UQIVCG33.js");
2515
+ const { startCliSession } = await import("./chat-X3X527EX.js");
2499
2516
  await startCliSession(conv.runner, conv.id, message, { jwt: await signJwt() });
2500
2517
  return "headless";
2501
2518
  } catch (err) {
@@ -2720,4 +2737,4 @@ export {
2720
2737
  headCommit,
2721
2738
  initCompanion
2722
2739
  };
2723
- //# sourceMappingURL=chunk-H2MAALKN.js.map
2740
+ //# sourceMappingURL=chunk-NSS47H26.js.map