agent-enderun 1.0.8 → 1.0.9
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/.enderun/ARCHITECTURE.md +1 -0
- package/.enderun/BRAIN_DASHBOARD.md +1 -1
- package/.enderun/ENDERUN.md +2 -2
- package/.enderun/SECURITY.md +1 -0
- package/.enderun/STATUS.md +4 -4
- package/.enderun/agents/agent_army_schema.json +71 -77
- package/.enderun/agents/analyst.json +32 -0
- package/.enderun/agents/backend.json +32 -0
- package/.enderun/agents/database.json +32 -0
- package/.enderun/agents/devops.json +32 -0
- package/.enderun/agents/explorer.json +32 -0
- package/.enderun/agents/frontend.json +32 -0
- package/.enderun/agents/git.json +32 -0
- package/.enderun/agents/manager.json +32 -0
- package/.enderun/agents/mobile.json +32 -0
- package/.enderun/agents/native.json +32 -0
- package/.enderun/agents/quality.json +32 -0
- package/.enderun/agents/schema/agent-lifecycle-schema.json +35 -80
- package/.enderun/agents/security.json +32 -0
- package/.enderun/cli-commands.json +7 -5
- package/.enderun/config.json +1 -1
- package/.enderun/knowledge/ARCHITECTURE.md +1 -0
- package/.enderun/knowledge/SECURITY.md +1 -0
- package/.enderun/knowledge/SHIM_TEMPLATE.md +1 -1
- package/.enderun/logs/manager.json +1 -0
- package/.enderun/memory/PROJECT_MEMORY.md +6 -0
- package/.enderun/observability/README.md +1 -1
- package/README.md +32 -31
- package/agent.md +1 -1
- package/bin/hermes-sandbox.js +0 -4
- package/bin/init-check.js +0 -1
- package/bin/validate-agent-army.js +34 -92
- package/dist/apps/backend/src/types/index.d.ts +9 -0
- package/dist/apps/backend/src/types/index.js +5 -0
- package/dist/apps/backend/src/types/index.js.map +1 -0
- package/dist/apps/web/src/main.d.ts +1 -0
- package/dist/apps/web/src/main.js +9 -0
- package/dist/apps/web/src/main.js.map +1 -0
- package/dist/apps/web/vite.config.d.ts +2 -0
- package/dist/apps/web/vite.config.js +6 -0
- package/dist/apps/web/vite.config.js.map +1 -0
- package/dist/framework-mcp/src/index.d.ts +1 -0
- package/dist/framework-mcp/src/index.js +71 -0
- package/dist/framework-mcp/src/index.js.map +1 -0
- package/dist/framework-mcp/src/tools/definitions.d.ts +2 -0
- package/dist/framework-mcp/src/tools/definitions.js +111 -0
- package/dist/framework-mcp/src/tools/definitions.js.map +1 -0
- package/dist/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -0
- package/dist/framework-mcp/src/tools/file_system/patch_file.js +19 -0
- package/dist/framework-mcp/src/tools/file_system/patch_file.js.map +1 -0
- package/dist/framework-mcp/src/tools/file_system/read_file.d.ts +2 -0
- package/dist/framework-mcp/src/tools/file_system/read_file.js +8 -0
- package/dist/framework-mcp/src/tools/file_system/read_file.js.map +1 -0
- package/dist/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -0
- package/dist/framework-mcp/src/tools/file_system/replace_text.js +32 -0
- package/dist/framework-mcp/src/tools/file_system/replace_text.js.map +1 -0
- package/dist/framework-mcp/src/tools/file_system/write_file.d.ts +2 -0
- package/dist/framework-mcp/src/tools/file_system/write_file.js +10 -0
- package/dist/framework-mcp/src/tools/file_system/write_file.js.map +1 -0
- package/dist/framework-mcp/src/tools/framework/get_status.d.ts +2 -0
- package/dist/framework-mcp/src/tools/framework/get_status.js +6 -0
- package/dist/framework-mcp/src/tools/framework/get_status.js.map +1 -0
- package/dist/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -0
- package/dist/framework-mcp/src/tools/framework/orchestrate.js +6 -0
- package/dist/framework-mcp/src/tools/framework/orchestrate.js.map +1 -0
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -0
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.js +6 -0
- package/dist/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -0
- package/dist/framework-mcp/src/tools/framework/update_memory.d.ts +2 -0
- package/dist/framework-mcp/src/tools/framework/update_memory.js +9 -0
- package/dist/framework-mcp/src/tools/framework/update_memory.js.map +1 -0
- package/dist/framework-mcp/src/tools/index.d.ts +5 -0
- package/dist/framework-mcp/src/tools/index.js +26 -0
- package/dist/framework-mcp/src/tools/index.js.map +1 -0
- package/dist/framework-mcp/src/tools/messaging/log_action.d.ts +2 -0
- package/dist/framework-mcp/src/tools/messaging/log_action.js +23 -0
- package/dist/framework-mcp/src/tools/messaging/log_action.js.map +1 -0
- package/dist/framework-mcp/src/tools/messaging/send_message.d.ts +2 -0
- package/dist/framework-mcp/src/tools/messaging/send_message.js +24 -0
- package/dist/framework-mcp/src/tools/messaging/send_message.js.map +1 -0
- package/dist/framework-mcp/src/tools/types.d.ts +47 -0
- package/dist/framework-mcp/src/tools/types.js +2 -0
- package/dist/framework-mcp/src/tools/types.js.map +1 -0
- package/dist/framework-mcp/src/utils/cli.d.ts +5 -0
- package/dist/framework-mcp/src/utils/cli.js +21 -0
- package/dist/framework-mcp/src/utils/cli.js.map +1 -0
- package/dist/framework-mcp/src/utils/security.d.ts +12 -0
- package/dist/framework-mcp/src/utils/security.js +54 -0
- package/dist/framework-mcp/src/utils/security.js.map +1 -0
- package/dist/src/cli/adapters.d.ts +32 -0
- package/dist/src/cli/adapters.js +264 -0
- package/dist/src/cli/adapters.js.map +1 -0
- package/dist/src/cli/commands/app.d.ts +4 -0
- package/dist/src/cli/commands/app.js +32 -0
- package/dist/src/cli/commands/app.js.map +1 -0
- package/dist/src/cli/commands/check.d.ts +6 -0
- package/dist/src/cli/commands/check.js +110 -0
- package/dist/src/cli/commands/check.js.map +1 -0
- package/dist/src/cli/commands/compliance.d.ts +1 -0
- package/dist/src/cli/commands/compliance.js +51 -0
- package/dist/src/cli/commands/compliance.js.map +1 -0
- package/dist/src/cli/commands/contract.d.ts +8 -0
- package/dist/src/cli/commands/contract.js +73 -0
- package/dist/src/cli/commands/contract.js.map +1 -0
- package/dist/src/cli/commands/explorer.d.ts +2 -0
- package/dist/src/cli/commands/explorer.js +43 -0
- package/dist/src/cli/commands/explorer.js.map +1 -0
- package/dist/src/cli/commands/git.d.ts +2 -0
- package/dist/src/cli/commands/git.js +41 -0
- package/dist/src/cli/commands/git.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +1 -0
- package/dist/src/cli/commands/init.js +338 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/knowledge.d.ts +2 -0
- package/dist/src/cli/commands/knowledge.js +43 -0
- package/dist/src/cli/commands/knowledge.js.map +1 -0
- package/dist/src/cli/commands/lint.d.ts +4 -0
- package/dist/src/cli/commands/lint.js +24 -0
- package/dist/src/cli/commands/lint.js.map +1 -0
- package/dist/src/cli/commands/log.d.ts +9 -0
- package/dist/src/cli/commands/log.js +33 -0
- package/dist/src/cli/commands/log.js.map +1 -0
- package/dist/src/cli/commands/memory.d.ts +1 -0
- package/dist/src/cli/commands/memory.js +72 -0
- package/dist/src/cli/commands/memory.js.map +1 -0
- package/dist/src/cli/commands/orchestrate.d.ts +1 -0
- package/dist/src/cli/commands/orchestrate.js +111 -0
- package/dist/src/cli/commands/orchestrate.js.map +1 -0
- package/dist/src/cli/commands/script.d.ts +1 -0
- package/dist/src/cli/commands/script.js +20 -0
- package/dist/src/cli/commands/script.js.map +1 -0
- package/dist/src/cli/commands/security.d.ts +1 -0
- package/dist/src/cli/commands/security.js +37 -0
- package/dist/src/cli/commands/security.js.map +1 -0
- package/dist/src/cli/commands/status.d.ts +4 -0
- package/dist/src/cli/commands/status.js +56 -0
- package/dist/src/cli/commands/status.js.map +1 -0
- package/dist/src/cli/commands/trace.d.ts +4 -0
- package/dist/src/cli/commands/trace.js +42 -0
- package/dist/src/cli/commands/trace.js.map +1 -0
- package/dist/src/cli/index.d.ts +2 -0
- package/dist/src/cli/index.js +117 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/utils/app.d.ts +33 -0
- package/dist/src/cli/utils/app.js +710 -0
- package/dist/src/cli/utils/app.js.map +1 -0
- package/dist/src/cli/utils/claude.d.ts +8 -0
- package/dist/src/cli/utils/claude.js +56 -0
- package/dist/src/cli/utils/claude.js.map +1 -0
- package/dist/src/cli/utils/fs.d.ts +11 -0
- package/dist/src/cli/utils/fs.js +144 -0
- package/dist/src/cli/utils/fs.js.map +1 -0
- package/dist/src/cli/utils/memory.d.ts +14 -0
- package/dist/src/cli/utils/memory.js +173 -0
- package/dist/src/cli/utils/memory.js.map +1 -0
- package/dist/src/cli/utils/pkg.d.ts +24 -0
- package/dist/src/cli/utils/pkg.js +254 -0
- package/dist/src/cli/utils/pkg.js.map +1 -0
- package/dist/src/cli/utils/string.d.ts +6 -0
- package/dist/src/cli/utils/string.js +44 -0
- package/dist/src/cli/utils/string.js.map +1 -0
- package/dist/src/cli/utils/time.d.ts +2 -0
- package/dist/src/cli/utils/time.js +28 -0
- package/dist/src/cli/utils/time.js.map +1 -0
- package/dist/tests/adapter.test.d.ts +1 -0
- package/dist/tests/adapter.test.js +80 -0
- package/dist/tests/adapter.test.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/index.d.ts +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/index.js +71 -0
- package/dist/tests/framework-init-test/framework-mcp/src/index.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.js +111 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/definitions.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.js +19 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/patch_file.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.js +8 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/read_file.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.js +32 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/replace_text.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.js +10 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/file_system/write_file.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.js +6 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/get_status.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.js +6 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/orchestrate.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.js +6 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_contract_hash.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.js +9 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/framework/update_memory.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/index.d.ts +5 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/index.js +26 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/index.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.js +23 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/log_action.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.d.ts +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.js +24 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/messaging/send_message.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/types.d.ts +47 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/types.js +2 -0
- package/dist/tests/framework-init-test/framework-mcp/src/tools/types.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.d.ts +5 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.js +21 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/cli.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/security.d.ts +12 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/security.js +54 -0
- package/dist/tests/framework-init-test/framework-mcp/src/utils/security.js.map +1 -0
- package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.d.ts +1 -0
- package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.js +69 -0
- package/dist/tests/framework-init-test/framework-mcp/tests/tools/file_system/replace_text.test.js.map +1 -0
- package/dist/tests/framework-init-test/panda.config.d.ts +4 -0
- package/dist/tests/framework-init-test/panda.config.js +95 -0
- package/dist/tests/framework-init-test/panda.config.js.map +1 -0
- package/dist/tests/framework-init-test/vitest.config.d.ts +2 -0
- package/dist/tests/framework-init-test/vitest.config.js +19 -0
- package/dist/tests/framework-init-test/vitest.config.js.map +1 -0
- package/dist/tests/gemini.test.d.ts +1 -0
- package/dist/tests/gemini.test.js +38 -0
- package/dist/tests/gemini.test.js.map +1 -0
- package/dist/tests/initial.test.d.ts +1 -0
- package/dist/tests/initial.test.js +7 -0
- package/dist/tests/initial.test.js.map +1 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +19 -0
- package/dist/vitest.config.js.map +1 -0
- package/eslint.config.js +1 -1
- package/framework-mcp/dist/index.js +2 -2
- package/framework-mcp/dist/src/index.js +70 -0
- package/framework-mcp/dist/src/tools/definitions.js +110 -0
- package/framework-mcp/dist/src/tools/file_system/patch_file.js +18 -0
- package/framework-mcp/dist/src/tools/file_system/read_file.js +7 -0
- package/framework-mcp/dist/src/tools/file_system/replace_text.js +31 -0
- package/framework-mcp/dist/src/tools/file_system/write_file.js +9 -0
- package/framework-mcp/dist/src/tools/framework/get_status.js +5 -0
- package/framework-mcp/dist/src/tools/framework/orchestrate.js +5 -0
- package/framework-mcp/dist/src/tools/framework/update_contract_hash.js +5 -0
- package/framework-mcp/dist/src/tools/framework/update_memory.js +8 -0
- package/framework-mcp/dist/src/tools/index.js +25 -0
- package/framework-mcp/dist/src/tools/messaging/log_action.js +22 -0
- package/framework-mcp/dist/src/tools/messaging/send_message.js +23 -0
- package/framework-mcp/dist/src/tools/types.js +1 -0
- package/framework-mcp/dist/src/utils/cli.js +20 -0
- package/framework-mcp/dist/src/utils/security.js +53 -0
- package/framework-mcp/dist/tests/tools/file_system/replace_text.test.js +68 -0
- package/framework-mcp/dist/tools/definitions.js +1 -0
- package/framework-mcp/dist/tools/file_system/replace_text.js +18 -1
- package/framework-mcp/dist/tools/framework/get_status.js +2 -2
- package/framework-mcp/dist/tools/framework/orchestrate.js +2 -2
- package/framework-mcp/dist/tools/framework/update_contract_hash.js +2 -2
- package/framework-mcp/dist/tools/framework/update_memory.js +1 -1
- package/framework-mcp/dist/tools/messaging/send_message.js +4 -2
- package/framework-mcp/dist/utils/cli.js +2 -2
- package/framework-mcp/dist/utils/security.js +23 -5
- package/framework-mcp/package.json +3 -3
- package/framework-mcp/src/index.ts +2 -2
- package/framework-mcp/src/tools/definitions.ts +1 -0
- package/framework-mcp/src/tools/file_system/replace_text.ts +21 -1
- package/framework-mcp/src/tools/framework/get_status.ts +3 -3
- package/framework-mcp/src/tools/framework/orchestrate.ts +3 -3
- package/framework-mcp/src/tools/framework/update_contract_hash.ts +3 -3
- package/framework-mcp/src/tools/framework/update_memory.ts +1 -1
- package/framework-mcp/src/tools/messaging/send_message.ts +5 -2
- package/framework-mcp/src/tools/types.ts +3 -0
- package/framework-mcp/src/utils/cli.ts +2 -2
- package/framework-mcp/src/utils/security.ts +23 -5
- package/framework-mcp/tests/tools/file_system/replace_text.test.js +68 -0
- package/framework-mcp/tests/tools/file_system/replace_text.test.ts +77 -0
- package/framework-mcp/tsconfig.json +1 -2
- package/mcp.json +4 -4
- package/package.json +4 -3
- package/src/cli/adapters.ts +16 -9
- package/src/cli/commands/contract.ts +2 -2
- package/src/cli/commands/init.ts +211 -432
- package/src/cli/commands/memory.ts +5 -0
- package/src/cli/index.ts +7 -0
- package/src/cli/utils/app.ts +19 -16
- package/src/cli/utils/claude.ts +2 -1
- package/src/cli/utils/fs.ts +2 -1
- package/src/cli/utils/memory.ts +2 -2
- package/src/cli/utils/pkg.ts +32 -0
- package/.enderun/agents/analyst.md +0 -32
- package/.enderun/agents/backend.md +0 -49
- package/.enderun/agents/database.md +0 -41
- package/.enderun/agents/devops.md +0 -41
- package/.enderun/agents/explorer.md +0 -40
- package/.enderun/agents/frontend.md +0 -48
- package/.enderun/agents/git.md +0 -41
- package/.enderun/agents/manager.md +0 -43
- package/.enderun/agents/mobile.md +0 -42
- package/.enderun/agents/native.md +0 -41
- package/.enderun/agents/quality.md +0 -40
- package/.enderun/agents/security.md +0 -32
|
@@ -5,6 +5,10 @@ import { getMemoryPath, acquireMemoryLock, releaseMemoryLock } from "../utils/me
|
|
|
5
5
|
|
|
6
6
|
export function updateProjectMemoryCommand(section: string, content: string) {
|
|
7
7
|
const memoryPath = getMemoryPath();
|
|
8
|
+
console.log("DEBUG: updateProjectMemoryCommand - memoryPath:", memoryPath);
|
|
9
|
+
console.log("DEBUG: updateProjectMemoryCommand - section:", section);
|
|
10
|
+
console.log("DEBUG: updateProjectMemoryCommand - content (first 100 chars):", content.substring(0, 100));
|
|
11
|
+
|
|
8
12
|
if (!fs.existsSync(memoryPath)) {
|
|
9
13
|
console.error("❌ Error: PROJECT_MEMORY.md not found.");
|
|
10
14
|
return;
|
|
@@ -18,6 +22,7 @@ export function updateProjectMemoryCommand(section: string, content: string) {
|
|
|
18
22
|
|
|
19
23
|
try {
|
|
20
24
|
let memoryContent = fs.readFileSync(memoryPath, "utf8");
|
|
25
|
+
console.log("DEBUG: updateProjectMemoryCommand - original memoryContent (first 100 chars):", memoryContent.substring(0, 100));
|
|
21
26
|
|
|
22
27
|
if (section === "HISTORY") {
|
|
23
28
|
const headers = ["## HISTORY (Persistent Memory)", "## HISTORY"];
|
package/src/cli/index.ts
CHANGED
package/src/cli/utils/app.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { ensureDir, writeTextFile, writeJsonFile } from "../utils/fs.js";
|
|
|
5
5
|
import { updateProjectMemoryCommand } from "../commands/memory.js";
|
|
6
6
|
import { slugifyName, titleCase } from "../utils/string.js";
|
|
7
7
|
import { getConfiguredPaths, getMemoryPath } from "./memory.js";
|
|
8
|
+
import { getDependencyVersions } from "./pkg.js";
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
const targetDir = process.cwd(); // Assuming targetDir is process.cwd() in the CLI context
|
|
@@ -293,6 +294,7 @@ interface AppSpec {
|
|
|
293
294
|
export function createBackendFiles(spec: AppSpec) {
|
|
294
295
|
const pathsMap = getConfiguredPaths();
|
|
295
296
|
const backendDir = pathsMap.backend;
|
|
297
|
+
const { fastify, "@fastify/cors": fastifyCors, zod, "@types/node": typesNode, tsx, typescript, "vitest-backend": vitest } = getDependencyVersions();
|
|
296
298
|
|
|
297
299
|
createBaseTypeFiles(path.join(targetDir, backendDir, "src"));
|
|
298
300
|
writeJsonFile(path.join(targetDir, backendDir, "contract.version.json"), {
|
|
@@ -311,15 +313,15 @@ export function createBackendFiles(spec: AppSpec) {
|
|
|
311
313
|
test: "vitest run",
|
|
312
314
|
},
|
|
313
315
|
dependencies: {
|
|
314
|
-
"@fastify/cors":
|
|
315
|
-
fastify:
|
|
316
|
-
zod:
|
|
316
|
+
"@fastify/cors": fastifyCors,
|
|
317
|
+
fastify: fastify,
|
|
318
|
+
zod: zod,
|
|
317
319
|
},
|
|
318
320
|
devDependencies: {
|
|
319
|
-
"@types/node":
|
|
320
|
-
tsx:
|
|
321
|
-
typescript:
|
|
322
|
-
vitest:
|
|
321
|
+
"@types/node": typesNode,
|
|
322
|
+
tsx: tsx,
|
|
323
|
+
typescript: typescript,
|
|
324
|
+
vitest: vitest,
|
|
323
325
|
},
|
|
324
326
|
});
|
|
325
327
|
|
|
@@ -431,6 +433,7 @@ export function createBackendFiles(spec: AppSpec) {
|
|
|
431
433
|
export function createWebFiles(spec: AppSpec) {
|
|
432
434
|
const pathsMap = getConfiguredPaths();
|
|
433
435
|
const frontendDir = pathsMap.frontend;
|
|
436
|
+
const { "@vitejs/plugin-react": vitePluginReact, vite, react, "react-dom": reactDom, "lucide-react": lucideReact, "@types/react": typesReact, "@types/react-dom": typesReactDom, typescript, "vitest-frontend": vitest } = getDependencyVersions();
|
|
434
437
|
|
|
435
438
|
createBaseTypeFiles(path.join(targetDir, frontendDir, "src"));
|
|
436
439
|
writeJsonFile(path.join(targetDir, frontendDir, "package.json"), {
|
|
@@ -445,17 +448,17 @@ export function createWebFiles(spec: AppSpec) {
|
|
|
445
448
|
test: "vitest run",
|
|
446
449
|
},
|
|
447
450
|
dependencies: {
|
|
448
|
-
"@vitejs/plugin-react":
|
|
449
|
-
vite:
|
|
450
|
-
react:
|
|
451
|
-
"react-dom":
|
|
452
|
-
"lucide-react":
|
|
451
|
+
"@vitejs/plugin-react": vitePluginReact,
|
|
452
|
+
vite: vite,
|
|
453
|
+
react: react,
|
|
454
|
+
"react-dom": reactDom,
|
|
455
|
+
"lucide-react": lucideReact,
|
|
453
456
|
},
|
|
454
457
|
devDependencies: {
|
|
455
|
-
"@types/react":
|
|
456
|
-
"@types/react-dom":
|
|
457
|
-
typescript:
|
|
458
|
-
vitest:
|
|
458
|
+
"@types/react": typesReact,
|
|
459
|
+
"@types/react-dom": typesReactDom,
|
|
460
|
+
typescript: typescript,
|
|
461
|
+
vitest: vitest,
|
|
459
462
|
},
|
|
460
463
|
});
|
|
461
464
|
|
package/src/cli/utils/claude.ts
CHANGED
|
@@ -55,7 +55,8 @@ export function addMcpServerToClaude(configPath: string, serverName: string, ser
|
|
|
55
55
|
|
|
56
56
|
fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`);
|
|
57
57
|
return true;
|
|
58
|
-
} catch {
|
|
58
|
+
} catch (e) {
|
|
59
|
+
console.error(`⚠️ Failed to add MCP server to Claude config at ${configPath}:`, e);
|
|
59
60
|
return false;
|
|
60
61
|
}
|
|
61
62
|
}
|
package/src/cli/utils/fs.ts
CHANGED
|
@@ -131,13 +131,14 @@ export function copyDir(
|
|
|
131
131
|
try {
|
|
132
132
|
const json = JSON.parse(content);
|
|
133
133
|
content = JSON.stringify(sanitizeJson(json, targetScope), null, 2);
|
|
134
|
-
content = remapFrameworkContent(content, frameworkDir, adapterId); // Remap again after JSON.stringify for any placeholders
|
|
135
134
|
} catch {
|
|
136
135
|
content = content.replace(/workspace:[^"'\s]*/g, "*");
|
|
137
136
|
}
|
|
138
137
|
} else {
|
|
139
138
|
content = content.replace(/workspace:[^"'\s]*/g, "*");
|
|
140
139
|
}
|
|
140
|
+
content = remapFrameworkContent(content, frameworkDir, adapterId); // Apply remap once to the final content
|
|
141
|
+
|
|
141
142
|
|
|
142
143
|
if (dryRun) {
|
|
143
144
|
console.warn(`[DRY RUN] Would process and write: ${destPath}`);
|
package/src/cli/utils/memory.ts
CHANGED
|
@@ -20,7 +20,7 @@ export function getFrameworkDir(): string {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
} catch {
|
|
23
|
-
// ignore
|
|
23
|
+
// ignore: non-critical parsing errors
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
// 2. Fall back to dynamic candidate scanning
|
|
@@ -74,7 +74,7 @@ export function getConfiguredPaths(): { backend: string; frontend: string; docs:
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
} catch {
|
|
77
|
-
// ignore
|
|
77
|
+
// ignore: non-critical parsing errors
|
|
78
78
|
}
|
|
79
79
|
return { backend, frontend, docs, tests };
|
|
80
80
|
}
|
package/src/cli/utils/pkg.ts
CHANGED
|
@@ -62,6 +62,38 @@ export function getValidatorPath(): string {
|
|
|
62
62
|
return path.join(getPackageRoot(), "bin", "validate-agent-army.js");
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
export function getDependencyVersions() {
|
|
66
|
+
const root = getPackageRoot();
|
|
67
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(root, "package.json"), "utf8"));
|
|
68
|
+
const devDependencies = pkg.devDependencies || {};
|
|
69
|
+
const dependencies = pkg.dependencies || {};
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
// Backend dependencies
|
|
73
|
+
"fastify": dependencies["fastify"] || "^5.0.0",
|
|
74
|
+
"@fastify/cors": dependencies["@fastify/cors"] || "^11.0.0",
|
|
75
|
+
"zod": dependencies["zod"] || "^3.24.2",
|
|
76
|
+
|
|
77
|
+
// Backend devDependencies
|
|
78
|
+
"@types/node": devDependencies["@types/node"] || "^22.13.4",
|
|
79
|
+
"tsx": devDependencies["tsx"] || "^4.19.4",
|
|
80
|
+
"typescript": devDependencies["typescript"] || "^5.9.3",
|
|
81
|
+
"vitest-backend": devDependencies["vitest"] || "^3.0.5", // Renamed to avoid conflict
|
|
82
|
+
|
|
83
|
+
// Frontend dependencies
|
|
84
|
+
"@vitejs/plugin-react": dependencies["@vitejs/plugin-react"] || "^5.0.0",
|
|
85
|
+
"vite": dependencies["vite"] || "^7.0.0",
|
|
86
|
+
"react": dependencies["react"] || "^19.0.0",
|
|
87
|
+
"react-dom": dependencies["react-dom"] || "^19.0.0",
|
|
88
|
+
"lucide-react": dependencies["lucide-react"] || "^0.468.0",
|
|
89
|
+
|
|
90
|
+
// Frontend devDependencies
|
|
91
|
+
"@types/react": devDependencies["@types/react"] || "^19.0.0",
|
|
92
|
+
"@types/react-dom": devDependencies["@types/react-dom"] || "^19.0.0",
|
|
93
|
+
"vitest-frontend": devDependencies["vitest"] || "^3.0.5", // Renamed to avoid conflict
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
65
97
|
interface PackageJson {
|
|
66
98
|
name?: string;
|
|
67
99
|
version?: string;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: analyst
|
|
3
|
-
description: "Contract Verification & Business Analyst Agent for Agent Enderun"
|
|
4
|
-
role: "Contract Verification & Business Analyst"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["specialist", "quality", "governance"]
|
|
9
|
-
permittedTools: ["read_file", "search_codebase"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @analyst — Contract Verification & Business Analyst (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Contract Integrity & Governance Auditor.
|
|
15
|
-
- **Role:** Contract Verification & Business Analyst
|
|
16
|
-
- **Capability Score:** 9
|
|
17
|
-
- **Permitted Directories:** `["*", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@analyst->*", "@analyst->@manager"]`
|
|
19
|
-
- **Goal:** Independently verify compliance with contracts and specifications between frontend, backend, and the constitution.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Independent Stance:** Act as an objective verification gate.
|
|
23
|
-
- **Contract-First Law:** Ensure `contract.version.json` perfectly matches types.
|
|
24
|
-
- **Escalation Priority:** Report all contract drift to `@manager` immediately.
|
|
25
|
-
- **Surgical Edits:** Use `replace_text` for all document updates.
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
**Agent Completion Report**
|
|
29
|
-
- Contract drift audited? [ ] No / [ ] Yes
|
|
30
|
-
- Governance rules validated? [ ] No / [ ] Yes
|
|
31
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
32
|
-
---
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: backend
|
|
3
|
-
description: "Domain Logic & Databases Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Domain Logic & Databases Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["core", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "replace_text", "write_file", "search_codebase", "run_tests"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @backend — Domain Logic & Databases (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Domain Logic & Databases Specialist.
|
|
15
|
-
- **Role:** Domain Logic & Databases Specialist
|
|
16
|
-
- **Capability Score:** 9
|
|
17
|
-
- **Permitted Directories:** `["apps/backend", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@backend->*", "@backend->@manager"]`
|
|
19
|
-
- **Goal:** Build secure, high-performance, and consistent server architecture.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **No UI:** Never implement UI or frontend logic.
|
|
23
|
-
- **Contract-First:** Define shared contracts/branded types BEFORE any consumer code.
|
|
24
|
-
- **Branded Types Law:** ALL IDs must use branded types (e.g., `UserID`). Plain strings are forbidden.
|
|
25
|
-
- **Zero Mock Policy:** Use real endpoints/contracts only.
|
|
26
|
-
- **Surgical Edits:** Use `replace_text` for all code changes.
|
|
27
|
-
- **Audit Logging:** Every state-mutating operation (POST, PUT, PATCH, DELETE) MUST trigger `AuditService.log()`.
|
|
28
|
-
- **Async Safety:** Error handling (try/catch) is mandatory for every async block.
|
|
29
|
-
- **Logging Standard:** `console.log` is FORBIDDEN. Use centralized Logger service.
|
|
30
|
-
|
|
31
|
-
## 🔌 SESSION PROTOCOL
|
|
32
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
33
|
-
2. **Context:** Search codebase for existing patterns before editing.
|
|
34
|
-
3. **Reference:** If implementing architecture, READ `.enderun/knowledge/backend_reference_guide.md` once.
|
|
35
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
36
|
-
|
|
37
|
-
## 🏗️ ARCHITECTURE (Summary)
|
|
38
|
-
- **Layered:** Route -> Controller -> Service -> Repository -> DB (Kysely only).
|
|
39
|
-
- **Errors:** Use `DomainError` hierarchy only.
|
|
40
|
-
- **Contract:** Sync `apps/backend/src/types` and update `contract.version.json`.
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
**Agent Completion Report**
|
|
44
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
45
|
-
- App types changed? [ ] No / [ ] Yes
|
|
46
|
-
- API contract written? [ ] No / [ ] Yes → .enderun/docs/api/
|
|
47
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
48
|
-
- Log written? [ ] No / [ ] Yes
|
|
49
|
-
---
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: database
|
|
3
|
-
description: "Database Architecture, Performance Tuning & Seeding Authority"
|
|
4
|
-
role: "Database Migrations & Tuning Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["infrastructure", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "write_file", "run_migration"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @database — Database Architecture (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Database Architecture & Multi-Engine Authority.
|
|
15
|
-
- **Role:** Database Migrations & Tuning Specialist
|
|
16
|
-
- **Capability Score:** 9
|
|
17
|
-
- **Permitted Directories:** `["apps/backend/src/database", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@database->*", "@database->@manager"]`
|
|
19
|
-
- **Goal:** Build secure, optimized, and scalable data layers.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Self-Contained DB:** Every backend application MUST manage its own schema/migrations/seeds in its own `src/database/` directory.
|
|
23
|
-
- **Contract-First:** All schemas MUST be derived from branded types.
|
|
24
|
-
- **Kysely Standard:** Use Kysely for application queries. Raw SQL is forbidden.
|
|
25
|
-
- **Zero Mock Policy:** Realistic, contract-aware seed data only.
|
|
26
|
-
- **Audit Logging:** Log every configuration/tuning action to `.enderun/logs/database.json`.
|
|
27
|
-
- **Surgical Edits:** Use `replace_text` for all schema/migration changes.
|
|
28
|
-
|
|
29
|
-
## 🔌 SESSION PROTOCOL
|
|
30
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
31
|
-
2. **Context:** Read existing migration patterns before creating new ones.
|
|
32
|
-
3. **Reference:** If designing schemas or tuning, READ `.enderun/knowledge/database_reference_guide.md` once.
|
|
33
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
**Agent Completion Report**
|
|
37
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
38
|
-
- Contract-First applied? [ ] No / [ ] Yes
|
|
39
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
40
|
-
- Log written? [ ] No / [ ] Yes
|
|
41
|
-
---
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: devops
|
|
3
|
-
description: "Infrastructure & Deployment Orchestration Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Infrastructure & CI/CD Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["infrastructure", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "write_file", "run_pipeline", "deploy_staging"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @devops — Infrastructure & Deployment (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Infrastructure & Deployment Orchestration Specialist.
|
|
15
|
-
- **Role:** Infrastructure & CI/CD Specialist
|
|
16
|
-
- **Capability Score:** 8
|
|
17
|
-
- **Permitted Directories:** `["apps", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@devops->*", "@devops->@manager"]`
|
|
19
|
-
- **Goal:** Ensure reliable execution in every environment with strict quality gates.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Gate Approvals:** NEVER deploy to production without @quality gate approval.
|
|
23
|
-
- **No Docker Policy:** Prefer native Node.js unless explicitly overridden by @manager.
|
|
24
|
-
- **Environment Parity:** Identical configs across dev/staging/prod (except secrets).
|
|
25
|
-
- **Secrets Security:** NEVER hardcode secrets. Use environment variables.
|
|
26
|
-
- **Rollback First:** Deployment is BLOCKED if no documented rollback plan exists.
|
|
27
|
-
- **Health Checks:** Mandatory for every deployed service.
|
|
28
|
-
- **Audit Logging:** Log every deployment to `.enderun/logs/devops.json`.
|
|
29
|
-
|
|
30
|
-
## 🔌 SESSION PROTOCOL
|
|
31
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
32
|
-
2. **Reference:** If designing pipelines or deploying, READ `.enderun/knowledge/devops_reference_guide.md` once.
|
|
33
|
-
3. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
**Agent Completion Report**
|
|
37
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
38
|
-
- Gate approvals checked? [ ] No / [ ] Yes
|
|
39
|
-
- Rollback plan documented? [ ] No / [ ] Yes
|
|
40
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
41
|
-
---
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: explorer
|
|
3
|
-
description: "Codebase Discovery & Architecture Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Codebase Discovery Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["core", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "search_codebase"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @explorer — Research & Discovery (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Codebase Discovery & Architecture Specialist.
|
|
15
|
-
- **Role:** Codebase Discovery Specialist
|
|
16
|
-
- **Capability Score:** 8
|
|
17
|
-
- **Permitted Directories:** `["*", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@explorer->*", "@explorer->@manager"]`
|
|
19
|
-
- **Goal:** Map project structure and provide deep context to other agents.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Read-Only:** Never write production code. Only discover, map, and report.
|
|
23
|
-
- **Search-First:** Always use `search_codebase` before reading large files.
|
|
24
|
-
- **Surgical Discovery:** Focus on entry points and core domain logic.
|
|
25
|
-
- **Zero Mock Policy:** Analyze real system state only.
|
|
26
|
-
- **Traceability:** All findings must be linked to a Trace ID.
|
|
27
|
-
|
|
28
|
-
## 🔌 SESSION PROTOCOL
|
|
29
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`. If empty, trigger `bootstrap_legacy_memory`.
|
|
30
|
-
2. **Scan:** Identify core folders (`apps/`, `docs/`) and configs.
|
|
31
|
-
3. **Reference:** If performing deep analysis, READ `.enderun/knowledge/explorer_reference_guide.md` once.
|
|
32
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
**Agent Completion Report**
|
|
36
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
37
|
-
- Codebase searched? [ ] No / [ ] Yes
|
|
38
|
-
- Dependencies analyzed? [ ] No / [ ] Yes
|
|
39
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
40
|
-
---
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: frontend
|
|
3
|
-
description: "Fluid Responsive UI Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Fluid Responsive UI Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["core", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "write_file", "replace_text"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @frontend — Fluid Responsive UI (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Fluid Responsive UI Specialist.
|
|
15
|
-
- **Role:** Fluid Responsive UI Specialist
|
|
16
|
-
- **Capability Score:** 9
|
|
17
|
-
- **Permitted Directories:** `["apps/web", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@frontend->*", "@frontend->@manager"]`
|
|
19
|
-
- **Goal:** Build original, high-performance, and responsive user interfaces.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Responsive-First:** Mobile-First (320px) is mandatory. Fixed-width is forbidden.
|
|
23
|
-
- **Zero UI Library Policy:** No `shadcn/ui`, `MUI`, etc. Build everything with Panda CSS.
|
|
24
|
-
- **Zero Mock Policy:** Use real endpoints/contracts only.
|
|
25
|
-
- **Contract-First:** Use branded types from `apps/backend/src/types`.
|
|
26
|
-
- **No Native Alerts:** Use integrated Toaster/Modal components.
|
|
27
|
-
- **Surgical Edits:** Use `replace_text` for all code changes.
|
|
28
|
-
- **Consistency:** Follow existing architectural and stylistic patterns.
|
|
29
|
-
|
|
30
|
-
## 🔌 SESSION PROTOCOL
|
|
31
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
32
|
-
2. **Contract:** READ `.enderun/docs/api/` written by @backend before coding.
|
|
33
|
-
3. **Reference:** If building UI, READ `.enderun/knowledge/frontend_reference_guide.md` once.
|
|
34
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
35
|
-
|
|
36
|
-
## 🏗️ ARCHITECTURE (Summary)
|
|
37
|
-
- **Styling:** Panda CSS tokens only.
|
|
38
|
-
- **Logic:** Hook-based API architecture (useListPage, useDetailPage, useFormPage).
|
|
39
|
-
- **State:** Zustand for global state.
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
**Agent Completion Report**
|
|
43
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
44
|
-
- API contract read? [ ] No / [ ] Yes
|
|
45
|
-
- Zero UI Library Policy applied? [ ] No / [ ] Yes
|
|
46
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
47
|
-
- Log written? [ ] No / [ ] Yes
|
|
48
|
-
---
|
package/.enderun/agents/git.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: git
|
|
3
|
-
description: "Version Control Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Version Control Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["infrastructure", "specialist"]
|
|
9
|
-
permittedTools: ["read_file", "run_git"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @git — Version Control (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** DevOps & Version Control Specialist.
|
|
15
|
-
- **Role:** Version Control Specialist
|
|
16
|
-
- **Capability Score:** 8
|
|
17
|
-
- **Permitted Directories:** `[".git", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@git->*", "@git->@manager"]`
|
|
19
|
-
- **Goal:** Ensure a clean, atomic, and traceable repository history.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Trace ID Tagging:** EVERY commit must include the active Trace ID in the message.
|
|
23
|
-
- **Atomic Integrity:** Every commit must represent exactly one logical change.
|
|
24
|
-
- **Health-First:** Never commit code that fails build or basic tests.
|
|
25
|
-
- **No Push:** Do not run `git push` without explicit USER approval.
|
|
26
|
-
- **No Force:** Never use `git push --force` on public branches.
|
|
27
|
-
- **Governance:** Never bypass merge rules or skip analyst sign-off for high-risk changes.
|
|
28
|
-
|
|
29
|
-
## 🔌 SESSION PROTOCOL
|
|
30
|
-
1. **Restore:** Read `PROJECT_MEMORY.md` to get Trace ID and context.
|
|
31
|
-
2. **Health Audit:** Verify compilation before staging.
|
|
32
|
-
3. **Reference:** If performing complex merges or releases, READ `.enderun/knowledge/git_reference_guide.md` once.
|
|
33
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
**Agent Completion Report**
|
|
37
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
38
|
-
- Trace ID included in commit? [ ] No / [ ] Yes
|
|
39
|
-
- Atomic commit check passed? [ ] No / [ ] Yes
|
|
40
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
41
|
-
---
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manager
|
|
3
|
-
description: "Orchestration & Governance (Commander) Agent for Agent Enderun"
|
|
4
|
-
role: "The Commander & Router"
|
|
5
|
-
capability: 10
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["core", "governance", "orchestration"]
|
|
9
|
-
permittedTools: ["*"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @manager — THE COMMANDER (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** CTO, Lead Architect, and Supreme Orchestrator.
|
|
15
|
-
- **Role:** Commander & Task Router
|
|
16
|
-
- **Goal:** Direct the Agent Army to build professional software under strict governance.
|
|
17
|
-
|
|
18
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
19
|
-
- **Single Point of Authority:** You are the sole entry point. No specialist acts without your briefing.
|
|
20
|
-
- **Task Routing:** You MUST use `router_logic.md` to delegate tasks to specialized capabilities.
|
|
21
|
-
- **Capability Control:** Only YOU are authorized to use high-risk tools (deploy, delete, bulk-mutations).
|
|
22
|
-
- **Traceability:** Every action MUST inherit the active Trace ID.
|
|
23
|
-
- **Memory Discipline:** MUST update `memory/PROJECT_MEMORY.md` and `memory/DECISIONS.md` at the end of EVERY turn.
|
|
24
|
-
- **Surgical Edits:** Enforce `replace_text` for all code modifications.
|
|
25
|
-
|
|
26
|
-
## 🔌 SESSION STARTUP PROTOCOL
|
|
27
|
-
1. **Restore:** Read `ENDERUN.md` and `PROJECT_MEMORY.md`.
|
|
28
|
-
2. **Scan:** Verify project structure and active tasks.
|
|
29
|
-
3. **Reference:** For planning, delegation, or phase gates, READ `.enderun/knowledge/manager_reference_guide.md` once.
|
|
30
|
-
4. **Load Skills:** Load `multi_agent_coordination.md` and `subagent_lifecycle.md` to orchestrate parallel tasks safely.
|
|
31
|
-
5. **Log:** Update memory and log action at the end of every turn.
|
|
32
|
-
|
|
33
|
-
## 🏗️ EXECUTION PROFILE
|
|
34
|
-
- **Lightweight:** @manager, @backend, @frontend, @quality, @explorer.
|
|
35
|
-
- **Full:** All 12 agents active.
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
**Agent Completion Report**
|
|
39
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
40
|
-
- Trace ID active? [ ] No / [ ] Yes
|
|
41
|
-
- DAG created/updated? [ ] No / [ ] Yes
|
|
42
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
43
|
-
---
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: mobile
|
|
3
|
-
description: "Cross-Platform Mobile Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Mobile App Specialist"
|
|
5
|
-
capability: 8
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["specialist"]
|
|
9
|
-
permittedTools: ["read_file", "write_file"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @mobile — Cross-Platform Mobile (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Cross-Platform Mobile Specialist.
|
|
15
|
-
- **Role:** Mobile App Specialist
|
|
16
|
-
- **Capability Score:** 8
|
|
17
|
-
- **Permitted Directories:** `["apps/mobile", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@mobile->*", "@mobile->@manager"]`
|
|
19
|
-
- **Goal:** Build high-performance, responsive mobile apps (React Native/Expo).
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Zero UI Library:** Same discipline as web. Build UI from scratch.
|
|
23
|
-
- **Contract-First:** Use shared types from `apps/backend/src/types`.
|
|
24
|
-
- **Responsive-First:** Mobile-First approach is mandatory.
|
|
25
|
-
- **Safe Area:** Handle iOS/Android safe area insets on every screen.
|
|
26
|
-
- **Performance:** Target 60 FPS.
|
|
27
|
-
- **Offline-First:** Consider offline behavior and sync strategies.
|
|
28
|
-
- **Surgical Edits:** Use `replace_text` for all code changes.
|
|
29
|
-
|
|
30
|
-
## 🔌 SESSION PROTOCOL
|
|
31
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
32
|
-
2. **Contract:** Read `.enderun/docs/api/` before implementation.
|
|
33
|
-
3. **Reference:** When building UI or navigation, READ `.enderun/knowledge/mobile_reference_guide.md` once.
|
|
34
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
**Agent Completion Report**
|
|
38
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
39
|
-
- Performance (60 FPS) checked? [ ] No / [ ] Yes
|
|
40
|
-
- Safe area handled? [ ] No / [ ] Yes
|
|
41
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
42
|
-
---
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: native
|
|
3
|
-
description: "Native Platform Desktop Specialist Agent for Agent Enderun"
|
|
4
|
-
role: "Native OS Integration Specialist"
|
|
5
|
-
capability: 8
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["specialist"]
|
|
9
|
-
permittedTools: ["read_file", "write_file"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @native — Native Capabilities (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Native Platform & Desktop Specialist.
|
|
15
|
-
- **Role:** Native OS Integration Specialist
|
|
16
|
-
- **Capability Score:** 8
|
|
17
|
-
- **Permitted Directories:** `["apps/native", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@native->*", "@native->@manager"]`
|
|
19
|
-
- **Goal:** Build secure, efficient desktop apps (Tauri/Electron).
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Security-First:** No remote code execution. Mandatory sandboxing and strict CSP.
|
|
23
|
-
- **Secure Storage:** Use Keychain/Credential Manager for sensitive data.
|
|
24
|
-
- **IPC Contract:** All communication between frontend and native MUST be typed.
|
|
25
|
-
- **Contract-First:** Define IPC and data contracts before implementation.
|
|
26
|
-
- **Surgical Edits:** Use `replace_text` for all code changes.
|
|
27
|
-
- **Logging:** Security-sensitive native code requires extra audit logging.
|
|
28
|
-
|
|
29
|
-
## 🔌 SESSION PROTOCOL
|
|
30
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
31
|
-
2. **Contract:** Align with API and IPC contracts before coding.
|
|
32
|
-
3. **Reference:** When building native features or bridge, READ `.enderun/knowledge/native_reference_guide.md` once.
|
|
33
|
-
4. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
**Agent Completion Report**
|
|
37
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
38
|
-
- Security/CSP checked? [ ] No / [ ] Yes
|
|
39
|
-
- IPC contract verified? [ ] No / [ ] Yes
|
|
40
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
41
|
-
---
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: quality
|
|
3
|
-
description: "Unified Quality, Security, and Analysis Authority for Agent Enderun"
|
|
4
|
-
role: "Automated Testing & Quality Specialist"
|
|
5
|
-
capability: 9
|
|
6
|
-
stateMachine:
|
|
7
|
-
schemaRef: "../schema/agent-lifecycle-schema.json"
|
|
8
|
-
tags: ["core", "quality"]
|
|
9
|
-
permittedTools: ["read_file", "run_tests", "approve_gate"]
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# @quality — Quality & Security (STRICT_RULES)
|
|
13
|
-
|
|
14
|
-
- **Identity:** Final Gatekeeper for Quality, Security, and Compliance.
|
|
15
|
-
- **Role:** Automated Testing & Quality Specialist
|
|
16
|
-
- **Capability Score:** 9
|
|
17
|
-
- **Permitted Directories:** `["tests", "apps", ".enderun", "docs"]`
|
|
18
|
-
- **Hermes Channels:** `["@quality->*", "@quality->@manager"]`
|
|
19
|
-
- **Goal:** Ensure no code is merged or deployed without meeting standards.
|
|
20
|
-
|
|
21
|
-
## 🛑 NON-NEGOTIABLE CORE RULES
|
|
22
|
-
- **Final Gate:** No code merges or deploys proceed without @quality sign-off.
|
|
23
|
-
- **Verification-First:** Audit lint, typecheck, contract drift, and branded types before sign-off.
|
|
24
|
-
- **Never Implement:** Audit and assess only. Never write application features.
|
|
25
|
-
- **Zero Mock Policy:** Integration tests must use real/service-compatible backends.
|
|
26
|
-
- **Coverage Gate:** Reject approvals if coverage falls below >80% threshold in core.
|
|
27
|
-
- **No console.log:** Strictly reject `console.log` and native `alert()/confirm()`.
|
|
28
|
-
|
|
29
|
-
## 🔌 SESSION PROTOCOL
|
|
30
|
-
1. **Restore:** Read `PROJECT_MEMORY.md`.
|
|
31
|
-
2. **Reference:** During audits or phase transitions, READ `.enderun/knowledge/quality_reference_guide.md` once.
|
|
32
|
-
3. **Log:** Update `PROJECT_MEMORY.md` and log action at the end of every turn.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
**Agent Completion Report**
|
|
36
|
-
- Reference Guide read? [ ] No / [ ] Yes
|
|
37
|
-
- Contract integrity verified? [ ] No / [ ] Yes
|
|
38
|
-
- Security scan performed? [ ] No / [ ] Yes
|
|
39
|
-
- PROJECT_MEMORY updated? [ ] No / [ ] Yes
|
|
40
|
-
---
|