ace-swarm 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +113 -0
- package/assets/.agents/ACE/ACE-Init/AGENTS.md +275 -0
- package/assets/.agents/ACE/ACE-Init/instructions.md +177 -0
- package/assets/.agents/ACE/ACE_coders/AGENTS.md +97 -0
- package/assets/.agents/ACE/ACE_coders/INSTRUCTIONS.md +146 -0
- package/assets/.agents/ACE/UI/AGENTS.md +115 -0
- package/assets/.agents/ACE/UI/instructions.md +178 -0
- package/assets/.agents/ACE/VOS/AGENTS.md +72 -0
- package/assets/.agents/ACE/VOS/instructions.md +211 -0
- package/assets/.agents/skills/ace-orchestrator/SKILL.md +317 -0
- package/assets/.agents/skills/codemunch/SKILL.md +502 -0
- package/assets/.agents/skills/codesnipe/SKILL.md +629 -0
- package/assets/agent-state/DECISIONS.md +7 -0
- package/assets/agent-state/EVIDENCE_LOG.md +7 -0
- package/assets/agent-state/HANDOFF.json +24 -0
- package/assets/agent-state/MODULES/gates/gate-completeness.json +7 -0
- package/assets/agent-state/MODULES/gates/gate-correctness.json +7 -0
- package/assets/agent-state/MODULES/registry.json +15 -0
- package/assets/agent-state/MODULES/roles/capability-build.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-docs.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-ops.json +18 -0
- package/assets/agent-state/MODULES/roles/capability-qa.json +20 -0
- package/assets/agent-state/MODULES/roles/capability-research.json +19 -0
- package/assets/agent-state/MODULES/roles/capability-skeptic.json +20 -0
- package/assets/agent-state/MODULES/roles/capability-spec.json +18 -0
- package/assets/agent-state/RISKS.md +5 -0
- package/assets/agent-state/SCOPE.md +10 -0
- package/assets/agent-state/STATUS.md +6 -0
- package/assets/agent-state/TASK.md +16 -0
- package/assets/agent-state/TEAL_CONFIG.md +31 -0
- package/assets/instructions/ACE.instructions.md +177 -0
- package/assets/instructions/ACE_Coder.instructions.md +146 -0
- package/assets/instructions/ACE_UI.instructions.md +178 -0
- package/assets/instructions/ACE_VOS.instructions.md +211 -0
- package/assets/tasks/README.md +19 -0
- package/assets/tasks/SWARM_HANDOFF.example.json +53 -0
- package/assets/tasks/SWARM_HANDOFF.example_ui_to_coders.json +55 -0
- package/assets/tasks/SWARM_HANDOFF.example_vos_to_ui.json +55 -0
- package/assets/tasks/SWARM_HANDOFF.template.json +52 -0
- package/assets/tasks/cli_work_split.md +22 -0
- package/assets/tasks/lessons.md +17 -0
- package/assets/tasks/role_tasks.md +48 -0
- package/assets/tasks/todo.md +23 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +88 -0
- package/dist/cli.js.map +1 -0
- package/dist/helpers.d.ts +50 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +379 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts.d.ts +7 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +281 -0
- package/dist/prompts.js.map +1 -0
- package/dist/resources.d.ts +7 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +140 -0
- package/dist/resources.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +26 -0
- package/dist/server.js.map +1 -0
- package/dist/tools.d.ts +6 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +601 -0
- package/dist/tools.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# ACE Role Task Packs
|
|
2
|
+
|
|
3
|
+
## ACE-Orchestrator Task Pack
|
|
4
|
+
|
|
5
|
+
- Maintain global routing across venture, UX, and engineering tracks.
|
|
6
|
+
- Keep execution state synchronized (`MASTER_PLAN`, blockers, risks, handoffs).
|
|
7
|
+
- Decompose work into bounded tasks with measurable acceptance criteria.
|
|
8
|
+
- Enforce artifact-first completion and explicit verification evidence.
|
|
9
|
+
|
|
10
|
+
**Required evidence**
|
|
11
|
+
|
|
12
|
+
- Updated plan/status artifact.
|
|
13
|
+
- Handoff payloads with context pointers.
|
|
14
|
+
- Explicit next state: done/blocked/rerouted.
|
|
15
|
+
|
|
16
|
+
## ACE-VOS Task Pack
|
|
17
|
+
|
|
18
|
+
- Harden raw ideas into thesis, architecture blueprint, and growth loops.
|
|
19
|
+
- Reject vague claims; demand mechanisms, constraints, and economics.
|
|
20
|
+
- Produce a buildable MVP specification tied to distribution strategy.
|
|
21
|
+
|
|
22
|
+
**Required evidence**
|
|
23
|
+
|
|
24
|
+
- Updated venture artifacts (`THESIS`, `BLUEPRINT`, `GROWTH_LOOPS`, `MVP_SPEC`).
|
|
25
|
+
- Explicit assumptions and risk register entries.
|
|
26
|
+
|
|
27
|
+
## ACE-UI Task Pack
|
|
28
|
+
|
|
29
|
+
- Convert product intent into clear UX flows and conversion-grade copy.
|
|
30
|
+
- Run friction/trust audits and rewrite ambiguous messaging.
|
|
31
|
+
- Deliver component-level string maps developers can implement directly.
|
|
32
|
+
|
|
33
|
+
**Required evidence**
|
|
34
|
+
|
|
35
|
+
- Updated copy deck and UX audit artifacts.
|
|
36
|
+
- Developer-ready string keys and notes for implementation handoff.
|
|
37
|
+
|
|
38
|
+
## ACE-Coders Task Pack
|
|
39
|
+
|
|
40
|
+
- Implement from explicit spec using test-first execution.
|
|
41
|
+
- Keep architecture coherent while minimizing implementation scope.
|
|
42
|
+
- Produce passing checks, deployment-ready artifacts, and truthful status.
|
|
43
|
+
|
|
44
|
+
**Required evidence**
|
|
45
|
+
|
|
46
|
+
- Failing-to-passing test evidence.
|
|
47
|
+
- Build/test output logs and updated status artifacts.
|
|
48
|
+
- Residual risks or blockers listed explicitly.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# ACE TODO Board
|
|
2
|
+
|
|
3
|
+
## Active Work
|
|
4
|
+
|
|
5
|
+
- [ ] Define objective and acceptance criteria in `agent-state/TASK.md`
|
|
6
|
+
- [ ] Confirm scope boundaries in `agent-state/SCOPE.md`
|
|
7
|
+
- [ ] Route to the correct capability module
|
|
8
|
+
- [ ] Produce artifact changes
|
|
9
|
+
- [ ] Verify with objective evidence (tests, logs, checks)
|
|
10
|
+
|
|
11
|
+
## Verification Checklist
|
|
12
|
+
|
|
13
|
+
- [ ] Requested artifact(s) created or updated
|
|
14
|
+
- [ ] Validation output recorded
|
|
15
|
+
- [ ] Risks and decisions logged
|
|
16
|
+
- [ ] Handoff status explicit (done/blocked/next)
|
|
17
|
+
|
|
18
|
+
## Review Notes
|
|
19
|
+
|
|
20
|
+
- Date: `YYYY-MM-DD`
|
|
21
|
+
- What changed:
|
|
22
|
+
- Evidence pointers:
|
|
23
|
+
- Residual risks:
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { DEFAULTS_ROOT, PACKAGE_ROOT, WORKSPACE_ROOT, bootstrapAceWorkspace, getMcpServerConfigSnippet, } from "./helpers.js";
|
|
3
|
+
import { startStdioServer } from "./server.js";
|
|
4
|
+
function printHelp() {
|
|
5
|
+
console.log(`ACE Swarm CLI
|
|
6
|
+
|
|
7
|
+
Usage:
|
|
8
|
+
ace mcp Start MCP server over stdio
|
|
9
|
+
ace serve Alias for mcp
|
|
10
|
+
ace init [options] Bootstrap ACE files into current workspace
|
|
11
|
+
ace mcp-config Print .vscode/mcp.json snippet
|
|
12
|
+
ace paths Show resolved package/workspace paths
|
|
13
|
+
ace help Show help
|
|
14
|
+
|
|
15
|
+
Options for init:
|
|
16
|
+
--project <name> Project name for global-state/MASTER_PLAN.md
|
|
17
|
+
--force Overwrite scaffolded files if they already exist
|
|
18
|
+
--no-mcp-config Do not write .vscode/mcp.json
|
|
19
|
+
`);
|
|
20
|
+
}
|
|
21
|
+
function readFlagValue(args, flag) {
|
|
22
|
+
const exact = args.find((arg) => arg.startsWith(`${flag}=`));
|
|
23
|
+
if (exact)
|
|
24
|
+
return exact.slice(flag.length + 1);
|
|
25
|
+
const index = args.indexOf(flag);
|
|
26
|
+
if (index === -1)
|
|
27
|
+
return undefined;
|
|
28
|
+
return args[index + 1];
|
|
29
|
+
}
|
|
30
|
+
async function runInit(args) {
|
|
31
|
+
const projectName = readFlagValue(args, "--project");
|
|
32
|
+
const force = args.includes("--force");
|
|
33
|
+
const includeMcpConfig = !args.includes("--no-mcp-config");
|
|
34
|
+
const result = bootstrapAceWorkspace({
|
|
35
|
+
projectName,
|
|
36
|
+
force,
|
|
37
|
+
includeMcpConfig,
|
|
38
|
+
});
|
|
39
|
+
console.log("ACE bootstrap complete");
|
|
40
|
+
console.log(`Workspace: ${WORKSPACE_ROOT}`);
|
|
41
|
+
console.log(`Created: ${result.created.length}`);
|
|
42
|
+
console.log(`Updated: ${result.updated.length}`);
|
|
43
|
+
console.log(`Skipped: ${result.skipped.length}`);
|
|
44
|
+
if (result.created.length > 0) {
|
|
45
|
+
console.log("\nCreated files/directories:");
|
|
46
|
+
for (const path of result.created)
|
|
47
|
+
console.log(`- ${path}`);
|
|
48
|
+
}
|
|
49
|
+
if (result.updated.length > 0) {
|
|
50
|
+
console.log("\nUpdated files:");
|
|
51
|
+
for (const path of result.updated)
|
|
52
|
+
console.log(`- ${path}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async function main() {
|
|
56
|
+
const args = process.argv.slice(2);
|
|
57
|
+
const command = (args[0] ?? "mcp").toLowerCase();
|
|
58
|
+
if (command === "mcp" || command === "serve") {
|
|
59
|
+
await startStdioServer();
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (command === "init") {
|
|
63
|
+
await runInit(args.slice(1));
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (command === "mcp-config") {
|
|
67
|
+
console.log(getMcpServerConfigSnippet());
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (command === "paths") {
|
|
71
|
+
console.log(`PACKAGE_ROOT=${PACKAGE_ROOT}`);
|
|
72
|
+
console.log(`DEFAULTS_ROOT=${DEFAULTS_ROOT}`);
|
|
73
|
+
console.log(`WORKSPACE_ROOT=${WORKSPACE_ROOT}`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
if (command === "help" || command === "--help" || command === "-h") {
|
|
77
|
+
printHelp();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
console.error(`Unknown command: ${command}`);
|
|
81
|
+
printHelp();
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
main().catch((err) => {
|
|
85
|
+
console.error("Fatal error:", err);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
});
|
|
88
|
+
//# 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":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers – path resolution, file I/O, artifact discovery, bootstrap.
|
|
3
|
+
*/
|
|
4
|
+
export declare const SERVER_ROOT: string;
|
|
5
|
+
export declare const PACKAGE_ROOT: string;
|
|
6
|
+
export declare const WORKSPACE_ROOT: string;
|
|
7
|
+
export declare const DEFAULTS_ROOT: string;
|
|
8
|
+
export declare const ALL_AGENTS: readonly ["orchestrator", "vos", "ui", "coders"];
|
|
9
|
+
export type AgentRole = (typeof ALL_AGENTS)[number];
|
|
10
|
+
export type TaskKey = "todo" | "role_tasks" | "cli_work_split" | "lessons" | "readme" | "handoff_template" | "handoff_example" | "handoff_example_vos_ui" | "handoff_example_ui_coders";
|
|
11
|
+
export declare const AGENT_FILES: Record<AgentRole, string[]>;
|
|
12
|
+
export declare const AGENT_MANIFEST_FILES: Record<AgentRole, string[]>;
|
|
13
|
+
export declare const TASK_FILES: Record<TaskKey, string[]>;
|
|
14
|
+
export type ArtifactSource = "workspace" | "package-defaults" | "missing";
|
|
15
|
+
export interface SkillReference {
|
|
16
|
+
name: string;
|
|
17
|
+
path: string;
|
|
18
|
+
source: "workspace" | "package-defaults";
|
|
19
|
+
}
|
|
20
|
+
export interface BootstrapOptions {
|
|
21
|
+
projectName?: string;
|
|
22
|
+
force?: boolean;
|
|
23
|
+
includeMcpConfig?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface BootstrapResult {
|
|
26
|
+
created: string[];
|
|
27
|
+
updated: string[];
|
|
28
|
+
skipped: string[];
|
|
29
|
+
}
|
|
30
|
+
export declare function wsPath(...segments: string[]): string;
|
|
31
|
+
export declare function classifyPathSource(path?: string): ArtifactSource;
|
|
32
|
+
/** Safely read a workspace file, returning either text or a not-found/access message. */
|
|
33
|
+
export declare function safeRead(filePath: string): string;
|
|
34
|
+
/** Safely write a workspace file, creating directories if needed. */
|
|
35
|
+
export declare function safeWrite(filePath: string, content: string): string;
|
|
36
|
+
/** Check if a file path exists. Relative paths are workspace-relative. */
|
|
37
|
+
export declare function fileExists(filePath: string): boolean;
|
|
38
|
+
export declare function getAgentInstructionPath(role: AgentRole): string | undefined;
|
|
39
|
+
export declare function getAgentManifestPath(role: AgentRole): string | undefined;
|
|
40
|
+
export declare function readAgentInstructions(role: AgentRole): string;
|
|
41
|
+
export declare function readAgentManifest(role: AgentRole): string;
|
|
42
|
+
export declare function getTaskArtifactPath(key: TaskKey): string | undefined;
|
|
43
|
+
export declare function readTaskArtifact(key: TaskKey): string;
|
|
44
|
+
export declare function resolveWritableTaskPath(key: TaskKey): string;
|
|
45
|
+
export declare function listAvailableSkills(): SkillReference[];
|
|
46
|
+
export declare function getSkillPath(name: string): string | undefined;
|
|
47
|
+
export declare function readSkillInstructions(name: string): string;
|
|
48
|
+
export declare function getMcpServerConfigSnippet(): string;
|
|
49
|
+
export declare function bootstrapAceWorkspace(options?: BootstrapOptions): BootstrapResult;
|
|
50
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,eAAO,MAAM,WAAW,QAA2B,CAAC;AACpD,eAAO,MAAM,YAAY,QAAc,CAAC;AACxC,eAAO,MAAM,cAAc,QAA2D,CAAC;AAEvF,eAAO,MAAM,aAAa,QAAkC,CAAC;AAM7D,eAAO,MAAM,UAAU,kDAAmD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD,MAAM,MAAM,OAAO,GACf,MAAM,GACN,YAAY,GACZ,gBAAgB,GAChB,SAAS,GACT,QAAQ,GACR,kBAAkB,GAClB,iBAAiB,GACjB,wBAAwB,GACxB,2BAA2B,CAAC;AAGhC,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAqBnD,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAK5D,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAUhD,CAAC;AAkCF,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,kBAAkB,GAAG,SAAS,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,MAAM,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AAwCD,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAKhE;AAED,yFAAyF;AACzF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAKnE;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAG3E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAG7D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAGzD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGrD;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAO5D;AASD,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAuBtD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK7D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ1D;AAgED,wBAAgB,yBAAyB,IAAI,MAAM,CAclD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA0HrF"}
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helpers – path resolution, file I/O, artifact discovery, bootstrap.
|
|
3
|
+
*/
|
|
4
|
+
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
5
|
+
import { dirname, isAbsolute, relative, resolve } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = dirname(__filename);
|
|
9
|
+
export const SERVER_ROOT = resolve(__dirname, "..");
|
|
10
|
+
export const PACKAGE_ROOT = SERVER_ROOT;
|
|
11
|
+
export const WORKSPACE_ROOT = resolve(process.env.ACE_WORKSPACE_ROOT ?? process.cwd());
|
|
12
|
+
export const DEFAULTS_ROOT = resolve(PACKAGE_ROOT, "assets");
|
|
13
|
+
const DEFAULTS_INSTRUCTIONS_ROOT = resolve(DEFAULTS_ROOT, "instructions");
|
|
14
|
+
const DEFAULTS_TASKS_ROOT = resolve(DEFAULTS_ROOT, "tasks");
|
|
15
|
+
const DEFAULTS_SKILLS_ROOT = resolve(DEFAULTS_ROOT, ".agents", "skills");
|
|
16
|
+
const DEFAULTS_AGENT_STATE_ROOT = resolve(DEFAULTS_ROOT, "agent-state");
|
|
17
|
+
export const ALL_AGENTS = ["orchestrator", "vos", "ui", "coders"];
|
|
18
|
+
// Workspace-first agent instruction candidates.
|
|
19
|
+
export const AGENT_FILES = {
|
|
20
|
+
orchestrator: [
|
|
21
|
+
"ACE.instructions.md",
|
|
22
|
+
".agents/ACE/ACE-Init/instructions.md",
|
|
23
|
+
".agents/ACE/ACE-Init/AGENTS.md",
|
|
24
|
+
],
|
|
25
|
+
vos: [
|
|
26
|
+
"ACE_VOS.instructions.md",
|
|
27
|
+
".agents/ACE/VOS/instructions.md",
|
|
28
|
+
".agents/ACE/VOS/AGENTS.md",
|
|
29
|
+
],
|
|
30
|
+
ui: [
|
|
31
|
+
"ACE_UI.instructions.md",
|
|
32
|
+
".agents/ACE/UI/instructions.md",
|
|
33
|
+
".agents/ACE/UI/AGENTS.md",
|
|
34
|
+
],
|
|
35
|
+
coders: [
|
|
36
|
+
"ACE_Coder.instructions.md",
|
|
37
|
+
".agents/ACE/ACE_coders/INSTRUCTIONS.md",
|
|
38
|
+
".agents/ACE/ACE_coders/AGENTS.md",
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
// Workspace-first agent manifest candidates.
|
|
42
|
+
export const AGENT_MANIFEST_FILES = {
|
|
43
|
+
orchestrator: [".agents/ACE/ACE-Init/AGENTS.md"],
|
|
44
|
+
vos: [".agents/ACE/VOS/AGENTS.md"],
|
|
45
|
+
ui: [".agents/ACE/UI/AGENTS.md"],
|
|
46
|
+
coders: [".agents/ACE/ACE_coders/AGENTS.md"],
|
|
47
|
+
};
|
|
48
|
+
export const TASK_FILES = {
|
|
49
|
+
todo: ["tasks/todo.md"],
|
|
50
|
+
role_tasks: ["tasks/role_tasks.md"],
|
|
51
|
+
cli_work_split: ["tasks/cli_work_split.md"],
|
|
52
|
+
lessons: ["tasks/lessons.md"],
|
|
53
|
+
readme: ["tasks/README.md"],
|
|
54
|
+
handoff_template: ["tasks/SWARM_HANDOFF.template.json"],
|
|
55
|
+
handoff_example: ["tasks/SWARM_HANDOFF.example.json"],
|
|
56
|
+
handoff_example_vos_ui: ["tasks/SWARM_HANDOFF.example_vos_to_ui.json"],
|
|
57
|
+
handoff_example_ui_coders: ["tasks/SWARM_HANDOFF.example_ui_to_coders.json"],
|
|
58
|
+
};
|
|
59
|
+
const DEFAULT_AGENT_INSTRUCTION_FILES = {
|
|
60
|
+
orchestrator: resolve(DEFAULTS_INSTRUCTIONS_ROOT, "ACE.instructions.md"),
|
|
61
|
+
vos: resolve(DEFAULTS_INSTRUCTIONS_ROOT, "ACE_VOS.instructions.md"),
|
|
62
|
+
ui: resolve(DEFAULTS_INSTRUCTIONS_ROOT, "ACE_UI.instructions.md"),
|
|
63
|
+
coders: resolve(DEFAULTS_INSTRUCTIONS_ROOT, "ACE_Coder.instructions.md"),
|
|
64
|
+
};
|
|
65
|
+
const DEFAULT_AGENT_MANIFEST_FILES = {
|
|
66
|
+
orchestrator: resolve(DEFAULTS_ROOT, ".agents", "ACE", "ACE-Init", "AGENTS.md"),
|
|
67
|
+
vos: resolve(DEFAULTS_ROOT, ".agents", "ACE", "VOS", "AGENTS.md"),
|
|
68
|
+
ui: resolve(DEFAULTS_ROOT, ".agents", "ACE", "UI", "AGENTS.md"),
|
|
69
|
+
coders: resolve(DEFAULTS_ROOT, ".agents", "ACE", "ACE_coders", "AGENTS.md"),
|
|
70
|
+
};
|
|
71
|
+
const DEFAULT_TASK_FILES = {
|
|
72
|
+
todo: resolve(DEFAULTS_TASKS_ROOT, "todo.md"),
|
|
73
|
+
role_tasks: resolve(DEFAULTS_TASKS_ROOT, "role_tasks.md"),
|
|
74
|
+
cli_work_split: resolve(DEFAULTS_TASKS_ROOT, "cli_work_split.md"),
|
|
75
|
+
lessons: resolve(DEFAULTS_TASKS_ROOT, "lessons.md"),
|
|
76
|
+
readme: resolve(DEFAULTS_TASKS_ROOT, "README.md"),
|
|
77
|
+
handoff_template: resolve(DEFAULTS_TASKS_ROOT, "SWARM_HANDOFF.template.json"),
|
|
78
|
+
handoff_example: resolve(DEFAULTS_TASKS_ROOT, "SWARM_HANDOFF.example.json"),
|
|
79
|
+
handoff_example_vos_ui: resolve(DEFAULTS_TASKS_ROOT, "SWARM_HANDOFF.example_vos_to_ui.json"),
|
|
80
|
+
handoff_example_ui_coders: resolve(DEFAULTS_TASKS_ROOT, "SWARM_HANDOFF.example_ui_to_coders.json"),
|
|
81
|
+
};
|
|
82
|
+
export function wsPath(...segments) {
|
|
83
|
+
return resolve(WORKSPACE_ROOT, ...segments);
|
|
84
|
+
}
|
|
85
|
+
function isInside(base, target) {
|
|
86
|
+
const rel = relative(base, target);
|
|
87
|
+
return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
|
|
88
|
+
}
|
|
89
|
+
function resolveWorkspacePath(filePath) {
|
|
90
|
+
const abs = isAbsolute(filePath) ? filePath : resolve(WORKSPACE_ROOT, filePath);
|
|
91
|
+
if (!isInside(WORKSPACE_ROOT, abs)) {
|
|
92
|
+
throw new Error(`Path escapes workspace root: ${filePath}`);
|
|
93
|
+
}
|
|
94
|
+
return abs;
|
|
95
|
+
}
|
|
96
|
+
function toAbsoluteWorkspaceCandidates(candidates) {
|
|
97
|
+
return candidates.map((candidate) => isAbsolute(candidate) ? candidate : resolve(WORKSPACE_ROOT, candidate));
|
|
98
|
+
}
|
|
99
|
+
function firstExistingPath(paths) {
|
|
100
|
+
return paths.find((candidate) => existsSync(candidate));
|
|
101
|
+
}
|
|
102
|
+
function readText(absPath) {
|
|
103
|
+
return readFileSync(absPath, "utf-8");
|
|
104
|
+
}
|
|
105
|
+
function readFirstAvailable(paths) {
|
|
106
|
+
const found = firstExistingPath(paths);
|
|
107
|
+
if (!found) {
|
|
108
|
+
return {
|
|
109
|
+
text: `[FILE NOT FOUND]\nTried:\n${paths.map((p) => `- ${p}`).join("\n")}`,
|
|
110
|
+
path: undefined,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return { text: readText(found), path: found };
|
|
114
|
+
}
|
|
115
|
+
export function classifyPathSource(path) {
|
|
116
|
+
if (!path)
|
|
117
|
+
return "missing";
|
|
118
|
+
if (isInside(WORKSPACE_ROOT, path))
|
|
119
|
+
return "workspace";
|
|
120
|
+
if (isInside(DEFAULTS_ROOT, path))
|
|
121
|
+
return "package-defaults";
|
|
122
|
+
return "missing";
|
|
123
|
+
}
|
|
124
|
+
/** Safely read a workspace file, returning either text or a not-found/access message. */
|
|
125
|
+
export function safeRead(filePath) {
|
|
126
|
+
try {
|
|
127
|
+
const abs = resolveWorkspacePath(filePath);
|
|
128
|
+
if (!existsSync(abs))
|
|
129
|
+
return `[FILE NOT FOUND] ${abs}`;
|
|
130
|
+
return readText(abs);
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
return `[ACCESS DENIED] ${String(err)}`;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/** Safely write a workspace file, creating directories if needed. */
|
|
137
|
+
export function safeWrite(filePath, content) {
|
|
138
|
+
const abs = resolveWorkspacePath(filePath);
|
|
139
|
+
mkdirSync(dirname(abs), { recursive: true });
|
|
140
|
+
writeFileSync(abs, content, "utf-8");
|
|
141
|
+
return abs;
|
|
142
|
+
}
|
|
143
|
+
/** Check if a file path exists. Relative paths are workspace-relative. */
|
|
144
|
+
export function fileExists(filePath) {
|
|
145
|
+
const abs = isAbsolute(filePath) ? filePath : wsPath(filePath);
|
|
146
|
+
return existsSync(abs);
|
|
147
|
+
}
|
|
148
|
+
export function getAgentInstructionPath(role) {
|
|
149
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(AGENT_FILES[role]);
|
|
150
|
+
return firstExistingPath([...workspaceCandidates, DEFAULT_AGENT_INSTRUCTION_FILES[role]]);
|
|
151
|
+
}
|
|
152
|
+
export function getAgentManifestPath(role) {
|
|
153
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(AGENT_MANIFEST_FILES[role]);
|
|
154
|
+
return firstExistingPath([...workspaceCandidates, DEFAULT_AGENT_MANIFEST_FILES[role]]);
|
|
155
|
+
}
|
|
156
|
+
export function readAgentInstructions(role) {
|
|
157
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(AGENT_FILES[role]);
|
|
158
|
+
return readFirstAvailable([...workspaceCandidates, DEFAULT_AGENT_INSTRUCTION_FILES[role]]).text;
|
|
159
|
+
}
|
|
160
|
+
export function readAgentManifest(role) {
|
|
161
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(AGENT_MANIFEST_FILES[role]);
|
|
162
|
+
return readFirstAvailable([...workspaceCandidates, DEFAULT_AGENT_MANIFEST_FILES[role]]).text;
|
|
163
|
+
}
|
|
164
|
+
export function getTaskArtifactPath(key) {
|
|
165
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(TASK_FILES[key]);
|
|
166
|
+
return firstExistingPath([...workspaceCandidates, DEFAULT_TASK_FILES[key]]);
|
|
167
|
+
}
|
|
168
|
+
export function readTaskArtifact(key) {
|
|
169
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(TASK_FILES[key]);
|
|
170
|
+
return readFirstAvailable([...workspaceCandidates, DEFAULT_TASK_FILES[key]]).text;
|
|
171
|
+
}
|
|
172
|
+
export function resolveWritableTaskPath(key) {
|
|
173
|
+
const workspaceCandidates = toAbsoluteWorkspaceCandidates(TASK_FILES[key]);
|
|
174
|
+
const existingWorkspacePath = workspaceCandidates.find((candidate) => existsSync(candidate));
|
|
175
|
+
if (existingWorkspacePath)
|
|
176
|
+
return existingWorkspacePath;
|
|
177
|
+
// Write to canonical workspace target when not yet present.
|
|
178
|
+
return resolveWorkspacePath(TASK_FILES[key][0]);
|
|
179
|
+
}
|
|
180
|
+
function listSkillDirs() {
|
|
181
|
+
return [
|
|
182
|
+
{ root: wsPath(".agents", "skills"), source: "workspace" },
|
|
183
|
+
{ root: DEFAULTS_SKILLS_ROOT, source: "package-defaults" },
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
export function listAvailableSkills() {
|
|
187
|
+
const dedup = new Map();
|
|
188
|
+
for (const { root, source } of listSkillDirs()) {
|
|
189
|
+
if (!existsSync(root))
|
|
190
|
+
continue;
|
|
191
|
+
const entries = readdirSync(root, { withFileTypes: true });
|
|
192
|
+
for (const entry of entries) {
|
|
193
|
+
if (!entry.isDirectory())
|
|
194
|
+
continue;
|
|
195
|
+
const skillName = entry.name;
|
|
196
|
+
const skillPath = resolve(root, skillName, "SKILL.md");
|
|
197
|
+
if (!existsSync(skillPath))
|
|
198
|
+
continue;
|
|
199
|
+
if (!dedup.has(skillName)) {
|
|
200
|
+
dedup.set(skillName, {
|
|
201
|
+
name: skillName,
|
|
202
|
+
path: skillPath,
|
|
203
|
+
source,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return [...dedup.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
209
|
+
}
|
|
210
|
+
export function getSkillPath(name) {
|
|
211
|
+
const target = name.trim().toLowerCase();
|
|
212
|
+
const skills = listAvailableSkills();
|
|
213
|
+
const exact = skills.find((skill) => skill.name.toLowerCase() === target);
|
|
214
|
+
return exact?.path;
|
|
215
|
+
}
|
|
216
|
+
export function readSkillInstructions(name) {
|
|
217
|
+
const path = getSkillPath(name);
|
|
218
|
+
if (!path) {
|
|
219
|
+
return `Skill not found: ${name}\nAvailable: ${listAvailableSkills()
|
|
220
|
+
.map((s) => s.name)
|
|
221
|
+
.join(", ")}`;
|
|
222
|
+
}
|
|
223
|
+
return readText(path);
|
|
224
|
+
}
|
|
225
|
+
function ensureDir(dirPath, result) {
|
|
226
|
+
if (existsSync(dirPath))
|
|
227
|
+
return;
|
|
228
|
+
mkdirSync(dirPath, { recursive: true });
|
|
229
|
+
result.created.push(dirPath);
|
|
230
|
+
}
|
|
231
|
+
function copyTree(srcRoot, destRoot, result, force = false) {
|
|
232
|
+
if (!existsSync(srcRoot))
|
|
233
|
+
return;
|
|
234
|
+
const entries = readdirSync(srcRoot, { withFileTypes: true });
|
|
235
|
+
for (const entry of entries) {
|
|
236
|
+
const src = resolve(srcRoot, entry.name);
|
|
237
|
+
const dest = resolve(destRoot, entry.name);
|
|
238
|
+
if (entry.isDirectory()) {
|
|
239
|
+
ensureDir(dest, result);
|
|
240
|
+
copyTree(src, dest, result, force);
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
if (!existsSync(dest)) {
|
|
244
|
+
mkdirSync(dirname(dest), { recursive: true });
|
|
245
|
+
copyFileSync(src, dest);
|
|
246
|
+
result.created.push(dest);
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
if (force) {
|
|
250
|
+
copyFileSync(src, dest);
|
|
251
|
+
result.updated.push(dest);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
result.skipped.push(dest);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
function writeIfMissingOrForced(path, content, result, force = false) {
|
|
259
|
+
if (!existsSync(path)) {
|
|
260
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
261
|
+
writeFileSync(path, content, "utf-8");
|
|
262
|
+
result.created.push(path);
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (force) {
|
|
266
|
+
writeFileSync(path, content, "utf-8");
|
|
267
|
+
result.updated.push(path);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
result.skipped.push(path);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
export function getMcpServerConfigSnippet() {
|
|
274
|
+
return JSON.stringify({
|
|
275
|
+
servers: {
|
|
276
|
+
"ace-swarm": {
|
|
277
|
+
type: "stdio",
|
|
278
|
+
command: "npx",
|
|
279
|
+
args: ["-y", "ace-swarm", "mcp"],
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
}, null, 2);
|
|
283
|
+
}
|
|
284
|
+
export function bootstrapAceWorkspace(options = {}) {
|
|
285
|
+
const force = options.force ?? false;
|
|
286
|
+
const projectName = options.projectName?.trim() || "ACE Project";
|
|
287
|
+
const includeMcpConfig = options.includeMcpConfig ?? true;
|
|
288
|
+
const result = { created: [], updated: [], skipped: [] };
|
|
289
|
+
const dirSeeds = [
|
|
290
|
+
wsPath("global-state"),
|
|
291
|
+
wsPath("venture-state"),
|
|
292
|
+
wsPath("brand-state"),
|
|
293
|
+
wsPath("brand-state", "ASSETS"),
|
|
294
|
+
wsPath("engineering-state"),
|
|
295
|
+
wsPath("engineering-state", "src"),
|
|
296
|
+
wsPath("agent-state"),
|
|
297
|
+
wsPath("agent-state", "MODULES"),
|
|
298
|
+
wsPath("agent-state", "MODULES", "roles"),
|
|
299
|
+
wsPath("agent-state", "MODULES", "gates"),
|
|
300
|
+
wsPath("tasks"),
|
|
301
|
+
wsPath(".agents"),
|
|
302
|
+
wsPath(".vscode"),
|
|
303
|
+
];
|
|
304
|
+
for (const dir of dirSeeds)
|
|
305
|
+
ensureDir(dir, result);
|
|
306
|
+
// Copy packaged defaults for tasks, instructions, skills, and agent-state.
|
|
307
|
+
copyTree(DEFAULTS_TASKS_ROOT, wsPath("tasks"), result, force);
|
|
308
|
+
copyTree(DEFAULTS_AGENT_STATE_ROOT, wsPath("agent-state"), result, force);
|
|
309
|
+
copyTree(resolve(DEFAULTS_ROOT, ".agents"), wsPath(".agents"), result, force);
|
|
310
|
+
// Canonical root-level instruction aliases.
|
|
311
|
+
const instructionTargets = {
|
|
312
|
+
orchestrator: wsPath("ACE.instructions.md"),
|
|
313
|
+
vos: wsPath("ACE_VOS.instructions.md"),
|
|
314
|
+
ui: wsPath("ACE_UI.instructions.md"),
|
|
315
|
+
coders: wsPath("ACE_Coder.instructions.md"),
|
|
316
|
+
};
|
|
317
|
+
for (const role of ALL_AGENTS) {
|
|
318
|
+
const source = DEFAULT_AGENT_INSTRUCTION_FILES[role];
|
|
319
|
+
const dest = instructionTargets[role];
|
|
320
|
+
writeIfMissingOrForced(dest, readText(source), result, force);
|
|
321
|
+
}
|
|
322
|
+
// Global ACE orchestrator state files.
|
|
323
|
+
const masterPlanPath = wsPath("global-state", "MASTER_PLAN.md");
|
|
324
|
+
writeIfMissingOrForced(masterPlanPath, [
|
|
325
|
+
`# ${projectName} — Master Plan`,
|
|
326
|
+
"",
|
|
327
|
+
`Created: ${new Date().toISOString()}`,
|
|
328
|
+
"",
|
|
329
|
+
"## Status",
|
|
330
|
+
"",
|
|
331
|
+
"- Phase: Bootstrap",
|
|
332
|
+
"- Next: Route first handoff",
|
|
333
|
+
"",
|
|
334
|
+
"## Roadmap",
|
|
335
|
+
"",
|
|
336
|
+
"1. [ ] Validate venture thesis (ACE-VOS)",
|
|
337
|
+
"2. [ ] Define UX copy/flow package (ACE-UI)",
|
|
338
|
+
"3. [ ] Ship tested implementation (ACE-Coders)",
|
|
339
|
+
"",
|
|
340
|
+
"## Active Swarm",
|
|
341
|
+
"",
|
|
342
|
+
"| Agent | Status | Last Update |",
|
|
343
|
+
"|---|---|---|",
|
|
344
|
+
"| ACE-Orchestrator | active | bootstrap |",
|
|
345
|
+
"| ACE-VOS | idle | — |",
|
|
346
|
+
"| ACE-UI | idle | — |",
|
|
347
|
+
"| ACE-Coders | idle | — |",
|
|
348
|
+
].join("\n"), result, force);
|
|
349
|
+
const registryPath = wsPath("global-state", "SWARM_REGISTRY.json");
|
|
350
|
+
writeIfMissingOrForced(registryPath, JSON.stringify({
|
|
351
|
+
swarms: {
|
|
352
|
+
"ace-orchestrator": {
|
|
353
|
+
state_dir: "./global-state/",
|
|
354
|
+
status: "active",
|
|
355
|
+
instructions: "ACE.instructions.md",
|
|
356
|
+
},
|
|
357
|
+
"ace-vos": {
|
|
358
|
+
state_dir: "./venture-state/",
|
|
359
|
+
status: "idle",
|
|
360
|
+
instructions: "ACE_VOS.instructions.md",
|
|
361
|
+
},
|
|
362
|
+
"ace-ui": {
|
|
363
|
+
state_dir: "./brand-state/",
|
|
364
|
+
status: "idle",
|
|
365
|
+
instructions: "ACE_UI.instructions.md",
|
|
366
|
+
},
|
|
367
|
+
"ace-coders": {
|
|
368
|
+
state_dir: "./engineering-state/",
|
|
369
|
+
status: "idle",
|
|
370
|
+
instructions: "ACE_Coder.instructions.md",
|
|
371
|
+
},
|
|
372
|
+
},
|
|
373
|
+
}, null, 2), result, force);
|
|
374
|
+
if (includeMcpConfig) {
|
|
375
|
+
writeIfMissingOrForced(wsPath(".vscode", "mcp.json"), getMcpServerConfigSnippet(), result, force);
|
|
376
|
+
}
|
|
377
|
+
return result;
|
|
378
|
+
}
|
|
379
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|