@synth-deploy/server 1.0.6 → 1.1.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.
- package/dist/agent/envoy-client.d.ts +62 -7
- package/dist/agent/envoy-client.d.ts.map +1 -1
- package/dist/agent/envoy-client.js +56 -6
- package/dist/agent/envoy-client.js.map +1 -1
- package/dist/agent/stale-deployment-detector.js +1 -1
- package/dist/agent/stale-deployment-detector.js.map +1 -1
- package/dist/agent/synth-agent.d.ts +7 -5
- package/dist/agent/synth-agent.d.ts.map +1 -1
- package/dist/agent/synth-agent.js +42 -39
- package/dist/agent/synth-agent.js.map +1 -1
- package/dist/alert-webhooks/alert-parsers.d.ts +21 -0
- package/dist/alert-webhooks/alert-parsers.d.ts.map +1 -0
- package/dist/alert-webhooks/alert-parsers.js +184 -0
- package/dist/alert-webhooks/alert-parsers.js.map +1 -0
- package/dist/api/agent.d.ts +0 -6
- package/dist/api/agent.d.ts.map +1 -1
- package/dist/api/agent.js +6 -459
- package/dist/api/agent.js.map +1 -1
- package/dist/api/alert-webhooks.d.ts +13 -0
- package/dist/api/alert-webhooks.d.ts.map +1 -0
- package/dist/api/alert-webhooks.js +279 -0
- package/dist/api/alert-webhooks.js.map +1 -0
- package/dist/api/envoy-reports.js +2 -2
- package/dist/api/envoy-reports.js.map +1 -1
- package/dist/api/envoys.js +1 -1
- package/dist/api/envoys.js.map +1 -1
- package/dist/api/fleet.d.ts.map +1 -1
- package/dist/api/fleet.js +14 -15
- package/dist/api/fleet.js.map +1 -1
- package/dist/api/graph.js +3 -3
- package/dist/api/graph.js.map +1 -1
- package/dist/api/operations.d.ts +7 -0
- package/dist/api/operations.d.ts.map +1 -0
- package/dist/api/operations.js +1883 -0
- package/dist/api/operations.js.map +1 -0
- package/dist/api/partitions.js +1 -1
- package/dist/api/partitions.js.map +1 -1
- package/dist/api/schemas.d.ts +194 -10
- package/dist/api/schemas.d.ts.map +1 -1
- package/dist/api/schemas.js +38 -5
- package/dist/api/schemas.js.map +1 -1
- package/dist/api/system.d.ts.map +1 -1
- package/dist/api/system.js +22 -21
- package/dist/api/system.js.map +1 -1
- package/dist/artifact-analyzer.js +2 -2
- package/dist/artifact-analyzer.js.map +1 -1
- package/dist/fleet/fleet-executor.js +1 -1
- package/dist/fleet/fleet-executor.js.map +1 -1
- package/dist/graph/graph-executor.js +2 -2
- package/dist/graph/graph-executor.js.map +1 -1
- package/dist/index.js +44 -40
- package/dist/index.js.map +1 -1
- package/dist/mcp/resources.js +3 -3
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +2 -9
- package/dist/mcp/tools.js.map +1 -1
- package/dist/middleware/auth.js +1 -1
- package/dist/middleware/auth.js.map +1 -1
- package/package.json +1 -1
- package/src/agent/envoy-client.ts +107 -15
- package/src/agent/stale-deployment-detector.ts +1 -1
- package/src/agent/synth-agent.ts +59 -45
- package/src/alert-webhooks/alert-parsers.ts +291 -0
- package/src/api/agent.ts +9 -528
- package/src/api/alert-webhooks.ts +354 -0
- package/src/api/envoy-reports.ts +2 -2
- package/src/api/envoys.ts +1 -1
- package/src/api/fleet.ts +14 -15
- package/src/api/graph.ts +3 -3
- package/src/api/operations.ts +2240 -0
- package/src/api/partitions.ts +1 -1
- package/src/api/schemas.ts +43 -7
- package/src/api/system.ts +23 -21
- package/src/artifact-analyzer.ts +2 -2
- package/src/fleet/fleet-executor.ts +1 -1
- package/src/graph/graph-executor.ts +2 -2
- package/src/index.ts +46 -40
- package/src/mcp/resources.ts +3 -3
- package/src/mcp/tools.ts +5 -9
- package/src/middleware/auth.ts +1 -1
- package/tests/agent-mode.test.ts +5 -376
- package/tests/api-handlers.test.ts +27 -27
- package/tests/composite-operations.test.ts +557 -0
- package/tests/decision-diary.test.ts +62 -63
- package/tests/diary-reader.test.ts +14 -18
- package/tests/mcp-tools.test.ts +1 -1
- package/tests/orchestration.test.ts +34 -30
- package/tests/partition-isolation.test.ts +4 -9
- package/tests/rbac-enforcement.test.ts +8 -8
- package/tests/ui-journey.test.ts +9 -9
- package/dist/api/deployments.d.ts +0 -11
- package/dist/api/deployments.d.ts.map +0 -1
- package/dist/api/deployments.js +0 -1098
- package/dist/api/deployments.js.map +0 -1
- package/src/api/deployments.ts +0 -1347
package/dist/api/agent.js
CHANGED
|
@@ -1,66 +1,7 @@
|
|
|
1
|
+
const getArtifactId = (op) => op.input.type === "deploy" ? op.input.artifactId : "";
|
|
1
2
|
import { z } from "zod";
|
|
2
|
-
import { QueryRequestSchema } from "./schemas.js";
|
|
3
3
|
import { requirePermission } from "../middleware/permissions.js";
|
|
4
4
|
// ---------------------------------------------------------------------------
|
|
5
|
-
// Input sanitization — prevent prompt injection and control character abuse
|
|
6
|
-
// ---------------------------------------------------------------------------
|
|
7
|
-
/** @internal Exported for testing only */
|
|
8
|
-
export function sanitizeUserInput(text) {
|
|
9
|
-
// Strip control characters except newline and tab
|
|
10
|
-
let sanitized = text.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]/g, '');
|
|
11
|
-
// Truncate to prevent prompt stuffing
|
|
12
|
-
if (sanitized.length > 1000) {
|
|
13
|
-
sanitized = sanitized.slice(0, 1000);
|
|
14
|
-
}
|
|
15
|
-
// Escape angle brackets to prevent XML tag injection
|
|
16
|
-
sanitized = sanitized.replace(/</g, '<').replace(/>/g, '>');
|
|
17
|
-
return sanitized;
|
|
18
|
-
}
|
|
19
|
-
/** @internal Exported for testing only */
|
|
20
|
-
export function validateExtractedVersion(version) {
|
|
21
|
-
// Accept semver and common pre-release formats
|
|
22
|
-
return /^\d+\.\d+\.\d+(-[a-zA-Z0-9._]+)?$/.test(version);
|
|
23
|
-
}
|
|
24
|
-
/** @internal Exported for testing only */
|
|
25
|
-
export function validateExtractedVariables(vars) {
|
|
26
|
-
const validated = {};
|
|
27
|
-
for (const [key, value] of Object.entries(vars)) {
|
|
28
|
-
// Key must be alphanumeric + underscore, value max 500 chars
|
|
29
|
-
if (/^[A-Za-z_][A-Za-z0-9_]*$/.test(key) && typeof value === 'string' && value.length <= 500) {
|
|
30
|
-
validated[key] = value;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return validated;
|
|
34
|
-
}
|
|
35
|
-
const MAX_ENTITY_LIST_SIZE = 100;
|
|
36
|
-
function appendEntityNames(parts, label, entities, includeEntities) {
|
|
37
|
-
if (!includeEntities) {
|
|
38
|
-
parts.push(`\n${label}: (entity data omitted by configuration)`);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
parts.push(`\n${label}:`);
|
|
42
|
-
const capped = entities.slice(0, MAX_ENTITY_LIST_SIZE);
|
|
43
|
-
for (const e of capped) {
|
|
44
|
-
parts.push(` - "${e.name}"`);
|
|
45
|
-
}
|
|
46
|
-
if (entities.length > MAX_ENTITY_LIST_SIZE) {
|
|
47
|
-
parts.push(` (… and ${entities.length - MAX_ENTITY_LIST_SIZE} more)`);
|
|
48
|
-
}
|
|
49
|
-
if (entities.length === 0)
|
|
50
|
-
parts.push(" (none configured)");
|
|
51
|
-
}
|
|
52
|
-
/** Build a case-insensitive name→ID map for a list of entities. */
|
|
53
|
-
function buildNameMap(entities) {
|
|
54
|
-
const map = new Map();
|
|
55
|
-
for (const e of entities) {
|
|
56
|
-
const key = e.name.toLowerCase();
|
|
57
|
-
// First match wins — duplicates are inherently ambiguous
|
|
58
|
-
if (!map.has(key))
|
|
59
|
-
map.set(key, e.id);
|
|
60
|
-
}
|
|
61
|
-
return map;
|
|
62
|
-
}
|
|
63
|
-
// ---------------------------------------------------------------------------
|
|
64
5
|
// Context generation — signals from deployment data
|
|
65
6
|
// ---------------------------------------------------------------------------
|
|
66
7
|
function generateContext(deployments, environmentStore, partitionStore) {
|
|
@@ -158,7 +99,7 @@ function generateContext(deployments, environmentStore, partitionStore) {
|
|
|
158
99
|
: "—",
|
|
159
100
|
lastDeployment: lastDeploy
|
|
160
101
|
? {
|
|
161
|
-
version: lastDeploy.version,
|
|
102
|
+
version: lastDeploy.version ?? "",
|
|
162
103
|
environment: allEnvironments.find((e) => e.id === lastDeploy.environmentId)?.name ?? lastDeploy.environmentId ?? "—",
|
|
163
104
|
status: lastDeploy.status,
|
|
164
105
|
ago: formatAgo(new Date(lastDeploy.createdAt)),
|
|
@@ -210,215 +151,6 @@ export function registerAgentRoutes(app, agent, partitions, environments, artifa
|
|
|
210
151
|
app.get("/api/agent/context", { preHandler: [requirePermission("deployment.view")] }, async () => {
|
|
211
152
|
return generateContext(deployments, environments, partitions);
|
|
212
153
|
});
|
|
213
|
-
/**
|
|
214
|
-
* Canvas query — classifies a natural language query and returns
|
|
215
|
-
* a structured action telling the UI what view to render.
|
|
216
|
-
* Navigation/data intents resolve entities and return view params.
|
|
217
|
-
*/
|
|
218
|
-
app.post("/api/agent/query", { preHandler: [requirePermission("deployment.view")] }, async (request, reply) => {
|
|
219
|
-
const parsed = QueryRequestSchema.safeParse(request.body);
|
|
220
|
-
if (!parsed.success) {
|
|
221
|
-
return reply.status(400).send({ error: "Invalid input", details: parsed.error.format() });
|
|
222
|
-
}
|
|
223
|
-
const query = parsed.data.query.trim();
|
|
224
|
-
const lower = query.toLowerCase();
|
|
225
|
-
const allArtifacts = artifacts.list();
|
|
226
|
-
const allPartitions = partitions.list();
|
|
227
|
-
const allEnvironments = environments.list();
|
|
228
|
-
const artifactMap = new Map(allArtifacts.map((a) => [a.id, a.name]));
|
|
229
|
-
const environmentMap = new Map(allEnvironments.map((e) => [e.id, e.name]));
|
|
230
|
-
const partitionMap = new Map(allPartitions.map((p) => [p.id, p.name]));
|
|
231
|
-
// --- LLM classification (when available) ---
|
|
232
|
-
const queryEntityExposure = settings.get().agent.llmEntityExposure ?? "names";
|
|
233
|
-
if (llm && llm.isAvailable()) {
|
|
234
|
-
const llmAction = await classifyQueryWithLlm(llm, query, allArtifacts, allPartitions, allEnvironments, deployments, debrief, queryEntityExposure !== "none");
|
|
235
|
-
if (llmAction) {
|
|
236
|
-
// For "annotate" action: save annotation to artifact, trigger re-analysis
|
|
237
|
-
if (llmAction.action === "annotate") {
|
|
238
|
-
const { artifactName, field, correction } = llmAction.params;
|
|
239
|
-
const target = allArtifacts.find((a) => a.name.toLowerCase() === (artifactName ?? "").toLowerCase());
|
|
240
|
-
if (target && correction) {
|
|
241
|
-
artifacts.addAnnotation(target.id, {
|
|
242
|
-
field: field || "summary",
|
|
243
|
-
correction,
|
|
244
|
-
annotatedBy: "channel",
|
|
245
|
-
annotatedAt: new Date(),
|
|
246
|
-
});
|
|
247
|
-
debrief.record({
|
|
248
|
-
partitionId: null,
|
|
249
|
-
deploymentId: null,
|
|
250
|
-
agent: "server",
|
|
251
|
-
decisionType: "artifact-analysis",
|
|
252
|
-
decision: `User correction recorded for "${target.name}" via channel: ${correction}`,
|
|
253
|
-
reasoning: `Operator typed a natural-language correction into the Synth Channel. Field: ${field || "summary"}.`,
|
|
254
|
-
context: { artifactName: target.name, field: field || "summary", correction, source: "channel" },
|
|
255
|
-
});
|
|
256
|
-
// Trigger async re-analysis with the new annotation
|
|
257
|
-
if (analyzer) {
|
|
258
|
-
const updated = artifacts.get(target.id);
|
|
259
|
-
if (updated) {
|
|
260
|
-
analyzer.reanalyzeWithAnnotations(updated).then((revised) => {
|
|
261
|
-
if (revised)
|
|
262
|
-
artifacts.update(target.id, { analysis: revised });
|
|
263
|
-
}).catch(() => { });
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
return {
|
|
267
|
-
action: "answer",
|
|
268
|
-
view: "",
|
|
269
|
-
params: {},
|
|
270
|
-
title: "Correction recorded",
|
|
271
|
-
content: `Got it — I've noted that **${target.name}** ${correction}. Re-analyzing now to update my understanding.`,
|
|
272
|
-
};
|
|
273
|
-
}
|
|
274
|
-
// Artifact not found — fall through to answer
|
|
275
|
-
}
|
|
276
|
-
// For "answer" action: fetch real data and generate a markdown response
|
|
277
|
-
if (llmAction.action === "answer") {
|
|
278
|
-
const answered = await answerQueryWithData(llm, query, deployments.list(), allArtifacts, allPartitions, allEnvironments);
|
|
279
|
-
if (answered) {
|
|
280
|
-
debrief.record({
|
|
281
|
-
partitionId: null,
|
|
282
|
-
deploymentId: null,
|
|
283
|
-
agent: "server",
|
|
284
|
-
decisionType: "system",
|
|
285
|
-
decision: `Canvas query answered analytically`,
|
|
286
|
-
reasoning: `LLM classified "${query}" as analytical answer, responded with ${answered.content.length} chars of markdown`,
|
|
287
|
-
context: { query, action: "answer" },
|
|
288
|
-
});
|
|
289
|
-
return answered;
|
|
290
|
-
}
|
|
291
|
-
// Fall through to regex fallback if answer generation failed
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
debrief.record({
|
|
295
|
-
partitionId: null,
|
|
296
|
-
deploymentId: null,
|
|
297
|
-
agent: "server",
|
|
298
|
-
decisionType: "system",
|
|
299
|
-
decision: `Canvas query classified as ${llmAction.action}: ${llmAction.view}`,
|
|
300
|
-
reasoning: `LLM classified "${query}" → ${llmAction.action}/${llmAction.view}`,
|
|
301
|
-
context: { query, action: llmAction },
|
|
302
|
-
});
|
|
303
|
-
return llmAction;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// --- Regex fallback classification ---
|
|
308
|
-
// Artifact correction: "Dockerfile.server is actually for nginx", "api-service is a nodejs app"
|
|
309
|
-
const correctionPatterns = [
|
|
310
|
-
/\b(?:is\s+actually|is\s+really|should\s+be|is\s+a|is\s+an)\b/i,
|
|
311
|
-
/\bcorrect(?:ion)?:/i,
|
|
312
|
-
/\bactually\s+(?:a|an|the)\b/i,
|
|
313
|
-
];
|
|
314
|
-
if (correctionPatterns.some((p) => p.test(query))) {
|
|
315
|
-
for (const art of allArtifacts) {
|
|
316
|
-
if (query.toLowerCase().includes(art.name.toLowerCase())) {
|
|
317
|
-
artifacts.addAnnotation(art.id, {
|
|
318
|
-
field: "summary",
|
|
319
|
-
correction: query,
|
|
320
|
-
annotatedBy: "channel",
|
|
321
|
-
annotatedAt: new Date(),
|
|
322
|
-
});
|
|
323
|
-
if (analyzer) {
|
|
324
|
-
const updated = artifacts.get(art.id);
|
|
325
|
-
if (updated) {
|
|
326
|
-
analyzer.reanalyzeWithAnnotations(updated).then((revised) => {
|
|
327
|
-
if (revised)
|
|
328
|
-
artifacts.update(art.id, { analysis: revised });
|
|
329
|
-
}).catch(() => { });
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
return {
|
|
333
|
-
action: "answer",
|
|
334
|
-
view: "",
|
|
335
|
-
params: {},
|
|
336
|
-
title: "Correction recorded",
|
|
337
|
-
content: `Got it — I've noted your correction about **${art.name}**. Re-analyzing now.`,
|
|
338
|
-
};
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
// Create partition: "create partition Acme Corp" → return create intent for UI confirmation
|
|
343
|
-
const createPartitionMatch = query.match(/\bcreate\s+partition\s+(.+)/i);
|
|
344
|
-
if (createPartitionMatch) {
|
|
345
|
-
const name = createPartitionMatch[1].trim();
|
|
346
|
-
return { action: "create", view: "partition-detail", params: { name }, title: `Create "${name}"` };
|
|
347
|
-
}
|
|
348
|
-
// Create artifact: "create artifact api-service" or "create operation api-service" → return create intent for UI confirmation
|
|
349
|
-
const createArtifactMatch = query.match(/\bcreate\s+(?:artifact|operation)\s+(.+)/i);
|
|
350
|
-
if (createArtifactMatch) {
|
|
351
|
-
const name = createArtifactMatch[1].trim();
|
|
352
|
-
return { action: "create", view: "artifact-list", params: { name }, title: `Create "${name}"` };
|
|
353
|
-
}
|
|
354
|
-
// Show specific partition
|
|
355
|
-
for (const p of allPartitions) {
|
|
356
|
-
const name = p.name.toLowerCase();
|
|
357
|
-
if (lower.includes(name) && (lower.includes("partition") || lower.includes("show"))) {
|
|
358
|
-
return { action: "navigate", view: "partition-detail", params: { id: p.id }, title: p.name };
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
// Show specific environment
|
|
362
|
-
for (const e of allEnvironments) {
|
|
363
|
-
const name = e.name.toLowerCase();
|
|
364
|
-
if (lower.includes(name) && (lower.includes("environment") || lower.includes("env"))) {
|
|
365
|
-
return { action: "navigate", view: "environment-detail", params: { id: e.id }, title: e.name };
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
// Show specific deployment by ID
|
|
369
|
-
const deployIdMatch = lower.match(/(?:deployment|deploy)\s+([a-f0-9-]{36})/);
|
|
370
|
-
if (deployIdMatch) {
|
|
371
|
-
return { action: "navigate", view: "deployment-detail", params: { id: deployIdMatch[1] }, title: "Deployment" };
|
|
372
|
-
}
|
|
373
|
-
// Failed deployments / what failed → markdown table
|
|
374
|
-
if (/\b(fail|failed|failures|what failed|broken)\b/.test(lower)) {
|
|
375
|
-
const failed = deployments.list().filter((d) => d.status === "failed")
|
|
376
|
-
.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
377
|
-
const content = buildDeploymentTable(failed, artifactMap, environmentMap, partitionMap);
|
|
378
|
-
return { action: "answer", view: "", params: {}, title: "Failed Deployments", content };
|
|
379
|
-
}
|
|
380
|
-
// Settings / configuration
|
|
381
|
-
if (/\b(settings|preferences|configure)\b/.test(lower) || (lower.includes("config") && !/\bconfiguration-resolved\b/.test(lower))) {
|
|
382
|
-
return { action: "navigate", view: "settings", params: {}, title: "Settings" };
|
|
383
|
-
}
|
|
384
|
-
// Artifacts list → markdown table
|
|
385
|
-
if (/\b(artifacts|artifact list|operations|operation list|manage artifacts)\b/.test(lower)) {
|
|
386
|
-
const rows = allArtifacts.map((a) => `| ${a.name} | ${a.type} |`).join("\n");
|
|
387
|
-
const content = allArtifacts.length > 0
|
|
388
|
-
? `| Artifact | Type |\n|----------|------|\n${rows}`
|
|
389
|
-
: "_No artifacts configured._";
|
|
390
|
-
return { action: "answer", view: "", params: {}, title: "Artifacts", content };
|
|
391
|
-
}
|
|
392
|
-
// Debrief / decision diary
|
|
393
|
-
if (/\b(debrief|decision diary|decisions|decision log|decision history)\b/.test(lower)) {
|
|
394
|
-
return { action: "navigate", view: "debrief", params: {}, title: "Debrief" };
|
|
395
|
-
}
|
|
396
|
-
// Deployment history / recent deployments → markdown table
|
|
397
|
-
if (/\b(deployment|history|recent|deployments)\b/.test(lower)) {
|
|
398
|
-
let deps = deployments.list()
|
|
399
|
-
.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
400
|
-
// Scope to a specific artifact if mentioned
|
|
401
|
-
for (const a of allArtifacts) {
|
|
402
|
-
if (lower.includes(a.name.toLowerCase())) {
|
|
403
|
-
deps = deps.filter((d) => d.artifactId === a.id);
|
|
404
|
-
break;
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
const content = buildDeploymentTable(deps, artifactMap, environmentMap, partitionMap);
|
|
408
|
-
const title = deps.length < deployments.list().length ? "Deployment History" : "Recent Deployments";
|
|
409
|
-
return { action: "answer", view: "", params: {}, title, content };
|
|
410
|
-
}
|
|
411
|
-
// Signals / drift / health
|
|
412
|
-
if (/\b(signal|signals|drift|health|alert|alerts)\b/.test(lower)) {
|
|
413
|
-
return { action: "navigate", view: "overview", params: { focus: "signals" }, title: "Signals" };
|
|
414
|
-
}
|
|
415
|
-
// Show all partitions
|
|
416
|
-
if (/\b(partitions|all partitions|partition list|manage partitions)\b/.test(lower)) {
|
|
417
|
-
return { action: "navigate", view: "partition-list", params: {}, title: "Partitions" };
|
|
418
|
-
}
|
|
419
|
-
// Fallback: navigate to overview
|
|
420
|
-
return { action: "navigate", view: "overview", params: {}, title: "Overview" };
|
|
421
|
-
});
|
|
422
154
|
// -------------------------------------------------------------------------
|
|
423
155
|
// Pre-flight context — deterministic data + LLM editorialization
|
|
424
156
|
// -------------------------------------------------------------------------
|
|
@@ -471,7 +203,7 @@ export function registerAgentRoutes(app, agent, partitions, environments, artifa
|
|
|
471
203
|
? {
|
|
472
204
|
status: latestToEnv.status,
|
|
473
205
|
completedAt: (latestToEnv.completedAt ?? latestToEnv.createdAt).toISOString(),
|
|
474
|
-
version: latestToEnv.version,
|
|
206
|
+
version: latestToEnv.version ?? "",
|
|
475
207
|
}
|
|
476
208
|
: undefined,
|
|
477
209
|
recentFailures,
|
|
@@ -577,7 +309,7 @@ Be directional: say what you recommend, not "here are some data points." Use fir
|
|
|
577
309
|
// LLM call failed or timed out — record to debrief and use deterministic fallback
|
|
578
310
|
debrief.record({
|
|
579
311
|
partitionId: partitionId ?? null,
|
|
580
|
-
|
|
312
|
+
operationId: null,
|
|
581
313
|
agent: "server",
|
|
582
314
|
decisionType: "pre-flight-llm-failure",
|
|
583
315
|
decision: "Pre-flight LLM recommendation failed",
|
|
@@ -620,7 +352,7 @@ Be directional: say what you recommend, not "here are some data points." Use fir
|
|
|
620
352
|
// --- 6. Debrief + telemetry ---
|
|
621
353
|
debrief.record({
|
|
622
354
|
partitionId: partitionId ?? null,
|
|
623
|
-
|
|
355
|
+
operationId: null,
|
|
624
356
|
agent: "server",
|
|
625
357
|
decisionType: "cross-system-context",
|
|
626
358
|
decision: `Pre-flight context generated: ${recommendation.action} (confidence: ${recommendation.confidence})`,
|
|
@@ -669,7 +401,7 @@ Be directional: say what you recommend, not "here are some data points." Use fir
|
|
|
669
401
|
const { artifactId, environmentId, partitionId, action, recommendedAction } = parsed.data;
|
|
670
402
|
debrief.record({
|
|
671
403
|
partitionId: partitionId ?? null,
|
|
672
|
-
|
|
404
|
+
operationId: null,
|
|
673
405
|
agent: "server",
|
|
674
406
|
decisionType: "cross-system-context",
|
|
675
407
|
decision: `User ${action} after pre-flight recommendation to ${recommendedAction}`,
|
|
@@ -679,189 +411,4 @@ Be directional: say what you recommend, not "here are some data points." Use fir
|
|
|
679
411
|
return { ok: true };
|
|
680
412
|
});
|
|
681
413
|
}
|
|
682
|
-
// ---------------------------------------------------------------------------
|
|
683
|
-
// Deterministic markdown table builders (used in regex fallback)
|
|
684
|
-
// ---------------------------------------------------------------------------
|
|
685
|
-
function buildDeploymentTable(deps, artifactMap, environmentMap, partitionMap) {
|
|
686
|
-
if (deps.length === 0)
|
|
687
|
-
return "_No matching deployments found._";
|
|
688
|
-
const rows = deps
|
|
689
|
-
.slice(0, 50)
|
|
690
|
-
.map((d) => {
|
|
691
|
-
const art = artifactMap.get(d.artifactId) ?? d.artifactId;
|
|
692
|
-
const env = (d.environmentId ? environmentMap.get(d.environmentId) : undefined) ?? d.environmentId ?? "—";
|
|
693
|
-
const part = d.partitionId ? (partitionMap.get(d.partitionId) ?? d.partitionId) : "—";
|
|
694
|
-
const date = new Date(d.createdAt).toLocaleString();
|
|
695
|
-
// Embed a synth:// deep-link so the UI can navigate to the deployment detail
|
|
696
|
-
const versionLink = `[v${d.version}](synth://deployment-detail?id=${d.id})`;
|
|
697
|
-
return `| ${d.status} | ${art} | ${versionLink} | ${env} | ${part} | ${date} |`;
|
|
698
|
-
})
|
|
699
|
-
.join("\n");
|
|
700
|
-
return [
|
|
701
|
-
"| Status | Artifact | Version | Environment | Partition | Date |",
|
|
702
|
-
"|--------|----------|---------|-------------|-----------|------|",
|
|
703
|
-
rows,
|
|
704
|
-
].join("\n");
|
|
705
|
-
}
|
|
706
|
-
// ---------------------------------------------------------------------------
|
|
707
|
-
// LLM-powered query classification
|
|
708
|
-
// ---------------------------------------------------------------------------
|
|
709
|
-
function buildQueryClassificationPrompt() {
|
|
710
|
-
return `You are a query classifier for Synth's agent canvas. Given a natural language query from a deployment engineer, classify it into one of these actions:
|
|
711
|
-
|
|
712
|
-
1. "navigate" — The user wants to drill into a specific named entity (e.g., "show partition Alpha", "open environment staging", "view deployment abc-123"). Only use this when there is a specific entity to navigate to.
|
|
713
|
-
2. "create" — The user wants to create a new entity (e.g., "create partition Acme Corp", "create operation api-service")
|
|
714
|
-
3. "answer" — Use this for EVERYTHING ELSE: data requests, lists, filters, analysis, comparisons, summaries. Examples: "show me failed deployments", "what failed", "recent deployments", "how many succeeded last week", "give me all deployments for api-service", "compare environments", "summarize activity". The response will be rendered as a formatted markdown table or narrative — NOT a navigation panel.
|
|
715
|
-
4. "annotate" — The user is providing a correction or clarification about a specific artifact. Examples: "Dockerfile.server is actually for nginx", "that artifact is a Node.js app not a docker image", "the api-service type should be nodejs", "correct: Dockerfile.envoy is the load balancer". Use this when the user is teaching Synth something about an artifact.
|
|
716
|
-
|
|
717
|
-
Return a JSON object with this exact schema:
|
|
718
|
-
{
|
|
719
|
-
"action": "navigate" | "create" | "answer" | "annotate",
|
|
720
|
-
"view": "<view-name or empty string for answer/create/annotate>",
|
|
721
|
-
"params": { ... },
|
|
722
|
-
"title": "<human-readable title, e.g. 'Failed Deployments' or 'Deployment History'>"
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
View names (for navigate only):
|
|
726
|
-
- "partition-detail" — show specific partition (params: { "id": "<partition-name>" })
|
|
727
|
-
- "environment-detail" — show specific environment (params: { "id": "<environment-name>" })
|
|
728
|
-
- "deployment-detail" — show specific deployment (params: { "id": "<deployment-id>" })
|
|
729
|
-
- "overview" — show the operational overview (params: {})
|
|
730
|
-
- "settings" — show application settings (params: {})
|
|
731
|
-
|
|
732
|
-
For "annotate" actions, set view to "" and params to:
|
|
733
|
-
{ "artifactName": "<exact artifact name from the known artifacts list>", "field": "summary|type|deploymentIntent", "correction": "<the user's correction in their own words>" }
|
|
734
|
-
|
|
735
|
-
Rules:
|
|
736
|
-
- ONLY use entity names from the provided lists. Never invent names.
|
|
737
|
-
- If the query is a data/list/filter request, ALWAYS use "answer" — never "navigate".
|
|
738
|
-
- If the query is ambiguous between navigation and data, prefer "answer".
|
|
739
|
-
- For "create" actions, include the entity name in params: { "name": "..." }.
|
|
740
|
-
- For "answer" and "create" actions, set view to "" and params to {}.
|
|
741
|
-
- For "annotate", artifactName MUST match an artifact from the known list exactly.
|
|
742
|
-
- Return ONLY valid JSON, no markdown, no explanation.`;
|
|
743
|
-
}
|
|
744
|
-
async function classifyQueryWithLlm(llm, query, allArtifacts, allPartitions, allEnvironments, deploymentStore, _debrief, includeEntities) {
|
|
745
|
-
const parts = [`<user-query>${sanitizeUserInput(query)}</user-query>`];
|
|
746
|
-
appendEntityNames(parts, "Known partitions", allPartitions, includeEntities);
|
|
747
|
-
appendEntityNames(parts, "Known environments", allEnvironments, includeEntities);
|
|
748
|
-
appendEntityNames(parts, "Known artifacts", allArtifacts, includeEntities);
|
|
749
|
-
const llmResult = await llm.classify({
|
|
750
|
-
prompt: parts.join("\n"),
|
|
751
|
-
systemPrompt: buildQueryClassificationPrompt(),
|
|
752
|
-
promptSummary: `Canvas query classification: "${query}"`,
|
|
753
|
-
partitionId: null,
|
|
754
|
-
maxTokens: 512,
|
|
755
|
-
});
|
|
756
|
-
if (!llmResult.ok)
|
|
757
|
-
return null;
|
|
758
|
-
try {
|
|
759
|
-
let text = llmResult.text.trim();
|
|
760
|
-
if (text.startsWith("```")) {
|
|
761
|
-
text = text.replace(/^```(?:json)?\n?/, "").replace(/\n?```$/, "");
|
|
762
|
-
}
|
|
763
|
-
const parsed = JSON.parse(text);
|
|
764
|
-
if (!parsed.action || !parsed.view)
|
|
765
|
-
return null;
|
|
766
|
-
// Build name→ID maps for local resolution
|
|
767
|
-
const partitionNameMap = buildNameMap(allPartitions);
|
|
768
|
-
const environmentNameMap = buildNameMap(allEnvironments);
|
|
769
|
-
// The LLM now returns names in params — resolve to IDs locally
|
|
770
|
-
if (parsed.params?.id) {
|
|
771
|
-
const idLower = parsed.params.id.toLowerCase();
|
|
772
|
-
if (parsed.view === "partition-detail") {
|
|
773
|
-
const resolvedId = partitionNameMap.get(idLower);
|
|
774
|
-
if (!resolvedId)
|
|
775
|
-
return null;
|
|
776
|
-
parsed.params.id = resolvedId;
|
|
777
|
-
}
|
|
778
|
-
else if (parsed.view === "environment-detail") {
|
|
779
|
-
const resolvedId = environmentNameMap.get(idLower);
|
|
780
|
-
if (!resolvedId)
|
|
781
|
-
return null;
|
|
782
|
-
parsed.params.id = resolvedId;
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
if (parsed.params?.partitionId) {
|
|
786
|
-
const resolvedId = partitionNameMap.get(parsed.params.partitionId.toLowerCase());
|
|
787
|
-
if (!resolvedId) {
|
|
788
|
-
delete parsed.params.partitionId;
|
|
789
|
-
}
|
|
790
|
-
else {
|
|
791
|
-
parsed.params.partitionId = resolvedId;
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
return parsed;
|
|
795
|
-
}
|
|
796
|
-
catch {
|
|
797
|
-
return null;
|
|
798
|
-
}
|
|
799
|
-
}
|
|
800
|
-
// ---------------------------------------------------------------------------
|
|
801
|
-
// LLM-powered analytical answer with real DB data
|
|
802
|
-
// ---------------------------------------------------------------------------
|
|
803
|
-
async function answerQueryWithData(llm, query, allDeployments, allArtifacts, allPartitions, allEnvironments) {
|
|
804
|
-
const now = Date.now();
|
|
805
|
-
// Build a concise data context from real records (last 50 deployments)
|
|
806
|
-
const recentDeployments = [...allDeployments]
|
|
807
|
-
.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
|
|
808
|
-
.slice(0, 50);
|
|
809
|
-
const artifactMap = new Map(allArtifacts.map((a) => [a.id, a.name]));
|
|
810
|
-
const environmentMap = new Map(allEnvironments.map((e) => [e.id, e.name]));
|
|
811
|
-
const partitionMap = new Map(allPartitions.map((p) => [p.id, p.name]));
|
|
812
|
-
const deploymentRows = recentDeployments.map((d) => {
|
|
813
|
-
const ageMs = now - new Date(d.createdAt).getTime();
|
|
814
|
-
const ageHours = Math.round(ageMs / (1000 * 60 * 60));
|
|
815
|
-
const age = ageHours < 24 ? `${ageHours}h ago` : `${Math.round(ageHours / 24)}d ago`;
|
|
816
|
-
const art = artifactMap.get(d.artifactId) ?? d.artifactId;
|
|
817
|
-
const env = (d.environmentId ? environmentMap.get(d.environmentId) : undefined) ?? d.environmentId ?? "—";
|
|
818
|
-
const part = d.partitionId ? ` (${partitionMap.get(d.partitionId) ?? d.partitionId})` : "";
|
|
819
|
-
// Include synth:// deep-link for UI navigation
|
|
820
|
-
return `- id:${d.id} | ${art} v${d.version} → ${env}${part}: ${d.status} (${age})`;
|
|
821
|
-
}).join("\n");
|
|
822
|
-
const artifactRows = allArtifacts.map((a) => `- ${a.name} (${a.type})`).join("\n");
|
|
823
|
-
const partitionRows = allPartitions.map((p) => `- ${p.name}`).join("\n");
|
|
824
|
-
const environmentRows = allEnvironments.map((e) => `- ${e.name}`).join("\n");
|
|
825
|
-
const contextBlock = [
|
|
826
|
-
`<deployments-recent count="${recentDeployments.length}">`,
|
|
827
|
-
deploymentRows || "(none)",
|
|
828
|
-
`</deployments-recent>`,
|
|
829
|
-
`<artifacts count="${allArtifacts.length}">`,
|
|
830
|
-
artifactRows || "(none)",
|
|
831
|
-
`</artifacts>`,
|
|
832
|
-
`<environments count="${allEnvironments.length}">`,
|
|
833
|
-
environmentRows || "(none)",
|
|
834
|
-
`</environments>`,
|
|
835
|
-
`<partitions count="${allPartitions.length}">`,
|
|
836
|
-
partitionRows || "(none)",
|
|
837
|
-
`</partitions>`,
|
|
838
|
-
].join("\n");
|
|
839
|
-
const systemPrompt = `You are Synth, an intelligent deployment system. A deployment engineer has asked you a question. Answer it using the real deployment data provided — do not fabricate records or invent names.
|
|
840
|
-
|
|
841
|
-
Format your response as markdown:
|
|
842
|
-
- Use tables for tabular/comparative data. When a deployment is listed in a table, make its version a markdown link using the format: [v1.2.3](synth://deployment-detail?id=<deployment-id>) — use the actual id from the data (the id: prefix in each row).
|
|
843
|
-
- For partition or environment rows, you may link using: [Name](synth://partition-detail?id=<partition-name>) or [Name](synth://environment-detail?id=<env-name>)
|
|
844
|
-
- Use numbered lists for sequences or steps
|
|
845
|
-
- Use code blocks for configs, IDs, or technical strings
|
|
846
|
-
- Be specific and factual — reference actual artifact names, environments, and statuses from the data
|
|
847
|
-
- If the data doesn't contain enough information to answer precisely, say so clearly
|
|
848
|
-
|
|
849
|
-
Keep the response concise and directly useful to an engineer.`;
|
|
850
|
-
const prompt = [
|
|
851
|
-
`<user-query>${sanitizeUserInput(query)}</user-query>`,
|
|
852
|
-
contextBlock,
|
|
853
|
-
].join("\n");
|
|
854
|
-
const llmResult = await llm.reason({
|
|
855
|
-
prompt,
|
|
856
|
-
systemPrompt,
|
|
857
|
-
promptSummary: `Analytical answer for: "${query}"`,
|
|
858
|
-
partitionId: null,
|
|
859
|
-
maxTokens: 2048,
|
|
860
|
-
});
|
|
861
|
-
if (!llmResult.ok)
|
|
862
|
-
return null;
|
|
863
|
-
const content = llmResult.text.trim();
|
|
864
|
-
const title = query.length > 60 ? query.slice(0, 57) + "..." : query;
|
|
865
|
-
return { action: "answer", view: "", params: {}, title, content };
|
|
866
|
-
}
|
|
867
414
|
//# sourceMappingURL=agent.js.map
|
package/dist/api/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert Webhook API routes — channel management + alert receipt endpoint.
|
|
3
|
+
*
|
|
4
|
+
* External monitoring systems (Prometheus AlertManager, PagerDuty, Datadog,
|
|
5
|
+
* Grafana) POST alerts here. Synth parses them, creates operations, and
|
|
6
|
+
* dispatches planning through the normal operation flow.
|
|
7
|
+
*/
|
|
8
|
+
import type { FastifyInstance } from "fastify";
|
|
9
|
+
import type { IDeploymentStore, IEnvironmentStore, IPartitionStore, ITelemetryStore, DebriefWriter } from "@synth-deploy/core";
|
|
10
|
+
import type { PersistentAlertWebhookStore } from "@synth-deploy/core";
|
|
11
|
+
import type { EnvoyRegistry } from "../agent/envoy-registry.js";
|
|
12
|
+
export declare function registerAlertWebhookRoutes(app: FastifyInstance, store: PersistentAlertWebhookStore, deployments: IDeploymentStore, debrief: DebriefWriter, environments: IEnvironmentStore, partitions: IPartitionStore, telemetry: ITelemetryStore, envoyRegistry?: EnvoyRegistry): void;
|
|
13
|
+
//# sourceMappingURL=alert-webhooks.d.ts.map
|