@evermore.work/server 2026.511.0-canary.2 → 2026.513.0-canary.0

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 (160) hide show
  1. package/dist/adapters/builtin-adapter-types.d.ts.map +1 -1
  2. package/dist/adapters/builtin-adapter-types.js +1 -0
  3. package/dist/adapters/builtin-adapter-types.js.map +1 -1
  4. package/dist/adapters/registry.d.ts.map +1 -1
  5. package/dist/adapters/registry.js +20 -2
  6. package/dist/adapters/registry.js.map +1 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +1 -3
  9. package/dist/app.js.map +1 -1
  10. package/dist/home-paths.d.ts +2 -4
  11. package/dist/home-paths.d.ts.map +1 -1
  12. package/dist/home-paths.js +8 -35
  13. package/dist/home-paths.js.map +1 -1
  14. package/dist/routes/agents.d.ts.map +1 -1
  15. package/dist/routes/agents.js +8 -2
  16. package/dist/routes/agents.js.map +1 -1
  17. package/dist/routes/issues.d.ts.map +1 -1
  18. package/dist/routes/issues.js +172 -11
  19. package/dist/routes/issues.js.map +1 -1
  20. package/dist/routes/plugins.d.ts.map +1 -1
  21. package/dist/routes/plugins.js +7 -21
  22. package/dist/routes/plugins.js.map +1 -1
  23. package/dist/services/environment-execution-target.d.ts.map +1 -1
  24. package/dist/services/environment-execution-target.js +2 -0
  25. package/dist/services/environment-execution-target.js.map +1 -1
  26. package/dist/services/environment-runtime.d.ts.map +1 -1
  27. package/dist/services/environment-runtime.js +30 -4
  28. package/dist/services/environment-runtime.js.map +1 -1
  29. package/dist/services/heartbeat.d.ts.map +1 -1
  30. package/dist/services/heartbeat.js +8 -3
  31. package/dist/services/heartbeat.js.map +1 -1
  32. package/dist/services/index.d.ts +1 -0
  33. package/dist/services/index.d.ts.map +1 -1
  34. package/dist/services/index.js +1 -0
  35. package/dist/services/index.js.map +1 -1
  36. package/dist/services/issue-recovery-actions.d.ts +40 -0
  37. package/dist/services/issue-recovery-actions.d.ts.map +1 -0
  38. package/dist/services/issue-recovery-actions.js +204 -0
  39. package/dist/services/issue-recovery-actions.js.map +1 -0
  40. package/dist/services/issues.d.ts +20 -0
  41. package/dist/services/issues.d.ts.map +1 -1
  42. package/dist/services/issues.js +160 -10
  43. package/dist/services/issues.js.map +1 -1
  44. package/dist/services/plugin-config-validator.js +1 -1
  45. package/dist/services/plugin-config-validator.js.map +1 -1
  46. package/dist/services/plugin-dev-watcher.d.ts.map +1 -1
  47. package/dist/services/plugin-dev-watcher.js +7 -2
  48. package/dist/services/plugin-dev-watcher.js.map +1 -1
  49. package/dist/services/plugin-environment-driver.d.ts +2 -0
  50. package/dist/services/plugin-environment-driver.d.ts.map +1 -1
  51. package/dist/services/plugin-environment-driver.js +2 -0
  52. package/dist/services/plugin-environment-driver.js.map +1 -1
  53. package/dist/services/plugin-host-services.d.ts.map +1 -1
  54. package/dist/services/plugin-host-services.js +31 -4
  55. package/dist/services/plugin-host-services.js.map +1 -1
  56. package/dist/services/plugin-loader.d.ts +2 -2
  57. package/dist/services/plugin-loader.js +3 -3
  58. package/dist/services/plugin-loader.js.map +1 -1
  59. package/dist/services/plugin-local-folders.d.ts +1 -0
  60. package/dist/services/plugin-local-folders.d.ts.map +1 -1
  61. package/dist/services/plugin-local-folders.js +45 -0
  62. package/dist/services/plugin-local-folders.js.map +1 -1
  63. package/dist/services/plugin-managed-agents.d.ts.map +1 -1
  64. package/dist/services/plugin-managed-agents.js +52 -9
  65. package/dist/services/plugin-managed-agents.js.map +1 -1
  66. package/dist/services/plugin-managed-skills.d.ts +14 -0
  67. package/dist/services/plugin-managed-skills.d.ts.map +1 -0
  68. package/dist/services/plugin-managed-skills.js +264 -0
  69. package/dist/services/plugin-managed-skills.js.map +1 -0
  70. package/dist/services/plugin-registry.d.ts +1 -1
  71. package/dist/services/plugin-registry.js +1 -1
  72. package/dist/services/recovery/service.d.ts.map +1 -1
  73. package/dist/services/recovery/service.js +225 -63
  74. package/dist/services/recovery/service.js.map +1 -1
  75. package/dist/services/recovery/successful-run-handoff.d.ts +2 -0
  76. package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -1
  77. package/dist/services/recovery/successful-run-handoff.js +8 -1
  78. package/dist/services/recovery/successful-run-handoff.js.map +1 -1
  79. package/dist/services/recovery/successful-run-handoff.test.js +5 -2
  80. package/dist/services/recovery/successful-run-handoff.test.js.map +1 -1
  81. package/package.json +14 -13
  82. package/skills/evermore-converting-plans-to-tasks/SKILL.md +1 -1
  83. package/skills/evermore-create-plugin/SKILL.md +95 -42
  84. package/skills/terminal-bench-loop/SKILL.md +4 -4
  85. package/ui-dist/assets/{_basePickBy-CbmMN1RH.js → _basePickBy-k9wCTyNE.js} +1 -1
  86. package/ui-dist/assets/{_baseUniq-D5Spi0LU.js → _baseUniq-gqdJ9_M4.js} +1 -1
  87. package/ui-dist/assets/{arc-7n9-L5yV.js → arc-CZ5fTbi1.js} +1 -1
  88. package/ui-dist/assets/{architectureDiagram-VXUJARFQ-CaCkwTrk.js → architectureDiagram-VXUJARFQ-C1PmJabO.js} +1 -1
  89. package/ui-dist/assets/{blockDiagram-VD42YOAC-C_gMX5sE.js → blockDiagram-VD42YOAC-C31GBmZl.js} +1 -1
  90. package/ui-dist/assets/{c4Diagram-YG6GDRKO-DsIPHY3x.js → c4Diagram-YG6GDRKO-CXALeUm_.js} +1 -1
  91. package/ui-dist/assets/channel-BscBiA2B.js +1 -0
  92. package/ui-dist/assets/{chunk-4BX2VUAB-ConiONwq.js → chunk-4BX2VUAB-CI9ame_l.js} +1 -1
  93. package/ui-dist/assets/{chunk-55IACEB6-rN7J69fU.js → chunk-55IACEB6-X7CMs2bY.js} +1 -1
  94. package/ui-dist/assets/{chunk-B4BG7PRW-CWrv2W6l.js → chunk-B4BG7PRW-CRFGJGGj.js} +1 -1
  95. package/ui-dist/assets/{chunk-DI55MBZ5-DxMrfgRx.js → chunk-DI55MBZ5-pFj4tWf4.js} +1 -1
  96. package/ui-dist/assets/{chunk-FMBD7UC4-C3IEVrmU.js → chunk-FMBD7UC4-DwtEpJHS.js} +1 -1
  97. package/ui-dist/assets/{chunk-QN33PNHL-mY7dIxLL.js → chunk-QN33PNHL-O_GMkM_d.js} +1 -1
  98. package/ui-dist/assets/{chunk-QZHKN3VN-C57cpB6v.js → chunk-QZHKN3VN-DVQoxgmw.js} +1 -1
  99. package/ui-dist/assets/{chunk-TZMSLE5B-Bznk-429.js → chunk-TZMSLE5B-nYT9Oclu.js} +1 -1
  100. package/ui-dist/assets/classDiagram-2ON5EDUG-DRC1sToY.js +1 -0
  101. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-DRC1sToY.js +1 -0
  102. package/ui-dist/assets/clone-djKk5h1v.js +1 -0
  103. package/ui-dist/assets/{cose-bilkent-S5V4N54A-WVNEjOkH.js → cose-bilkent-S5V4N54A-DrymQvjx.js} +1 -1
  104. package/ui-dist/assets/{dagre-6UL2VRFP-B5zFofAq.js → dagre-6UL2VRFP-BSMS-awI.js} +1 -1
  105. package/ui-dist/assets/{diagram-PSM6KHXK-B5uBquxq.js → diagram-PSM6KHXK-CKA4xpzT.js} +1 -1
  106. package/ui-dist/assets/{diagram-QEK2KX5R--vjH56tj.js → diagram-QEK2KX5R-D224Hw3l.js} +1 -1
  107. package/ui-dist/assets/{diagram-S2PKOQOG-BrRUS4fb.js → diagram-S2PKOQOG-QSLRBXq3.js} +1 -1
  108. package/ui-dist/assets/{erDiagram-Q2GNP2WA-DEz4OctV.js → erDiagram-Q2GNP2WA-BMb1ltru.js} +1 -1
  109. package/ui-dist/assets/{flowDiagram-NV44I4VS-B15VynOf.js → flowDiagram-NV44I4VS-DFO86CtG.js} +1 -1
  110. package/ui-dist/assets/{ganttDiagram-JELNMOA3-DMZlAptH.js → ganttDiagram-JELNMOA3-DqGmEMSm.js} +1 -1
  111. package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-CcxPbN5-.js → gitGraphDiagram-V2S2FVAM-C58nf2i-.js} +1 -1
  112. package/ui-dist/assets/{graph-BZIdisjp.js → graph-DosSwXzr.js} +1 -1
  113. package/ui-dist/assets/{index-ZU3cQRJ_.js → index-3RqTP3Wv.js} +1 -1
  114. package/ui-dist/assets/{index-CMFXrEKF.js → index-4nkrIR74.js} +154 -153
  115. package/ui-dist/assets/index-BNTUqCLB.css +1 -0
  116. package/ui-dist/assets/{index-JK3bQafC.js → index-BWnvh-op.js} +1 -1
  117. package/ui-dist/assets/{index-C_B62ZrS.js → index-BbNMaRBx.js} +1 -1
  118. package/ui-dist/assets/{index-D9_Jej4N.js → index-BfcmN5ZJ.js} +1 -1
  119. package/ui-dist/assets/{index-CLpI7eai.js → index-BgdsvI-o.js} +1 -1
  120. package/ui-dist/assets/{index-DPcKcWrz.js → index-BrTEhQHs.js} +1 -1
  121. package/ui-dist/assets/{index-CguyMMMe.js → index-C37UJrtl.js} +1 -1
  122. package/ui-dist/assets/{index-B8AK13gN.js → index-Ci5TGFP3.js} +1 -1
  123. package/ui-dist/assets/{index-CBsefjme.js → index-CqyFdYQi.js} +1 -1
  124. package/ui-dist/assets/{index-jrAeI9QO.js → index-Cu1tIzzo.js} +1 -1
  125. package/ui-dist/assets/{index-QcuAFhJE.js → index-CvQSsdq1.js} +1 -1
  126. package/ui-dist/assets/{index-CtbPMroJ.js → index-D6e8ieSZ.js} +1 -1
  127. package/ui-dist/assets/{index-Caiv3tFo.js → index-D9fEHHhi.js} +1 -1
  128. package/ui-dist/assets/{index-Br9DlaVa.js → index-DU3gaUtN.js} +1 -1
  129. package/ui-dist/assets/{index-B9gUF7Qo.js → index-DozqwUGT.js} +1 -1
  130. package/ui-dist/assets/{index-B2TuAYBk.js → index-DsbA9pOP.js} +1 -1
  131. package/ui-dist/assets/{index-BEgNCEf4.js → index-Dz0v0MS4.js} +1 -1
  132. package/ui-dist/assets/{index-DChtU7Y7.js → index-Oyl53tyz.js} +1 -1
  133. package/ui-dist/assets/{index-BXCWvVzU.js → index-ae2EPSbU.js} +1 -1
  134. package/ui-dist/assets/{index-C0ActS50.js → index-cxYbeASY.js} +1 -1
  135. package/ui-dist/assets/{index-CuiPTihA.js → index-gB4esTR_.js} +1 -1
  136. package/ui-dist/assets/{index-DZAJwG4j.js → index-uX_QygSO.js} +1 -1
  137. package/ui-dist/assets/{infoDiagram-HS3SLOUP-C2wYobHy.js → infoDiagram-HS3SLOUP-fH1KZK8Y.js} +1 -1
  138. package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-BtfEQPBF.js → journeyDiagram-XKPGCS4Q-Bs6gBpT7.js} +1 -1
  139. package/ui-dist/assets/{kanban-definition-3W4ZIXB7-B4U_W3OQ.js → kanban-definition-3W4ZIXB7-CjXiZk7z.js} +1 -1
  140. package/ui-dist/assets/{layout-ZIWcjZTf.js → layout-BNsoNCJt.js} +1 -1
  141. package/ui-dist/assets/{linear-D7hp1mR1.js → linear-D4_nHGWF.js} +1 -1
  142. package/ui-dist/assets/{mermaid.core-npjWckTB.js → mermaid.core-QfFHliw3.js} +4 -4
  143. package/ui-dist/assets/{mindmap-definition-VGOIOE7T-Cno5l-kW.js → mindmap-definition-VGOIOE7T-B_dKQ4Qp.js} +1 -1
  144. package/ui-dist/assets/{pieDiagram-ADFJNKIX-Ce0R1e38.js → pieDiagram-ADFJNKIX-DflXWaiu.js} +1 -1
  145. package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-BNZ-4uth.js → quadrantDiagram-AYHSOK5B-Bt3RB7oE.js} +1 -1
  146. package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-BIdjI2CO.js → requirementDiagram-UZGBJVZJ-DxsHOEgt.js} +1 -1
  147. package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-hYF-IP2X.js → sankeyDiagram-TZEHDZUN-DilTmstc.js} +1 -1
  148. package/ui-dist/assets/{sequenceDiagram-WL72ISMW-CBreF6um.js → sequenceDiagram-WL72ISMW-BYRLNxvZ.js} +1 -1
  149. package/ui-dist/assets/{stateDiagram-FKZM4ZOC-DOje8UoB.js → stateDiagram-FKZM4ZOC-D0jvEPoV.js} +1 -1
  150. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-D_kHbugj.js +1 -0
  151. package/ui-dist/assets/{timeline-definition-IT6M3QCI-Da_eKz_x.js → timeline-definition-IT6M3QCI-KyT1QpWq.js} +1 -1
  152. package/ui-dist/assets/{treemap-GDKQZRPO-BAFi4Uf3.js → treemap-GDKQZRPO-BEa3HnWS.js} +1 -1
  153. package/ui-dist/assets/{xychartDiagram-PRI3JC2R-Bc_vIoPh.js → xychartDiagram-PRI3JC2R-BUxqP2No.js} +1 -1
  154. package/ui-dist/index.html +2 -2
  155. package/ui-dist/assets/channel-zaN5fJQ5.js +0 -1
  156. package/ui-dist/assets/classDiagram-2ON5EDUG-CZ5AdJ2X.js +0 -1
  157. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-CZ5AdJ2X.js +0 -1
  158. package/ui-dist/assets/clone-CgK10jEJ.js +0 -1
  159. package/ui-dist/assets/index-B7sbRkCH.css +0 -1
  160. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-BtMV8Rt1.js +0 -1
@@ -0,0 +1,264 @@
1
+ import { and, eq } from "drizzle-orm";
2
+ import { pluginManagedResources, } from "@evermore.work/db";
3
+ import { normalizeAgentUrlKey } from "@evermore.work/shared";
4
+ import { notFound } from "../errors.js";
5
+ import { logActivity } from "./activity-log.js";
6
+ import { companySkillService } from "./company-skills.js";
7
+ const MANAGED_SKILL_RESOURCE_KIND = "skill";
8
+ function pluginKeySlug(pluginKey) {
9
+ return normalizeAgentUrlKey(pluginKey) ?? "plugin";
10
+ }
11
+ function canonicalSkillKey(pluginKey, skillKey) {
12
+ return `plugin/${pluginKeySlug(pluginKey)}/${skillKey}`;
13
+ }
14
+ function yamlString(value) {
15
+ return JSON.stringify(value);
16
+ }
17
+ function buildDefaultMarkdown(pluginKey, declaration) {
18
+ const description = declaration.description?.trim() || `${declaration.displayName} plugin skill.`;
19
+ return [
20
+ "---",
21
+ `name: ${yamlString(declaration.displayName)}`,
22
+ `description: ${yamlString(description)}`,
23
+ `key: ${yamlString(canonicalSkillKey(pluginKey, declaration.skillKey))}`,
24
+ "---",
25
+ "",
26
+ `# ${declaration.displayName}`,
27
+ "",
28
+ description,
29
+ "",
30
+ ].join("\n");
31
+ }
32
+ function withManagedSkillKey(markdown, canonicalKey) {
33
+ const keyLine = `key: ${yamlString(canonicalKey)}`;
34
+ const normalized = markdown.replace(/\r\n/g, "\n");
35
+ const frontmatter = /^---\n([\s\S]*?)\n---(\n?)/.exec(normalized);
36
+ if (!frontmatter) {
37
+ return [
38
+ "---",
39
+ keyLine,
40
+ "---",
41
+ "",
42
+ normalized,
43
+ ].join("\n");
44
+ }
45
+ const currentBody = frontmatter[1] ?? "";
46
+ const nextBody = /^key\s*:/m.test(currentBody)
47
+ ? currentBody.replace(/^key\s*:.*$/m, keyLine)
48
+ : [currentBody, keyLine].filter(Boolean).join("\n");
49
+ return `---\n${nextBody}\n---${frontmatter[2] ?? ""}${normalized.slice(frontmatter[0].length)}`;
50
+ }
51
+ function buildPackageFiles(pluginKey, declaration) {
52
+ const root = declaration.skillKey;
53
+ const canonicalKey = canonicalSkillKey(pluginKey, declaration.skillKey);
54
+ const files = {
55
+ [`${root}/SKILL.md`]: declaration.markdown?.trim()
56
+ ? withManagedSkillKey(declaration.markdown, canonicalKey)
57
+ : buildDefaultMarkdown(pluginKey, declaration),
58
+ };
59
+ for (const file of declaration.files ?? []) {
60
+ files[`${root}/${file.path}`] = file.content;
61
+ }
62
+ return files;
63
+ }
64
+ function buildDeclaredSkillFiles(pluginKey, declaration) {
65
+ const packageFiles = buildPackageFiles(pluginKey, declaration);
66
+ const root = declaration.skillKey;
67
+ const prefix = `${root}/`;
68
+ const files = {};
69
+ for (const [filePath, content] of Object.entries(packageFiles)) {
70
+ files[filePath.startsWith(prefix) ? filePath.slice(prefix.length) : filePath] = content;
71
+ }
72
+ return files;
73
+ }
74
+ function buildSkillDefaults(pluginKey, declaration) {
75
+ return {
76
+ skillKey: declaration.skillKey,
77
+ displayName: declaration.displayName,
78
+ slug: declaration.slug ?? declaration.skillKey,
79
+ description: declaration.description ?? null,
80
+ canonicalKey: canonicalSkillKey(pluginKey, declaration.skillKey),
81
+ files: [
82
+ "SKILL.md",
83
+ ...(declaration.files ?? []).map((file) => file.path),
84
+ ],
85
+ };
86
+ }
87
+ function stableJson(value) {
88
+ if (Array.isArray(value))
89
+ return `[${value.map(stableJson).join(",")}]`;
90
+ if (value && typeof value === "object") {
91
+ return `{${Object.entries(value)
92
+ .sort(([left], [right]) => left.localeCompare(right))
93
+ .map(([key, entry]) => `${JSON.stringify(key)}:${stableJson(entry)}`)
94
+ .join(",")}}`;
95
+ }
96
+ return JSON.stringify(value);
97
+ }
98
+ function resolution(pluginKey, companyId, declaration, skill, status, defaultDrift = null) {
99
+ return {
100
+ pluginKey,
101
+ resourceKind: "skill",
102
+ resourceKey: declaration.skillKey,
103
+ companyId,
104
+ skillId: skill?.id ?? null,
105
+ skill,
106
+ status,
107
+ defaultDrift,
108
+ };
109
+ }
110
+ export function pluginManagedSkillService(db, options) {
111
+ const skills = companySkillService(db);
112
+ function declarationFor(skillKey) {
113
+ const declaration = options.manifest?.skills?.find((skill) => skill.skillKey === skillKey);
114
+ if (!declaration) {
115
+ throw notFound(`Managed skill declaration not found: ${skillKey}`);
116
+ }
117
+ return declaration;
118
+ }
119
+ async function getBinding(companyId, skillKey) {
120
+ return db
121
+ .select()
122
+ .from(pluginManagedResources)
123
+ .where(and(eq(pluginManagedResources.companyId, companyId), eq(pluginManagedResources.pluginId, options.pluginId), eq(pluginManagedResources.resourceKind, MANAGED_SKILL_RESOURCE_KIND), eq(pluginManagedResources.resourceKey, skillKey)))
124
+ .then((rows) => rows[0] ?? null);
125
+ }
126
+ async function upsertBinding(companyId, declaration, skillId) {
127
+ const defaultsJson = buildSkillDefaults(options.pluginKey, declaration);
128
+ const existing = await getBinding(companyId, declaration.skillKey);
129
+ if (existing) {
130
+ if (existing.resourceId === skillId &&
131
+ stableJson(existing.defaultsJson) === stableJson(defaultsJson)) {
132
+ return existing;
133
+ }
134
+ return db
135
+ .update(pluginManagedResources)
136
+ .set({
137
+ resourceId: skillId,
138
+ defaultsJson,
139
+ updatedAt: new Date(),
140
+ })
141
+ .where(eq(pluginManagedResources.id, existing.id))
142
+ .returning()
143
+ .then((rows) => rows[0]);
144
+ }
145
+ return db
146
+ .insert(pluginManagedResources)
147
+ .values({
148
+ companyId,
149
+ pluginId: options.pluginId,
150
+ pluginKey: options.pluginKey,
151
+ resourceKind: MANAGED_SKILL_RESOURCE_KIND,
152
+ resourceKey: declaration.skillKey,
153
+ resourceId: skillId,
154
+ defaultsJson,
155
+ })
156
+ .returning()
157
+ .then((rows) => rows[0]);
158
+ }
159
+ async function getSkill(companyId, skillId) {
160
+ return skills.getById(companyId, skillId);
161
+ }
162
+ async function managedSkillDefaultDrift(companyId, skill, declaration) {
163
+ if (!skill)
164
+ return null;
165
+ const declaredFiles = buildDeclaredSkillFiles(options.pluginKey, declaration);
166
+ const currentFiles = {};
167
+ const paths = new Set([
168
+ ...Object.keys(declaredFiles),
169
+ ...skill.fileInventory.map((entry) => entry.path),
170
+ ]);
171
+ for (const filePath of paths) {
172
+ if (filePath === "SKILL.md") {
173
+ currentFiles[filePath] = skill.markdown;
174
+ continue;
175
+ }
176
+ try {
177
+ currentFiles[filePath] = (await skills.readFile(companyId, skill.id, filePath))?.content ?? null;
178
+ }
179
+ catch {
180
+ currentFiles[filePath] = null;
181
+ }
182
+ }
183
+ const changedFiles = [...paths]
184
+ .filter((filePath) => (currentFiles[filePath] ?? null) !== (declaredFiles[filePath] ?? null))
185
+ .sort((left, right) => left.localeCompare(right));
186
+ return changedFiles.length > 0 ? { changedFiles } : null;
187
+ }
188
+ async function resolvedSkill(companyId, declaration, skill, status) {
189
+ return resolution(options.pluginKey, companyId, declaration, skill, status, await managedSkillDefaultDrift(companyId, skill, declaration));
190
+ }
191
+ async function importDeclaredSkill(companyId, declaration, mode) {
192
+ const beforeByKey = mode === "reconcile"
193
+ ? await skills.getByKey(companyId, canonicalSkillKey(options.pluginKey, declaration.skillKey))
194
+ : null;
195
+ if (beforeByKey) {
196
+ await upsertBinding(companyId, declaration, beforeByKey.id);
197
+ return { skill: beforeByKey, status: "relinked" };
198
+ }
199
+ const results = await skills.importPackageFiles(companyId, buildPackageFiles(options.pluginKey, declaration), { onConflict: "replace" });
200
+ const imported = results.find((result) => result.skill.key === canonicalSkillKey(options.pluginKey, declaration.skillKey)
201
+ || result.originalSlug === (declaration.slug ?? declaration.skillKey)
202
+ || result.originalSlug === declaration.skillKey)?.skill ?? results[0]?.skill ?? null;
203
+ if (!imported) {
204
+ throw notFound(`Managed skill was not imported: ${declaration.skillKey}`);
205
+ }
206
+ await upsertBinding(companyId, declaration, imported.id);
207
+ const status = mode === "reset" ? "reset" : "created";
208
+ return { skill: imported, status };
209
+ }
210
+ async function get(skillKey, companyId) {
211
+ const declaration = declarationFor(skillKey);
212
+ const binding = await getBinding(companyId, skillKey);
213
+ if (!binding)
214
+ return resolvedSkill(companyId, declaration, null, "missing");
215
+ const skill = await getSkill(companyId, binding.resourceId);
216
+ return resolvedSkill(companyId, declaration, skill, skill ? "resolved" : "missing");
217
+ }
218
+ async function reconcile(skillKey, companyId) {
219
+ const declaration = declarationFor(skillKey);
220
+ const current = await get(skillKey, companyId);
221
+ if (current.skill) {
222
+ await upsertBinding(companyId, declaration, current.skill.id);
223
+ return current;
224
+ }
225
+ const imported = await importDeclaredSkill(companyId, declaration, "reconcile");
226
+ await logActivity(db, {
227
+ companyId,
228
+ actorType: "plugin",
229
+ actorId: options.pluginId,
230
+ action: "plugin.managed_skill.reconciled",
231
+ entityType: "company_skill",
232
+ entityId: imported.skill.id,
233
+ details: {
234
+ sourcePluginKey: options.pluginKey,
235
+ managedResourceKey: declaration.skillKey,
236
+ status: imported.status,
237
+ },
238
+ });
239
+ return resolvedSkill(companyId, declaration, imported.skill, imported.status);
240
+ }
241
+ async function reset(skillKey, companyId) {
242
+ const declaration = declarationFor(skillKey);
243
+ const imported = await importDeclaredSkill(companyId, declaration, "reset");
244
+ await logActivity(db, {
245
+ companyId,
246
+ actorType: "plugin",
247
+ actorId: options.pluginId,
248
+ action: "plugin.managed_skill.reset",
249
+ entityType: "company_skill",
250
+ entityId: imported.skill.id,
251
+ details: {
252
+ sourcePluginKey: options.pluginKey,
253
+ managedResourceKey: declaration.skillKey,
254
+ },
255
+ });
256
+ return resolvedSkill(companyId, declaration, imported.skill, "reset");
257
+ }
258
+ return {
259
+ get,
260
+ reconcile,
261
+ reset,
262
+ };
263
+ }
264
+ //# sourceMappingURL=plugin-managed-skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-managed-skills.js","sourceRoot":"","sources":["../../src/services/plugin-managed-skills.ts"],"names":[],"mappings":"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"}
@@ -2037,7 +2037,7 @@ export declare function pluginRegistryService(db: Db): {
2037
2037
  updatedAt: Date;
2038
2038
  }>;
2039
2039
  /**
2040
- * Create or update a persistent mapping between a Evermore object and an
2040
+ * Create or update a persistent mapping between an Evermore object and an
2041
2041
  * external entity.
2042
2042
  *
2043
2043
  * @param pluginId - The UUID of the plugin.
@@ -394,7 +394,7 @@ export function pluginRegistryService(db) {
394
394
  .where(and(eq(pluginEntities.pluginId, pluginId), eq(pluginEntities.entityType, entityType), eq(pluginEntities.externalId, externalId)))
395
395
  .then((rows) => rows[0] ?? null),
396
396
  /**
397
- * Create or update a persistent mapping between a Evermore object and an
397
+ * Create or update a persistent mapping between an Evermore object and an
398
398
  * external entity.
399
399
  *
400
400
  * @param pluginId - The UUID of the plugin.
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"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"}