@ngocsangairvds/vsaf 5.1.2 → 5.1.4
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/package.json +6 -4
- package/packages/cli/dist/commands/feature.d.ts +7 -0
- package/packages/cli/dist/commands/feature.d.ts.map +1 -0
- package/packages/cli/dist/commands/feature.js +18 -0
- package/packages/cli/dist/commands/feature.js.map +1 -0
- package/packages/cli/dist/commands/install.d.ts +1 -0
- package/packages/cli/dist/commands/install.d.ts.map +1 -1
- package/packages/cli/dist/commands/install.js.map +1 -1
- package/packages/cli/dist/commands/resume.d.ts +7 -0
- package/packages/cli/dist/commands/resume.d.ts.map +1 -0
- package/packages/cli/dist/commands/resume.js +69 -0
- package/packages/cli/dist/commands/resume.js.map +1 -0
- package/packages/cli/dist/commands/run.d.ts.map +1 -1
- package/packages/cli/dist/commands/run.js +59 -3
- package/packages/cli/dist/commands/run.js.map +1 -1
- package/packages/cli/dist/index.d.ts +1 -1
- package/packages/cli/dist/index.js +43 -8
- package/packages/cli/dist/index.js.map +1 -1
- package/packages/cli/dist/install/config.d.ts +3 -0
- package/packages/cli/dist/install/config.d.ts.map +1 -1
- package/packages/cli/dist/install/config.js +7 -1
- package/packages/cli/dist/install/config.js.map +1 -1
- package/packages/cli/dist/install/orchestrator.d.ts.map +1 -1
- package/packages/cli/dist/install/orchestrator.js +11 -1
- package/packages/cli/dist/install/orchestrator.js.map +1 -1
- package/packages/cli/dist/server/routes/runs.d.ts.map +1 -1
- package/packages/cli/dist/server/routes/runs.js +89 -0
- package/packages/cli/dist/server/routes/runs.js.map +1 -1
- package/packages/cli/dist/server/routes/workflows.d.ts.map +1 -1
- package/packages/cli/dist/server/routes/workflows.js +19 -0
- package/packages/cli/dist/server/routes/workflows.js.map +1 -1
- package/packages/core/dist/config/config-loader.d.ts +11 -0
- package/packages/core/dist/config/config-loader.d.ts.map +1 -1
- package/packages/core/dist/config/config-loader.js +69 -0
- package/packages/core/dist/config/config-loader.js.map +1 -1
- package/packages/core/dist/index.d.ts +5 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +14 -1
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/isolation/isolation-policy.d.ts +19 -0
- package/packages/core/dist/isolation/isolation-policy.d.ts.map +1 -0
- package/packages/core/dist/isolation/isolation-policy.js +52 -0
- package/packages/core/dist/isolation/isolation-policy.js.map +1 -0
- package/packages/core/dist/isolation/workspace-manager.d.ts +1 -1
- package/packages/core/dist/isolation/workspace-manager.d.ts.map +1 -1
- package/packages/core/dist/isolation/workspace-manager.js +12 -11
- package/packages/core/dist/isolation/workspace-manager.js.map +1 -1
- package/packages/core/dist/providers/command-provider.d.ts +35 -0
- package/packages/core/dist/providers/command-provider.d.ts.map +1 -0
- package/packages/core/dist/providers/command-provider.js +165 -0
- package/packages/core/dist/providers/command-provider.js.map +1 -0
- package/packages/core/dist/providers/default-adapters.js +2 -2
- package/packages/core/dist/providers/default-adapters.js.map +1 -1
- package/packages/core/dist/runtime/executor.d.ts +44 -0
- package/packages/core/dist/runtime/executor.d.ts.map +1 -0
- package/packages/core/dist/runtime/executor.js +123 -0
- package/packages/core/dist/runtime/executor.js.map +1 -0
- package/packages/core/dist/runtime/index.d.ts +5 -0
- package/packages/core/dist/runtime/index.d.ts.map +1 -0
- package/packages/core/dist/runtime/index.js +30 -0
- package/packages/core/dist/runtime/index.js.map +1 -0
- package/packages/core/dist/runtime/legacy-loader.d.ts +10 -0
- package/packages/core/dist/runtime/legacy-loader.d.ts.map +1 -0
- package/packages/core/dist/runtime/legacy-loader.js +110 -0
- package/packages/core/dist/runtime/legacy-loader.js.map +1 -0
- package/packages/core/dist/runtime/load-workflow.d.ts +10 -0
- package/packages/core/dist/runtime/load-workflow.d.ts.map +1 -0
- package/packages/core/dist/runtime/load-workflow.js +208 -0
- package/packages/core/dist/runtime/load-workflow.js.map +1 -0
- package/packages/core/dist/runtime/types.d.ts +28 -0
- package/packages/core/dist/runtime/types.d.ts.map +1 -0
- package/packages/core/dist/runtime/types.js +3 -0
- package/packages/core/dist/runtime/types.js.map +1 -0
- package/packages/core/dist/store/run-store.d.ts +1 -1
- package/packages/core/dist/store/run-store.d.ts.map +1 -1
- package/packages/core/dist/store/run-store.js +1 -2
- package/packages/core/dist/store/run-store.js.map +1 -1
- package/packages/core/dist/store/sqlite-schema.d.ts +2 -0
- package/packages/core/dist/store/sqlite-schema.d.ts.map +1 -0
- package/packages/core/dist/store/sqlite-schema.js +85 -0
- package/packages/core/dist/store/sqlite-schema.js.map +1 -0
- package/packages/core/dist/store/sqlite-workflow-store.d.ts +114 -0
- package/packages/core/dist/store/sqlite-workflow-store.d.ts.map +1 -0
- package/packages/core/dist/store/sqlite-workflow-store.js +234 -0
- package/packages/core/dist/store/sqlite-workflow-store.js.map +1 -0
- package/packages/web/dist/web/3rdpartylicenses.txt +5 -212
- package/packages/web/dist/web/browser/chunk-IPMFXW6N.js +1 -0
- package/packages/web/dist/web/browser/chunk-IX2QWMX2.js +1 -0
- package/packages/web/dist/web/browser/chunk-QMAH5NZC.js +1 -0
- package/packages/web/dist/web/browser/{chunk-7PK6Q4UU.js → chunk-RGFLNLPM.js} +1 -1
- package/packages/web/dist/web/browser/chunk-RKWDHBN3.js +5 -0
- package/packages/web/dist/web/browser/chunk-XGYEZIV4.js +1 -0
- package/packages/web/dist/web/browser/index.html +1 -1
- package/packages/web/dist/web/browser/main-IIUZVPMI.js +1 -0
- package/packages/web/dist/web/browser/chunk-2QJBTGYU.js +0 -3
- package/packages/web/dist/web/browser/chunk-3VYLP4FZ.js +0 -1
- package/packages/web/dist/web/browser/chunk-6HRQZQXD.js +0 -1
- package/packages/web/dist/web/browser/chunk-O7TQGEFF.js +0 -8
- package/packages/web/dist/web/browser/chunk-PWF76NCM.js +0 -1
- package/packages/web/dist/web/browser/main-AZU5W3KI.js +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type IdeId } from '../adapters/adapter.js';
|
|
2
2
|
export declare const CONFIG_VERSION = 1;
|
|
3
|
+
export type IdeArtifactsMode = 'none' | 'proxy';
|
|
3
4
|
export interface InstallConfig {
|
|
4
5
|
version: number;
|
|
5
6
|
ides: IdeId[];
|
|
6
7
|
packs: string[];
|
|
8
|
+
ideArtifacts?: IdeArtifactsMode;
|
|
7
9
|
vsafVersion?: string;
|
|
8
10
|
updatedAt?: string;
|
|
9
11
|
}
|
|
@@ -22,6 +24,7 @@ export declare function mergeConfig(existing: InstallConfig, add: {
|
|
|
22
24
|
ides: IdeId[];
|
|
23
25
|
packs: string[];
|
|
24
26
|
vsafVersion: string;
|
|
27
|
+
ideArtifacts?: IdeArtifactsMode;
|
|
25
28
|
}): InstallConfig;
|
|
26
29
|
export declare function writeConfig(projectPath: string, config: InstallConfig): void;
|
|
27
30
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/install/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEvE,eAAO,MAAM,cAAc,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/install/config.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEvE,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,mFAAmF;AACnF,wBAAgB,WAAW,IAAI,aAAa,CAE3C;AAoBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAuB7D;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CACzB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE;IAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAC5F,aAAa,CAWf;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAI5E"}
|
|
@@ -38,6 +38,9 @@ function uniqueValidIdes(values) {
|
|
|
38
38
|
// Preserve canonical order for deterministic output.
|
|
39
39
|
return adapter_js_1.ALL_IDES.filter(id => seen.has(id));
|
|
40
40
|
}
|
|
41
|
+
function validIdeArtifacts(value) {
|
|
42
|
+
return value === 'none' || value === 'proxy' ? value : undefined;
|
|
43
|
+
}
|
|
41
44
|
/**
|
|
42
45
|
* Read install config. Missing file → default `[claude]` (back-compat for
|
|
43
46
|
* projects installed before multi-IDE). Corrupt JSON → warn + default.
|
|
@@ -57,10 +60,12 @@ function readConfig(projectPath) {
|
|
|
57
60
|
}
|
|
58
61
|
const ides = uniqueValidIdes(parsed.ides);
|
|
59
62
|
const packs = Array.isArray(parsed.packs) ? parsed.packs.filter((p) => typeof p === 'string') : [];
|
|
63
|
+
const ideArtifacts = validIdeArtifacts(parsed.ideArtifacts);
|
|
60
64
|
return {
|
|
61
65
|
version: typeof parsed.version === 'number' ? parsed.version : exports.CONFIG_VERSION,
|
|
62
|
-
ides: ides.length > 0 ? ides : ['claude'],
|
|
66
|
+
ides: ides.length > 0 || ideArtifacts === 'none' ? ides : ['claude'],
|
|
63
67
|
packs,
|
|
68
|
+
ideArtifacts,
|
|
64
69
|
vsafVersion: parsed.vsafVersion,
|
|
65
70
|
updatedAt: parsed.updatedAt,
|
|
66
71
|
};
|
|
@@ -73,6 +78,7 @@ function mergeConfig(existing, add) {
|
|
|
73
78
|
version: exports.CONFIG_VERSION,
|
|
74
79
|
ides,
|
|
75
80
|
packs,
|
|
81
|
+
ideArtifacts: add.ideArtifacts ?? existing.ideArtifacts,
|
|
76
82
|
vsafVersion: add.vsafVersion,
|
|
77
83
|
updatedAt: new Date().toISOString(),
|
|
78
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/install/config.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,iFAAiF;AACjF,mFAAmF;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/install/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,KAAK,KAAK,EAAuB,KAAK,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAI1G,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,IAAI,EAAE,KAAK,EAAE,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,KAAK,KAAK,EAAuB,KAAK,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAI1G,MAAM,WAAW,mBAAoB,SAAQ,sBAAsB;IACjE,IAAI,EAAE,KAAK,EAAE,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,kBAAkB,CAoFpB;AAgBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAmB3F;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAEhE"}
|
|
@@ -25,6 +25,16 @@ function runMultiIdeInstall(pack, projectPath, options) {
|
|
|
25
25
|
const deployedSkillNames = [...packInfo.skillNames, ...packInfo.bundledNames];
|
|
26
26
|
const results = [];
|
|
27
27
|
const okIdes = [];
|
|
28
|
+
const ideArtifacts = options.ideArtifacts ?? 'proxy';
|
|
29
|
+
if (ideArtifacts === 'none') {
|
|
30
|
+
const sub = (0, install_js_1.deployEngineSubstrate)(pack, projectPath, options);
|
|
31
|
+
const base = (0, config_js_1.hasConfig)(projectPath) ? (0, config_js_1.readConfig)(projectPath) : (0, config_js_1.emptyConfig)();
|
|
32
|
+
const merged = (0, config_js_1.mergeConfig)(base, { ides: [], packs: [pack], vsafVersion: (0, version_js_1.getVersion)(), ideArtifacts });
|
|
33
|
+
(0, config_js_1.writeConfig)(projectPath, merged);
|
|
34
|
+
console.log(` ✓ vsaf run-harness substrate: ${sub.skillsDeployed.length} skills, ${sub.workflowsCreated.length} workflows -> .vsaf/`);
|
|
35
|
+
printSummary(results);
|
|
36
|
+
return { results };
|
|
37
|
+
}
|
|
28
38
|
for (const ide of options.ides) {
|
|
29
39
|
const adapter = (0, registry_js_1.getAdapter)(ide);
|
|
30
40
|
if (!adapter) {
|
|
@@ -52,7 +62,7 @@ function runMultiIdeInstall(pack, projectPath, options) {
|
|
|
52
62
|
// explicit --ide selection (F1). Existing configs still merge as a union.
|
|
53
63
|
if (okIdes.length > 0) {
|
|
54
64
|
const base = (0, config_js_1.hasConfig)(projectPath) ? (0, config_js_1.readConfig)(projectPath) : (0, config_js_1.emptyConfig)();
|
|
55
|
-
const merged = (0, config_js_1.mergeConfig)(base, { ides: okIdes, packs: [pack], vsafVersion: (0, version_js_1.getVersion)() });
|
|
65
|
+
const merged = (0, config_js_1.mergeConfig)(base, { ides: okIdes, packs: [pack], vsafVersion: (0, version_js_1.getVersion)(), ideArtifacts });
|
|
56
66
|
(0, config_js_1.writeConfig)(projectPath, merged);
|
|
57
67
|
}
|
|
58
68
|
// Canonical run-harness substrate: .vsaf/skills (the single source the engine
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":";AAAA,2CAA2C;AAC3C,6EAA6E;AAC7E,gFAAgF;AAChF,kFAAkF;;AAmBlF,
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/install/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GACxF,OAAO,CAAC,IAAI,CAAC,CAiFf"}
|
|
@@ -1,6 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
3
|
+
if (value !== null && value !== void 0) {
|
|
4
|
+
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
5
|
+
var dispose, inner;
|
|
6
|
+
if (async) {
|
|
7
|
+
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
8
|
+
dispose = value[Symbol.asyncDispose];
|
|
9
|
+
}
|
|
10
|
+
if (dispose === void 0) {
|
|
11
|
+
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
12
|
+
dispose = value[Symbol.dispose];
|
|
13
|
+
if (async) inner = dispose;
|
|
14
|
+
}
|
|
15
|
+
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
16
|
+
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
17
|
+
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
18
|
+
}
|
|
19
|
+
else if (async) {
|
|
20
|
+
env.stack.push({ async: true });
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
};
|
|
24
|
+
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
25
|
+
return function (env) {
|
|
26
|
+
function fail(e) {
|
|
27
|
+
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
28
|
+
env.hasError = true;
|
|
29
|
+
}
|
|
30
|
+
var r, s = 0;
|
|
31
|
+
function next() {
|
|
32
|
+
while (r = env.stack.pop()) {
|
|
33
|
+
try {
|
|
34
|
+
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
35
|
+
if (r.dispose) {
|
|
36
|
+
var result = r.dispose.call(r.value);
|
|
37
|
+
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
38
|
+
}
|
|
39
|
+
else s |= 1;
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
fail(e);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
46
|
+
if (env.hasError) throw env.error;
|
|
47
|
+
}
|
|
48
|
+
return next();
|
|
49
|
+
};
|
|
50
|
+
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
51
|
+
var e = new Error(message);
|
|
52
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
53
|
+
});
|
|
2
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
55
|
exports.runRoutes = runRoutes;
|
|
56
|
+
const fs_1 = require("fs");
|
|
4
57
|
const path_1 = require("path");
|
|
5
58
|
const core_1 = require("@vsaf/core");
|
|
6
59
|
async function runRoutes(app, opts) {
|
|
@@ -23,6 +76,35 @@ async function runRoutes(app, opts) {
|
|
|
23
76
|
}
|
|
24
77
|
return run;
|
|
25
78
|
});
|
|
79
|
+
app.get('/runs/:runId/artifacts/*', async (request, reply) => {
|
|
80
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
81
|
+
try {
|
|
82
|
+
const artifactRelPath = request.params['*'];
|
|
83
|
+
if (isUnsafeRelativePath(artifactRelPath)) {
|
|
84
|
+
return reply.status(400).send({ error: 'Invalid artifact path' });
|
|
85
|
+
}
|
|
86
|
+
const sqlite = __addDisposableResource(env_1, core_1.SqliteWorkflowStore.openProject(opts.projectPath), false);
|
|
87
|
+
const run = await sqlite.getWorkflowRun(request.params.runId);
|
|
88
|
+
if (!run?.artifact_path) {
|
|
89
|
+
return reply.status(404).send({ error: `Run artifact path not found: ${request.params.runId}` });
|
|
90
|
+
}
|
|
91
|
+
const filePath = (0, path_1.join)(run.artifact_path, artifactRelPath);
|
|
92
|
+
if (isOutsideBase(run.artifact_path, filePath)) {
|
|
93
|
+
return reply.status(400).send({ error: 'Invalid artifact path' });
|
|
94
|
+
}
|
|
95
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
96
|
+
return reply.status(404).send({ error: 'Artifact not found' });
|
|
97
|
+
}
|
|
98
|
+
return reply.type('text/plain').send((0, fs_1.readFileSync)(filePath, 'utf-8'));
|
|
99
|
+
}
|
|
100
|
+
catch (e_1) {
|
|
101
|
+
env_1.error = e_1;
|
|
102
|
+
env_1.hasError = true;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
__disposeResources(env_1);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
26
108
|
app.post('/runs', async (request, reply) => {
|
|
27
109
|
try {
|
|
28
110
|
const { workflow, args } = request.body ?? {};
|
|
@@ -60,4 +142,11 @@ async function runRoutes(app, opts) {
|
|
|
60
142
|
}
|
|
61
143
|
});
|
|
62
144
|
}
|
|
145
|
+
function isUnsafeRelativePath(path) {
|
|
146
|
+
return path.includes('\\') || path.split('/').some((part) => part === '..');
|
|
147
|
+
}
|
|
148
|
+
function isOutsideBase(basePath, filePath) {
|
|
149
|
+
const rel = (0, path_1.relative)((0, path_1.normalize)(basePath), (0, path_1.normalize)(filePath));
|
|
150
|
+
return rel.startsWith('..') || rel === '..';
|
|
151
|
+
}
|
|
63
152
|
//# sourceMappingURL=runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../../src/server/routes/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,wBAAsB,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEvG"}
|
|
@@ -55,5 +55,24 @@ async function workflowRoutes(app, opts) {
|
|
|
55
55
|
nodes,
|
|
56
56
|
};
|
|
57
57
|
});
|
|
58
|
+
app.put('/workflows/:name', async (request, reply) => {
|
|
59
|
+
const { name } = request.params;
|
|
60
|
+
if (name.includes('..') || name.includes('/') || name.includes('\\')) {
|
|
61
|
+
return reply.status(400).send({ error: 'Invalid workflow name' });
|
|
62
|
+
}
|
|
63
|
+
const content = request.body?.content;
|
|
64
|
+
if (typeof content !== 'string') {
|
|
65
|
+
return reply.status(400).send({ error: 'Missing required field: content' });
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
(0, core_1.parseWorkflow)(content);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
return reply.status(400).send({ error: err.message });
|
|
72
|
+
}
|
|
73
|
+
(0, fs_1.mkdirSync)(workflowsDir, { recursive: true });
|
|
74
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(workflowsDir, `${name}.yaml`), content, 'utf-8');
|
|
75
|
+
return { name, saved: true };
|
|
76
|
+
});
|
|
58
77
|
}
|
|
59
78
|
//# sourceMappingURL=workflows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":";;;;;AAMA,
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../../src/server/routes/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,18 @@ export interface IsolationConfig {
|
|
|
7
7
|
export interface VSAFConfig {
|
|
8
8
|
provider: string;
|
|
9
9
|
model: string;
|
|
10
|
+
providers: ProviderConfigMap;
|
|
10
11
|
isolation: IsolationConfig;
|
|
11
12
|
}
|
|
13
|
+
export interface ProviderCommandConfig {
|
|
14
|
+
command: string;
|
|
15
|
+
args: string[];
|
|
16
|
+
bypassArgs: string[];
|
|
17
|
+
env: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
export interface ProviderConfigMap {
|
|
20
|
+
default: string;
|
|
21
|
+
[provider: string]: string | ProviderCommandConfig;
|
|
22
|
+
}
|
|
12
23
|
export declare function loadConfig(projectPath: string): VSAFConfig;
|
|
13
24
|
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,eAAe,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,qBAAqB,CAAC;CACpD;AAmBD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAmB1D"}
|
|
@@ -11,6 +11,12 @@ const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
|
11
11
|
const DEFAULT_CONFIG = {
|
|
12
12
|
provider: 'claude',
|
|
13
13
|
model: 'sonnet',
|
|
14
|
+
providers: {
|
|
15
|
+
default: 'claude',
|
|
16
|
+
claude: { command: 'claude', args: ['-p'], bypassArgs: [], env: {} },
|
|
17
|
+
codex: { command: 'codex', args: ['-p'], bypassArgs: [], env: {} },
|
|
18
|
+
agy: { command: 'agy', args: [], bypassArgs: [], env: {} },
|
|
19
|
+
},
|
|
14
20
|
isolation: {
|
|
15
21
|
type: 'ephemeral',
|
|
16
22
|
cleanup: 'after_success',
|
|
@@ -31,10 +37,73 @@ function loadConfig(projectPath) {
|
|
|
31
37
|
return {
|
|
32
38
|
provider: parsed.provider ?? DEFAULT_CONFIG.provider,
|
|
33
39
|
model: parsed.model ?? DEFAULT_CONFIG.model,
|
|
40
|
+
providers: readProviders(parsed.providers),
|
|
34
41
|
isolation: {
|
|
35
42
|
...DEFAULT_CONFIG.isolation,
|
|
36
43
|
...(parsed.isolation ?? {}),
|
|
37
44
|
},
|
|
38
45
|
};
|
|
39
46
|
}
|
|
47
|
+
function readProviders(value) {
|
|
48
|
+
if (!isRecord(value)) {
|
|
49
|
+
return cloneProviders(DEFAULT_CONFIG.providers);
|
|
50
|
+
}
|
|
51
|
+
const result = cloneProviders(DEFAULT_CONFIG.providers);
|
|
52
|
+
if (typeof value.default === 'string' && value.default.trim()) {
|
|
53
|
+
result.default = value.default;
|
|
54
|
+
}
|
|
55
|
+
for (const [name, rawConfig] of Object.entries(value)) {
|
|
56
|
+
if (name === 'default' || !isRecord(rawConfig))
|
|
57
|
+
continue;
|
|
58
|
+
const fallback = isProviderConfig(result[name]) ? result[name] : undefined;
|
|
59
|
+
result[name] = {
|
|
60
|
+
command: typeof rawConfig.command === 'string' ? rawConfig.command : fallback?.command ?? name,
|
|
61
|
+
args: readStringArray(rawConfig.args, fallback?.args ?? []),
|
|
62
|
+
bypassArgs: readStringArray(rawConfig.bypassArgs, fallback?.bypassArgs ?? []),
|
|
63
|
+
env: readStringMap(rawConfig.env, fallback?.env ?? {}),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
function cloneProviders(providers) {
|
|
69
|
+
const result = { default: providers.default };
|
|
70
|
+
for (const [name, config] of Object.entries(providers)) {
|
|
71
|
+
if (name === 'default')
|
|
72
|
+
continue;
|
|
73
|
+
if (isProviderConfig(config)) {
|
|
74
|
+
result[name] = {
|
|
75
|
+
command: config.command,
|
|
76
|
+
args: [...config.args],
|
|
77
|
+
bypassArgs: [...config.bypassArgs],
|
|
78
|
+
env: { ...config.env },
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
function isProviderConfig(value) {
|
|
85
|
+
return isRecord(value)
|
|
86
|
+
&& typeof value.command === 'string'
|
|
87
|
+
&& Array.isArray(value.args)
|
|
88
|
+
&& Array.isArray(value.bypassArgs)
|
|
89
|
+
&& isRecord(value.env);
|
|
90
|
+
}
|
|
91
|
+
function readStringArray(value, fallback) {
|
|
92
|
+
return Array.isArray(value) && value.every((item) => typeof item === 'string')
|
|
93
|
+
? [...value]
|
|
94
|
+
: [...fallback];
|
|
95
|
+
}
|
|
96
|
+
function readStringMap(value, fallback) {
|
|
97
|
+
if (!isRecord(value))
|
|
98
|
+
return { ...fallback };
|
|
99
|
+
const result = {};
|
|
100
|
+
for (const [key, item] of Object.entries(value)) {
|
|
101
|
+
if (typeof item === 'string')
|
|
102
|
+
result[key] = item;
|
|
103
|
+
}
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
function isRecord(value) {
|
|
107
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
108
|
+
}
|
|
40
109
|
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/config/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './types/index.js';
|
|
2
2
|
export * from './store/types.js';
|
|
3
|
+
export * from './runtime/index.js';
|
|
3
4
|
export { loadConfig, type VSAFConfig, type IsolationConfig } from './config/config-loader.js';
|
|
4
5
|
export { parseWorkflow } from './engine/dag-parser.js';
|
|
5
6
|
export { DAGExecutor, type ExecutorCallbacks, type StepResult, type StepInput, type ResolvedNode, type CompletedResult, type ExecutorOptions, } from './engine/dag-executor.js';
|
|
@@ -7,13 +8,17 @@ export { NodeRunner, type ResolvedPrompt } from './engine/node-runner.js';
|
|
|
7
8
|
export { resolveVariables, type VariableContext } from './engine/variable-resolver.js';
|
|
8
9
|
export { evaluateCondition } from './engine/condition-evaluator.js';
|
|
9
10
|
export { ProviderRegistry } from './providers/provider-registry.js';
|
|
11
|
+
export { CommandProviderAdapter, ProviderCommandError, createCommandProvidersFromConfig, createBuiltinCommandProvider, resolveNodeProviderConfig, type CommandProviderConfig, type ResolvedNodeProviderConfig, type ProviderCommandErrorCode, } from './providers/command-provider.js';
|
|
10
12
|
export { ClaudeCodeAdapter, AnthropicAPIAdapter, GeminiAPIAdapter, OpenAIAPIAdapter, MockProvider, AntigravityAdapter, GeminiAgyAdapter, } from './providers/default-adapters.js';
|
|
11
13
|
export { loadCommand, type Command } from './commands/command-loader.js';
|
|
12
14
|
export { buildPrompt } from './commands/prompt-builder.js';
|
|
13
15
|
export { loadSkill, type Skill } from './skills/skill-loader.js';
|
|
14
16
|
export { WorkspaceManager, type Workspace, type DiffResult } from './isolation/workspace-manager.js';
|
|
17
|
+
export { resolveIsolationPlan, type IsolationPlan, type IsolationPlanInput, type IsolationPlanReason, type IsolationPlanType, } from './isolation/isolation-policy.js';
|
|
15
18
|
export { ArtifactStore } from './isolation/artifact-store.js';
|
|
16
19
|
export { RunStore } from './store/run-store.js';
|
|
20
|
+
export { SqliteWorkflowStore, type SqliteWorkflowRun, type SqliteWorkflowEvent, type WorkflowNodeSession, type WorkflowNodeSessionKey, type WorkflowRunStatus, } from './store/sqlite-workflow-store.js';
|
|
21
|
+
export { VSAF_SQLITE_SCHEMA } from './store/sqlite-schema.js';
|
|
17
22
|
export { detectCycle } from './engine/cycle-detector.js';
|
|
18
23
|
export { validateOutputFormat, validateInputs } from './engine/contract-validator.js';
|
|
19
24
|
export { validateWorkflowSchema } from './schema/validators.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACrG,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -14,9 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.safeReadSync = exports.atomicWriteSync = exports.loadSnapshot = exports.writeSnapshot = exports.recoverState = exports.RunLock = exports.WAL = exports.validateWorkflowSchema = exports.validateInputs = exports.validateOutputFormat = exports.detectCycle = exports.RunStore = exports.ArtifactStore = exports.WorkspaceManager = exports.loadSkill = exports.buildPrompt = exports.loadCommand = exports.GeminiAgyAdapter = exports.AntigravityAdapter = exports.MockProvider = exports.OpenAIAPIAdapter = exports.GeminiAPIAdapter = exports.AnthropicAPIAdapter = exports.ClaudeCodeAdapter = exports.ProviderRegistry = exports.evaluateCondition = exports.resolveVariables = exports.NodeRunner = exports.DAGExecutor = exports.parseWorkflow = exports.loadConfig = void 0;
|
|
17
|
+
exports.safeReadSync = exports.atomicWriteSync = exports.loadSnapshot = exports.writeSnapshot = exports.recoverState = exports.RunLock = exports.WAL = exports.validateWorkflowSchema = exports.validateInputs = exports.validateOutputFormat = exports.detectCycle = exports.VSAF_SQLITE_SCHEMA = exports.SqliteWorkflowStore = exports.RunStore = exports.ArtifactStore = exports.resolveIsolationPlan = exports.WorkspaceManager = exports.loadSkill = exports.buildPrompt = exports.loadCommand = exports.GeminiAgyAdapter = exports.AntigravityAdapter = exports.MockProvider = exports.OpenAIAPIAdapter = exports.GeminiAPIAdapter = exports.AnthropicAPIAdapter = exports.ClaudeCodeAdapter = exports.resolveNodeProviderConfig = exports.createBuiltinCommandProvider = exports.createCommandProvidersFromConfig = exports.ProviderCommandError = exports.CommandProviderAdapter = exports.ProviderRegistry = exports.evaluateCondition = exports.resolveVariables = exports.NodeRunner = exports.DAGExecutor = exports.parseWorkflow = exports.loadConfig = void 0;
|
|
18
18
|
__exportStar(require("./types/index.js"), exports);
|
|
19
19
|
__exportStar(require("./store/types.js"), exports);
|
|
20
|
+
__exportStar(require("./runtime/index.js"), exports);
|
|
20
21
|
var config_loader_js_1 = require("./config/config-loader.js");
|
|
21
22
|
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_loader_js_1.loadConfig; } });
|
|
22
23
|
var dag_parser_js_1 = require("./engine/dag-parser.js");
|
|
@@ -31,6 +32,12 @@ var condition_evaluator_js_1 = require("./engine/condition-evaluator.js");
|
|
|
31
32
|
Object.defineProperty(exports, "evaluateCondition", { enumerable: true, get: function () { return condition_evaluator_js_1.evaluateCondition; } });
|
|
32
33
|
var provider_registry_js_1 = require("./providers/provider-registry.js");
|
|
33
34
|
Object.defineProperty(exports, "ProviderRegistry", { enumerable: true, get: function () { return provider_registry_js_1.ProviderRegistry; } });
|
|
35
|
+
var command_provider_js_1 = require("./providers/command-provider.js");
|
|
36
|
+
Object.defineProperty(exports, "CommandProviderAdapter", { enumerable: true, get: function () { return command_provider_js_1.CommandProviderAdapter; } });
|
|
37
|
+
Object.defineProperty(exports, "ProviderCommandError", { enumerable: true, get: function () { return command_provider_js_1.ProviderCommandError; } });
|
|
38
|
+
Object.defineProperty(exports, "createCommandProvidersFromConfig", { enumerable: true, get: function () { return command_provider_js_1.createCommandProvidersFromConfig; } });
|
|
39
|
+
Object.defineProperty(exports, "createBuiltinCommandProvider", { enumerable: true, get: function () { return command_provider_js_1.createBuiltinCommandProvider; } });
|
|
40
|
+
Object.defineProperty(exports, "resolveNodeProviderConfig", { enumerable: true, get: function () { return command_provider_js_1.resolveNodeProviderConfig; } });
|
|
34
41
|
var default_adapters_js_1 = require("./providers/default-adapters.js");
|
|
35
42
|
Object.defineProperty(exports, "ClaudeCodeAdapter", { enumerable: true, get: function () { return default_adapters_js_1.ClaudeCodeAdapter; } });
|
|
36
43
|
Object.defineProperty(exports, "AnthropicAPIAdapter", { enumerable: true, get: function () { return default_adapters_js_1.AnthropicAPIAdapter; } });
|
|
@@ -47,10 +54,16 @@ var skill_loader_js_1 = require("./skills/skill-loader.js");
|
|
|
47
54
|
Object.defineProperty(exports, "loadSkill", { enumerable: true, get: function () { return skill_loader_js_1.loadSkill; } });
|
|
48
55
|
var workspace_manager_js_1 = require("./isolation/workspace-manager.js");
|
|
49
56
|
Object.defineProperty(exports, "WorkspaceManager", { enumerable: true, get: function () { return workspace_manager_js_1.WorkspaceManager; } });
|
|
57
|
+
var isolation_policy_js_1 = require("./isolation/isolation-policy.js");
|
|
58
|
+
Object.defineProperty(exports, "resolveIsolationPlan", { enumerable: true, get: function () { return isolation_policy_js_1.resolveIsolationPlan; } });
|
|
50
59
|
var artifact_store_js_1 = require("./isolation/artifact-store.js");
|
|
51
60
|
Object.defineProperty(exports, "ArtifactStore", { enumerable: true, get: function () { return artifact_store_js_1.ArtifactStore; } });
|
|
52
61
|
var run_store_js_1 = require("./store/run-store.js");
|
|
53
62
|
Object.defineProperty(exports, "RunStore", { enumerable: true, get: function () { return run_store_js_1.RunStore; } });
|
|
63
|
+
var sqlite_workflow_store_js_1 = require("./store/sqlite-workflow-store.js");
|
|
64
|
+
Object.defineProperty(exports, "SqliteWorkflowStore", { enumerable: true, get: function () { return sqlite_workflow_store_js_1.SqliteWorkflowStore; } });
|
|
65
|
+
var sqlite_schema_js_1 = require("./store/sqlite-schema.js");
|
|
66
|
+
Object.defineProperty(exports, "VSAF_SQLITE_SCHEMA", { enumerable: true, get: function () { return sqlite_schema_js_1.VSAF_SQLITE_SCHEMA; } });
|
|
54
67
|
var cycle_detector_js_1 = require("./engine/cycle-detector.js");
|
|
55
68
|
Object.defineProperty(exports, "detectCycle", { enumerable: true, get: function () { return cycle_detector_js_1.detectCycle; } });
|
|
56
69
|
var contract_validator_js_1 = require("./engine/contract-validator.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,mDAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,mDAAiC;AACjC,qDAAmC;AAEnC,8DAA8F;AAArF,8GAAA,UAAU,OAAA;AACnB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,4DAQkC;AAPhC,8GAAA,WAAW,OAAA;AAQb,0DAA0E;AAAjE,4GAAA,UAAU,OAAA;AACnB,sEAAuF;AAA9E,wHAAA,gBAAgB,OAAA;AACzB,0EAAoE;AAA3D,2HAAA,iBAAiB,OAAA;AAC1B,yEAAoE;AAA3D,wHAAA,gBAAgB,OAAA;AACzB,uEASyC;AARvC,6HAAA,sBAAsB,OAAA;AACtB,2HAAA,oBAAoB,OAAA;AACpB,uIAAA,gCAAgC,OAAA;AAChC,mIAAA,4BAA4B,OAAA;AAC5B,gIAAA,yBAAyB,OAAA;AAK3B,uEAQyC;AAPvC,wHAAA,iBAAiB,OAAA;AACjB,0HAAA,mBAAmB,OAAA;AACnB,uHAAA,gBAAgB,OAAA;AAChB,uHAAA,gBAAgB,OAAA;AAChB,mHAAA,YAAY,OAAA;AACZ,yHAAA,kBAAkB,OAAA;AAClB,uHAAA,gBAAgB,OAAA;AAElB,kEAAyE;AAAhE,gHAAA,WAAW,OAAA;AACpB,kEAA2D;AAAlD,gHAAA,WAAW,OAAA;AACpB,4DAAiE;AAAxD,4GAAA,SAAS,OAAA;AAClB,yEAAqG;AAA5F,wHAAA,gBAAgB,OAAA;AACzB,uEAMyC;AALvC,2HAAA,oBAAoB,OAAA;AAMtB,mEAA8D;AAArD,kHAAA,aAAa,OAAA;AACtB,qDAAgD;AAAvC,wGAAA,QAAQ,OAAA;AACjB,6EAO0C;AANxC,+HAAA,mBAAmB,OAAA;AAOrB,6DAA8D;AAArD,sHAAA,kBAAkB,OAAA;AAC3B,gEAAyD;AAAhD,gHAAA,WAAW,OAAA;AACpB,wEAAsF;AAA7E,6HAAA,oBAAoB,OAAA;AAAE,uHAAA,cAAc,OAAA;AAC7C,wDAAgE;AAAvD,uHAAA,sBAAsB,OAAA;AAC/B,yCAAqC;AAA5B,6FAAA,GAAG,OAAA;AACZ,mDAA8C;AAArC,sGAAA,OAAO,OAAA;AAChB,mDAAmD;AAA1C,2GAAA,YAAY,OAAA;AACrB,mDAAkE;AAAzD,4GAAA,aAAa,OAAA;AAAE,2GAAA,YAAY,OAAA;AACpC,+CAAkE;AAAzD,4GAAA,eAAe,OAAA;AAAE,yGAAA,YAAY,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type IsolationPlanType = 'worktree' | 'local';
|
|
2
|
+
export type IsolationPlanReason = 'clean_git_project' | 'dirty_git_project' | 'non_git_project';
|
|
3
|
+
export interface IsolationPlan {
|
|
4
|
+
type: IsolationPlanType;
|
|
5
|
+
reason: IsolationPlanReason;
|
|
6
|
+
requiresUserDecision: boolean;
|
|
7
|
+
sourcePath: string;
|
|
8
|
+
worktreePath?: string;
|
|
9
|
+
branchName?: string;
|
|
10
|
+
dirtyFiles?: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface IsolationPlanInput {
|
|
13
|
+
projectPath: string;
|
|
14
|
+
workflowName: string;
|
|
15
|
+
runId?: string;
|
|
16
|
+
gitStatus?: (projectPath: string) => string;
|
|
17
|
+
}
|
|
18
|
+
export declare function resolveIsolationPlan(input: IsolationPlanInput): IsolationPlan;
|
|
19
|
+
//# sourceMappingURL=isolation-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolation-policy.d.ts","sourceRoot":"","sources":["../../src/isolation/isolation-policy.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEhG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAqB7E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveIsolationPlan = resolveIsolationPlan;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
function resolveIsolationPlan(input) {
|
|
9
|
+
if (!isGitProject(input.projectPath)) {
|
|
10
|
+
return {
|
|
11
|
+
type: 'local',
|
|
12
|
+
reason: 'non_git_project',
|
|
13
|
+
requiresUserDecision: false,
|
|
14
|
+
sourcePath: input.projectPath,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const runId = input.runId ?? `run-${(0, crypto_1.randomBytes)(6).toString('hex')}`;
|
|
18
|
+
const dirtyFiles = parseDirtyFiles((input.gitStatus ?? readGitStatus)(input.projectPath));
|
|
19
|
+
return {
|
|
20
|
+
type: 'worktree',
|
|
21
|
+
reason: dirtyFiles.length > 0 ? 'dirty_git_project' : 'clean_git_project',
|
|
22
|
+
requiresUserDecision: dirtyFiles.length > 0,
|
|
23
|
+
sourcePath: input.projectPath,
|
|
24
|
+
worktreePath: (0, path_1.join)(input.projectPath, '.vsaf', 'worktrees', runId),
|
|
25
|
+
branchName: `vsaf/${slugify(input.workflowName)}/${runId}`,
|
|
26
|
+
dirtyFiles,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function isGitProject(projectPath) {
|
|
30
|
+
return (0, fs_1.existsSync)((0, path_1.join)(projectPath, '.git'));
|
|
31
|
+
}
|
|
32
|
+
function readGitStatus(projectPath) {
|
|
33
|
+
return (0, child_process_1.execSync)('git status --porcelain', {
|
|
34
|
+
cwd: projectPath,
|
|
35
|
+
encoding: 'utf-8',
|
|
36
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function parseDirtyFiles(status) {
|
|
40
|
+
return status
|
|
41
|
+
.split(/\r?\n/)
|
|
42
|
+
.map((line) => line.trim())
|
|
43
|
+
.filter(Boolean);
|
|
44
|
+
}
|
|
45
|
+
function slugify(value) {
|
|
46
|
+
const slug = value
|
|
47
|
+
.toLowerCase()
|
|
48
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
49
|
+
.replace(/^-+|-+$/g, '');
|
|
50
|
+
return slug || 'workflow';
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=isolation-policy.js.map
|