@runeya/runeya 2.0.144 → 2.0.146

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 (148) hide show
  1. package/agent/index.js +33 -22
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-R7BPQO6D.js +11 -0
  4. package/chat-LPML22J5.js +24 -0
  5. package/{chunk-7L6AQUBR.js → chunk-4LJQIQMN.js} +6 -2
  6. package/{chunk-7L6AQUBR.js.map → chunk-4LJQIQMN.js.map} +1 -1
  7. package/{chunk-7HIPFSOA.js → chunk-57P45FNY.js} +11 -3
  8. package/chunk-57P45FNY.js.map +1 -0
  9. package/chunk-6IBPK6UE.js +1063 -0
  10. package/chunk-6IBPK6UE.js.map +1 -0
  11. package/{chunk-GXE5TLLJ.js → chunk-KV4GJKXU.js} +17 -17
  12. package/{chunk-XAFOP677.js → chunk-MZSDTA4A.js} +480 -233
  13. package/chunk-MZSDTA4A.js.map +1 -0
  14. package/{chunk-UR3HL373.js → chunk-NPMSBYXC.js} +8 -8
  15. package/{chunk-P73PTVII.js → chunk-SEPAURTQ.js} +369 -1282
  16. package/chunk-SEPAURTQ.js.map +1 -0
  17. package/{chunk-NSS47H26.js → chunk-UD42LACH.js} +348 -78
  18. package/chunk-UD42LACH.js.map +1 -0
  19. package/{chunk-IXO5KIO5.js → chunk-VPSQJOSN.js} +23 -2
  20. package/{chunk-IXO5KIO5.js.map → chunk-VPSQJOSN.js.map} +1 -1
  21. package/{companion-2LHKU577.js → companion-W3UMZWGH.js} +11 -7
  22. package/{desktop-installer-page-6JDSXK2E.js → desktop-installer-page-I5FHFDES.js} +11 -8
  23. package/desktop-installer-page-I5FHFDES.js.map +1 -0
  24. package/{desktop-launcher-YPNRQMIS.js → desktop-launcher-GD4QPM66.js} +3 -3
  25. package/external-NMKQPROK.js +387 -0
  26. package/external-NMKQPROK.js.map +1 -0
  27. package/index.js +34 -12
  28. package/index.js.map +1 -1
  29. package/{install-gate-2NNH7RM2.js → install-gate-PVMGJDWE.js} +2 -2
  30. package/mcp-server/external.d.ts +44 -0
  31. package/mcp-server/external.js +2679 -0
  32. package/mcp-server/external.js.map +1 -0
  33. package/mcp-server/index.js +142 -40
  34. package/mcp-server/index.js.map +1 -1
  35. package/mcp-server/launch.d.ts +19 -1
  36. package/mcp-server/launch.js +20 -0
  37. package/mcp-server/launch.js.map +1 -1
  38. package/package.json +1 -1
  39. package/settings-manager-XPLBO35P.js +10 -0
  40. package/src-DCCEUWE6.js +385 -0
  41. package/{src-5TEXF3SU.js → src-LEDGW5KP.js} +1029 -536
  42. package/src-LEDGW5KP.js.map +1 -0
  43. package/{vault-resolver-VK6W5J6W.js → vault-resolver-E7KPKA5C.js} +3 -2
  44. package/vault-resolver-E7KPKA5C.js.map +1 -0
  45. package/web/assets/{AgentScalarChatInterface.vue-B-SjOsdj.js → AgentScalarChatInterface.vue-BYszptaB.js} +1 -1
  46. package/web/assets/{AgentTerminalPage-JzC8DUgu.js → AgentTerminalPage-C3TJ1NL9.js} +1 -1
  47. package/web/assets/{AiChatModals-D1928AxG.js → AiChatModals-D3scRE3S.js} +1 -1
  48. package/web/assets/AppLayout-BMQUjPKe.js +1 -0
  49. package/web/assets/{AppLayout-8sBPr3od.css → AppLayout-tsw5Ow0w.css} +1 -1
  50. package/web/assets/{AuditPage-BZIJ3_Kr.js → AuditPage-CKcExBws.js} +1 -1
  51. package/web/assets/{CloudAccountPage-DBv470sT.js → CloudAccountPage-B6oPg0BZ.js} +1 -1
  52. package/web/assets/{CloudMessagingPage-qCI8-UDL.js → CloudMessagingPage-C5fwVe-F.js} +1 -1
  53. package/web/assets/DashboardPage-9RV7sx3e.js +1 -0
  54. package/web/assets/{DashboardPage-D9-PpC3F.css → DashboardPage-FvNuC_e4.css} +1 -1
  55. package/web/assets/{DirectoryPickerDialog-B5DvDfQP.js → DirectoryPickerDialog-C06BXyfJ.js} +1 -1
  56. package/web/assets/{EnvironmentForm-Bw8Djnqm.js → EnvironmentForm-CAvDoira.js} +1 -1
  57. package/web/assets/{EnvironmentFormPage-B59uiYtp.js → EnvironmentFormPage-BmAxhN-m.js} +1 -1
  58. package/web/assets/{EnvironmentListPage-W9zLDZAg.js → EnvironmentListPage-B8uATPBI.js} +1 -1
  59. package/web/assets/KanbanBoardPage-CQsOkRUf.js +4 -0
  60. package/web/assets/KanbanBoardPage-eHmsrFGA.css +1 -0
  61. package/web/assets/{KanbanListPage-Bn9k8Rpc.js → KanbanListPage-CWZqkjD6.js} +1 -1
  62. package/web/assets/{LaunchProjectPage-Dc7v1UjQ.js → LaunchProjectPage-saSmC7Pr.js} +1 -1
  63. package/web/assets/LaunchServicesPage-BkKyLMEz.js +1 -0
  64. package/web/assets/LaunchServicesPage-DoLDPqQq.css +1 -0
  65. package/web/assets/{LaunchShell-LonTJpb3.js → LaunchShell-DUrSunB4.js} +1 -1
  66. package/web/assets/{LogViewer-DkuqWYkQ.js → LogViewer-CZBYkH9J.js} +1 -1
  67. package/web/assets/{OrgKeyPrompt-By1VjlSN.js → OrgKeyPrompt-DzQ7pwbs.js} +1 -1
  68. package/web/assets/{ProcessControls-C0skzKGL.js → ProcessControls-BEeoNlNV.js} +1 -1
  69. package/web/assets/{ProcessDetailPage-BvPX6z_X.js → ProcessDetailPage-CQgu5uKm.js} +1 -1
  70. package/web/assets/{ProjectCreateDialog-C4o9u15L.js → ProjectCreateDialog-BolrhRD-.js} +1 -1
  71. package/web/assets/{ProjectLocationGate-BJ1CSQt0.js → ProjectLocationGate-DhMVdIjN.js} +1 -1
  72. package/web/assets/{ProjectPublishDialog-Cp-zXdGm.js → ProjectPublishDialog-DsZNWrfz.js} +1 -1
  73. package/web/assets/{RandomJobTestPage-DF4a1U13.js → RandomJobTestPage-BUS2Ty6-.js} +1 -1
  74. package/web/assets/ScenarioEditorPage-MIAGh2us.js +14 -0
  75. package/web/assets/{SendToChatDialog-Dg2SHkVD.js → SendToChatDialog-BxWsyv29.js} +1 -1
  76. package/web/assets/{ServiceControlsBar-q2VHWaxK.js → ServiceControlsBar-DqDPAZt7.js} +1 -1
  77. package/web/assets/ServiceDetailPage-hkSAzZ-l.js +2 -0
  78. package/web/assets/{ServiceFormPage-tT_n7WUy.js → ServiceFormPage-DXqhqXg8.js} +1 -1
  79. package/web/assets/SettingsPage-4pKUgKPm.css +1 -0
  80. package/web/assets/SettingsPage-DS2YhMIM.js +2086 -0
  81. package/web/assets/{UnlockPage-BKAdMJkb.js → UnlockPage-s8SgVcKk.js} +1 -1
  82. package/web/assets/{VaultMigrationPage-D9KUTTss.js → VaultMigrationPage-s0b44MDM.js} +1 -1
  83. package/web/assets/{VersionBadge-moKP5bAv.js → VersionBadge-BmArk24p.js} +1 -1
  84. package/web/assets/{WikiPage-hLUndDxo.js → WikiPage-DADu8WUA.js} +1 -1
  85. package/web/assets/{WikiView-rrjXRR72.js → WikiView-DtGwIt_Q.js} +1 -1
  86. package/web/assets/{add-scalar-classes-CBfRr8B2.js → add-scalar-classes-dWEWPlFD.js} +2 -2
  87. package/web/assets/{agent.store-B3dVemmT.js → agent.store-CKLAkF9a.js} +1 -1
  88. package/web/assets/app-mode-BVpTuh0i.js +1 -0
  89. package/web/assets/auth-Cg9BWTfK.js +2 -0
  90. package/web/assets/{cloud-chat.store-Wg1poFem.js → cloud-chat.store-b-BHGz7I.js} +1 -1
  91. package/web/assets/{cloud-client-DQlUaoAw.js → cloud-client-D_zCiW0s.js} +2 -2
  92. package/web/assets/{cloud-session-DRUqcSGP.js → cloud-session-DOaDpZTy.js} +2 -2
  93. package/web/assets/dist-N4nrnbnA.js +1 -0
  94. package/web/assets/{editor.store-SoH48ux2.js → editor.store-DCAZSeVG.js} +1 -1
  95. package/web/assets/i18n-D0afQEGs.js +1 -0
  96. package/web/assets/{index-D_x2s8Ut.js → index-D8VRbyoP.js} +101 -101
  97. package/web/assets/index-DsezNbSM.css +1 -0
  98. package/web/assets/{modal-CpsVK_dA.js → modal-qYgTMkYb.js} +1 -1
  99. package/web/assets/{project-launch.store-C3fZeRGb.js → project-launch.store-y7JBMNiE.js} +1 -1
  100. package/web/assets/{project.store-BEk4fciH.js → project.store-DGJr0Qr9.js} +1 -1
  101. package/web/assets/{scenario.store-D-JrRiVO.js → scenario.store-YWHL2_wu.js} +3 -3
  102. package/web/assets/{service.store-B5uYZtyM.js → service.store-5jWsJxPx.js} +1 -1
  103. package/web/assets/{settings-scope-Blnwj3rR.js → settings-scope-Bv7QGPrt.js} +1 -1
  104. package/web/assets/{settings.store-Bo3FYs1o.js → settings.store-bEsB7oKb.js} +1 -1
  105. package/web/assets/{src-CAwAaB5j.js → src-C-D_y7ou.js} +1 -1
  106. package/web/assets/{src-DValZNJU.js → src-Dnwk6NpV.js} +5 -5
  107. package/web/assets/src-g1DRo8xZ.css +1 -0
  108. package/web/assets/{trpc-DbsE5GvQ.js → trpc-Drabzwpd.js} +3 -3
  109. package/web/assets/{useCloudOrg-DygUBG1a.js → useCloudOrg-BAQEtFPl.js} +1 -1
  110. package/web/assets/{useEnvVarAutocomplete-DmYNOXgd.js → useEnvVarAutocomplete-BqGTODUv.js} +1 -1
  111. package/web/assets/{useProjectCatalog-D2mHB7dg.js → useProjectCatalog-yocjIKt6.js} +1 -1
  112. package/web/assets/{useProjectCloudOrg-avTCVold.js → useProjectCloudOrg-CEN9-_OA.js} +1 -1
  113. package/web/assets/{useServiceUrlHost-Q3fzGox3.js → useServiceUrlHost-BuoPEXZX.js} +1 -1
  114. package/web/assets/{vue-draggable-plus-WgrMXXmE.js → vue-draggable-plus-DX4rTBiu.js} +1 -1
  115. package/web/index.html +19 -18
  116. package/agent-manager-M4NA5YFD.js +0 -11
  117. package/chat-X3X527EX.js +0 -23
  118. package/chunk-7HIPFSOA.js.map +0 -1
  119. package/chunk-NSS47H26.js.map +0 -1
  120. package/chunk-P73PTVII.js.map +0 -1
  121. package/chunk-XAFOP677.js.map +0 -1
  122. package/desktop-installer-page-6JDSXK2E.js.map +0 -1
  123. package/settings-manager-32SVMAFN.js +0 -10
  124. package/src-5TEXF3SU.js.map +0 -1
  125. package/web/assets/AppLayout-CVQIBYqg.js +0 -1
  126. package/web/assets/DashboardPage-D0UZM0mr.js +0 -1
  127. package/web/assets/KanbanBoardPage-DRACMk_D.css +0 -1
  128. package/web/assets/KanbanBoardPage-DwPqoJDJ.js +0 -4
  129. package/web/assets/LaunchServicesPage-CXUS9O3y.js +0 -1
  130. package/web/assets/LaunchServicesPage-DJDIN8HU.css +0 -1
  131. package/web/assets/ScenarioEditorPage-Dl-gEkJI.js +0 -14
  132. package/web/assets/ServiceDetailPage-CJ8WaFod.js +0 -2
  133. package/web/assets/SettingsPage-CWakkv0V.js +0 -2086
  134. package/web/assets/SettingsPage-aGSxZw1n.css +0 -1
  135. package/web/assets/auth-BCrvnP1U.js +0 -2
  136. package/web/assets/dist-DoChtT9t.js +0 -1
  137. package/web/assets/i18n-BszFg0ko.js +0 -1
  138. package/web/assets/index-C_JV7fYy.css +0 -1
  139. package/web/assets/src-DuBXN1hu.css +0 -1
  140. /package/{agent-manager-M4NA5YFD.js.map → agent-manager-R7BPQO6D.js.map} +0 -0
  141. /package/{chat-X3X527EX.js.map → chat-LPML22J5.js.map} +0 -0
  142. /package/{chunk-GXE5TLLJ.js.map → chunk-KV4GJKXU.js.map} +0 -0
  143. /package/{chunk-UR3HL373.js.map → chunk-NPMSBYXC.js.map} +0 -0
  144. /package/{companion-2LHKU577.js.map → companion-W3UMZWGH.js.map} +0 -0
  145. /package/{desktop-launcher-YPNRQMIS.js.map → desktop-launcher-GD4QPM66.js.map} +0 -0
  146. /package/{install-gate-2NNH7RM2.js.map → install-gate-PVMGJDWE.js.map} +0 -0
  147. /package/{settings-manager-32SVMAFN.js.map → settings-manager-XPLBO35P.js.map} +0 -0
  148. /package/{vault-resolver-VK6W5J6W.js.map → src-DCCEUWE6.js.map} +0 -0
@@ -1,145 +1,214 @@
1
- // ../../packages/shared/src/schemas/settings.schema.ts
1
+ // ../../packages/shared/src/schemas/user.schema.ts
2
+ import { z } from "zod";
3
+ var UserSchema = z.object({
4
+ id: z.string().max(128),
5
+ email: z.string().email().max(320),
6
+ name: z.string().min(1).max(500),
7
+ avatar: z.string().url().max(2048).nullable().optional()
8
+ });
9
+
10
+ // ../../packages/shared/src/schemas/org.schema.ts
2
11
  import { z as z2 } from "zod";
12
+ var OrgSchema = z2.object({
13
+ id: z2.string().max(128),
14
+ name: z2.string().min(1).max(100),
15
+ slug: z2.string().min(1).max(100).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/),
16
+ ownerId: z2.string().max(128)
17
+ });
18
+ var OrgMemberSchema = z2.object({
19
+ id: z2.string().max(128),
20
+ orgId: z2.string().max(128),
21
+ userId: z2.string().max(128),
22
+ globalRole: z2.enum(["owner", "admin", "member"]),
23
+ invitedAt: z2.coerce.date(),
24
+ joinedAt: z2.coerce.date().nullable().optional()
25
+ });
26
+
27
+ // ../../packages/shared/src/schemas/project.schema.ts
28
+ import { z as z3 } from "zod";
29
+ var ProjectSchema = z3.object({
30
+ id: z3.string().max(128),
31
+ orgId: z3.string().max(128).nullable().optional(),
32
+ name: z3.string().min(1).max(200),
33
+ description: z3.string().max(1e4).optional().default(""),
34
+ serviceIds: z3.array(z3.string().max(128)).max(1e4).default([]),
35
+ // Environment support
36
+ // NOTE: activeEnvironmentId is runtime-only (not persisted to JSON)
37
+ // It's initialized to 'local' by default at load time
38
+ activeEnvironmentId: z3.string().max(128).optional(),
39
+ environmentIds: z3.array(z3.string().max(128)).max(100).default([]),
40
+ // Ordre d'affichage des groupes de services dans la sidebar (noms de groupes).
41
+ // Les groupes absents de cette liste sont affichés après, par ordre alphabétique.
42
+ groupOrder: z3.array(z3.string().max(200)).max(100).default([])
43
+ });
44
+ var CreateProjectSchema = ProjectSchema.omit({ id: true }).partial().required({ name: true });
45
+ var UpdateProjectSchema = ProjectSchema.partial().required({ id: true });
46
+
47
+ // ../../packages/shared/src/schemas/service.schema.ts
48
+ import { z as z7 } from "zod";
49
+
50
+ // ../../packages/shared/src/schemas/settings.schema.ts
51
+ import { z as z5 } from "zod";
3
52
 
4
53
  // ../../packages/shared/src/schemas/scenario.schema.ts
5
- import { z } from "zod";
6
- var PositionSchema = z.object({
7
- x: z.number(),
8
- y: z.number()
9
- });
10
- var ScenarioGroupSchema = z.object({
11
- id: z.string().min(1).max(128),
12
- name: z.string().min(1).max(200),
13
- description: z.string().max(1e3).optional(),
14
- color: z.string().max(32).optional(),
54
+ import { z as z4 } from "zod";
55
+ var PositionSchema = z4.object({
56
+ x: z4.number(),
57
+ y: z4.number()
58
+ });
59
+ var ScenarioGroupSchema = z4.object({
60
+ id: z4.string().min(1).max(128),
61
+ name: z4.string().min(1).max(200),
62
+ description: z4.string().max(1e3).optional(),
63
+ color: z4.string().max(32).optional(),
15
64
  position: PositionSchema.default({ x: 0, y: 0 }),
16
- width: z.number().default(300),
17
- height: z.number().default(200)
18
- });
19
- var ScenarioPresetRoleSchema = z.object({
20
- id: z.string().min(1).max(64),
21
- name: z.string().min(1).max(200),
22
- systemPrompt: z.string().max(1e4).default(""),
23
- prompt: z.string().max(1e4).default("")
24
- });
25
- var ScenarioPresetInitialDataSchema = z.object({
26
- leaderId: z.string().min(1).max(128),
27
- groups: z.array(z.object({
28
- id: z.string().min(1).max(128),
29
- name: z.string().min(1).max(200),
30
- description: z.string().max(1e3).optional(),
31
- color: z.string().max(32).optional(),
32
- position: z.object({ x: z.number(), y: z.number() }).default({ x: 0, y: 0 }),
33
- width: z.number().default(300),
34
- height: z.number().default(200)
65
+ width: z4.number().default(300),
66
+ height: z4.number().default(200)
67
+ });
68
+ var SCENARIO_ROLES = [
69
+ "manager",
70
+ "engineer",
71
+ "designer",
72
+ "analyst",
73
+ "qa",
74
+ "devops",
75
+ "product",
76
+ "writer",
77
+ "researcher",
78
+ "other"
79
+ ];
80
+ var ScenarioPresetRoleSchema = z4.object({
81
+ id: z4.string().min(1).max(64),
82
+ name: z4.string().min(1).max(200),
83
+ systemPrompt: z4.string().max(1e4).default(""),
84
+ prompt: z4.string().max(1e4).default("")
85
+ });
86
+ var ScenarioPresetInitialDataSchema = z4.object({
87
+ leaderId: z4.string().min(1).max(128),
88
+ groups: z4.array(z4.object({
89
+ id: z4.string().min(1).max(128),
90
+ name: z4.string().min(1).max(200),
91
+ description: z4.string().max(1e3).optional(),
92
+ color: z4.string().max(32).optional(),
93
+ position: z4.object({ x: z4.number(), y: z4.number() }).default({ x: 0, y: 0 }),
94
+ width: z4.number().default(300),
95
+ height: z4.number().default(200)
35
96
  })).max(100).default([]),
36
- nodes: z.array(z.object({
37
- id: z.string().min(1).max(128),
38
- type: z.enum(["ai", "ask"]).default("ai"),
39
- parentIds: z.array(z.string().max(128)).default([]),
40
- groupId: z.string().max(128).nullable().default(null),
41
- label: z.string().max(240).default(""),
42
- role: z.string().max(64).default("other"),
43
- prompt: z.string().max(5e4).default(""),
44
- question: z.string().max(2e3).default(""),
45
- autoGenerated: z.boolean().default(true),
46
- canAddNode: z.boolean().default(false),
47
- aiCli: z.enum(["claude-code", "codex"]).default("claude-code"),
48
- model: z.string().max(128).default("sonnet"),
49
- position: z.object({ x: z.number(), y: z.number() }).default({ x: 0, y: 0 })
97
+ nodes: z4.array(z4.object({
98
+ id: z4.string().min(1).max(128),
99
+ type: z4.enum(["ai", "ask"]).default("ai"),
100
+ parentIds: z4.array(z4.string().max(128)).default([]),
101
+ groupId: z4.string().max(128).nullable().default(null),
102
+ label: z4.string().max(240).default(""),
103
+ role: z4.string().max(64).default("other"),
104
+ prompt: z4.string().max(5e4).default(""),
105
+ question: z4.string().max(2e3).default(""),
106
+ autoGenerated: z4.boolean().default(true),
107
+ canAddNode: z4.boolean().default(false),
108
+ aiCli: z4.enum(["claude-code", "codex"]).default("claude-code"),
109
+ model: z4.string().max(128).default("sonnet"),
110
+ position: z4.object({ x: z4.number(), y: z4.number() }).default({ x: 0, y: 0 })
50
111
  })).min(1).max(500)
51
112
  });
52
- var LocalizedStringSchema = z.record(z.string(), z.string().max(100));
53
- var ScenarioPresetLabelsSchema = z.object({
113
+ var LocalizedStringSchema = z4.record(z4.string(), z4.string().max(100));
114
+ var ScenarioPresetLabelsSchema = z4.object({
54
115
  group: LocalizedStringSchema.optional(),
55
116
  node: LocalizedStringSchema.optional(),
56
117
  role: LocalizedStringSchema.optional(),
57
118
  leader: LocalizedStringSchema.optional()
58
119
  });
59
- var ScenarioPresetSchema = z.object({
60
- id: z.string().min(1).max(128),
61
- name: z.string().min(1).max(200),
62
- icon: z.string().max(64).optional(),
63
- defaultTraversalMode: z.enum(["hierarchical", "topological"]).optional(),
64
- canChangeTraversalMode: z.boolean().default(true),
65
- roles: z.array(ScenarioPresetRoleSchema).min(1).max(100),
120
+ var ScenarioPresetSchema = z4.object({
121
+ id: z4.string().min(1).max(128),
122
+ name: z4.string().min(1).max(200),
123
+ icon: z4.string().max(64).optional(),
124
+ defaultTraversalMode: z4.enum(["hierarchical", "topological"]).optional(),
125
+ canChangeTraversalMode: z4.boolean().default(true),
126
+ roles: z4.array(ScenarioPresetRoleSchema).min(1).max(100),
66
127
  initialData: ScenarioPresetInitialDataSchema.optional(),
67
128
  labels: ScenarioPresetLabelsSchema.optional()
68
129
  });
69
- var ScenarioNodeSchema = z.object({
70
- id: z.string().min(1).max(128),
71
- type: z.enum(["ai", "ask"]).default("ai"),
72
- parentIds: z.array(z.string().max(128)).default([]),
73
- groupId: z.string().max(128).nullable().default(null),
74
- label: z.string().max(240).default(""),
75
- role: z.string().max(64).default("other"),
76
- prompt: z.string().max(5e4).default(""),
77
- question: z.string().max(2e3).default(""),
78
- autoGenerated: z.boolean().default(true),
79
- canAddNode: z.boolean().default(false),
80
- aiCli: z.enum(["claude-code", "codex"]).default("claude-code"),
81
- model: z.string().max(128).default("sonnet"),
130
+ var ScenarioNodeSchema = z4.object({
131
+ id: z4.string().min(1).max(128),
132
+ type: z4.enum(["ai", "ask"]).default("ai"),
133
+ parentIds: z4.array(z4.string().max(128)).default([]),
134
+ groupId: z4.string().max(128).nullable().default(null),
135
+ label: z4.string().max(240).default(""),
136
+ role: z4.string().max(64).default("other"),
137
+ prompt: z4.string().max(5e4).default(""),
138
+ question: z4.string().max(2e3).default(""),
139
+ autoGenerated: z4.boolean().default(true),
140
+ canAddNode: z4.boolean().default(false),
141
+ aiCli: z4.enum(["claude-code", "codex"]).default("claude-code"),
142
+ model: z4.string().max(128).default("sonnet"),
82
143
  position: PositionSchema.default({ x: 0, y: 0 }),
83
- injectParentOutputs: z.boolean().default(false),
84
- injectedAncestorIds: z.array(z.string().max(128)).default([])
85
- });
86
- var ScenarioSchema = z.object({
87
- id: z.string().min(1).max(128),
88
- name: z.string().min(1).max(200),
89
- icon: z.string().max(64).optional(),
90
- description: z.string().max(2e3).optional(),
91
- leaderId: z.string().min(1).max(128),
92
- groups: z.array(ScenarioGroupSchema).max(100).default([]),
93
- nodes: z.array(ScenarioNodeSchema).min(1).max(500),
94
- traversalMode: z.enum(["hierarchical", "topological"]).default("hierarchical"),
95
- presetId: z.string().max(128).optional(),
96
- isPublished: z.boolean().default(false),
97
- createdAt: z.number(),
98
- updatedAt: z.number()
144
+ injectParentOutputs: z4.boolean().default(false),
145
+ injectedAncestorIds: z4.array(z4.string().max(128)).default([])
146
+ });
147
+ var ScenarioSchema = z4.object({
148
+ id: z4.string().min(1).max(128),
149
+ name: z4.string().min(1).max(200),
150
+ icon: z4.string().max(64).optional(),
151
+ description: z4.string().max(2e3).optional(),
152
+ leaderId: z4.string().min(1).max(128),
153
+ groups: z4.array(ScenarioGroupSchema).max(100).default([]),
154
+ nodes: z4.array(ScenarioNodeSchema).min(1).max(500),
155
+ traversalMode: z4.enum(["hierarchical", "topological"]).default("hierarchical"),
156
+ presetId: z4.string().max(128).optional(),
157
+ isPublished: z4.boolean().default(false),
158
+ createdAt: z4.number(),
159
+ updatedAt: z4.number()
99
160
  });
100
161
 
101
162
  // ../../packages/shared/src/schemas/settings.schema.ts
102
163
  var AI_PROVIDERS = ["anthropic", "openai", "mistral", "groq", "ollama"];
103
- var AIProviderSchema = z2.object({
104
- id: z2.string().min(1).max(128),
105
- name: z2.string().min(1).max(200),
106
- provider: z2.enum(AI_PROVIDERS),
107
- encryptedApiKey: z2.string().max(2e3).default(""),
108
- model: z2.string().max(200).optional(),
109
- active: z2.boolean().default(false),
110
- createdAt: z2.coerce.date(),
111
- updatedAt: z2.coerce.date()
112
- });
113
- var JSLogParserSchema = z2.object({
114
- id: z2.string().min(1).max(128),
115
- name: z2.string().min(1).max(200),
116
- description: z2.string().max(2e3).optional(),
117
- code: z2.string().min(1).max(5e4).refine(
164
+ var AIProviderSchema = z5.object({
165
+ id: z5.string().min(1).max(128),
166
+ name: z5.string().min(1).max(200),
167
+ provider: z5.enum(AI_PROVIDERS),
168
+ encryptedApiKey: z5.string().max(2e3).default(""),
169
+ model: z5.string().max(200).optional(),
170
+ active: z5.boolean().default(false),
171
+ createdAt: z5.coerce.date(),
172
+ updatedAt: z5.coerce.date()
173
+ });
174
+ var JSLogParserSchema = z5.object({
175
+ id: z5.string().min(1).max(128),
176
+ name: z5.string().min(1).max(200),
177
+ description: z5.string().max(2e3).optional(),
178
+ code: z5.string().min(1).max(5e4).refine(
118
179
  (s) => !s.includes("require(") && !s.includes("import ") && !s.includes("eval("),
119
180
  { message: "Code must not contain require, import, or eval patterns" }
120
181
  ),
121
- enabled: z2.boolean().default(true),
122
- builtin: z2.boolean().optional(),
123
- createdAt: z2.coerce.date(),
124
- updatedAt: z2.coerce.date()
125
- });
126
- var NotificationPreferencesSchema = z2.object({
127
- scenario_waiting_input: z2.boolean().default(true),
128
- ai_conversation_complete: z2.boolean().default(true),
129
- ai_conversation_error: z2.boolean().default(true),
130
- service_error_log: z2.boolean().default(true),
131
- service_status_changed: z2.boolean().default(true),
132
- service_health_changed: z2.boolean().default(true),
182
+ enabled: z5.boolean().default(true),
183
+ builtin: z5.boolean().optional(),
184
+ createdAt: z5.coerce.date(),
185
+ updatedAt: z5.coerce.date()
186
+ });
187
+ var NOTIFICATION_CATEGORIES = [
188
+ "scenario_waiting_input",
189
+ "ai_conversation_complete",
190
+ "ai_conversation_error",
191
+ "service_error_log",
192
+ "service_status_changed",
193
+ "service_health_changed"
194
+ ];
195
+ var NotificationPreferencesSchema = z5.object({
196
+ scenario_waiting_input: z5.boolean().default(true),
197
+ ai_conversation_complete: z5.boolean().default(true),
198
+ ai_conversation_error: z5.boolean().default(true),
199
+ service_error_log: z5.boolean().default(true),
200
+ service_status_changed: z5.boolean().default(true),
201
+ service_health_changed: z5.boolean().default(true),
133
202
  /** Service IDs excluded from error-log notifications */
134
- service_error_log_excluded: z2.array(z2.string().max(100)).max(500).default([]),
203
+ service_error_log_excluded: z5.array(z5.string().max(100)).max(500).default([]),
135
204
  /** Service IDs excluded from status-change notifications */
136
- service_status_changed_excluded: z2.array(z2.string().max(100)).max(500).default([]),
205
+ service_status_changed_excluded: z5.array(z5.string().max(100)).max(500).default([]),
137
206
  /** Service IDs excluded from health-change notifications */
138
- service_health_changed_excluded: z2.array(z2.string().max(100)).max(500).default([])
207
+ service_health_changed_excluded: z5.array(z5.string().max(100)).max(500).default([])
139
208
  });
140
- var CompanionSettingsSchema = z2.object({
209
+ var CompanionSettingsSchema = z5.object({
141
210
  /** Activer le compagnon d'office sur les conversations créées ensuite. */
142
- enabledByDefault: z2.boolean().default(false),
211
+ enabledByDefault: z5.boolean().default(false),
143
212
  /**
144
213
  * Spécificités ajoutées aux consignes Runeya.
145
214
  *
@@ -150,15 +219,21 @@ var CompanionSettingsSchema = z2.object({
150
219
  * Rejeté au-delà de la borne plutôt que tronqué (§1) : un prompt coupé en
151
220
  * plein milieu produirait des relectures incohérentes sans rien signaler.
152
221
  */
153
- prompt: z2.string().max(2e4).optional()
154
- });
155
- var SettingsSchema = z2.object({
156
- mode: z2.enum(["local-simple", "cloud"]),
157
- cloudUrl: z2.string().url().max(2048).nullable().optional(),
158
- logParsers: z2.array(JSLogParserSchema).max(100).default([]),
159
- scenarios: z2.array(ScenarioSchema).max(100).default([]),
222
+ prompt: z5.string().max(2e4).optional(),
223
+ /** Runner du compagnon des conversations créées ensuite. Absent = celui de la conversation. */
224
+ runner: z5.enum(["claude-code", "codex"]).optional(),
225
+ /** Modèle du compagnon des conversations créées ensuite. Absent = défaut du runner. */
226
+ model: z5.string().max(200).optional(),
227
+ /** Effort du compagnon des conversations créées ensuite. Absent = effort par défaut. */
228
+ effort: z5.enum(["low", "normal", "high"]).optional()
229
+ });
230
+ var SettingsSchema = z5.object({
231
+ mode: z5.enum(["local-simple", "cloud"]),
232
+ cloudUrl: z5.string().url().max(2048).nullable().optional(),
233
+ logParsers: z5.array(JSLogParserSchema).max(100).default([]),
234
+ scenarios: z5.array(ScenarioSchema).max(100).default([]),
160
235
  /** Absolute path to the folder where the global wiki/docs markdown files live. Optional. */
161
- globalDocsPath: z2.string().max(4096).optional(),
236
+ globalDocsPath: z5.string().max(4096).optional(),
162
237
  /**
163
238
  * Optionnel plutôt que défauté : un réglage absent est un réglage jamais
164
239
  * touché, et le rendre obligatoire dans le type forcerait chaque appelant qui
@@ -166,21 +241,21 @@ var SettingsSchema = z2.object({
166
241
  */
167
242
  companion: CompanionSettingsSchema.optional()
168
243
  });
169
- var TraefikConfigSchema = z2.object({
170
- enabled: z2.boolean().default(false),
171
- acmeEmail: z2.string().email().max(256).optional(),
172
- wildcardDomain: z2.string().max(253).optional(),
173
- httpPort: z2.number().int().min(1).max(65535).default(80),
174
- httpsPort: z2.number().int().min(1).max(65535).default(443),
175
- dnsProvider: z2.string().max(64).optional(),
176
- dnsCredentials: z2.record(z2.string().max(64), z2.string().max(2048)).default({}),
177
- acmeStaging: z2.boolean().default(false),
178
- encryptedCert: z2.string().max(65536).optional(),
179
- encryptedCertKey: z2.string().max(65536).optional()
180
- });
181
- var SettingsPrivateSchema = z2.object({
182
- aiProviders: z2.array(AIProviderSchema).max(50).default([]),
183
- scenarios: z2.array(ScenarioSchema).max(100).default([]),
244
+ var TraefikConfigSchema = z5.object({
245
+ enabled: z5.boolean().default(false),
246
+ acmeEmail: z5.string().email().max(256).optional(),
247
+ wildcardDomain: z5.string().max(253).optional(),
248
+ httpPort: z5.number().int().min(1).max(65535).default(80),
249
+ httpsPort: z5.number().int().min(1).max(65535).default(443),
250
+ dnsProvider: z5.string().max(64).optional(),
251
+ dnsCredentials: z5.record(z5.string().max(64), z5.string().max(2048)).default({}),
252
+ acmeStaging: z5.boolean().default(false),
253
+ encryptedCert: z5.string().max(65536).optional(),
254
+ encryptedCertKey: z5.string().max(65536).optional()
255
+ });
256
+ var SettingsPrivateSchema = z5.object({
257
+ aiProviders: z5.array(AIProviderSchema).max(50).default([]),
258
+ scenarios: z5.array(ScenarioSchema).max(100).default([]),
184
259
  notifications: NotificationPreferencesSchema.default(() => ({
185
260
  scenario_waiting_input: true,
186
261
  ai_conversation_complete: true,
@@ -194,103 +269,11 @@ var SettingsPrivateSchema = z2.object({
194
269
  })),
195
270
  traefikConfig: TraefikConfigSchema.optional()
196
271
  });
197
- var SchemaVersionSchema = z2.object({
198
- version: z2.number().int().positive(),
199
- migratedAt: z2.coerce.date()
200
- });
201
-
202
- // ../../packages/shared/src/utils/companion-markers.ts
203
- var COMPANION_RELAY_OPEN = "[RUNEYA_COMPAGNON_RESPONSE]";
204
- var COMPANION_RELAY_CLOSE = "[/RUNEYA_COMPAGNON_RESPONSE]";
205
- function extractCompanionRelay(raw) {
206
- const text = (raw ?? "").trim();
207
- const open = text.lastIndexOf(COMPANION_RELAY_OPEN);
208
- if (open === -1) return null;
209
- const after = text.slice(open + COMPANION_RELAY_OPEN.length);
210
- const close = after.indexOf(COMPANION_RELAY_CLOSE);
211
- const inner = (close === -1 ? after : after.slice(0, close)).trim();
212
- return inner || null;
213
- }
214
-
215
- // ../../packages/shared/src/utils/launcher-identity.ts
216
- function slugifyLauncherName(name) {
217
- const slug = name.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
218
- return slug || "runeya";
219
- }
220
- function launcherIdFromName(name) {
221
- const slug = slugifyLauncherName(name);
222
- return slug.startsWith("runeya") ? slug : `runeya-${slug}`;
223
- }
224
- function baseName(path) {
225
- const parts = path.split(/[\\/]+/).filter(Boolean);
226
- return parts[parts.length - 1] ?? path;
227
- }
228
- function deriveLauncherIdentity(explicitName, workingDir) {
229
- const name = explicitName ?? (workingDir ? `Runeya \u2014 ${baseName(workingDir)}` : "Runeya");
230
- return { name, id: launcherIdFromName(name) };
231
- }
232
-
233
- // ../../packages/shared/src/constants/intervals.ts
234
- var AGENT_HEALTH_POLL_INTERVAL = 15e3;
235
-
236
- // ../../packages/shared/src/constants/timeouts.ts
237
- var GRACE_PERIOD = 1e4;
238
- var AGENT_FETCH_TIMEOUT = 1e4;
239
- var AGENT_LONG_FETCH_TIMEOUT = 6e5;
240
- var AGENT_STOP_FETCH_TIMEOUT = GRACE_PERIOD + 15e3;
241
- var PASSPHRASE_TIMEOUT = 3e4;
242
- var WS_RECONNECT_MIN = 1e3;
243
- var WS_RECONNECT_MAX = 15e3;
244
-
245
- // ../../packages/shared/src/schemas/user.schema.ts
246
- import { z as z3 } from "zod";
247
- var UserSchema = z3.object({
248
- id: z3.string().max(128),
249
- email: z3.string().email().max(320),
250
- name: z3.string().min(1).max(500),
251
- avatar: z3.string().url().max(2048).nullable().optional()
252
- });
253
-
254
- // ../../packages/shared/src/schemas/org.schema.ts
255
- import { z as z4 } from "zod";
256
- var OrgSchema = z4.object({
257
- id: z4.string().max(128),
258
- name: z4.string().min(1).max(100),
259
- slug: z4.string().min(1).max(100).regex(/^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/),
260
- ownerId: z4.string().max(128)
261
- });
262
- var OrgMemberSchema = z4.object({
263
- id: z4.string().max(128),
264
- orgId: z4.string().max(128),
265
- userId: z4.string().max(128),
266
- globalRole: z4.enum(["owner", "admin", "member"]),
267
- invitedAt: z4.coerce.date(),
268
- joinedAt: z4.coerce.date().nullable().optional()
272
+ var SchemaVersionSchema = z5.object({
273
+ version: z5.number().int().positive(),
274
+ migratedAt: z5.coerce.date()
269
275
  });
270
276
 
271
- // ../../packages/shared/src/schemas/project.schema.ts
272
- import { z as z5 } from "zod";
273
- var ProjectSchema = z5.object({
274
- id: z5.string().max(128),
275
- orgId: z5.string().max(128).nullable().optional(),
276
- name: z5.string().min(1).max(200),
277
- description: z5.string().max(1e4).optional().default(""),
278
- serviceIds: z5.array(z5.string().max(128)).max(1e4).default([]),
279
- // Environment support
280
- // NOTE: activeEnvironmentId is runtime-only (not persisted to JSON)
281
- // It's initialized to 'local' by default at load time
282
- activeEnvironmentId: z5.string().max(128).optional(),
283
- environmentIds: z5.array(z5.string().max(128)).max(100).default([]),
284
- // Ordre d'affichage des groupes de services dans la sidebar (noms de groupes).
285
- // Les groupes absents de cette liste sont affichés après, par ordre alphabétique.
286
- groupOrder: z5.array(z5.string().max(200)).max(100).default([])
287
- });
288
- var CreateProjectSchema = ProjectSchema.omit({ id: true }).partial().required({ name: true });
289
- var UpdateProjectSchema = ProjectSchema.partial().required({ id: true });
290
-
291
- // ../../packages/shared/src/schemas/service.schema.ts
292
- import { z as z7 } from "zod";
293
-
294
277
  // ../../packages/shared/src/schemas/log-source.schema.ts
295
278
  import { z as z6 } from "zod";
296
279
  var safePath = z6.string().min(1).max(4096).refine(
@@ -1215,6 +1198,13 @@ var CloudApiScopeSchema = z20.enum([
1215
1198
  "kanban:comment",
1216
1199
  "kanban:delete"
1217
1200
  ]);
1201
+ var CLOUD_API_SCOPES = [
1202
+ "kanban:read",
1203
+ "kanban:write",
1204
+ "kanban:comment",
1205
+ "kanban:delete"
1206
+ ];
1207
+ var CLOUD_API_KEY_PREFIX = "rk_";
1218
1208
  var CloudApiKeySecretSchema = z20.string().regex(/^rk_[0-9a-f]{64}$/);
1219
1209
  var CloudApiKeySchema = z20.object({
1220
1210
  id: z20.string().max(128),
@@ -1352,6 +1342,56 @@ var ChangelogReleaseSchema = z22.object({
1352
1342
  var ChangelogIndexItemSchema = ChangelogReleaseSchema.omit({ changes: true }).extend({
1353
1343
  changeCount: z22.number().int().nonnegative()
1354
1344
  });
1345
+ function compareChangelogVersions(a, b) {
1346
+ const pa = a.split(/[.-]/).map((n) => Number.parseInt(n, 10) || 0);
1347
+ const pb = b.split(/[.-]/).map((n) => Number.parseInt(n, 10) || 0);
1348
+ const len = Math.max(pa.length, pb.length);
1349
+ for (let i = 0; i < len; i++) {
1350
+ const da = pa[i] ?? 0;
1351
+ const db = pb[i] ?? 0;
1352
+ if (da > db) return 1;
1353
+ if (da < db) return -1;
1354
+ }
1355
+ return 0;
1356
+ }
1357
+
1358
+ // ../../packages/shared/src/utils/companion-markers.ts
1359
+ var COMPANION_RELAY_OPEN = "[RUNEYA_COMPAGNON_RESPONSE]";
1360
+ var COMPANION_RELAY_CLOSE = "[/RUNEYA_COMPAGNON_RESPONSE]";
1361
+ function extractCompanionRelay(raw) {
1362
+ const text = (raw ?? "").trim();
1363
+ const open = text.lastIndexOf(COMPANION_RELAY_OPEN);
1364
+ if (open === -1) return null;
1365
+ const after = text.slice(open + COMPANION_RELAY_OPEN.length);
1366
+ const close = after.indexOf(COMPANION_RELAY_CLOSE);
1367
+ const inner = (close === -1 ? after : after.slice(0, close)).trim();
1368
+ return inner || null;
1369
+ }
1370
+
1371
+ // ../../packages/shared/src/utils/launcher-identity.ts
1372
+ function slugifyLauncherName(name) {
1373
+ const slug = name.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
1374
+ return slug || "runeya";
1375
+ }
1376
+ function launcherIdFromName(name) {
1377
+ const slug = slugifyLauncherName(name);
1378
+ return slug.startsWith("runeya") ? slug : `runeya-${slug}`;
1379
+ }
1380
+ function baseName(path) {
1381
+ const parts = path.split(/[\\/]+/).filter(Boolean);
1382
+ return parts[parts.length - 1] ?? path;
1383
+ }
1384
+ function launcherNameFor(label) {
1385
+ return `Runeya \u2014 ${label}`;
1386
+ }
1387
+ function deriveLauncherIdentity(explicitName, workingDir) {
1388
+ const name = explicitName ?? (workingDir ? launcherNameFor(baseName(workingDir)) : "Runeya");
1389
+ return { name, id: launcherIdFromName(name) };
1390
+ }
1391
+ var LAUNCHER_PROJECT_ID_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$/;
1392
+ function isLauncherProjectId(value) {
1393
+ return LAUNCHER_PROJECT_ID_PATTERN.test(value);
1394
+ }
1355
1395
 
1356
1396
  // ../../packages/shared/src/utils/log-source-secrets.ts
1357
1397
  var MASKED_VALUE = "***";
@@ -1388,6 +1428,48 @@ function restoreLogSourceSecrets(incoming, existing) {
1388
1428
 
1389
1429
  // ../../packages/shared/src/utils/crypto.ts
1390
1430
  import { createCipheriv, createDecipheriv, randomBytes, pbkdf2Sync } from "crypto";
1431
+ var PREFIX = "aes256gcm:";
1432
+ var IV_LENGTH = 12;
1433
+ var AUTH_TAG_LENGTH = 16;
1434
+ var KEY_LENGTH = 32;
1435
+ var PBKDF2_ITERATIONS = 1e5;
1436
+ var PBKDF2_DIGEST = "sha256";
1437
+ var _KDF_SALT;
1438
+ function getKdfSalt() {
1439
+ if (!_KDF_SALT) _KDF_SALT = Buffer.from("runeya-log-sources-key-v1", "utf8");
1440
+ return _KDF_SALT;
1441
+ }
1442
+ function deriveKey(rawKey) {
1443
+ return pbkdf2Sync(rawKey, getKdfSalt(), PBKDF2_ITERATIONS, KEY_LENGTH, PBKDF2_DIGEST);
1444
+ }
1445
+ function encrypt(plaintext, key) {
1446
+ const iv = randomBytes(IV_LENGTH);
1447
+ const cipher = createCipheriv("aes-256-gcm", key, iv);
1448
+ const encrypted = Buffer.concat([cipher.update(plaintext, "utf8"), cipher.final()]);
1449
+ const authTag = cipher.getAuthTag();
1450
+ return `${PREFIX}${iv.toString("hex")}:${authTag.toString("hex")}:${encrypted.toString("hex")}`;
1451
+ }
1452
+ function decrypt(ciphertext, key) {
1453
+ if (!isEncrypted(ciphertext)) {
1454
+ throw new Error("Value is not in encrypted format");
1455
+ }
1456
+ const parts = ciphertext.slice(PREFIX.length).split(":");
1457
+ if (parts.length !== 3) {
1458
+ throw new Error("Invalid encrypted value format");
1459
+ }
1460
+ const [ivHex, authTagHex, encryptedHex] = parts;
1461
+ const iv = Buffer.from(ivHex, "hex");
1462
+ const authTag = Buffer.from(authTagHex, "hex");
1463
+ const encryptedBuffer = Buffer.from(encryptedHex, "hex");
1464
+ if (iv.length !== IV_LENGTH) throw new Error("Invalid IV length");
1465
+ if (authTag.length !== AUTH_TAG_LENGTH) throw new Error("Invalid authTag length");
1466
+ const decipher = createDecipheriv("aes-256-gcm", key, iv, { authTagLength: 16 });
1467
+ decipher.setAuthTag(authTag);
1468
+ return Buffer.concat([decipher.update(encryptedBuffer), decipher.final()]).toString("utf8");
1469
+ }
1470
+ function isEncrypted(value) {
1471
+ return value.startsWith(PREFIX);
1472
+ }
1391
1473
 
1392
1474
  // ../../packages/shared/src/native-parsers.ts
1393
1475
  var epoch = /* @__PURE__ */ new Date("2025-01-01T00:00:00Z");
@@ -1463,6 +1545,9 @@ var nativeParsers = [
1463
1545
  updatedAt: epoch
1464
1546
  }
1465
1547
  ];
1548
+ function getNativeParser(id) {
1549
+ return nativeParsers.find((p) => p.id === id);
1550
+ }
1466
1551
 
1467
1552
  // ../../packages/shared/src/js-log-parser.ts
1468
1553
  import vm from "vm";
@@ -1633,6 +1718,7 @@ var BUILTIN_VARIABLES = [
1633
1718
  { name: "agent.OS", scope: "agent", descriptionKey: "agentOs" },
1634
1719
  { name: "agent.HOME", scope: "agent", descriptionKey: "agentHome" }
1635
1720
  ];
1721
+ var BUILTINS_BY_SCOPE = (scope) => BUILTIN_VARIABLES.filter((b) => b.scope === scope);
1636
1722
  var BUILTIN_REFERENCE_RE = /\{\{([A-Za-z][A-Za-z0-9_.-]*)\}\}/g;
1637
1723
  var ENVIRONMENT_NAMESPACE = "environment.";
1638
1724
  var CROSS_SERVICE_NAMESPACE = "services.";
@@ -1770,8 +1856,49 @@ function suggestBuiltinReferences(text, builtins) {
1770
1856
  return suggestions;
1771
1857
  }
1772
1858
 
1859
+ // ../../packages/shared/src/constants/process-states.ts
1860
+ var PROCESS_STATES = ["starting", "running", "stopped", "errored"];
1861
+
1862
+ // ../../packages/shared/src/constants/log-levels.ts
1863
+ var LOG_LEVELS = ["debug", "info", "warn", "error", "fatal"];
1864
+ var LOG_LEVEL_PRIORITY = {
1865
+ debug: 0,
1866
+ info: 1,
1867
+ warn: 2,
1868
+ error: 3,
1869
+ fatal: 4
1870
+ };
1871
+
1872
+ // ../../packages/shared/src/constants/roles.ts
1873
+ var GLOBAL_ROLES = ["owner", "admin", "member"];
1874
+ var PROJECT_ROLES = ["admin", "editor", "viewer"];
1875
+
1876
+ // ../../packages/shared/src/constants/intervals.ts
1877
+ var HEALTH_CHECK_INTERVAL = 3e4;
1878
+ var METRICS_INTERVAL = 5e3;
1879
+ var AGENT_HEALTH_POLL_INTERVAL = 15e3;
1880
+ var SEARCH_DEBOUNCE = 300;
1881
+ var HEALTH_CHECK_INITIAL_DELAY = 5e3;
1882
+ var HEALTH_WS_INTERVAL = 1e4;
1883
+
1884
+ // ../../packages/shared/src/constants/cli-models.ts
1885
+ var CLAUDE_CODE_MODELS = ["opus", "sonnet", "haiku"];
1886
+ var CLI_EFFORTS = ["low", "normal", "high"];
1887
+
1773
1888
  // ../../packages/shared/src/constants/buffers.ts
1774
1889
  var LOG_BUFFER_SIZE = 5e3;
1890
+ var LOG_DISPLAY_LIMIT = 500;
1891
+
1892
+ // ../../packages/shared/src/constants/timeouts.ts
1893
+ var GRACE_PERIOD = 1e4;
1894
+ var AGENT_FETCH_TIMEOUT = 1e4;
1895
+ var AGENT_LONG_FETCH_TIMEOUT = 6e5;
1896
+ var AGENT_STOP_FETCH_TIMEOUT = GRACE_PERIOD + 15e3;
1897
+ var PASSPHRASE_TIMEOUT = 3e4;
1898
+ var WS_RECONNECT_MIN = 1e3;
1899
+ var WS_RECONNECT_MAX = 15e3;
1900
+ var WS_RECONNECT_MAX_ATTEMPTS = 5;
1901
+ var SUBSCRIPTION_RETRY_BASE = 1e3;
1775
1902
 
1776
1903
  // ../../packages/shared/src/constants/editors.ts
1777
1904
  var SUPPORTED_EDITORS = [
@@ -1940,17 +2067,34 @@ function primaryServiceLink(service, host) {
1940
2067
  }
1941
2068
 
1942
2069
  export {
2070
+ UserSchema,
2071
+ OrgSchema,
2072
+ OrgMemberSchema,
1943
2073
  ProjectSchema,
2074
+ CreateProjectSchema,
2075
+ UpdateProjectSchema,
1944
2076
  ScenarioGroupSchema,
2077
+ SCENARIO_ROLES,
2078
+ ScenarioPresetRoleSchema,
2079
+ ScenarioPresetInitialDataSchema,
2080
+ ScenarioPresetLabelsSchema,
2081
+ ScenarioPresetSchema,
1945
2082
  ScenarioNodeSchema,
1946
2083
  ScenarioSchema,
2084
+ AI_PROVIDERS,
1947
2085
  AIProviderSchema,
1948
2086
  JSLogParserSchema,
2087
+ NOTIFICATION_CATEGORIES,
1949
2088
  NotificationPreferencesSchema,
2089
+ CompanionSettingsSchema,
1950
2090
  SettingsSchema,
1951
2091
  TraefikConfigSchema,
1952
2092
  SettingsPrivateSchema,
1953
2093
  SchemaVersionSchema,
2094
+ ConsoleLogSourceSchema,
2095
+ FileLogSourceSchema,
2096
+ MongoLogSourceSchema,
2097
+ MySQLLogSourceSchema,
1954
2098
  LogSourceConfigSchema,
1955
2099
  HealthCheckSchema,
1956
2100
  BootstrapCommandSchema,
@@ -1963,52 +2107,155 @@ export {
1963
2107
  MissingVariableReasonSchema,
1964
2108
  MissingVariableSchema,
1965
2109
  VariableSchema,
2110
+ VariablesRecordSchema,
2111
+ VariableSlotsRecordSchema,
1966
2112
  ServiceConfigSchema,
2113
+ CreateServiceSchema,
2114
+ UpdateServiceSchema,
2115
+ ProcessStateSchema,
2116
+ HealthStatusSchema,
2117
+ ProcessStatusSchema,
2118
+ LogLevelSchema,
2119
+ LogLineSchema,
2120
+ LogCardDirectiveSchema,
2121
+ ParsedLogSchema,
2122
+ ENV_VAR_NAME_REGEX,
2123
+ AgentConfigSchema,
2124
+ AgentStatusSchema,
2125
+ GlobalRoleSchema,
2126
+ ProjectRoleSchema,
2127
+ ProjectMemberRoleSchema,
2128
+ ConfigVersionSchema,
2129
+ ConfigChangeSchema,
2130
+ SyncStatusSchema,
2131
+ AuditActionSchema,
2132
+ AuditEntityTypeSchema,
2133
+ AuditLogSchema,
2134
+ ProcessMetricsSchema,
2135
+ EnvironmentVariablesSchema,
1967
2136
  EnvironmentSchema,
2137
+ ResolvedEnvironmentSchema,
1968
2138
  CreateEnvironmentSchema,
1969
2139
  UpdateEnvironmentSchema,
1970
2140
  VariableOverrideSchema,
2141
+ EnvironmentOverridesSchema,
2142
+ ApiServiceActionSchema,
2143
+ ApiEnvActionSchema,
2144
+ ApiEnvPermSchema,
2145
+ ApiServicePermSchema,
1971
2146
  ApiKeyScopeSchema,
2147
+ ApiKeySchema,
2148
+ PersistedApiKeySchema,
1972
2149
  ApiKeysFileSchema,
2150
+ MaskedApiKeySchema,
2151
+ ALLOWED_IMAGE_MIME_TYPES,
2152
+ ImagePartSchema,
2153
+ ImageUploadResponseSchema,
2154
+ ImageMetaSchema,
2155
+ KanbanAttachmentSchema,
2156
+ KanbanCardEventSchema,
2157
+ KanbanBoardEventTypeSchema,
2158
+ KanbanBoardHistoryEntrySchema,
2159
+ KanbanCardSchema,
2160
+ KanbanColumnSchema,
2161
+ KanbanColumnGroupSchema,
2162
+ KanbanBoardSchema,
2163
+ CreateKanbanBoardInput,
2164
+ UpdateKanbanBoardInput,
2165
+ KanbanCardLinkSchema,
2166
+ KanbanCardRefSchema,
2167
+ KanbanCardLocationSchema,
2168
+ CloudApiScopeSchema,
2169
+ CLOUD_API_SCOPES,
2170
+ CLOUD_API_KEY_PREFIX,
2171
+ CloudApiKeySecretSchema,
2172
+ CloudApiKeySchema,
2173
+ CreatedCloudApiKeySchema,
2174
+ CreateCloudApiKeyInput,
2175
+ UpdateCloudApiKeyInput,
2176
+ IntegrationProviderSchema,
2177
+ IntegrationConnectionSchema,
2178
+ IntegrationConversationStateSchema,
2179
+ IntegrationMessageSchema,
2180
+ IntegrationConversationSchema,
2181
+ CardConversationSchema,
2182
+ ConversationSearchHitSchema,
1973
2183
  ChangelogSurfaceSchema,
2184
+ ChangelogChangeKindSchema,
2185
+ ChangelogTextSchema,
2186
+ ChangelogChangeSchema,
2187
+ ChangelogDraftSchema,
1974
2188
  ChangelogReleaseSchema,
1975
2189
  ChangelogIndexItemSchema,
2190
+ compareChangelogVersions,
1976
2191
  COMPANION_RELAY_OPEN,
1977
2192
  COMPANION_RELAY_CLOSE,
1978
2193
  extractCompanionRelay,
1979
2194
  slugifyLauncherName,
1980
2195
  launcherIdFromName,
2196
+ launcherNameFor,
1981
2197
  deriveLauncherIdentity,
2198
+ LAUNCHER_PROJECT_ID_PATTERN,
2199
+ isLauncherProjectId,
1982
2200
  MASKED_VALUE,
1983
2201
  maskLogSourceSecrets,
1984
2202
  restoreLogSourceSecrets,
2203
+ deriveKey,
2204
+ encrypt,
2205
+ decrypt,
2206
+ isEncrypted,
1985
2207
  nativeParsers,
2208
+ getNativeParser,
1986
2209
  JSLogParser,
1987
2210
  BUILTIN_VARIABLES,
2211
+ BUILTINS_BY_SCOPE,
2212
+ interpolateBuiltins,
1988
2213
  crossServiceSlugsIn,
1989
2214
  interpolateBuiltinsInEnv,
1990
2215
  withDeprecatedAliases,
1991
2216
  serviceSlug,
1992
2217
  ambiguousServiceSlugs,
1993
2218
  servicePortValues,
2219
+ isWildcardHost,
1994
2220
  urlHostFor,
1995
2221
  serviceUrlValues,
1996
2222
  crossServiceValues,
1997
2223
  findUnresolvedReferences,
1998
2224
  suggestBuiltinReferences,
2225
+ PROCESS_STATES,
2226
+ LOG_LEVELS,
2227
+ LOG_LEVEL_PRIORITY,
2228
+ GLOBAL_ROLES,
2229
+ PROJECT_ROLES,
2230
+ HEALTH_CHECK_INTERVAL,
2231
+ METRICS_INTERVAL,
1999
2232
  AGENT_HEALTH_POLL_INTERVAL,
2233
+ SEARCH_DEBOUNCE,
2234
+ HEALTH_CHECK_INITIAL_DELAY,
2235
+ HEALTH_WS_INTERVAL,
2236
+ CLAUDE_CODE_MODELS,
2237
+ CLI_EFFORTS,
2000
2238
  LOG_BUFFER_SIZE,
2239
+ LOG_DISPLAY_LIMIT,
2240
+ GRACE_PERIOD,
2001
2241
  AGENT_FETCH_TIMEOUT,
2002
2242
  AGENT_LONG_FETCH_TIMEOUT,
2003
2243
  AGENT_STOP_FETCH_TIMEOUT,
2004
2244
  PASSPHRASE_TIMEOUT,
2005
2245
  WS_RECONNECT_MIN,
2006
2246
  WS_RECONNECT_MAX,
2247
+ WS_RECONNECT_MAX_ATTEMPTS,
2248
+ SUBSCRIPTION_RETRY_BASE,
2007
2249
  SUPPORTED_EDITORS,
2008
2250
  EDITOR_BY_KEY,
2251
+ normalize,
2252
+ toPlain,
2253
+ applyToMap,
2254
+ applyToArray,
2009
2255
  getCollection,
2010
2256
  readEntity,
2011
2257
  writeEntity,
2258
+ serviceLinks,
2012
2259
  primaryServiceLink
2013
2260
  };
2014
- //# sourceMappingURL=chunk-XAFOP677.js.map
2261
+ //# sourceMappingURL=chunk-MZSDTA4A.js.map