@nexagent-cli/cli 0.8.1 → 0.8.3
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/commands/sophie.d.ts +2 -0
- package/dist/commands/sophie.d.ts.map +1 -1
- package/dist/commands/sophie.js +122 -1
- package/dist/commands/sophie.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/workflow.d.ts +14 -0
- package/dist/runtime/workflow.d.ts.map +1 -1
- package/dist/runtime/workflow.js.map +1 -1
- package/dist/workflows/contracts/index.d.ts +4 -0
- package/dist/workflows/contracts/index.d.ts.map +1 -0
- package/dist/workflows/contracts/index.js +4 -0
- package/dist/workflows/contracts/index.js.map +1 -0
- package/dist/workflows/contracts/workflow-export.d.ts +22 -0
- package/dist/workflows/contracts/workflow-export.d.ts.map +1 -0
- package/dist/workflows/contracts/workflow-export.js +99 -0
- package/dist/workflows/contracts/workflow-export.js.map +1 -0
- package/dist/workflows/contracts/workflow-formatters.d.ts +8 -0
- package/dist/workflows/contracts/workflow-formatters.d.ts.map +1 -0
- package/dist/workflows/contracts/workflow-formatters.js +50 -0
- package/dist/workflows/contracts/workflow-formatters.js.map +1 -0
- package/dist/workflows/contracts/workflow-result-schema.d.ts +27 -0
- package/dist/workflows/contracts/workflow-result-schema.d.ts.map +1 -0
- package/dist/workflows/contracts/workflow-result-schema.js +56 -0
- package/dist/workflows/contracts/workflow-result-schema.js.map +1 -0
- package/dist/workflows/sophie/inspect.d.ts.map +1 -1
- package/dist/workflows/sophie/inspect.js +31 -2
- package/dist/workflows/sophie/inspect.js.map +1 -1
- package/dist/workflows/tools/index.d.ts +8 -0
- package/dist/workflows/tools/index.d.ts.map +1 -0
- package/dist/workflows/tools/index.js +9 -0
- package/dist/workflows/tools/index.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-registry.d.ts +25 -0
- package/dist/workflows/tools/workflow-tool-registry.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-registry.js +126 -0
- package/dist/workflows/tools/workflow-tool-registry.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-request.d.ts +12 -0
- package/dist/workflows/tools/workflow-tool-request.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-request.js +28 -0
- package/dist/workflows/tools/workflow-tool-request.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-result.d.ts +23 -0
- package/dist/workflows/tools/workflow-tool-result.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-result.js +61 -0
- package/dist/workflows/tools/workflow-tool-result.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-risk.d.ts +14 -0
- package/dist/workflows/tools/workflow-tool-risk.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-risk.js +36 -0
- package/dist/workflows/tools/workflow-tool-risk.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-runner.d.ts +19 -0
- package/dist/workflows/tools/workflow-tool-runner.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-runner.js +81 -0
- package/dist/workflows/tools/workflow-tool-runner.js.map +1 -0
- package/dist/workflows/tools/workflow-tool-types.d.ts +30 -0
- package/dist/workflows/tools/workflow-tool-types.d.ts.map +1 -0
- package/dist/workflows/tools/workflow-tool-types.js +5 -0
- package/dist/workflows/tools/workflow-tool-types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Workflow tool runner — execution engine
|
|
3
|
+
// ============================================================
|
|
4
|
+
import { isRiskAllowed } from './workflow-tool-risk.js';
|
|
5
|
+
/**
|
|
6
|
+
* Execute a single tool request against the registry.
|
|
7
|
+
* Respects dry-run mode and maxRisk gating.
|
|
8
|
+
*/
|
|
9
|
+
export async function runToolRequest(request, registry, opts) {
|
|
10
|
+
const start = Date.now();
|
|
11
|
+
const maxRisk = opts.maxRisk ?? 'read';
|
|
12
|
+
// Unknown tool
|
|
13
|
+
if (!registry.has(request.tool)) {
|
|
14
|
+
return {
|
|
15
|
+
requestId: request.id,
|
|
16
|
+
tool: request.tool,
|
|
17
|
+
status: 'blocked',
|
|
18
|
+
error: 'Unknown tool',
|
|
19
|
+
durationMs: Date.now() - start,
|
|
20
|
+
risk: request.risk,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
// Risk exceeds allowed maximum
|
|
24
|
+
if (!isRiskAllowed(request.risk, maxRisk)) {
|
|
25
|
+
return {
|
|
26
|
+
requestId: request.id,
|
|
27
|
+
tool: request.tool,
|
|
28
|
+
status: 'blocked',
|
|
29
|
+
error: `Risk ${request.risk} exceeds max allowed ${maxRisk}`,
|
|
30
|
+
durationMs: Date.now() - start,
|
|
31
|
+
risk: request.risk,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
// Dry-run: skip execution but report what would run
|
|
35
|
+
if (opts.dryRun) {
|
|
36
|
+
return {
|
|
37
|
+
requestId: request.id,
|
|
38
|
+
tool: request.tool,
|
|
39
|
+
status: 'skipped',
|
|
40
|
+
output: `[dry-run] Would execute ${request.tool} with input ${JSON.stringify(request.input)}`,
|
|
41
|
+
durationMs: Date.now() - start,
|
|
42
|
+
risk: request.risk,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Execute
|
|
46
|
+
const entry = registry.get(request.tool);
|
|
47
|
+
try {
|
|
48
|
+
const result = await entry.execute(request.input, { workspaceDir: opts.workspaceDir });
|
|
49
|
+
return {
|
|
50
|
+
requestId: request.id,
|
|
51
|
+
tool: request.tool,
|
|
52
|
+
status: 'success',
|
|
53
|
+
output: result,
|
|
54
|
+
durationMs: Date.now() - start,
|
|
55
|
+
risk: request.risk,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
60
|
+
return {
|
|
61
|
+
requestId: request.id,
|
|
62
|
+
tool: request.tool,
|
|
63
|
+
status: 'failed',
|
|
64
|
+
error: message,
|
|
65
|
+
durationMs: Date.now() - start,
|
|
66
|
+
risk: request.risk,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Run a batch of tool requests sequentially.
|
|
72
|
+
*/
|
|
73
|
+
export async function runToolBatch(requests, registry, opts) {
|
|
74
|
+
const results = [];
|
|
75
|
+
for (const request of requests) {
|
|
76
|
+
const result = await runToolRequest(request, registry, opts);
|
|
77
|
+
results.push(result);
|
|
78
|
+
}
|
|
79
|
+
return results;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=workflow-tool-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-tool-runner.js","sourceRoot":"","sources":["../../../src/workflows/tools/workflow-tool-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Risk level for a workflow tool operation */
|
|
2
|
+
export type WorkflowToolRisk = 'read' | 'write' | 'execute' | 'network';
|
|
3
|
+
/** Request to execute a workflow tool */
|
|
4
|
+
export interface WorkflowToolRequest {
|
|
5
|
+
id: string;
|
|
6
|
+
tool: string;
|
|
7
|
+
reason: string;
|
|
8
|
+
risk: WorkflowToolRisk;
|
|
9
|
+
input: Record<string, unknown>;
|
|
10
|
+
requiresApproval: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Result of executing a workflow tool */
|
|
13
|
+
export interface WorkflowToolResult {
|
|
14
|
+
requestId: string;
|
|
15
|
+
tool: string;
|
|
16
|
+
status: 'success' | 'skipped' | 'blocked' | 'failed';
|
|
17
|
+
output?: unknown;
|
|
18
|
+
error?: string;
|
|
19
|
+
durationMs: number;
|
|
20
|
+
risk: WorkflowToolRisk;
|
|
21
|
+
}
|
|
22
|
+
/** Capability metadata for a registered workflow tool */
|
|
23
|
+
export interface WorkflowToolCapability {
|
|
24
|
+
name: string;
|
|
25
|
+
risk: WorkflowToolRisk;
|
|
26
|
+
description: string;
|
|
27
|
+
enabled: boolean;
|
|
28
|
+
requiresApproval: boolean;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=workflow-tool-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-tool-types.d.ts","sourceRoot":"","sources":["../../../src/workflows/tools/workflow-tool-types.ts"],"names":[],"mappings":"AAIA,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAExE,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,yDAAyD;AACzD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-tool-types.js","sourceRoot":"","sources":["../../../src/workflows/tools/workflow-tool-types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,iCAAiC;AACjC,+DAA+D"}
|