@superblocksteam/vite-plugin-file-sync 2.0.149 → 2.0.150-next.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/ai-service/agent/prompts/api-prompts.js +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +38 -10
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +20 -4
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js +1 -1
- package/dist/ai-service/agent/tools/apis/analysis.d.ts +6 -0
- package/dist/ai-service/agent/tools/apis/analysis.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/analysis.js +130 -26
- package/dist/ai-service/agent/tools/apis/analysis.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +2 -2
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +131 -31
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +2 -2
- package/dist/ai-service/agent/tools/build-delete-file.js +3 -3
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.d.ts +41 -21
- package/dist/ai-service/agent/tools/build-install-packages.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-install-packages.js +299 -20
- package/dist/ai-service/agent/tools/build-install-packages.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js +2 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.js.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts +161 -24
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js +312 -55
- package/dist/ai-service/agent/tools/databases/dev-database-tasks.js.map +1 -1
- package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
- package/dist/ai-service/agent/tools/report-security-findings.d.ts +3 -3
- package/dist/ai-service/agent/tools.d.ts +10 -11
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +38 -19
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +9 -8
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +1 -1
- package/dist/ai-service/agent/tools2/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/index.js +2 -3
- package/dist/ai-service/agent/tools2/tools/index.js.map +1 -1
- package/dist/ai-service/app-interface/npm-package-lookup.d.ts +22 -0
- package/dist/ai-service/app-interface/npm-package-lookup.d.ts.map +1 -1
- package/dist/ai-service/app-interface/npm-package-lookup.js +111 -0
- package/dist/ai-service/app-interface/npm-package-lookup.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +71 -3
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +575 -23
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts +83 -0
- package/dist/ai-service/app-interface/vulnerability-gate.d.ts.map +1 -0
- package/dist/ai-service/app-interface/vulnerability-gate.js +543 -0
- package/dist/ai-service/app-interface/vulnerability-gate.js.map +1 -0
- package/dist/ai-service/dev-database-client.d.ts +14 -4
- package/dist/ai-service/dev-database-client.d.ts.map +1 -1
- package/dist/ai-service/dev-database-client.js +1 -24
- package/dist/ai-service/dev-database-client.js.map +1 -1
- package/dist/ai-service/features.d.ts +5 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +5 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +2 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +30 -7
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +3 -0
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +2 -0
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/managed-native-db-availability.d.ts +62 -0
- package/dist/ai-service/managed-native-db-availability.d.ts.map +1 -0
- package/dist/ai-service/managed-native-db-availability.js +37 -0
- package/dist/ai-service/managed-native-db-availability.js.map +1 -0
- package/dist/ai-service/security/vulnerability-triage.d.ts +90 -0
- package/dist/ai-service/security/vulnerability-triage.d.ts.map +1 -0
- package/dist/ai-service/security/vulnerability-triage.js +113 -0
- package/dist/ai-service/security/vulnerability-triage.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +13 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +9 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +4 -0
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +2 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +11 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +51 -4
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
- package/dist/ai-service/tasks/factory.d.ts +2 -0
- package/dist/ai-service/tasks/factory.d.ts.map +1 -1
- package/dist/ai-service/tasks/factory.js +7 -0
- package/dist/ai-service/tasks/factory.js.map +1 -1
- package/dist/ai-service/types.d.ts +57 -3
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js +20 -0
- package/dist/ai-service/types.js.map +1 -1
- package/dist/migration/restructure.js +1 -1
- package/dist/migration-templates/app-fullstack/client/pages/{Page1 → Home}/index.tsx +1 -1
- package/dist/migration-templates/app-fullstack/client/router.tsx +1 -1
- package/dist/migration-templates/app-fullstack/package.json +2 -2
- package/dist/npm/apply-package-json-substitutions.d.ts +19 -0
- package/dist/npm/apply-package-json-substitutions.d.ts.map +1 -0
- package/dist/npm/apply-package-json-substitutions.js +108 -0
- package/dist/npm/apply-package-json-substitutions.js.map +1 -0
- package/dist/policy-gate-callback-mapper.d.ts +1 -1
- package/dist/policy-gate-callback-mapper.d.ts.map +1 -1
- package/dist/policy-gate-callback-mapper.js.map +1 -1
- package/package.json +8 -8
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TriageVerdict } from "@superblocksteam/shared";
|
|
1
2
|
import type { Clark } from "../../state-machine/clark-fsm.js";
|
|
2
3
|
import type { ClarkStateHandlerParams } from "../../state-machine/clark-fsm.js";
|
|
3
4
|
import type { NpmInstallBlocked as NpmInstallBlockedType, NpmInstallBlockedMessageVariant } from "../../types.js";
|
|
@@ -7,6 +8,37 @@ interface VersionChangeInfo {
|
|
|
7
8
|
newVersion: string;
|
|
8
9
|
isDev: boolean;
|
|
9
10
|
}
|
|
11
|
+
type InstallPackagesToolResult = {
|
|
12
|
+
error?: ReturnType<NpmInstallBlockedType["toJSON"]>;
|
|
13
|
+
message: string;
|
|
14
|
+
ok?: false;
|
|
15
|
+
output?: string;
|
|
16
|
+
triageVerdicts?: TriageVerdict[];
|
|
17
|
+
/** Bare package names from this install that appear in the triggering user message. */
|
|
18
|
+
userRequested?: string[];
|
|
19
|
+
versionChanges?: VersionChangeInfo[];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* True when `packageName` appears as a literal token in `message`.
|
|
23
|
+
* Scoped names (`@scope/name`) and unscoped names are matched with npm-name
|
|
24
|
+
* boundaries so `react` does not match `preact` / `reactive`.
|
|
25
|
+
*
|
|
26
|
+
* The trailing boundary allows `@` (builders write `left-pad@1.3.0`) and a
|
|
27
|
+
* sentence-ending `.`, but not a `.` that continues the token (`left-pad.js`).
|
|
28
|
+
*/
|
|
29
|
+
export declare function isPackageNamedInMessage(packageName: string, message: string): boolean;
|
|
30
|
+
export declare function findUserRequestedPackageNames(packages: Array<{
|
|
31
|
+
name: string;
|
|
32
|
+
}>, message: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Names from `packages` the builder asked for by name: either matched in the
|
|
35
|
+
* current turn's message, or carried over from an earlier turn's CVE block.
|
|
36
|
+
* The carry-over matters because the builder answers "do you still want it?"
|
|
37
|
+
* with a bare reason ("we need it for the demo") that never repeats the name.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveUserRequestedPackageNames(packages: Array<{
|
|
40
|
+
name: string;
|
|
41
|
+
}>, message: string, pendingCveProceedPackages: string[]): string[];
|
|
10
42
|
/**
|
|
11
43
|
* Render a `NpmInstallBlocked` into an actionable one-paragraph message for
|
|
12
44
|
* the agent, plus the discriminator that selected the message branch. The
|
|
@@ -24,6 +56,13 @@ interface VersionChangeInfo {
|
|
|
24
56
|
* row + host is private. Appends "an org admin may need to mirror this
|
|
25
57
|
* package" because that's an actionable escalation on a private
|
|
26
58
|
* registry; same hint on npmjs would be misleading.
|
|
59
|
+
* - `malware_block` — `vulnerable_package` + malware finding. Hard-block;
|
|
60
|
+
* agent must pick a different package (no retry / no override).
|
|
61
|
+
* - `index_unavailable` — security index / dry-run probe could not vouch
|
|
62
|
+
* for the install. Fail-closed; retry later. Not a malware verdict.
|
|
63
|
+
* - `cve_block` / `cve_no_safe_version` — CVE findings listed per package
|
|
64
|
+
* (suggested pin vs no safe version). Variant is `cve_block` when any
|
|
65
|
+
* finding carries a suggested pin; otherwise `cve_no_safe_version`.
|
|
27
66
|
* - `default` — every other combination, including all
|
|
28
67
|
* `registry_auth_failed` failures.
|
|
29
68
|
*
|
|
@@ -43,26 +82,7 @@ export declare const buildInstallPackagesToolFactory: import("../tools2/types.js
|
|
|
43
82
|
version?: string | undefined;
|
|
44
83
|
dev?: boolean | undefined;
|
|
45
84
|
}[] | undefined;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
message: string;
|
|
49
|
-
versionChanges: VersionChangeInfo[];
|
|
50
|
-
ok?: undefined;
|
|
51
|
-
readonly error?: undefined;
|
|
52
|
-
} | {
|
|
53
|
-
output: string;
|
|
54
|
-
message: string;
|
|
55
|
-
versionChanges?: undefined;
|
|
56
|
-
ok?: undefined;
|
|
57
|
-
readonly error?: undefined;
|
|
58
|
-
} | {
|
|
59
|
-
ok: boolean;
|
|
60
|
-
error: import("../../types.js").NpmInstallBlockedDetails & {
|
|
61
|
-
type: "NpmInstallBlocked";
|
|
62
|
-
};
|
|
63
|
-
message: string;
|
|
64
|
-
output?: undefined;
|
|
65
|
-
versionChanges?: undefined;
|
|
66
|
-
}>>;
|
|
85
|
+
proceedWithReason?: string | undefined;
|
|
86
|
+
}, InstallPackagesToolResult>>;
|
|
67
87
|
export {};
|
|
68
88
|
//# sourceMappingURL=build-install-packages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-install-packages.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-install-packages.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build-install-packages.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-install-packages.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQ7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,OAAO,KAAK,EACV,iBAAiB,IAAI,qBAAqB,EAE1C,+BAA+B,EAChC,MAAM,gBAAgB,CAAC;AAQxB,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,KAAK,yBAAyB,GAAG;IAC/B,KAAK,CAAC,EAAE,UAAU,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,KAAK,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACtC,CAAC;AAiCF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAOT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACjC,OAAO,EAAE,MAAM,GACd,MAAM,EAAE,CAWV;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACjC,OAAO,EAAE,MAAM,EACf,yBAAyB,EAAE,MAAM,EAAE,GAClC,MAAM,EAAE,CAOV;AAgHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,GAAG;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,+BAA+B,CAAC;CAC1C,CA2GA;AAsHD,eAAO,MAAM,+BAA+B;WAMjC,KAAK;cACF,uBAAuB;;;;;;;;8BA6SpC,CAAC"}
|
|
@@ -1,10 +1,118 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { metrics } from "@opentelemetry/api";
|
|
3
4
|
import z from "zod";
|
|
4
5
|
import { isProtectedCorePackage, PROTECTED_CORE_PACKAGES, } from "@superblocksteam/library-shared/types";
|
|
5
6
|
import { getErrorMeta, getLogger } from "../../../util/logger.js";
|
|
7
|
+
import { ADVISORY_DETAILS_MAX_LENGTH, ADVISORY_SUMMARY_MAX_LENGTH, triageVulnerability, } from "../../security/vulnerability-triage.js";
|
|
6
8
|
import { NpmInstallBlocked } from "../../types.js";
|
|
7
9
|
import { createToolFactory, ToolCategory } from "../tools2/types.js";
|
|
10
|
+
const TRIAGE_APP_CONTEXT_MAX_LENGTH = 20_000;
|
|
11
|
+
const PROCEED_WITH_REASON_MAX_LENGTH = 500;
|
|
12
|
+
/**
|
|
13
|
+
* Bound the advisory prose on the agent-facing projection. `NpmInstallBlocked`
|
|
14
|
+
* deliberately keeps the full text for the audit sink and the blocked-install
|
|
15
|
+
* log; the agent reads `error.findings` verbatim, so a multi-KB advisory would
|
|
16
|
+
* otherwise crowd out its context.
|
|
17
|
+
*/
|
|
18
|
+
function boundFindingsForAgent(payload) {
|
|
19
|
+
if (!payload.findings)
|
|
20
|
+
return payload;
|
|
21
|
+
return {
|
|
22
|
+
...payload,
|
|
23
|
+
findings: payload.findings.map((finding) => ({
|
|
24
|
+
...finding,
|
|
25
|
+
...(finding.details !== undefined
|
|
26
|
+
? { details: finding.details.slice(0, ADVISORY_DETAILS_MAX_LENGTH) }
|
|
27
|
+
: {}),
|
|
28
|
+
...(finding.summary !== undefined
|
|
29
|
+
? { summary: finding.summary.slice(0, ADVISORY_SUMMARY_MAX_LENGTH) }
|
|
30
|
+
: {}),
|
|
31
|
+
})),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function escapeRegExp(value) {
|
|
35
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* True when `packageName` appears as a literal token in `message`.
|
|
39
|
+
* Scoped names (`@scope/name`) and unscoped names are matched with npm-name
|
|
40
|
+
* boundaries so `react` does not match `preact` / `reactive`.
|
|
41
|
+
*
|
|
42
|
+
* The trailing boundary allows `@` (builders write `left-pad@1.3.0`) and a
|
|
43
|
+
* sentence-ending `.`, but not a `.` that continues the token (`left-pad.js`).
|
|
44
|
+
*/
|
|
45
|
+
export function isPackageNamedInMessage(packageName, message) {
|
|
46
|
+
if (packageName.length === 0 || message.length === 0)
|
|
47
|
+
return false;
|
|
48
|
+
const pattern = new RegExp(`(^|[^\\w@/.-])${escapeRegExp(packageName)}(?![\\w/-])(?!\\.\\w)`, "i");
|
|
49
|
+
return pattern.test(message);
|
|
50
|
+
}
|
|
51
|
+
export function findUserRequestedPackageNames(packages, message) {
|
|
52
|
+
const requested = [];
|
|
53
|
+
for (const pkg of packages) {
|
|
54
|
+
if (isPackageNamedInMessage(pkg.name, message) &&
|
|
55
|
+
!requested.includes(pkg.name)) {
|
|
56
|
+
requested.push(pkg.name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return requested;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Names from `packages` the builder asked for by name: either matched in the
|
|
63
|
+
* current turn's message, or carried over from an earlier turn's CVE block.
|
|
64
|
+
* The carry-over matters because the builder answers "do you still want it?"
|
|
65
|
+
* with a bare reason ("we need it for the demo") that never repeats the name.
|
|
66
|
+
*/
|
|
67
|
+
export function resolveUserRequestedPackageNames(packages, message, pendingCveProceedPackages) {
|
|
68
|
+
const named = findUserRequestedPackageNames(packages, message);
|
|
69
|
+
const carriedOver = pendingCveProceedPackages.filter((name) => !named.includes(name) && packages.some((pkg) => pkg.name === name));
|
|
70
|
+
return [...named, ...carriedOver];
|
|
71
|
+
}
|
|
72
|
+
function buildTriageAppContext(services) {
|
|
73
|
+
const serialized = JSON.stringify({
|
|
74
|
+
apis: services.appContextStore.apiSemanticsByName,
|
|
75
|
+
components: services.appContextStore.componentSemanticsById,
|
|
76
|
+
});
|
|
77
|
+
return serialized.slice(0, TRIAGE_APP_CONTEXT_MAX_LENGTH);
|
|
78
|
+
}
|
|
79
|
+
async function triageCveFindings(args) {
|
|
80
|
+
const { abortSignal, findings, services } = args;
|
|
81
|
+
const appContext = buildTriageAppContext(services);
|
|
82
|
+
const { model, providerConfig } = services.llmProvider.modelForTask("fast");
|
|
83
|
+
const verdicts = [];
|
|
84
|
+
for (const finding of findings) {
|
|
85
|
+
try {
|
|
86
|
+
verdicts.push(await triageVulnerability({
|
|
87
|
+
abortSignal,
|
|
88
|
+
appContext,
|
|
89
|
+
finding,
|
|
90
|
+
generateObject: async (generationArgs) => await services.llmClient.generateObject(generationArgs),
|
|
91
|
+
model,
|
|
92
|
+
modelName: providerConfig.model,
|
|
93
|
+
providerConfig,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
metrics
|
|
98
|
+
.getMeter("superblocks.clark.pkg_security")
|
|
99
|
+
.createCounter("superblocks.clark.pkg_security.triage_unavailable")
|
|
100
|
+
.add(1);
|
|
101
|
+
getLogger().warn("[pkg-security] CVE exploitability triage unavailable", getErrorMeta(error));
|
|
102
|
+
verdicts.push({
|
|
103
|
+
advisoryId: finding.advisoryId,
|
|
104
|
+
confidence: "low",
|
|
105
|
+
evaluatedAt: new Date().toISOString(),
|
|
106
|
+
model: providerConfig.model,
|
|
107
|
+
package: finding.package,
|
|
108
|
+
reasoning: "Automated exploitability triage was unavailable.",
|
|
109
|
+
stage: "install",
|
|
110
|
+
verdict: "uncertain",
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return verdicts;
|
|
115
|
+
}
|
|
8
116
|
async function readPackageJson(appRootDirPath) {
|
|
9
117
|
try {
|
|
10
118
|
const packageJsonPath = path.join(appRootDirPath, "package.json");
|
|
@@ -70,6 +178,13 @@ function isPublicNpmHost(host) {
|
|
|
70
178
|
* row + host is private. Appends "an org admin may need to mirror this
|
|
71
179
|
* package" because that's an actionable escalation on a private
|
|
72
180
|
* registry; same hint on npmjs would be misleading.
|
|
181
|
+
* - `malware_block` — `vulnerable_package` + malware finding. Hard-block;
|
|
182
|
+
* agent must pick a different package (no retry / no override).
|
|
183
|
+
* - `index_unavailable` — security index / dry-run probe could not vouch
|
|
184
|
+
* for the install. Fail-closed; retry later. Not a malware verdict.
|
|
185
|
+
* - `cve_block` / `cve_no_safe_version` — CVE findings listed per package
|
|
186
|
+
* (suggested pin vs no safe version). Variant is `cve_block` when any
|
|
187
|
+
* finding carries a suggested pin; otherwise `cve_no_safe_version`.
|
|
73
188
|
* - `default` — every other combination, including all
|
|
74
189
|
* `registry_auth_failed` failures.
|
|
75
190
|
*
|
|
@@ -176,8 +291,60 @@ export function buildBlockedMessage(err) {
|
|
|
176
291
|
variant: "default",
|
|
177
292
|
message: `The TLS handshake with the npm registry${host} failed (${errorCode ?? "TLS error"}). Common causes: an untrusted private CA the registry serves, a self-signed certificate, or an expired certificate. An administrator must install the registry's CA bundle (e.g. via NODE_EXTRA_CA_CERTS or the npm cafile config) or rotate the expired certificate. Alternative packages will not help — stop and report the failure to the user.`,
|
|
178
293
|
};
|
|
294
|
+
case "vulnerable_package":
|
|
295
|
+
return buildVulnerablePackageMessage(err, packagesPhrase);
|
|
179
296
|
}
|
|
180
297
|
}
|
|
298
|
+
function formatFindingLine(finding) {
|
|
299
|
+
const pkg = `\`${sanitizeForAgentMessage(finding.package)}\``;
|
|
300
|
+
const advisoryId = finding.advisoryId
|
|
301
|
+
? sanitizeForAgentMessage(finding.advisoryId)
|
|
302
|
+
: "";
|
|
303
|
+
const advisoryPhrase = advisoryId ? ` (advisory: ${advisoryId})` : "";
|
|
304
|
+
if (finding.kind === "malware") {
|
|
305
|
+
return `- ${pkg} — known malware${advisoryPhrase}`;
|
|
306
|
+
}
|
|
307
|
+
if (finding.kind === "index_unavailable") {
|
|
308
|
+
return `- ${pkg} — could not be security-checked (index/probe unavailable)`;
|
|
309
|
+
}
|
|
310
|
+
if (finding.suggestedVersion) {
|
|
311
|
+
const suggested = sanitizeForAgentMessage(finding.suggestedVersion);
|
|
312
|
+
return `- ${pkg} — known vulnerability${advisoryPhrase}. A safer version (${suggested}) exists but could not be applied in place`;
|
|
313
|
+
}
|
|
314
|
+
return `- ${pkg} — known vulnerability${advisoryPhrase} with no safe version available`;
|
|
315
|
+
}
|
|
316
|
+
function buildVulnerablePackageMessage(err, packagesPhrase) {
|
|
317
|
+
const findings = err.findings ?? [];
|
|
318
|
+
const indexUnavailableFindings = findings.filter((finding) => finding.kind === "index_unavailable");
|
|
319
|
+
if (indexUnavailableFindings.length > 0) {
|
|
320
|
+
const lines = indexUnavailableFindings.map(formatFindingLine).join("\n");
|
|
321
|
+
return {
|
|
322
|
+
variant: "index_unavailable",
|
|
323
|
+
message: `Security policy could not verify these packages (vulnerability index or install probe unavailable):\n${lines}\nFailing closed. Do not treat this as a malware verdict — retry the install later, or choose a different package if the check keeps failing.`,
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const malwareFindings = findings.filter((finding) => finding.kind === "malware");
|
|
327
|
+
if (malwareFindings.length > 0) {
|
|
328
|
+
const lines = malwareFindings.map(formatFindingLine).join("\n");
|
|
329
|
+
return {
|
|
330
|
+
variant: "malware_block",
|
|
331
|
+
message: `Security policy blocked these packages:\n${lines}\nDo not install them or try to work around this block — choose a different reputable package that serves the same purpose.`,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
const cveFindings = findings.filter((finding) => finding.kind === "cve");
|
|
335
|
+
if (cveFindings.length > 0) {
|
|
336
|
+
const lines = cveFindings.map(formatFindingLine).join("\n");
|
|
337
|
+
const hasSuggested = cveFindings.some((finding) => finding.suggestedVersion !== undefined);
|
|
338
|
+
return {
|
|
339
|
+
variant: hasSuggested ? "cve_block" : "cve_no_safe_version",
|
|
340
|
+
message: `Security policy blocked these packages:\n${lines}\nDo not retry the same packages — propose a different reputable package that serves the same purpose, then install it with this tool so it can be re-checked.`,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
return {
|
|
344
|
+
variant: "cve_no_safe_version",
|
|
345
|
+
message: `${packagesPhrase} has a known vulnerability with no safe version available. Do not retry the same package — choose a different reputable package that serves the same purpose.`,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
181
348
|
function detectVersionChanges(packages, currentPackageJson) {
|
|
182
349
|
if (!currentPackageJson)
|
|
183
350
|
return [];
|
|
@@ -198,6 +365,18 @@ function detectVersionChanges(packages, currentPackageJson) {
|
|
|
198
365
|
}
|
|
199
366
|
return changes;
|
|
200
367
|
}
|
|
368
|
+
function buildSuccessfulSpecificInstallResult(args) {
|
|
369
|
+
const { output, packages, versionChanges } = args;
|
|
370
|
+
const packageNames = packages.map((pkg) => pkg.name).join(", ");
|
|
371
|
+
let message = `Successfully installed packages: ${packageNames}`;
|
|
372
|
+
if (versionChanges.length > 0) {
|
|
373
|
+
const changeDetails = versionChanges
|
|
374
|
+
.map((change) => ` - ${change.name}: ${change.oldVersion} → ${change.newVersion}${change.isDev ? " (dev)" : ""}`)
|
|
375
|
+
.join("\n");
|
|
376
|
+
message += `\n\nVersion changes detected:\n${changeDetails}\n\n⚠️ WARNING: Version changes may affect existing components that depend on these packages. Consider checking for breaking changes.`;
|
|
377
|
+
}
|
|
378
|
+
return { message, output, versionChanges };
|
|
379
|
+
}
|
|
201
380
|
export const buildInstallPackagesToolFactory = createToolFactory("build_installPackages", ({ clark, services, }) => {
|
|
202
381
|
return {
|
|
203
382
|
category: ToolCategory.GENERAL,
|
|
@@ -210,7 +389,41 @@ export const buildInstallPackagesToolFactory = createToolFactory("build_installP
|
|
|
210
389
|
If no packages are specified, runs a standard install to update dependencies from package.json.
|
|
211
390
|
|
|
212
391
|
This tool checks for existing package versions, warns about version changes as version upgrades may break existing components.
|
|
392
|
+
|
|
393
|
+
After a user-requested CVE block (\`userRequested\` on the tool result), ask the builder for a short reason and retry with \`proceedWithReason\` set to that reason. Never invent a proceed reason.
|
|
213
394
|
`,
|
|
395
|
+
getActionName: (input) => input?.proceedWithReason
|
|
396
|
+
? {
|
|
397
|
+
future: "Install blocked package with builder approval",
|
|
398
|
+
past: "Installed blocked package with builder approval",
|
|
399
|
+
present: "Installing blocked package with builder approval",
|
|
400
|
+
}
|
|
401
|
+
: {
|
|
402
|
+
future: "Install packages",
|
|
403
|
+
past: "Installed packages",
|
|
404
|
+
present: "Installing packages",
|
|
405
|
+
},
|
|
406
|
+
formatInput: (input) => {
|
|
407
|
+
const packages = input.packages;
|
|
408
|
+
const proceedWithReason = input.proceedWithReason;
|
|
409
|
+
const packageNames = (packages ?? []).map((pkg) => pkg.name);
|
|
410
|
+
if (!proceedWithReason) {
|
|
411
|
+
return {
|
|
412
|
+
targets: packageNames,
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
const triggeringMessage = services.chatSessionStore?.getLastUserMessage()?.content ?? "";
|
|
416
|
+
const namedByBuilder = resolveUserRequestedPackageNames(packages ?? [], triggeringMessage, clark.context.pendingCveProceedPackages ?? []);
|
|
417
|
+
const safeReason = sanitizeForAgentMessage(proceedWithReason.slice(0, PROCEED_WITH_REASON_MAX_LENGTH));
|
|
418
|
+
const namedPhrase = namedByBuilder.length > 0
|
|
419
|
+
? `The builder named ${namedByBuilder.map((name) => `\`${sanitizeForAgentMessage(name)}\``).join(", ")}`
|
|
420
|
+
: "The builder provided a proceed reason for a security-blocked install";
|
|
421
|
+
return {
|
|
422
|
+
details: `Reason: ${safeReason}`,
|
|
423
|
+
summary: `Install security-blocked package(s) anyway? ${namedPhrase}.`,
|
|
424
|
+
targets: namedByBuilder.length > 0 ? namedByBuilder : packageNames,
|
|
425
|
+
};
|
|
426
|
+
},
|
|
214
427
|
inputSchema: z.object({
|
|
215
428
|
packages: z
|
|
216
429
|
.array(z.object({
|
|
@@ -228,32 +441,60 @@ export const buildInstallPackagesToolFactory = createToolFactory("build_installP
|
|
|
228
441
|
}))
|
|
229
442
|
.optional()
|
|
230
443
|
.describe("Packages to install. If not provided or empty, runs a standard install to update dependencies from package.json"),
|
|
444
|
+
proceedWithReason: z
|
|
445
|
+
.string()
|
|
446
|
+
.max(PROCEED_WITH_REASON_MAX_LENGTH)
|
|
447
|
+
.optional()
|
|
448
|
+
.describe("Builder-provided reason to proceed past a user-requested CVE block. Only set after the builder named the package and confirmed; triggers a confirmation prompt."),
|
|
231
449
|
}),
|
|
232
|
-
execute: async ({ packages }) => {
|
|
450
|
+
execute: async ({ packages, proceedWithReason, }) => {
|
|
451
|
+
let versionChanges = [];
|
|
452
|
+
const triggeringMessage = services.chatSessionStore?.getLastUserMessage()?.content ?? "";
|
|
453
|
+
const userRequested = packages && packages.length > 0
|
|
454
|
+
? resolveUserRequestedPackageNames(packages, triggeringMessage, clark.context.pendingCveProceedPackages ?? [])
|
|
455
|
+
: [];
|
|
456
|
+
const trimmedProceedReason = proceedWithReason?.trim() ?? "";
|
|
457
|
+
const overridePackages = trimmedProceedReason.length > 0 ? userRequested : [];
|
|
458
|
+
const cveUserOverride = overridePackages.length > 0
|
|
459
|
+
? {
|
|
460
|
+
packages: overridePackages,
|
|
461
|
+
reason: trimmedProceedReason.slice(0, PROCEED_WITH_REASON_MAX_LENGTH),
|
|
462
|
+
}
|
|
463
|
+
: undefined;
|
|
464
|
+
/** Spend the one-shot proceed approval once the install actually
|
|
465
|
+
* lands. Spending it on a failed attempt instead would strand the
|
|
466
|
+
* builder — their next reply is a bare "yes, go ahead" that never
|
|
467
|
+
* repeats the package name. Auditing the override belongs to the
|
|
468
|
+
* install gate, which knows whether it was the override that let the
|
|
469
|
+
* install through. */
|
|
470
|
+
const spendProceedApproval = () => {
|
|
471
|
+
if (!cveUserOverride)
|
|
472
|
+
return;
|
|
473
|
+
clark.updateContext({ pendingCveProceedPackages: undefined });
|
|
474
|
+
};
|
|
233
475
|
try {
|
|
234
476
|
// create draft marker for package.json
|
|
235
477
|
await services.draftInterface.createDraftMarkerOnly("package.json");
|
|
236
478
|
let output;
|
|
237
|
-
let versionChanges = [];
|
|
238
479
|
if (packages && packages.length > 0) {
|
|
239
480
|
const currentPackageJson = await readPackageJson(services.appShell.appRootDirPath);
|
|
240
481
|
versionChanges = detectVersionChanges(packages, currentPackageJson);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
.map((change) => ` - ${change.name}: ${change.oldVersion} → ${change.newVersion}${change.isDev ? " (dev)" : ""}`)
|
|
249
|
-
.join("\n");
|
|
250
|
-
message += `\n\nVersion changes detected:\n${changeDetails}\n\n⚠️ WARNING: Version changes may affect existing components that depend on these packages. Consider checking for breaking changes.`;
|
|
482
|
+
if (trimmedProceedReason.length > 0 &&
|
|
483
|
+
overridePackages.length === 0) {
|
|
484
|
+
return {
|
|
485
|
+
message: "proceedWithReason was set, but the builder never named any of these packages. Only packages the builder asked for by name can proceed past a CVE block.",
|
|
486
|
+
ok: false,
|
|
487
|
+
userRequested,
|
|
488
|
+
};
|
|
251
489
|
}
|
|
252
|
-
|
|
490
|
+
// Mode 1: Install specific packages
|
|
491
|
+
output = await services.appShell.installSpecificPackages(packages, clark.context.abortController?.signal, ...(cveUserOverride ? [{ cveUserOverride }] : []));
|
|
492
|
+
spendProceedApproval();
|
|
493
|
+
return buildSuccessfulSpecificInstallResult({
|
|
253
494
|
output,
|
|
254
|
-
|
|
495
|
+
packages,
|
|
255
496
|
versionChanges,
|
|
256
|
-
};
|
|
497
|
+
});
|
|
257
498
|
}
|
|
258
499
|
else {
|
|
259
500
|
// Mode 2: Install from package.json
|
|
@@ -271,6 +512,18 @@ export const buildInstallPackagesToolFactory = createToolFactory("build_installP
|
|
|
271
512
|
// bubble up to agent-planning's POST_PROCESSING_ERRORED branch
|
|
272
513
|
// (which only emits a raw stderr `debug()` message).
|
|
273
514
|
if (error instanceof NpmInstallBlocked) {
|
|
515
|
+
let triageVerdicts;
|
|
516
|
+
const cveFindings = error.findings?.filter((finding) => finding.kind === "cve");
|
|
517
|
+
if (packages?.length && cveFindings?.length) {
|
|
518
|
+
triageVerdicts = await triageCveFindings({
|
|
519
|
+
abortSignal: clark.context.abortController?.signal,
|
|
520
|
+
findings: cveFindings,
|
|
521
|
+
services,
|
|
522
|
+
});
|
|
523
|
+
for (const verdict of triageVerdicts) {
|
|
524
|
+
services.appShell.reportNpmTriageVerdict(verdict);
|
|
525
|
+
}
|
|
526
|
+
}
|
|
274
527
|
// `warn` (not `info`) because operators want this to surface in
|
|
275
528
|
// standard `level>=warn` alert queries: a blocked install is a
|
|
276
529
|
// handled, recoverable condition (the agent gets structured
|
|
@@ -289,14 +542,38 @@ export const buildInstallPackagesToolFactory = createToolFactory("build_installP
|
|
|
289
542
|
// points as llmobs span tags; the warn log is the structured
|
|
290
543
|
// counterpart that survives outside of trace sampling.
|
|
291
544
|
const { message, variant } = buildBlockedMessage(error);
|
|
545
|
+
const findings = error.findings ?? [];
|
|
546
|
+
const hasMalwareFinding = findings.some((finding) => finding.kind === "malware");
|
|
547
|
+
const cveUserRequested = userRequested.filter((name) => findings.some((finding) => finding.kind === "cve" &&
|
|
548
|
+
(finding.package === name ||
|
|
549
|
+
finding.package.startsWith(`${name}@`))));
|
|
550
|
+
const canProceed = cveUserRequested.length > 0 && !hasMalwareFinding;
|
|
551
|
+
const userRequestedGuidance = canProceed
|
|
552
|
+
? `\n\nuserRequested packages: ${cveUserRequested.map((name) => `\`${sanitizeForAgentMessage(name)}\``).join(", ")}. The builder asked for these by name. Warn them, ask for a short proceed reason if they still want the install, then retry this tool with \`proceedWithReason\` set to that reason.`
|
|
553
|
+
: "";
|
|
554
|
+
if (canProceed) {
|
|
555
|
+
// The builder's answer lands on a later turn and won't repeat the
|
|
556
|
+
// package name, so remember which names they may proceed with.
|
|
557
|
+
clark.updateContext({
|
|
558
|
+
pendingCveProceedPackages: cveUserRequested,
|
|
559
|
+
});
|
|
560
|
+
}
|
|
292
561
|
getLogger().warn("Install blocked by registry condition", {
|
|
293
562
|
...error.toJSON(),
|
|
294
563
|
messageVariant: variant,
|
|
564
|
+
...(triageVerdicts ? { triageVerdicts } : {}),
|
|
565
|
+
...(cveUserRequested.length > 0
|
|
566
|
+
? { userRequested: cveUserRequested }
|
|
567
|
+
: {}),
|
|
295
568
|
});
|
|
296
569
|
return {
|
|
297
570
|
ok: false,
|
|
298
|
-
error: error.toJSON(),
|
|
299
|
-
message
|
|
571
|
+
error: boundFindingsForAgent(error.toJSON()),
|
|
572
|
+
message: `${message}${userRequestedGuidance}`,
|
|
573
|
+
...(triageVerdicts ? { triageVerdicts } : {}),
|
|
574
|
+
...(cveUserRequested.length > 0
|
|
575
|
+
? { userRequested: cveUserRequested }
|
|
576
|
+
: {}),
|
|
300
577
|
};
|
|
301
578
|
}
|
|
302
579
|
getLogger().error("Error installing packages", getErrorMeta(error));
|
|
@@ -305,9 +582,11 @@ export const buildInstallPackagesToolFactory = createToolFactory("build_installP
|
|
|
305
582
|
},
|
|
306
583
|
getSummary: (input, output) => {
|
|
307
584
|
// Blocked-install result is the failure path: surface the reason
|
|
308
|
-
// instead of pretending the install succeeded.
|
|
309
|
-
|
|
310
|
-
|
|
585
|
+
// instead of pretending the install succeeded. Keyed on `ok` alone —
|
|
586
|
+
// the proceed-rejection path fails before npm runs, so it carries no
|
|
587
|
+
// structured `error` to read a reason from.
|
|
588
|
+
if (output?.ok === false) {
|
|
589
|
+
const blockedOutput = `Blocked: ${output.error?.reason ?? "install not attempted"}`;
|
|
311
590
|
// Mirror the success branch: omit the `input` field on the no-args
|
|
312
591
|
// install path (runPackageManagerInstall) so the summary doesn't
|
|
313
592
|
// render `"0 packages: "` with a dangling colon.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-install-packages.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-install-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAcrE,KAAK,UAAU,eAAe,CAC5B,cAAsB;IAEtB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;4EAe4E;AAC5E,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,SAAS,uBAAuB,CAAC,KAAa;IAC5C,0FAA0F;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAC9D,OAAO,QAAQ,CAAC,MAAM,GAAG,mBAAmB;QAC1C,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG;QAC9C,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED;;;;;;;qEAOqE;AACrE,SAAS,eAAe,CAAC,IAAwB;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC7B,OAAO,CACL,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC5E,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAA0B;IAI5D,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY;QAC/B,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,cAAc,GAClB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzE,CAAC,CAAC,uBAAuB,CAAC;IAC9B,kEAAkE;IAClE,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,4BAA4B,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3D,sBAAsB,CAAC,CAAC,CAAC,CAC1B;QACC,CAAC,CAAC,qFAAqF,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,oJAAoJ;QAC7Q,CAAC,CAAC,EAAE,CAAC;IACP,0EAA0E;IAC1E,oEAAoE;IACpE,yEAAyE;IACzE,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,KAAK,KAAK,CAAC;IACvD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC;IAEnC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,mBAAmB,GAAG,WAAW,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC;YACpE,IAAI,mBAAmB,EAAE,CAAC;gBACxB,qEAAqE;gBACrE,oEAAoE;gBACpE,qEAAqE;gBACrE,qEAAqE;gBACrE,6DAA6D;gBAC7D,OAAO;oBACL,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE,mBAAmB,IAAI,qBAAqB,cAAc,0RAA0R,4BAA4B,EAAE;iBAC5X,CAAC;YACJ,CAAC;YACD,mEAAmE;YACnE,sEAAsE;YACtE,oDAAoD;YACpD,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,mBAAmB,IAAI,qBAAqB,cAAc,8MAA8M,4BAA4B,EAAE;aAChT,CAAC;QACJ,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,8DAA8D;YAC9D,oEAAoE;YACpE,iEAAiE;YACjE,mEAAmE;YACnE,qCAAqC;YACrC,MAAM,0BAA0B,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC;YAChE,MAAM,gBAAgB,GAAG,GAAG,CAAC,wBAAwB,KAAK,KAAK,CAAC;YAChE,IAAI,0BAA0B,IAAI,gBAAgB,EAAE,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE,wBAAwB;oBACjC,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,SAAS,IAAI,eAAe,qUAAqU;iBAC5Z,CAAC;YACJ,CAAC;YACD,sEAAsE;YACtE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,kDAAkD;YAClD,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE;gBAClC,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;oBACtB,KAAK,KAAK;wBACR,OAAO,oHAAoH,CAAC;oBAC9H,KAAK,SAAS;wBACZ,OAAO,oHAAoH,CAAC;oBAC9H,KAAK,OAAO;wBACV,OAAO,yGAAyG,CAAC;oBACnH,KAAK,SAAS;wBACZ,OAAO,2FAA2F,CAAC;oBACrG;wBACE,OAAO,EAAE,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,kEAAkE;YAClE,qEAAqE;YACrE,oEAAoE;YACpE,qEAAqE;YACrE,iBAAiB;YACjB,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,mBAAmB,IAAI,0BAA0B,SAAS,IAAI,eAAe,wIAAwI,aAAa,gFAAgF;aAC5T,CAAC;QACJ,CAAC;QACD,KAAK,sBAAsB;YACzB,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,8BAA8B,IAAI,6CAA6C,SAAS,IAAI,YAAY,mIAAmI;aACrP,CAAC;QACJ,KAAK,YAAY;YACf,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,0CAA0C,IAAI,YAAY,SAAS,IAAI,WAAW,sVAAsV;aAClb,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,QAAkE,EAClE,kBAAsC;IAEtC,IAAI,CAAC,kBAAkB;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAwB,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAG,KAAK;YAC1B,CAAC,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,cAAc,IAAI,GAAG,CAAC,OAAO,IAAI,cAAc,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,cAAc;gBAC1B,UAAU,EAAE,GAAG,CAAC,OAAO;gBACvB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAC9D,uBAAuB,EACvB,CAAC,EACC,KAAK,EACL,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,OAAO;QAC9B,WAAW,EAAE;;;;;;;;;KASd;QACC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC;iBACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAC;qBACJ,MAAM,EAAE;qBACR,QAAQ,CACP,uDAAuD,CACxD;gBACH,OAAO,EAAE,CAAC;qBACP,MAAM,EAAE;qBACR,QAAQ,EAAE;qBACV,QAAQ,CACP,gGAAgG,CACjG;gBACH,GAAG,EAAE,CAAC;qBACH,OAAO,EAAE;qBACT,QAAQ,EAAE;qBACV,QAAQ,CACP,2DAA2D,CAC5D;aACJ,CAAC,CACH;iBACA,QAAQ,EAAE;iBACV,QAAQ,CACP,iHAAiH,CAClH;SACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9B,IAAI,CAAC;gBACH,uCAAuC;gBACvC,MAAM,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;gBACpE,IAAI,MAAc,CAAC;gBACnB,IAAI,cAAc,GAAwB,EAAE,CAAC;gBAE7C,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,MAAM,kBAAkB,GAAG,MAAM,eAAe,CAC9C,QAAQ,CAAC,QAAQ,CAAC,cAAc,CACjC,CAAC;oBACF,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;oBAEpE,oCAAoC;oBACpC,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CACtD,QAAQ,EACR,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CACtC,CAAC;oBAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChE,IAAI,OAAO,GAAG,oCAAoC,YAAY,EAAE,CAAC;oBAEjE,wCAAwC;oBACxC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9B,MAAM,aAAa,GAAG,cAAc;6BACjC,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,MAAM,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACnG;6BACA,IAAI,CAAC,IAAI,CAAC,CAAC;wBACd,OAAO,IAAI,kCAAkC,aAAa,wIAAwI,CAAC;oBACrM,CAAC;oBAED,OAAO;wBACL,MAAM;wBACN,OAAO;wBACP,cAAc;qBACf,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,oCAAoC;oBACpC,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CACvD,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CACtC,CAAC;oBACF,OAAO;wBACL,MAAM;wBACN,OAAO,EAAE,kDAAkD;qBAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mEAAmE;gBACnE,iEAAiE;gBACjE,8DAA8D;gBAC9D,+DAA+D;gBAC/D,qDAAqD;gBACrD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACvC,gEAAgE;oBAChE,+DAA+D;oBAC/D,4DAA4D;oBAC5D,gEAAgE;oBAChE,+DAA+D;oBAC/D,0DAA0D;oBAC1D,2DAA2D;oBAC3D,6DAA6D;oBAC7D,wBAAwB;oBACxB,EAAE;oBACF,+DAA+D;oBAC/D,4DAA4D;oBAC5D,6DAA6D;oBAC7D,6DAA6D;oBAC7D,4DAA4D;oBAC5D,6DAA6D;oBAC7D,uDAAuD;oBACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBACxD,SAAS,EAAE,CAAC,IAAI,CAAC,uCAAuC,EAAE;wBACxD,GAAG,KAAK,CAAC,MAAM,EAAE;wBACjB,cAAc,EAAE,OAAO;qBACxB,CAAC,CAAC;oBACH,OAAO;wBACL,EAAE,EAAE,KAAK;wBACT,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;wBACrB,OAAO;qBACR,CAAC;gBACJ,CAAC;gBACD,SAAS,EAAE,CAAC,KAAK,CAAC,2BAA2B,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC5B,iEAAiE;YACjE,+CAA+C;YAC/C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;gBACpD,MAAM,aAAa,GAAG,YAAY,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACxD,mEAAmE;gBACnE,iEAAiE;gBACjE,iDAAiD;gBACjD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,OAAO;wBACL,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,WAAW,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;wBAC5F,MAAM,EAAE,aAAa;qBACtB,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,MAAM,EAAE,aAAa;iBACtB,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,EAAE,MAAM;oBAClD,CAAC,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,MAAM,kBAAkB,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;oBACrG,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO;oBACL,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,WAAW,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;oBAC5F,MAAM,EAAE,YAAY,cAAc,EAAE;iBACrC,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,sBAAsB;aAC/B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"build-install-packages.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-install-packages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-manage-checklist.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-manage-checklist.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAG1C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,KACrB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CAgBA,CAAC;AAEF,eAAO,MAAM,+BAA+B;WAElB,KAAK;cAAY,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"build-manage-checklist.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-manage-checklist.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAG1C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,KACrB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B,CAgBA,CAAC;AAEF,eAAO,MAAM,+BAA+B;WAElB,KAAK;cAAY,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2SjE,CAAC"}
|
|
@@ -37,7 +37,8 @@ export const buildManageChecklistToolFactory = createToolFactory("build_manageCh
|
|
|
37
37
|
- Tasks that can be completed in fewer than 3 trivial steps
|
|
38
38
|
|
|
39
39
|
**Checklist behavior rules:**
|
|
40
|
-
- Only
|
|
40
|
+
- Only ONE hands-on item "in_progress" at a time — finish or update the current item before starting the next
|
|
41
|
+
- An item waiting on a background task is the exception: leave it "in_progress" while the task runs and start the next hands-on item, so the user sees both moving at once
|
|
41
42
|
- Mark items "completed" immediately after finishing them; do not batch completions
|
|
42
43
|
- Only add items you intend to complete — incomplete items block build_finalize
|
|
43
44
|
- If a task cannot be completed, mark it "failed" with a failureReason — never leave items stuck as "pending" or "in_progress"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-manage-checklist.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-manage-checklist.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,8CAA8C,CAAC;AAKtD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAarE,4CAA4C;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAC3C,cAAsB,EAIrB,EAAE;IACH,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACpE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CACrE,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;QACnC,YAAY;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAC9D,uBAAuB,EACvB,CAAC,EAAE,QAAQ,EAAuD,EAAE,EAAE;IACpE,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,OAAO;QAC9B,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"build-manage-checklist.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-manage-checklist.ts"],"names":[],"mappings":"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"}
|