@arcfoundry/cli 0.1.2
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/README.md +8 -0
- package/dist/arguments.d.ts +11 -0
- package/dist/arguments.js +48 -0
- package/dist/arguments.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +24 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/default-requests.d.ts +9 -0
- package/dist/commands/default-requests.js +11 -0
- package/dist/commands/default-requests.js.map +1 -0
- package/dist/commands/doctor-command.d.ts +3 -0
- package/dist/commands/doctor-command.js +8 -0
- package/dist/commands/doctor-command.js.map +1 -0
- package/dist/commands/execute-command.d.ts +3 -0
- package/dist/commands/execute-command.js +30 -0
- package/dist/commands/execute-command.js.map +1 -0
- package/dist/commands/verification-levels.d.ts +2 -0
- package/dist/commands/verification-levels.js +14 -0
- package/dist/commands/verification-levels.js.map +1 -0
- package/dist/commands/verify-command.d.ts +3 -0
- package/dist/commands/verify-command.js +21 -0
- package/dist/commands/verify-command.js.map +1 -0
- package/dist/execute-command.d.ts +3 -0
- package/dist/execute-command.js +30 -0
- package/dist/execute-command.js.map +1 -0
- package/dist/help.d.ts +1 -0
- package/dist/help.js +13 -0
- package/dist/help.js.map +1 -0
- package/dist/ids.d.ts +1 -0
- package/dist/ids.js +8 -0
- package/dist/ids.js.map +1 -0
- package/dist/main.d.ts +9 -0
- package/dist/main.js +29 -0
- package/dist/main.js.map +1 -0
- package/dist/parsing/arguments.d.ts +11 -0
- package/dist/parsing/arguments.js +48 -0
- package/dist/parsing/arguments.js.map +1 -0
- package/dist/parsing/ids.d.ts +1 -0
- package/dist/parsing/ids.js +8 -0
- package/dist/parsing/ids.js.map +1 -0
- package/dist/presentation/help.d.ts +1 -0
- package/dist/presentation/help.js +14 -0
- package/dist/presentation/help.js.map +1 -0
- package/dist/requests.d.ts +2 -0
- package/dist/requests.js +16 -0
- package/dist/requests.js.map +1 -0
- package/dist/result-format/command-summary.d.ts +7 -0
- package/dist/result-format/command-summary.js +9 -0
- package/dist/result-format/command-summary.js.map +1 -0
- package/dist/result-format/execute-result.d.ts +2 -0
- package/dist/result-format/execute-result.js +13 -0
- package/dist/result-format/execute-result.js.map +1 -0
- package/dist/result-format/stage-summary.d.ts +4 -0
- package/dist/result-format/stage-summary.js +23 -0
- package/dist/result-format/stage-summary.js.map +1 -0
- package/dist/result-format/types.d.ts +11 -0
- package/dist/result-format/types.js +2 -0
- package/dist/result-format/types.js.map +1 -0
- package/dist/result-format/verification-result.d.ts +2 -0
- package/dist/result-format/verification-result.js +10 -0
- package/dist/result-format/verification-result.js.map +1 -0
- package/dist/result-format.d.ts +2 -0
- package/dist/result-format.js +3 -0
- package/dist/result-format.js.map +1 -0
- package/dist/runtime/dependencies.d.ts +11 -0
- package/dist/runtime/dependencies.js +11 -0
- package/dist/runtime/dependencies.js.map +1 -0
- package/dist/runtime-deps.d.ts +10 -0
- package/dist/runtime-deps.js +10 -0
- package/dist/runtime-deps.js.map +1 -0
- package/dist/verification-levels.d.ts +2 -0
- package/dist/verification-levels.js +14 -0
- package/dist/verification-levels.js.map +1 -0
- package/dist/verify-command.d.ts +3 -0
- package/dist/verify-command.js +21 -0
- package/dist/verify-command.js.map +1 -0
- package/package.json +23 -0
package/README.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# @arcfoundry/cli
|
|
2
|
+
|
|
3
|
+
Installable command line interface for the Arc Foundry governed agentic web agency runtime.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install --global @arcfoundry/cli
|
|
7
|
+
arc-agency execute --runtime opencode --repo-root "$PWD" --request "Build and verify the requested web feature."
|
|
8
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function normalizeCliArgs(rawArgs: string[]): string[];
|
|
2
|
+
export declare class CliArguments {
|
|
3
|
+
readonly tokens: string[];
|
|
4
|
+
constructor(rawArgs: string[]);
|
|
5
|
+
get command(): string | undefined;
|
|
6
|
+
readFlag(name: string): string | undefined;
|
|
7
|
+
requireFlag(name: string): string;
|
|
8
|
+
private valueAfter;
|
|
9
|
+
}
|
|
10
|
+
export declare function readFlag(args: string[], name: string): string | undefined;
|
|
11
|
+
export declare function requireFlag(args: string[], name: string): string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function normalizeCliArgs(rawArgs) {
|
|
2
|
+
const args = [...rawArgs];
|
|
3
|
+
if (args[0] === "--")
|
|
4
|
+
args.shift();
|
|
5
|
+
return args;
|
|
6
|
+
}
|
|
7
|
+
export class CliArguments {
|
|
8
|
+
tokens;
|
|
9
|
+
constructor(rawArgs) {
|
|
10
|
+
this.tokens = normalizeCliArgs(rawArgs);
|
|
11
|
+
}
|
|
12
|
+
get command() {
|
|
13
|
+
return this.tokens[0];
|
|
14
|
+
}
|
|
15
|
+
readFlag(name) {
|
|
16
|
+
const values = [];
|
|
17
|
+
for (let index = 1; index < this.tokens.length; index += 1) {
|
|
18
|
+
if (this.tokens[index] === name) {
|
|
19
|
+
values.push(this.valueAfter(index, name));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (values.length > 1) {
|
|
23
|
+
throw new Error(`Duplicate flag: ${name}`);
|
|
24
|
+
}
|
|
25
|
+
return values[0];
|
|
26
|
+
}
|
|
27
|
+
requireFlag(name) {
|
|
28
|
+
const value = this.readFlag(name);
|
|
29
|
+
if (!value) {
|
|
30
|
+
throw new Error(`Missing required flag: ${name}`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
valueAfter(index, name) {
|
|
35
|
+
const value = this.tokens[index + 1];
|
|
36
|
+
if (!value || value.startsWith("--")) {
|
|
37
|
+
throw new Error(`Flag requires a value: ${name}`);
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function readFlag(args, name) {
|
|
43
|
+
return new CliArguments(args).readFlag(name);
|
|
44
|
+
}
|
|
45
|
+
export function requireFlag(args, name) {
|
|
46
|
+
return new CliArguments(args).requireFlag(name);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=arguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../src/arguments.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,OAAiB;IAChD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,YAAY;IACd,MAAM,CAAW;IAE1B,YAAY,OAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAY;IACnD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,IAAY;IACtD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/cli.d.ts
ADDED
package/dist/cli.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { runExecuteCommand } from "./commands/execute-command.js";
|
|
2
|
+
import { runDoctorCommand } from "./commands/doctor-command.js";
|
|
3
|
+
import { runVerifyCommand } from "./commands/verify-command.js";
|
|
4
|
+
import { CliArguments } from "./parsing/arguments.js";
|
|
5
|
+
import { helpText } from "./presentation/help.js";
|
|
6
|
+
export async function runCli(rawArgs, dependencies) {
|
|
7
|
+
const args = new CliArguments(rawArgs);
|
|
8
|
+
const command = args.command;
|
|
9
|
+
if (!command || command === "help" || command === "--help") {
|
|
10
|
+
dependencies.stdout(helpText());
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
if (command === "execute") {
|
|
14
|
+
return runExecuteCommand(args, dependencies);
|
|
15
|
+
}
|
|
16
|
+
if (command === "doctor") {
|
|
17
|
+
return runDoctorCommand(args, dependencies);
|
|
18
|
+
}
|
|
19
|
+
if (command === "verify") {
|
|
20
|
+
return runVerifyCommand(args, dependencies);
|
|
21
|
+
}
|
|
22
|
+
throw new Error(`Unknown command: ${command}`);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAiB,EAAE,YAA6B;IAC3E,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC3D,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type VerificationLevel } from "@arcfoundry/core";
|
|
2
|
+
export declare const defaultVerificationRequests: {
|
|
3
|
+
"existing-project": string;
|
|
4
|
+
"auth-sensitive": string;
|
|
5
|
+
"data-driven": string;
|
|
6
|
+
"interactive-ui": string;
|
|
7
|
+
"simple-ui": string;
|
|
8
|
+
};
|
|
9
|
+
export declare function defaultRequestFor(level: VerificationLevel): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const defaultVerificationRequests = {
|
|
2
|
+
"existing-project": "Modify the existing Client Delivery Portal to add delivery-risk review while preserving approved project memory, accepted ADR boundaries, local project data, and stable status language.",
|
|
3
|
+
"auth-sensitive": "Create a permission-sensitive client workspace with role-based project visibility and admin-only access approval.",
|
|
4
|
+
"data-driven": "Create a channel performance dashboard with summary metrics, filtering, sorting, loading and empty states, and CSV export.",
|
|
5
|
+
"interactive-ui": "Create a contact form with client-side validation, error messages, success state, and disabled submit while sending.",
|
|
6
|
+
"simple-ui": "Add a responsive pricing card component with three plans and a highlighted recommended plan.",
|
|
7
|
+
};
|
|
8
|
+
export function defaultRequestFor(level) {
|
|
9
|
+
return defaultVerificationRequests[level];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=default-requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-requests.js","sourceRoot":"","sources":["../../src/commands/default-requests.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,kBAAkB,EAChB,2LAA2L;IAC7L,gBAAgB,EACd,mHAAmH;IACrH,aAAa,EACX,4HAA4H;IAC9H,gBAAgB,EACd,sHAAsH;IACxH,WAAW,EACT,8FAA8F;CACrD,CAAC;AAE9C,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,OAAO,2BAA2B,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
export async function runDoctorCommand(args, dependencies) {
|
|
3
|
+
const repoRoot = path.resolve(dependencies.cwd(), args.readFlag("--repo-root") ?? ".");
|
|
4
|
+
const result = await dependencies.inspectAgencyContracts(repoRoot);
|
|
5
|
+
dependencies.stdout(JSON.stringify(result, null, 2));
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=doctor-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-command.js","sourceRoot":"","sources":["../../src/commands/doctor-command.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAkB,EAClB,YAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACnE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { timestampId } from "../parsing/ids.js";
|
|
3
|
+
import { formatExecuteResult } from "../result-format.js";
|
|
4
|
+
export async function runExecuteCommand(args, dependencies) {
|
|
5
|
+
const request = args.requireFlag("--request");
|
|
6
|
+
const repoRoot = path.resolve(dependencies.cwd(), args.readFlag("--repo-root") ?? ".");
|
|
7
|
+
const runtime = parseExecuteRuntime(args.readFlag("--runtime") ?? "opencode");
|
|
8
|
+
const requestId = args.readFlag("--request-id") ?? timestampId("req", dependencies.now());
|
|
9
|
+
const result = runtime === "opencode"
|
|
10
|
+
? await dependencies.runAgencyExecution({
|
|
11
|
+
repoRoot,
|
|
12
|
+
projectId: "arc-foundry",
|
|
13
|
+
requestId,
|
|
14
|
+
clientRequest: request,
|
|
15
|
+
})
|
|
16
|
+
: await dependencies.runLocalAgencyExecution({
|
|
17
|
+
repoRoot,
|
|
18
|
+
projectId: "arc-foundry",
|
|
19
|
+
requestId,
|
|
20
|
+
clientRequest: request,
|
|
21
|
+
});
|
|
22
|
+
dependencies.stdout(JSON.stringify(formatExecuteResult(result, runtime), null, 2));
|
|
23
|
+
return result.status === "passed" ? 0 : 1;
|
|
24
|
+
}
|
|
25
|
+
function parseExecuteRuntime(value) {
|
|
26
|
+
if (value === "local" || value === "opencode")
|
|
27
|
+
return value;
|
|
28
|
+
throw new Error(`Supported execute runtimes are local and opencode; received ${value}`);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=execute-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-command.js","sourceRoot":"","sources":["../../src/commands/execute-command.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAkB,EAClB,YAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1F,MAAM,MAAM,GACV,OAAO,KAAK,UAAU;QACpB,CAAC,CAAC,MAAM,YAAY,CAAC,kBAAkB,CAAC;YACpC,QAAQ;YACR,SAAS,EAAE,aAAa;YACxB,SAAS;YACT,aAAa,EAAE,OAAO;SACvB,CAAC;QACJ,CAAC,CAAC,MAAM,YAAY,CAAC,uBAAuB,CAAC;YACzC,QAAQ;YACR,SAAS,EAAE,aAAa;YACxB,SAAS;YACT,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;IAET,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,+DAA+D,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const verificationLevels = [
|
|
2
|
+
"simple-ui",
|
|
3
|
+
"interactive-ui",
|
|
4
|
+
"data-driven",
|
|
5
|
+
"auth-sensitive",
|
|
6
|
+
"existing-project",
|
|
7
|
+
];
|
|
8
|
+
export function parseVerificationLevel(value) {
|
|
9
|
+
if (verificationLevels.includes(value)) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
throw new Error(`Supported verification levels are ${verificationLevels.join(", ")}; received ${value}`);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=verification-levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-levels.js","sourceRoot":"","sources":["../../src/commands/verification-levels.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;CAC6B,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAA0B,CAAC,EAAE,CAAC;QAC5D,OAAO,KAA0B,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,qCAAqC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,EAAE,CACxF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { timestampId } from "../parsing/ids.js";
|
|
3
|
+
import { formatVerificationResult } from "../result-format.js";
|
|
4
|
+
import { defaultRequestFor } from "./default-requests.js";
|
|
5
|
+
import { parseVerificationLevel } from "./verification-levels.js";
|
|
6
|
+
export async function runVerifyCommand(args, dependencies) {
|
|
7
|
+
const level = parseVerificationLevel(args.readFlag("--level") ?? "simple-ui");
|
|
8
|
+
const request = args.readFlag("--request") ?? defaultRequestFor(level);
|
|
9
|
+
const repoRoot = path.resolve(dependencies.cwd(), args.readFlag("--repo-root") ?? ".");
|
|
10
|
+
const requestId = args.readFlag("--request-id") ?? timestampId("vr", dependencies.now(), level);
|
|
11
|
+
const result = await dependencies.runAgencyWorkflow({
|
|
12
|
+
repoRoot,
|
|
13
|
+
projectId: "arc-foundry",
|
|
14
|
+
requestId,
|
|
15
|
+
clientRequest: request,
|
|
16
|
+
level,
|
|
17
|
+
});
|
|
18
|
+
dependencies.stdout(JSON.stringify(formatVerificationResult(result), null, 2));
|
|
19
|
+
return result.status === "passed" ? 0 : 1;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=verify-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-command.js","sourceRoot":"","sources":["../../src/commands/verify-command.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAkB,EAClB,YAA6B;IAE7B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAEhG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC;QAClD,QAAQ;QACR,SAAS,EAAE,aAAa;QACxB,SAAS;QACT,aAAa,EAAE,OAAO;QACtB,KAAK;KACN,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { timestampId } from "./ids.js";
|
|
3
|
+
import { formatExecuteResult } from "./result-format.js";
|
|
4
|
+
export async function runExecuteCommand(args, dependencies) {
|
|
5
|
+
const request = args.requireFlag("--request");
|
|
6
|
+
const repoRoot = path.resolve(dependencies.cwd(), args.readFlag("--repo-root") ?? ".");
|
|
7
|
+
const runtime = parseExecuteRuntime(args.readFlag("--runtime") ?? "opencode");
|
|
8
|
+
const requestId = args.readFlag("--request-id") ?? timestampId("req", dependencies.now());
|
|
9
|
+
const result = runtime === "opencode"
|
|
10
|
+
? await dependencies.runAgencyExecution({
|
|
11
|
+
repoRoot,
|
|
12
|
+
projectId: "arc-foundry",
|
|
13
|
+
requestId,
|
|
14
|
+
clientRequest: request,
|
|
15
|
+
})
|
|
16
|
+
: await dependencies.runLocalAgencyExecution({
|
|
17
|
+
repoRoot,
|
|
18
|
+
projectId: "arc-foundry",
|
|
19
|
+
requestId,
|
|
20
|
+
clientRequest: request,
|
|
21
|
+
});
|
|
22
|
+
dependencies.stdout(JSON.stringify(formatExecuteResult(result, runtime), null, 2));
|
|
23
|
+
return result.status === "passed" ? 0 : 1;
|
|
24
|
+
}
|
|
25
|
+
function parseExecuteRuntime(value) {
|
|
26
|
+
if (value === "local" || value === "opencode")
|
|
27
|
+
return value;
|
|
28
|
+
throw new Error(`Supported execute runtimes are local and opencode; received ${value}`);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=execute-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-command.js","sourceRoot":"","sources":["../src/execute-command.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAkB,EAClB,YAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAE1F,MAAM,MAAM,GACV,OAAO,KAAK,UAAU;QACpB,CAAC,CAAC,MAAM,YAAY,CAAC,kBAAkB,CAAC;YACpC,QAAQ;YACR,SAAS,EAAE,aAAa;YACxB,SAAS;YACT,aAAa,EAAE,OAAO;SACvB,CAAC;QACJ,CAAC,CAAC,MAAM,YAAY,CAAC,uBAAuB,CAAC;YACzC,QAAQ;YACR,SAAS,EAAE,aAAa;YACxB,SAAS;YACT,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;IAET,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,IAAI,KAAK,CAAC,+DAA+D,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC"}
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function helpText(): string;
|
package/dist/help.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function helpText() {
|
|
2
|
+
return `arc-agency
|
|
3
|
+
|
|
4
|
+
Commands:
|
|
5
|
+
execute --request "..." [--runtime opencode|local]
|
|
6
|
+
verify --level simple-ui [--request "..."] [--request-id "..."]
|
|
7
|
+
verify --level interactive-ui [--request "..."] [--request-id "..."]
|
|
8
|
+
verify --level data-driven [--request "..."] [--request-id "..."]
|
|
9
|
+
verify --level auth-sensitive [--request "..."] [--request-id "..."]
|
|
10
|
+
verify --level existing-project [--request "..."] [--request-id "..."]
|
|
11
|
+
`;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=help.js.map
|
package/dist/help.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;CASR,CAAC;AACF,CAAC"}
|
package/dist/ids.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function timestampId(prefix: string, now: Date, suffix?: string): string;
|
package/dist/ids.js
ADDED
package/dist/ids.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,GAAS,EAAE,MAAe;IACpE,MAAM,SAAS,GAAG,GAAG;SAClB,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;AAChF,CAAC"}
|
package/dist/main.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { type CliDependencies } from "./runtime/dependencies.js";
|
|
3
|
+
export type CliEntrypoint = {
|
|
4
|
+
argv: string[];
|
|
5
|
+
dependencies: CliDependencies;
|
|
6
|
+
stderr: (message: string) => void;
|
|
7
|
+
setExitCode: (exitCode: number) => void;
|
|
8
|
+
};
|
|
9
|
+
export declare function runCliEntrypoint(input: CliEntrypoint): Promise<void>;
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { runCli } from "./cli.js";
|
|
4
|
+
import { productionCliDependencies } from "./runtime/dependencies.js";
|
|
5
|
+
export async function runCliEntrypoint(input) {
|
|
6
|
+
try {
|
|
7
|
+
const exitCode = await runCli(input.argv.slice(2), input.dependencies);
|
|
8
|
+
if (exitCode !== 0)
|
|
9
|
+
input.setExitCode(exitCode);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
input.stderr(error instanceof Error ? error.message : String(error));
|
|
13
|
+
input.setExitCode(1);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
if (isDirectEntrypoint(import.meta.url, process.argv[1])) {
|
|
17
|
+
void runCliEntrypoint({
|
|
18
|
+
argv: process.argv,
|
|
19
|
+
dependencies: productionCliDependencies,
|
|
20
|
+
stderr: (message) => console.error(message),
|
|
21
|
+
setExitCode: (exitCode) => {
|
|
22
|
+
process.exitCode = exitCode;
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function isDirectEntrypoint(moduleUrl, scriptPath) {
|
|
27
|
+
return scriptPath !== undefined && fileURLToPath(moduleUrl) === scriptPath;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAwB,MAAM,2BAA2B,CAAC;AAS5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAoB;IACzD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,CAAC;YAAE,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,KAAK,gBAAgB,CAAC;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,yBAAyB;QACvC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3C,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YACxB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB,EAAE,UAA8B;IAC3E,OAAO,UAAU,KAAK,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC;AAC7E,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function normalizeCliArgs(rawArgs: string[]): string[];
|
|
2
|
+
export declare class CliArguments {
|
|
3
|
+
readonly tokens: string[];
|
|
4
|
+
constructor(rawArgs: string[]);
|
|
5
|
+
get command(): string | undefined;
|
|
6
|
+
readFlag(name: string): string | undefined;
|
|
7
|
+
requireFlag(name: string): string;
|
|
8
|
+
private valueAfter;
|
|
9
|
+
}
|
|
10
|
+
export declare function readFlag(args: string[], name: string): string | undefined;
|
|
11
|
+
export declare function requireFlag(args: string[], name: string): string;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export function normalizeCliArgs(rawArgs) {
|
|
2
|
+
const args = [...rawArgs];
|
|
3
|
+
if (args[0] === "--")
|
|
4
|
+
args.shift();
|
|
5
|
+
return args;
|
|
6
|
+
}
|
|
7
|
+
export class CliArguments {
|
|
8
|
+
tokens;
|
|
9
|
+
constructor(rawArgs) {
|
|
10
|
+
this.tokens = normalizeCliArgs(rawArgs);
|
|
11
|
+
}
|
|
12
|
+
get command() {
|
|
13
|
+
return this.tokens[0];
|
|
14
|
+
}
|
|
15
|
+
readFlag(name) {
|
|
16
|
+
const values = [];
|
|
17
|
+
for (let index = 1; index < this.tokens.length; index += 1) {
|
|
18
|
+
if (this.tokens[index] === name) {
|
|
19
|
+
values.push(this.valueAfter(index, name));
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (values.length > 1) {
|
|
23
|
+
throw new Error(`Duplicate flag: ${name}`);
|
|
24
|
+
}
|
|
25
|
+
return values[0];
|
|
26
|
+
}
|
|
27
|
+
requireFlag(name) {
|
|
28
|
+
const value = this.readFlag(name);
|
|
29
|
+
if (!value) {
|
|
30
|
+
throw new Error(`Missing required flag: ${name}`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
valueAfter(index, name) {
|
|
35
|
+
const value = this.tokens[index + 1];
|
|
36
|
+
if (!value || value.startsWith("--")) {
|
|
37
|
+
throw new Error(`Flag requires a value: ${name}`);
|
|
38
|
+
}
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function readFlag(args, name) {
|
|
43
|
+
return new CliArguments(args).readFlag(name);
|
|
44
|
+
}
|
|
45
|
+
export function requireFlag(args, name) {
|
|
46
|
+
return new CliArguments(args).requireFlag(name);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=arguments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../src/parsing/arguments.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,OAAiB;IAChD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,YAAY;IACd,MAAM,CAAW;IAE1B,YAAY,OAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,IAAY;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAY;IACnD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,IAAY;IACtD,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function timestampId(prefix: string, now: Date, suffix?: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../src/parsing/ids.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,GAAS,EAAE,MAAe;IACpE,MAAM,SAAS,GAAG,GAAG;SAClB,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function helpText(): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function helpText() {
|
|
2
|
+
return `arc-agency
|
|
3
|
+
|
|
4
|
+
Commands:
|
|
5
|
+
execute --request "..." [--runtime opencode|local]
|
|
6
|
+
doctor [--repo-root "."]
|
|
7
|
+
verify --level simple-ui [--request "..."] [--request-id "..."]
|
|
8
|
+
verify --level interactive-ui [--request "..."] [--request-id "..."]
|
|
9
|
+
verify --level data-driven [--request "..."] [--request-id "..."]
|
|
10
|
+
verify --level auth-sensitive [--request "..."] [--request-id "..."]
|
|
11
|
+
verify --level existing-project [--request "..."] [--request-id "..."]
|
|
12
|
+
`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/presentation/help.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;CAUR,CAAC;AACF,CAAC"}
|
package/dist/requests.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export function defaultRequestFor(level) {
|
|
2
|
+
if (level === "existing-project") {
|
|
3
|
+
return "Modify the existing Client Delivery Portal to add delivery-risk review while preserving approved project memory, accepted ADR boundaries, local project data, and stable status language.";
|
|
4
|
+
}
|
|
5
|
+
if (level === "auth-sensitive") {
|
|
6
|
+
return "Create a permission-sensitive client workspace with role-based project visibility and admin-only access approval.";
|
|
7
|
+
}
|
|
8
|
+
if (level === "data-driven") {
|
|
9
|
+
return "Create a channel performance dashboard with summary metrics, filtering, sorting, loading and empty states, and CSV export.";
|
|
10
|
+
}
|
|
11
|
+
if (level === "interactive-ui") {
|
|
12
|
+
return "Create a contact form with client-side validation, error messages, success state, and disabled submit while sending.";
|
|
13
|
+
}
|
|
14
|
+
return "Add a responsive pricing card component with three plans and a highlighted recommended plan.";
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../src/requests.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,KAAwB;IACxD,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;QACjC,OAAO,2LAA2L,CAAC;IACrM,CAAC;IACD,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,OAAO,mHAAmH,CAAC;IAC7H,CAAC;IACD,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,4HAA4H,CAAC;IACtI,CAAC;IACD,IAAI,KAAK,KAAK,gBAAgB,EAAE,CAAC;QAC/B,OAAO,sHAAsH,CAAC;IAChI,CAAC;IACD,OAAO,8FAA8F,CAAC;AACxG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-summary.js","sourceRoot":"","sources":["../../src/result-format/command-summary.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAC/B,QAKE;IAEF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { summarizeCommands } from "./command-summary.js";
|
|
2
|
+
import { summarizeAgentStages } from "./stage-summary.js";
|
|
3
|
+
export function formatExecuteResult(result, runtime) {
|
|
4
|
+
return {
|
|
5
|
+
status: result.status,
|
|
6
|
+
runDir: result.runDir,
|
|
7
|
+
artifacts: result.artifacts,
|
|
8
|
+
runtime,
|
|
9
|
+
agentStages: summarizeAgentStages(result.agentStages),
|
|
10
|
+
commands: summarizeCommands(result.commands),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=execute-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-result.js","sourceRoot":"","sources":["../../src/result-format/execute-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,OAA6B;IAE7B,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO;QACP,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC;QACrD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function summarizeAgentStages(stages) {
|
|
2
|
+
return stages.map((stage) => "command" in stage ? summarizeOpenCodeStage(stage) : summarizeLocalStage(stage));
|
|
3
|
+
}
|
|
4
|
+
function summarizeOpenCodeStage(stage) {
|
|
5
|
+
return {
|
|
6
|
+
stage: stage.stage,
|
|
7
|
+
agent: stage.agent,
|
|
8
|
+
command: stage.command.command,
|
|
9
|
+
exitCode: stage.command.exitCode,
|
|
10
|
+
transcriptRefs: stage.transcriptRefs,
|
|
11
|
+
parsed: Boolean(stage.parsedOutput),
|
|
12
|
+
parsingError: stage.parsingError,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function summarizeLocalStage(stage) {
|
|
16
|
+
return {
|
|
17
|
+
stage: stage.stage,
|
|
18
|
+
agent: stage.agent,
|
|
19
|
+
runtime: stage.runtime,
|
|
20
|
+
transcriptRef: stage.transcriptRef,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=stage-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stage-summary.js","sourceRoot":"","sources":["../../src/result-format/stage-summary.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAChF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAkD;IAChF,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;QAChC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC;QACnC,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkD;IAC7E,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type runAgencyExecution, type runAgencyWorkflow, type runLocalAgencyExecution } from "@arcfoundry/core";
|
|
2
|
+
export type AgencyExecutionResult = Awaited<ReturnType<typeof runAgencyExecution>>;
|
|
3
|
+
export type LocalAgencyExecutionResult = Awaited<ReturnType<typeof runLocalAgencyExecution>>;
|
|
4
|
+
export type AgencyWorkflowResult = Awaited<ReturnType<typeof runAgencyWorkflow>>;
|
|
5
|
+
export type ExecuteResult = AgencyExecutionResult | LocalAgencyExecutionResult;
|
|
6
|
+
export interface CommandSummary {
|
|
7
|
+
purpose?: string;
|
|
8
|
+
command: string;
|
|
9
|
+
exitCode: number | null;
|
|
10
|
+
durationMs: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/result-format/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { summarizeCommands } from "./command-summary.js";
|
|
2
|
+
export function formatVerificationResult(result) {
|
|
3
|
+
return {
|
|
4
|
+
status: result.status,
|
|
5
|
+
runDir: result.runDir,
|
|
6
|
+
artifacts: result.artifacts,
|
|
7
|
+
commands: summarizeCommands(result.commands),
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=verification-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-result.js","sourceRoot":"","sources":["../../src/result-format/verification-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,MAAM,UAAU,wBAAwB,CAAC,MAA4B;IACnE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result-format.js","sourceRoot":"","sources":["../src/result-format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { inspectAgencyContracts, runAgencyExecution, runAgencyWorkflow, runLocalAgencyExecution } from "@arcfoundry/core";
|
|
2
|
+
export declare const productionCliDependencies: {
|
|
3
|
+
cwd: () => string;
|
|
4
|
+
now: () => Date;
|
|
5
|
+
stdout: (message: string) => void;
|
|
6
|
+
runAgencyExecution: typeof runAgencyExecution;
|
|
7
|
+
runAgencyWorkflow: typeof runAgencyWorkflow;
|
|
8
|
+
runLocalAgencyExecution: typeof runLocalAgencyExecution;
|
|
9
|
+
inspectAgencyContracts: typeof inspectAgencyContracts;
|
|
10
|
+
};
|
|
11
|
+
export type CliDependencies = typeof productionCliDependencies;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { inspectAgencyContracts, runAgencyExecution, runAgencyWorkflow, runLocalAgencyExecution, } from "@arcfoundry/core";
|
|
2
|
+
export const productionCliDependencies = {
|
|
3
|
+
cwd: () => process.cwd(),
|
|
4
|
+
now: () => new Date(),
|
|
5
|
+
stdout: (message) => console.log(message),
|
|
6
|
+
runAgencyExecution,
|
|
7
|
+
runAgencyWorkflow,
|
|
8
|
+
runLocalAgencyExecution,
|
|
9
|
+
inspectAgencyContracts,
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/runtime/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACrB,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACjD,kBAAkB;IAClB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { runAgencyExecution, runAgencyWorkflow, runLocalAgencyExecution } from "@arc-foundry/core";
|
|
2
|
+
export declare const productionCliDependencies: {
|
|
3
|
+
cwd: () => string;
|
|
4
|
+
now: () => Date;
|
|
5
|
+
stdout: (message: string) => void;
|
|
6
|
+
runAgencyExecution: typeof runAgencyExecution;
|
|
7
|
+
runAgencyWorkflow: typeof runAgencyWorkflow;
|
|
8
|
+
runLocalAgencyExecution: typeof runLocalAgencyExecution;
|
|
9
|
+
};
|
|
10
|
+
export type CliDependencies = typeof productionCliDependencies;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { runAgencyExecution, runAgencyWorkflow, runLocalAgencyExecution } from "@arc-foundry/core";
|
|
2
|
+
export const productionCliDependencies = {
|
|
3
|
+
cwd: () => process.cwd(),
|
|
4
|
+
now: () => new Date(),
|
|
5
|
+
stdout: (message) => console.log(message),
|
|
6
|
+
runAgencyExecution,
|
|
7
|
+
runAgencyWorkflow,
|
|
8
|
+
runLocalAgencyExecution,
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=runtime-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-deps.js","sourceRoot":"","sources":["../src/runtime-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IACxB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;IACrB,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACjD,kBAAkB;IAClB,iBAAiB;IACjB,uBAAuB;CACxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const verificationLevels = [
|
|
2
|
+
"simple-ui",
|
|
3
|
+
"interactive-ui",
|
|
4
|
+
"data-driven",
|
|
5
|
+
"auth-sensitive",
|
|
6
|
+
"existing-project",
|
|
7
|
+
];
|
|
8
|
+
export function parseVerificationLevel(value) {
|
|
9
|
+
if (verificationLevels.includes(value)) {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
throw new Error(`Supported verification levels are ${verificationLevels.join(", ")}; received ${value}`);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=verification-levels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-levels.js","sourceRoot":"","sources":["../src/verification-levels.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;IACzB,WAAW;IACX,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;CAC6B,CAAC;AAElD,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAA0B,CAAC,EAAE,CAAC;QAC5D,OAAO,KAA0B,CAAC;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,qCAAqC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,EAAE,CACxF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { timestampId } from "./ids.js";
|
|
3
|
+
import { defaultRequestFor } from "./requests.js";
|
|
4
|
+
import { formatVerificationResult } from "./result-format.js";
|
|
5
|
+
import { parseVerificationLevel } from "./verification-levels.js";
|
|
6
|
+
export async function runVerifyCommand(args, dependencies) {
|
|
7
|
+
const level = parseVerificationLevel(args.readFlag("--level") ?? "simple-ui");
|
|
8
|
+
const request = args.readFlag("--request") ?? defaultRequestFor(level);
|
|
9
|
+
const repoRoot = path.resolve(dependencies.cwd(), args.readFlag("--repo-root") ?? ".");
|
|
10
|
+
const requestId = args.readFlag("--request-id") ?? timestampId("vr", dependencies.now(), level);
|
|
11
|
+
const result = await dependencies.runAgencyWorkflow({
|
|
12
|
+
repoRoot,
|
|
13
|
+
projectId: "arc-foundry",
|
|
14
|
+
requestId,
|
|
15
|
+
clientRequest: request,
|
|
16
|
+
level,
|
|
17
|
+
});
|
|
18
|
+
dependencies.stdout(JSON.stringify(formatVerificationResult(result), null, 2));
|
|
19
|
+
return result.status === "passed" ? 0 : 1;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=verify-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-command.js","sourceRoot":"","sources":["../src/verify-command.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAkB,EAClB,YAA6B;IAE7B,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAEhG,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC;QAClD,QAAQ;QACR,SAAS,EAAE,aAAa;QACxB,SAAS;QACT,aAAa,EAAE,OAAO;QACtB,KAAK;KACN,CAAC,CAAC;IAEH,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arcfoundry/cli",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Command line interface for the Arc Foundry governed agentic web agency runtime.",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"bin": {
|
|
7
|
+
"arc-agency": "./dist/main.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@arcfoundry/core": "0.1.2"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": "^24.11.0"
|
|
22
|
+
}
|
|
23
|
+
}
|