@runeya/runeya 2.0.144 → 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.
- package/agent/index.js +7 -1
- package/agent/index.js.map +1 -1
- package/agent-manager-THV3LJOF.js +11 -0
- package/{chat-X3X527EX.js → chat-XYCHMTFE.js} +9 -9
- package/{chunk-7HIPFSOA.js → chunk-57P45FNY.js} +11 -3
- package/chunk-57P45FNY.js.map +1 -0
- package/{chunk-UR3HL373.js → chunk-FE53XX4M.js} +8 -8
- package/{chunk-IXO5KIO5.js → chunk-KS7A5CTW.js} +12 -1
- package/{chunk-IXO5KIO5.js.map → chunk-KS7A5CTW.js.map} +1 -1
- package/{chunk-XAFOP677.js → chunk-MZSDTA4A.js} +480 -233
- package/chunk-MZSDTA4A.js.map +1 -0
- package/{chunk-7L6AQUBR.js → chunk-NCO4OOYT.js} +6 -2
- package/{chunk-7L6AQUBR.js.map → chunk-NCO4OOYT.js.map} +1 -1
- package/{chunk-P73PTVII.js → chunk-ONVAH65J.js} +103 -33
- package/chunk-ONVAH65J.js.map +1 -0
- package/{chunk-NSS47H26.js → chunk-Q4RPY3VW.js} +330 -74
- package/chunk-Q4RPY3VW.js.map +1 -0
- package/{chunk-GXE5TLLJ.js → chunk-QF56Z6LI.js} +17 -17
- package/{companion-2LHKU577.js → companion-HBYSY2D5.js} +11 -7
- package/{desktop-installer-page-6JDSXK2E.js → desktop-installer-page-I5FHFDES.js} +11 -8
- package/desktop-installer-page-I5FHFDES.js.map +1 -0
- package/{desktop-launcher-YPNRQMIS.js → desktop-launcher-GD4QPM66.js} +3 -3
- package/index.js +25 -12
- package/index.js.map +1 -1
- package/{install-gate-2NNH7RM2.js → install-gate-JAEK4BDZ.js} +2 -2
- package/mcp-server/index.js +7 -1
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/settings-manager-QVQRJO6V.js +10 -0
- package/src-DCCEUWE6.js +385 -0
- package/{src-5TEXF3SU.js → src-IODFUZ7A.js} +100 -59
- package/src-IODFUZ7A.js.map +1 -0
- package/{vault-resolver-VK6W5J6W.js → vault-resolver-PN3TYCLJ.js} +3 -2
- package/vault-resolver-PN3TYCLJ.js.map +1 -0
- package/web/assets/{AgentScalarChatInterface.vue-B-SjOsdj.js → AgentScalarChatInterface.vue-npQgDxeP.js} +1 -1
- package/web/assets/{AgentTerminalPage-JzC8DUgu.js → AgentTerminalPage-BTH3yCS2.js} +1 -1
- package/web/assets/{AiChatModals-D1928AxG.js → AiChatModals-It9jnB26.js} +1 -1
- package/web/assets/AppLayout-BTg2CADo.js +1 -0
- package/web/assets/{AppLayout-8sBPr3od.css → AppLayout-tsw5Ow0w.css} +1 -1
- package/web/assets/{AuditPage-BZIJ3_Kr.js → AuditPage-2PKKGLZs.js} +1 -1
- package/web/assets/{CloudAccountPage-DBv470sT.js → CloudAccountPage-CHL61gLe.js} +1 -1
- package/web/assets/{CloudMessagingPage-qCI8-UDL.js → CloudMessagingPage-cgKnABPH.js} +1 -1
- package/web/assets/DashboardPage-CRntTMKY.js +1 -0
- package/web/assets/{DashboardPage-D9-PpC3F.css → DashboardPage-FvNuC_e4.css} +1 -1
- package/web/assets/{DirectoryPickerDialog-B5DvDfQP.js → DirectoryPickerDialog-DCyhT3-W.js} +1 -1
- package/web/assets/{EnvironmentForm-Bw8Djnqm.js → EnvironmentForm-C96PFWRE.js} +1 -1
- package/web/assets/{EnvironmentFormPage-B59uiYtp.js → EnvironmentFormPage-ChorAd63.js} +1 -1
- package/web/assets/{EnvironmentListPage-W9zLDZAg.js → EnvironmentListPage-Dw9ziaI8.js} +1 -1
- package/web/assets/KanbanBoardPage-BZHbEj-q.js +4 -0
- package/web/assets/KanbanBoardPage-eHmsrFGA.css +1 -0
- package/web/assets/{KanbanListPage-Bn9k8Rpc.js → KanbanListPage-B0jlfKqs.js} +1 -1
- package/web/assets/{LaunchProjectPage-Dc7v1UjQ.js → LaunchProjectPage-BVs1JwbV.js} +1 -1
- package/web/assets/LaunchServicesPage-DoLDPqQq.css +1 -0
- package/web/assets/LaunchServicesPage-PBYJly9N.js +1 -0
- package/web/assets/{LaunchShell-LonTJpb3.js → LaunchShell-CGNYr-do.js} +1 -1
- package/web/assets/{LogViewer-DkuqWYkQ.js → LogViewer-BDObx29F.js} +1 -1
- package/web/assets/{OrgKeyPrompt-By1VjlSN.js → OrgKeyPrompt-BbcwiwGw.js} +1 -1
- package/web/assets/{ProcessControls-C0skzKGL.js → ProcessControls-DY0HTKde.js} +1 -1
- package/web/assets/{ProcessDetailPage-BvPX6z_X.js → ProcessDetailPage-BZ9kIQqn.js} +1 -1
- package/web/assets/{ProjectCreateDialog-C4o9u15L.js → ProjectCreateDialog-C1wVDPcK.js} +1 -1
- package/web/assets/{ProjectLocationGate-BJ1CSQt0.js → ProjectLocationGate-bUd_tFpI.js} +1 -1
- package/web/assets/{ProjectPublishDialog-Cp-zXdGm.js → ProjectPublishDialog-APUS1WEN.js} +1 -1
- package/web/assets/{RandomJobTestPage-DF4a1U13.js → RandomJobTestPage-BFNC827R.js} +1 -1
- package/web/assets/ScenarioEditorPage-DFVsMVu5.js +14 -0
- package/web/assets/{SendToChatDialog-Dg2SHkVD.js → SendToChatDialog-QHIkxNio.js} +1 -1
- package/web/assets/{ServiceControlsBar-q2VHWaxK.js → ServiceControlsBar-_UQXb6g0.js} +1 -1
- package/web/assets/ServiceDetailPage-DGIXgHwR.js +2 -0
- package/web/assets/{ServiceFormPage-tT_n7WUy.js → ServiceFormPage-RliAfS3_.js} +1 -1
- package/web/assets/SettingsPage-BSSHxxjM.js +2086 -0
- package/web/assets/{SettingsPage-aGSxZw1n.css → SettingsPage-W8YszhUL.css} +1 -1
- package/web/assets/{UnlockPage-BKAdMJkb.js → UnlockPage-17EgfpJs.js} +1 -1
- package/web/assets/{VaultMigrationPage-D9KUTTss.js → VaultMigrationPage-DeMxpXXJ.js} +1 -1
- package/web/assets/{VersionBadge-moKP5bAv.js → VersionBadge-DBquJl76.js} +1 -1
- package/web/assets/{WikiPage-hLUndDxo.js → WikiPage-GtwpJPqf.js} +1 -1
- package/web/assets/{WikiView-rrjXRR72.js → WikiView-BqaqxMxW.js} +1 -1
- package/web/assets/{add-scalar-classes-CBfRr8B2.js → add-scalar-classes-DhSSqZ5l.js} +2 -2
- package/web/assets/{agent.store-B3dVemmT.js → agent.store-Co44dMZf.js} +1 -1
- package/web/assets/app-mode-BVpTuh0i.js +1 -0
- package/web/assets/auth-Bk1GP5sB.js +2 -0
- package/web/assets/{cloud-chat.store-Wg1poFem.js → cloud-chat.store-CadB14dZ.js} +1 -1
- package/web/assets/{cloud-client-DQlUaoAw.js → cloud-client-0zD_NI6q.js} +2 -2
- package/web/assets/{cloud-session-DRUqcSGP.js → cloud-session-Cjw54Y--.js} +2 -2
- package/web/assets/dist-N4nrnbnA.js +1 -0
- package/web/assets/{editor.store-SoH48ux2.js → editor.store-DmM6ZlTm.js} +1 -1
- package/web/assets/i18n-8FjeJaKW.js +1 -0
- package/web/assets/{index-D_x2s8Ut.js → index-B9DJf2V0.js} +101 -101
- package/web/assets/{index-C_JV7fYy.css → index-teBqdnuv.css} +1 -1
- package/web/assets/{modal-CpsVK_dA.js → modal-UK8xRSnh.js} +1 -1
- package/web/assets/{project-launch.store-C3fZeRGb.js → project-launch.store-B5nhdGdh.js} +1 -1
- package/web/assets/{project.store-BEk4fciH.js → project.store-Bm2JWNbd.js} +1 -1
- package/web/assets/{scenario.store-D-JrRiVO.js → scenario.store-88w6P6s2.js} +2 -2
- package/web/assets/{service.store-B5uYZtyM.js → service.store-XS50iGKo.js} +1 -1
- package/web/assets/{settings-scope-Blnwj3rR.js → settings-scope-CKPq86HZ.js} +1 -1
- package/web/assets/{settings.store-Bo3FYs1o.js → settings.store-BCJ0LJQA.js} +1 -1
- package/web/assets/src-BDZKZr9n.css +1 -0
- package/web/assets/{src-DValZNJU.js → src-Cgix2VOi.js} +5 -5
- package/web/assets/{src-CAwAaB5j.js → src-DBipSD56.js} +1 -1
- package/web/assets/{trpc-DbsE5GvQ.js → trpc-CfuFkKgp.js} +3 -3
- package/web/assets/{useCloudOrg-DygUBG1a.js → useCloudOrg-J8DAnocE.js} +1 -1
- package/web/assets/{useEnvVarAutocomplete-DmYNOXgd.js → useEnvVarAutocomplete-C6zOXYqi.js} +1 -1
- package/web/assets/{useProjectCatalog-D2mHB7dg.js → useProjectCatalog-BB5IR6o8.js} +1 -1
- package/web/assets/{useProjectCloudOrg-avTCVold.js → useProjectCloudOrg-BnlKts7x.js} +1 -1
- package/web/assets/{useServiceUrlHost-Q3fzGox3.js → useServiceUrlHost-hKbKtPMu.js} +1 -1
- package/web/assets/{vue-draggable-plus-WgrMXXmE.js → vue-draggable-plus-D5ni4jMk.js} +1 -1
- package/web/index.html +19 -18
- package/agent-manager-M4NA5YFD.js +0 -11
- package/chunk-7HIPFSOA.js.map +0 -1
- package/chunk-NSS47H26.js.map +0 -1
- package/chunk-P73PTVII.js.map +0 -1
- package/chunk-XAFOP677.js.map +0 -1
- package/desktop-installer-page-6JDSXK2E.js.map +0 -1
- package/settings-manager-32SVMAFN.js +0 -10
- package/src-5TEXF3SU.js.map +0 -1
- package/web/assets/AppLayout-CVQIBYqg.js +0 -1
- package/web/assets/DashboardPage-D0UZM0mr.js +0 -1
- package/web/assets/KanbanBoardPage-DRACMk_D.css +0 -1
- package/web/assets/KanbanBoardPage-DwPqoJDJ.js +0 -4
- package/web/assets/LaunchServicesPage-CXUS9O3y.js +0 -1
- package/web/assets/LaunchServicesPage-DJDIN8HU.css +0 -1
- package/web/assets/ScenarioEditorPage-Dl-gEkJI.js +0 -14
- package/web/assets/ServiceDetailPage-CJ8WaFod.js +0 -2
- package/web/assets/SettingsPage-CWakkv0V.js +0 -2086
- package/web/assets/auth-BCrvnP1U.js +0 -2
- package/web/assets/dist-DoChtT9t.js +0 -1
- package/web/assets/i18n-BszFg0ko.js +0 -1
- package/web/assets/src-DuBXN1hu.css +0 -1
- /package/{agent-manager-M4NA5YFD.js.map → agent-manager-THV3LJOF.js.map} +0 -0
- /package/{chat-X3X527EX.js.map → chat-XYCHMTFE.js.map} +0 -0
- /package/{chunk-UR3HL373.js.map → chunk-FE53XX4M.js.map} +0 -0
- /package/{chunk-GXE5TLLJ.js.map → chunk-QF56Z6LI.js.map} +0 -0
- /package/{companion-2LHKU577.js.map → companion-HBYSY2D5.js.map} +0 -0
- /package/{desktop-launcher-YPNRQMIS.js.map → desktop-launcher-GD4QPM66.js.map} +0 -0
- /package/{install-gate-2NNH7RM2.js.map → install-gate-JAEK4BDZ.js.map} +0 -0
- /package/{settings-manager-32SVMAFN.js.map → settings-manager-QVQRJO6V.js.map} +0 -0
- /package/{vault-resolver-VK6W5J6W.js.map → src-DCCEUWE6.js.map} +0 -0
|
@@ -1,145 +1,214 @@
|
|
|
1
|
-
// ../../packages/shared/src/schemas/
|
|
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 =
|
|
7
|
-
x:
|
|
8
|
-
y:
|
|
9
|
-
});
|
|
10
|
-
var ScenarioGroupSchema =
|
|
11
|
-
id:
|
|
12
|
-
name:
|
|
13
|
-
description:
|
|
14
|
-
color:
|
|
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:
|
|
17
|
-
height:
|
|
18
|
-
});
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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:
|
|
37
|
-
id:
|
|
38
|
-
type:
|
|
39
|
-
parentIds:
|
|
40
|
-
groupId:
|
|
41
|
-
label:
|
|
42
|
-
role:
|
|
43
|
-
prompt:
|
|
44
|
-
question:
|
|
45
|
-
autoGenerated:
|
|
46
|
-
canAddNode:
|
|
47
|
-
aiCli:
|
|
48
|
-
model:
|
|
49
|
-
position:
|
|
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 =
|
|
53
|
-
var ScenarioPresetLabelsSchema =
|
|
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 =
|
|
60
|
-
id:
|
|
61
|
-
name:
|
|
62
|
-
icon:
|
|
63
|
-
defaultTraversalMode:
|
|
64
|
-
canChangeTraversalMode:
|
|
65
|
-
roles:
|
|
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 =
|
|
70
|
-
id:
|
|
71
|
-
type:
|
|
72
|
-
parentIds:
|
|
73
|
-
groupId:
|
|
74
|
-
label:
|
|
75
|
-
role:
|
|
76
|
-
prompt:
|
|
77
|
-
question:
|
|
78
|
-
autoGenerated:
|
|
79
|
-
canAddNode:
|
|
80
|
-
aiCli:
|
|
81
|
-
model:
|
|
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:
|
|
84
|
-
injectedAncestorIds:
|
|
85
|
-
});
|
|
86
|
-
var ScenarioSchema =
|
|
87
|
-
id:
|
|
88
|
-
name:
|
|
89
|
-
icon:
|
|
90
|
-
description:
|
|
91
|
-
leaderId:
|
|
92
|
-
groups:
|
|
93
|
-
nodes:
|
|
94
|
-
traversalMode:
|
|
95
|
-
presetId:
|
|
96
|
-
isPublished:
|
|
97
|
-
createdAt:
|
|
98
|
-
updatedAt:
|
|
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 =
|
|
104
|
-
id:
|
|
105
|
-
name:
|
|
106
|
-
provider:
|
|
107
|
-
encryptedApiKey:
|
|
108
|
-
model:
|
|
109
|
-
active:
|
|
110
|
-
createdAt:
|
|
111
|
-
updatedAt:
|
|
112
|
-
});
|
|
113
|
-
var JSLogParserSchema =
|
|
114
|
-
id:
|
|
115
|
-
name:
|
|
116
|
-
description:
|
|
117
|
-
code:
|
|
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:
|
|
122
|
-
builtin:
|
|
123
|
-
createdAt:
|
|
124
|
-
updatedAt:
|
|
125
|
-
});
|
|
126
|
-
var
|
|
127
|
-
scenario_waiting_input
|
|
128
|
-
ai_conversation_complete
|
|
129
|
-
ai_conversation_error
|
|
130
|
-
service_error_log
|
|
131
|
-
service_status_changed
|
|
132
|
-
service_health_changed
|
|
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:
|
|
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:
|
|
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:
|
|
207
|
+
service_health_changed_excluded: z5.array(z5.string().max(100)).max(500).default([])
|
|
139
208
|
});
|
|
140
|
-
var CompanionSettingsSchema =
|
|
209
|
+
var CompanionSettingsSchema = z5.object({
|
|
141
210
|
/** Activer le compagnon d'office sur les conversations créées ensuite. */
|
|
142
|
-
enabledByDefault:
|
|
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:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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:
|
|
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 =
|
|
170
|
-
enabled:
|
|
171
|
-
acmeEmail:
|
|
172
|
-
wildcardDomain:
|
|
173
|
-
httpPort:
|
|
174
|
-
httpsPort:
|
|
175
|
-
dnsProvider:
|
|
176
|
-
dnsCredentials:
|
|
177
|
-
acmeStaging:
|
|
178
|
-
encryptedCert:
|
|
179
|
-
encryptedCertKey:
|
|
180
|
-
});
|
|
181
|
-
var SettingsPrivateSchema =
|
|
182
|
-
aiProviders:
|
|
183
|
-
scenarios:
|
|
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 =
|
|
198
|
-
version:
|
|
199
|
-
migratedAt:
|
|
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-
|
|
2261
|
+
//# sourceMappingURL=chunk-MZSDTA4A.js.map
|