@rryando/arcs 3.0.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 +448 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts +16 -0
- package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -0
- package/dist/cli/arcs-orchestrate-caveman.js +109 -0
- package/dist/cli/arcs-orchestrate-caveman.js.map +1 -0
- package/dist/cli/arcs-orchestrate.d.ts +2 -0
- package/dist/cli/arcs-orchestrate.d.ts.map +1 -0
- package/dist/cli/arcs-orchestrate.js +431 -0
- package/dist/cli/arcs-orchestrate.js.map +1 -0
- package/dist/cli/arg-parser.d.ts +20 -0
- package/dist/cli/arg-parser.d.ts.map +1 -0
- package/dist/cli/arg-parser.js +216 -0
- package/dist/cli/arg-parser.js.map +1 -0
- package/dist/cli/brief-renderer.d.ts +32 -0
- package/dist/cli/brief-renderer.d.ts.map +1 -0
- package/dist/cli/brief-renderer.js +67 -0
- package/dist/cli/brief-renderer.js.map +1 -0
- package/dist/cli/bundle-installer.d.ts +77 -0
- package/dist/cli/bundle-installer.d.ts.map +1 -0
- package/dist/cli/bundle-installer.js +328 -0
- package/dist/cli/bundle-installer.js.map +1 -0
- package/dist/cli/command-registry.d.ts +52 -0
- package/dist/cli/command-registry.d.ts.map +1 -0
- package/dist/cli/command-registry.js +68 -0
- package/dist/cli/command-registry.js.map +1 -0
- package/dist/cli/commands/batch.d.ts +2 -0
- package/dist/cli/commands/batch.d.ts.map +1 -0
- package/dist/cli/commands/batch.js +307 -0
- package/dist/cli/commands/batch.js.map +1 -0
- package/dist/cli/commands/brief.d.ts +2 -0
- package/dist/cli/commands/brief.d.ts.map +1 -0
- package/dist/cli/commands/brief.js +146 -0
- package/dist/cli/commands/brief.js.map +1 -0
- package/dist/cli/commands/bundle.d.ts +2 -0
- package/dist/cli/commands/bundle.d.ts.map +1 -0
- package/dist/cli/commands/bundle.js +90 -0
- package/dist/cli/commands/bundle.js.map +1 -0
- package/dist/cli/commands/dependency.d.ts +2 -0
- package/dist/cli/commands/dependency.d.ts.map +1 -0
- package/dist/cli/commands/dependency.js +260 -0
- package/dist/cli/commands/dependency.js.map +1 -0
- package/dist/cli/commands/diagnostics.d.ts +2 -0
- package/dist/cli/commands/diagnostics.d.ts.map +1 -0
- package/dist/cli/commands/diagnostics.js +91 -0
- package/dist/cli/commands/diagnostics.js.map +1 -0
- package/dist/cli/commands/diagram.d.ts +2 -0
- package/dist/cli/commands/diagram.d.ts.map +1 -0
- package/dist/cli/commands/diagram.js +305 -0
- package/dist/cli/commands/diagram.js.map +1 -0
- package/dist/cli/commands/done.d.ts +2 -0
- package/dist/cli/commands/done.d.ts.map +1 -0
- package/dist/cli/commands/done.js +140 -0
- package/dist/cli/commands/done.js.map +1 -0
- package/dist/cli/commands/graph.d.ts +2 -0
- package/dist/cli/commands/graph.d.ts.map +1 -0
- package/dist/cli/commands/graph.js +105 -0
- package/dist/cli/commands/graph.js.map +1 -0
- package/dist/cli/commands/index.d.ts +21 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/knowledge-search.d.ts +2 -0
- package/dist/cli/commands/knowledge-search.d.ts.map +1 -0
- package/dist/cli/commands/knowledge-search.js +43 -0
- package/dist/cli/commands/knowledge-search.js.map +1 -0
- package/dist/cli/commands/knowledge.d.ts +2 -0
- package/dist/cli/commands/knowledge.d.ts.map +1 -0
- package/dist/cli/commands/knowledge.js +416 -0
- package/dist/cli/commands/knowledge.js.map +1 -0
- package/dist/cli/commands/loop.d.ts +2 -0
- package/dist/cli/commands/loop.d.ts.map +1 -0
- package/dist/cli/commands/loop.js +192 -0
- package/dist/cli/commands/loop.js.map +1 -0
- package/dist/cli/commands/maintenance.d.ts +2 -0
- package/dist/cli/commands/maintenance.d.ts.map +1 -0
- package/dist/cli/commands/maintenance.js +231 -0
- package/dist/cli/commands/maintenance.js.map +1 -0
- package/dist/cli/commands/next.d.ts +2 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +116 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +340 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/project-updates.d.ts +2 -0
- package/dist/cli/commands/project-updates.d.ts.map +1 -0
- package/dist/cli/commands/project-updates.js +243 -0
- package/dist/cli/commands/project-updates.js.map +1 -0
- package/dist/cli/commands/project.d.ts +2 -0
- package/dist/cli/commands/project.d.ts.map +1 -0
- package/dist/cli/commands/project.js +362 -0
- package/dist/cli/commands/project.js.map +1 -0
- package/dist/cli/commands/remember.d.ts +2 -0
- package/dist/cli/commands/remember.d.ts.map +1 -0
- package/dist/cli/commands/remember.js +70 -0
- package/dist/cli/commands/remember.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +104 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/task.d.ts +6 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +361 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/utility.d.ts +9 -0
- package/dist/cli/commands/utility.d.ts.map +1 -0
- package/dist/cli/commands/utility.js +302 -0
- package/dist/cli/commands/utility.js.map +1 -0
- package/dist/cli/config.d.ts +42 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +134 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/dag-commands.d.ts +7 -0
- package/dist/cli/dag-commands.d.ts.map +1 -0
- package/dist/cli/dag-commands.js +152 -0
- package/dist/cli/dag-commands.js.map +1 -0
- package/dist/cli/diagram-renderer.d.ts +26 -0
- package/dist/cli/diagram-renderer.d.ts.map +1 -0
- package/dist/cli/diagram-renderer.js +118 -0
- package/dist/cli/diagram-renderer.js.map +1 -0
- package/dist/cli/help-generator.d.ts +21 -0
- package/dist/cli/help-generator.d.ts.map +1 -0
- package/dist/cli/help-generator.js +100 -0
- package/dist/cli/help-generator.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +95 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/instructions.d.ts +53 -0
- package/dist/cli/instructions.d.ts.map +1 -0
- package/dist/cli/instructions.js +219 -0
- package/dist/cli/instructions.js.map +1 -0
- package/dist/cli/lean-output.d.ts +15 -0
- package/dist/cli/lean-output.d.ts.map +1 -0
- package/dist/cli/lean-output.js +66 -0
- package/dist/cli/lean-output.js.map +1 -0
- package/dist/cli/md-renderer.d.ts +6 -0
- package/dist/cli/md-renderer.d.ts.map +1 -0
- package/dist/cli/md-renderer.js +396 -0
- package/dist/cli/md-renderer.js.map +1 -0
- package/dist/cli/output-envelope.d.ts +15 -0
- package/dist/cli/output-envelope.d.ts.map +1 -0
- package/dist/cli/output-envelope.js +61 -0
- package/dist/cli/output-envelope.js.map +1 -0
- package/dist/cli/setup.d.ts +11 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +415 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/status-dashboard.d.ts +5 -0
- package/dist/cli/status-dashboard.d.ts.map +1 -0
- package/dist/cli/status-dashboard.js +248 -0
- package/dist/cli/status-dashboard.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/retrieval/bm25.d.ts +23 -0
- package/dist/retrieval/bm25.d.ts.map +1 -0
- package/dist/retrieval/bm25.js +92 -0
- package/dist/retrieval/bm25.js.map +1 -0
- package/dist/retrieval/cross-project-search.d.ts +30 -0
- package/dist/retrieval/cross-project-search.d.ts.map +1 -0
- package/dist/retrieval/cross-project-search.js +109 -0
- package/dist/retrieval/cross-project-search.js.map +1 -0
- package/dist/retrieval/graph-builder.d.ts +6 -0
- package/dist/retrieval/graph-builder.d.ts.map +1 -0
- package/dist/retrieval/graph-builder.js +196 -0
- package/dist/retrieval/graph-builder.js.map +1 -0
- package/dist/retrieval/graph-cache.d.ts +15 -0
- package/dist/retrieval/graph-cache.d.ts.map +1 -0
- package/dist/retrieval/graph-cache.js +66 -0
- package/dist/retrieval/graph-cache.js.map +1 -0
- package/dist/retrieval/graph-invalidate.d.ts +18 -0
- package/dist/retrieval/graph-invalidate.d.ts.map +1 -0
- package/dist/retrieval/graph-invalidate.js +23 -0
- package/dist/retrieval/graph-invalidate.js.map +1 -0
- package/dist/retrieval/graph-retrieval.d.ts +24 -0
- package/dist/retrieval/graph-retrieval.d.ts.map +1 -0
- package/dist/retrieval/graph-retrieval.js +165 -0
- package/dist/retrieval/graph-retrieval.js.map +1 -0
- package/dist/retrieval/graph-traverse.d.ts +3 -0
- package/dist/retrieval/graph-traverse.d.ts.map +1 -0
- package/dist/retrieval/graph-traverse.js +53 -0
- package/dist/retrieval/graph-traverse.js.map +1 -0
- package/dist/retrieval/graph-types.d.ts +37 -0
- package/dist/retrieval/graph-types.d.ts.map +1 -0
- package/dist/retrieval/graph-types.js +12 -0
- package/dist/retrieval/graph-types.js.map +1 -0
- package/dist/retrieval/index-builder.d.ts +21 -0
- package/dist/retrieval/index-builder.d.ts.map +1 -0
- package/dist/retrieval/index-builder.js +94 -0
- package/dist/retrieval/index-builder.js.map +1 -0
- package/dist/retrieval/knowledge-selection.d.ts +7 -0
- package/dist/retrieval/knowledge-selection.d.ts.map +1 -0
- package/dist/retrieval/knowledge-selection.js +80 -0
- package/dist/retrieval/knowledge-selection.js.map +1 -0
- package/dist/retrieval/task-scoped.d.ts +23 -0
- package/dist/retrieval/task-scoped.d.ts.map +1 -0
- package/dist/retrieval/task-scoped.js +51 -0
- package/dist/retrieval/task-scoped.js.map +1 -0
- package/dist/utils/content-assembly.d.ts +44 -0
- package/dist/utils/content-assembly.d.ts.map +1 -0
- package/dist/utils/content-assembly.js +101 -0
- package/dist/utils/content-assembly.js.map +1 -0
- package/dist/utils/dag.d.ts +28 -0
- package/dist/utils/dag.d.ts.map +1 -0
- package/dist/utils/dag.js +68 -0
- package/dist/utils/dag.js.map +1 -0
- package/dist/utils/diagram-generator.d.ts +17 -0
- package/dist/utils/diagram-generator.d.ts.map +1 -0
- package/dist/utils/diagram-generator.js +38 -0
- package/dist/utils/diagram-generator.js.map +1 -0
- package/dist/utils/errors.d.ts +40 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +83 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-lock.d.ts +13 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +80 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/git.d.ts +14 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +56 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/graphify-knowledge.d.ts +6 -0
- package/dist/utils/graphify-knowledge.d.ts.map +1 -0
- package/dist/utils/graphify-knowledge.js +60 -0
- package/dist/utils/graphify-knowledge.js.map +1 -0
- package/dist/utils/graphify.d.ts +49 -0
- package/dist/utils/graphify.d.ts.map +1 -0
- package/dist/utils/graphify.js +306 -0
- package/dist/utils/graphify.js.map +1 -0
- package/dist/utils/json-schemas.d.ts +723 -0
- package/dist/utils/json-schemas.d.ts.map +1 -0
- package/dist/utils/json-schemas.js +147 -0
- package/dist/utils/json-schemas.js.map +1 -0
- package/dist/utils/json.d.ts +15 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +39 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/knowledge-store.d.ts +49 -0
- package/dist/utils/knowledge-store.d.ts.map +1 -0
- package/dist/utils/knowledge-store.js +191 -0
- package/dist/utils/knowledge-store.js.map +1 -0
- package/dist/utils/loop-state.d.ts +51 -0
- package/dist/utils/loop-state.d.ts.map +1 -0
- package/dist/utils/loop-state.js +123 -0
- package/dist/utils/loop-state.js.map +1 -0
- package/dist/utils/paths.d.ts +16 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +66 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/plan-store.d.ts +46 -0
- package/dist/utils/plan-store.d.ts.map +1 -0
- package/dist/utils/plan-store.js +184 -0
- package/dist/utils/plan-store.js.map +1 -0
- package/dist/utils/project-documents.d.ts +20 -0
- package/dist/utils/project-documents.d.ts.map +1 -0
- package/dist/utils/project-documents.js +10 -0
- package/dist/utils/project-documents.js.map +1 -0
- package/dist/utils/project-memory.d.ts +16 -0
- package/dist/utils/project-memory.d.ts.map +1 -0
- package/dist/utils/project-memory.js +16 -0
- package/dist/utils/project-memory.js.map +1 -0
- package/dist/utils/project-resolver.d.ts +28 -0
- package/dist/utils/project-resolver.d.ts.map +1 -0
- package/dist/utils/project-resolver.js +119 -0
- package/dist/utils/project-resolver.js.map +1 -0
- package/dist/utils/quick-scan.d.ts +13 -0
- package/dist/utils/quick-scan.d.ts.map +1 -0
- package/dist/utils/quick-scan.js +156 -0
- package/dist/utils/quick-scan.js.map +1 -0
- package/dist/utils/schemas.d.ts +13 -0
- package/dist/utils/schemas.d.ts.map +1 -0
- package/dist/utils/schemas.js +6 -0
- package/dist/utils/schemas.js.map +1 -0
- package/dist/utils/slug.d.ts +10 -0
- package/dist/utils/slug.d.ts.map +1 -0
- package/dist/utils/slug.js +18 -0
- package/dist/utils/slug.js.map +1 -0
- package/dist/utils/stdin.d.ts +6 -0
- package/dist/utils/stdin.d.ts.map +1 -0
- package/dist/utils/stdin.js +25 -0
- package/dist/utils/stdin.js.map +1 -0
- package/dist/utils/storage-utils.d.ts +48 -0
- package/dist/utils/storage-utils.d.ts.map +1 -0
- package/dist/utils/storage-utils.js +175 -0
- package/dist/utils/storage-utils.js.map +1 -0
- package/dist/utils/task-store.d.ts +49 -0
- package/dist/utils/task-store.d.ts.map +1 -0
- package/dist/utils/task-store.js +178 -0
- package/dist/utils/task-store.js.map +1 -0
- package/dist/utils/template.d.ts +15 -0
- package/dist/utils/template.d.ts.map +1 -0
- package/dist/utils/template.js +27 -0
- package/dist/utils/template.js.map +1 -0
- package/dist/utils/tool-response.d.ts +37 -0
- package/dist/utils/tool-response.d.ts.map +1 -0
- package/dist/utils/tool-response.js +44 -0
- package/dist/utils/tool-response.js.map +1 -0
- package/dist/utils/workflow-policy.d.ts +50 -0
- package/dist/utils/workflow-policy.d.ts.map +1 -0
- package/dist/utils/workflow-policy.js +111 -0
- package/dist/utils/workflow-policy.js.map +1 -0
- package/dist/utils/workspace-match.d.ts +35 -0
- package/dist/utils/workspace-match.d.ts.map +1 -0
- package/dist/utils/workspace-match.js +58 -0
- package/dist/utils/workspace-match.js.map +1 -0
- package/opencode/arcs/.opencode/plugins/arcs.js +348 -0
- package/opencode/arcs/bundle-runtime.json +68 -0
- package/opencode/arcs/manifest.json +279 -0
- package/opencode/arcs/prompts/arcs-docs.txt +124 -0
- package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +529 -0
- package/opencode/arcs/prompts/arcs-orchestrate.txt +437 -0
- package/opencode/arcs/prompts/code-reviewer.txt +55 -0
- package/opencode/arcs/prompts/devil-advocate.txt +121 -0
- package/opencode/arcs/prompts/docs-researcher.txt +54 -0
- package/opencode/arcs/prompts/oncall-ops.txt +54 -0
- package/opencode/arcs/prompts/qa-analyst.txt +54 -0
- package/opencode/arcs/prompts/software-engineer.txt +48 -0
- package/opencode/arcs/prompts/system-architect.txt +60 -0
- package/opencode/arcs/prompts/tech-architect.txt +54 -0
- package/opencode/arcs/skills/brainstorming/SKILL.md +144 -0
- package/opencode/arcs/skills/brainstorming/scripts/frame-template.html +214 -0
- package/opencode/arcs/skills/brainstorming/scripts/helper.js +88 -0
- package/opencode/arcs/skills/brainstorming/scripts/server.js +338 -0
- package/opencode/arcs/skills/brainstorming/scripts/start-server.sh +137 -0
- package/opencode/arcs/skills/brainstorming/scripts/stop-server.sh +31 -0
- package/opencode/arcs/skills/brainstorming/spec-document-reviewer-prompt.md +50 -0
- package/opencode/arcs/skills/brainstorming/visual-companion.md +277 -0
- package/opencode/arcs/skills/caveman-commit/SKILL.md +51 -0
- package/opencode/arcs/skills/code-agent/SKILL.md +58 -0
- package/opencode/arcs/skills/deep-pr-review/SKILL.md +191 -0
- package/opencode/arcs/skills/deep-pr-review/graphify-diff.md +102 -0
- package/opencode/arcs/skills/deep-pr-review/review-template.md +69 -0
- package/opencode/arcs/skills/executing-plans/SKILL.md +91 -0
- package/opencode/arcs/skills/init-project/SKILL.md +150 -0
- package/opencode/arcs/skills/quick-dev/SKILL.md +47 -0
- package/opencode/arcs/skills/requesting-code-review/SKILL.md +47 -0
- package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +179 -0
- package/opencode/arcs/skills/subagent-driven-development/SKILL.md +162 -0
- package/opencode/arcs/skills/subagent-driven-development/code-quality-reviewer-prompt.md +53 -0
- package/opencode/arcs/skills/subagent-driven-development/implementer-prompt.md +148 -0
- package/opencode/arcs/skills/subagent-driven-development/spec-reviewer-prompt.md +85 -0
- package/opencode/arcs/skills/systematic-debugging/SKILL.md +174 -0
- package/opencode/arcs/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/opencode/arcs/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/opencode/arcs/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/opencode/arcs/skills/systematic-debugging/find-polluter.sh +63 -0
- package/opencode/arcs/skills/systematic-debugging/phases-reference.md +168 -0
- package/opencode/arcs/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/opencode/arcs/skills/test-driven-development/SKILL.md +72 -0
- package/opencode/arcs/skills/test-driven-development/tdd-rationalizations-and-examples.md +157 -0
- package/opencode/arcs/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/opencode/arcs/skills/to-diagram/SKILL.md +235 -0
- package/opencode/arcs/skills/to-diagram/scripts/manage-diagram.mjs +963 -0
- package/opencode/arcs/skills/writing-plans/SKILL.md +179 -0
- package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +52 -0
- package/package.json +60 -0
- package/scripts/arcs-cli.mjs +45 -0
- package/skills/explore-dag.md +57 -0
- package/skills/init-project.md +105 -0
- package/skills/orchestrate.md +94 -0
- package/skills/update-docs.md +72 -0
- package/templates/dependency.md.tmpl +9 -0
- package/templates/knowledge.md.tmpl +15 -0
- package/templates/project-meta.json.tmpl +13 -0
- package/templates/project.md.tmpl +11 -0
- package/templates/task.md.tmpl +9 -0
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import * as p from "@clack/prompts";
|
|
3
|
+
import color from "picocolors";
|
|
4
|
+
import { detectGraphify } from "../utils/graphify.js";
|
|
5
|
+
import { detectArcsBundleInstall, installArcsBundle } from "./bundle-installer.js";
|
|
6
|
+
import { extractModelPreFills, getAvailableModels, readOpenCodeConfig, writeConfig, } from "./config.js";
|
|
7
|
+
import { applyAgentModelConfig, displayPath, opencodeHasAgent, writeOpencodeAgent, } from "./instructions.js";
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// TUI Wizard
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
/**
|
|
12
|
+
* Runs the interactive setup wizard.
|
|
13
|
+
* @param mode "init" for first-time setup, "config" for reconfiguration.
|
|
14
|
+
*/
|
|
15
|
+
export async function runSetup(mode) {
|
|
16
|
+
// ── Opencode detection gate ─────────────────────────────────────────────────
|
|
17
|
+
try {
|
|
18
|
+
execSync("which opencode", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
p.cancel("OpenCode is not installed or not on PATH. ARCS requires OpenCode.\nInstall it from: https://opencode.ai");
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const isInit = mode === "init";
|
|
25
|
+
console.clear();
|
|
26
|
+
p.intro(color.bgCyan(color.black(isInit ? " ARCS setup " : " ARCS config ")));
|
|
27
|
+
// ── Model configuration ───────────────────────────────────────────────────
|
|
28
|
+
const openCodeConfig = await readOpenCodeConfig();
|
|
29
|
+
const preFills = extractModelPreFills(openCodeConfig);
|
|
30
|
+
if (openCodeConfig) {
|
|
31
|
+
p.note(`Found models:\n model: ${preFills.heavy || "(not set)"}\n small_model: ${preFills.light || "(not set)"}`, "OpenCode Config");
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
p.note("No opencode config found at ~/.config/opencode/opencode.json\nEnter model identifiers manually below.", "OpenCode Config");
|
|
35
|
+
}
|
|
36
|
+
// Fetch available models from authenticated providers
|
|
37
|
+
const availableModels = await getAvailableModels(preFills.heavy);
|
|
38
|
+
const heavyModel = await selectModel("Heavy model (reasoning, synthesis)", availableModels, preFills.heavy);
|
|
39
|
+
if (p.isCancel(heavyModel)) {
|
|
40
|
+
p.cancel("Setup cancelled.");
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
p.note("Used by: software-engineer, docs-researcher, arcs-docs, oncall-ops, system-architect, plan, general", "Heavy tier agents");
|
|
44
|
+
const standardModel = await selectModel("Standard model (general purpose)", availableModels, preFills.standard);
|
|
45
|
+
if (p.isCancel(standardModel)) {
|
|
46
|
+
p.cancel("Setup cancelled.");
|
|
47
|
+
process.exit(0);
|
|
48
|
+
}
|
|
49
|
+
p.note("Used by: build, ARCS Orchestrator, ARCS Caveman", "Standard tier agents");
|
|
50
|
+
const lightModel = await selectModel("Light/fast model (read-only, exploration)", availableModels, preFills.light);
|
|
51
|
+
if (p.isCancel(lightModel)) {
|
|
52
|
+
p.cancel("Setup cancelled.");
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
55
|
+
p.note("Used by: explore, code-reviewer, tech-architect, qa-analyst", "Light tier agents");
|
|
56
|
+
// T004 will wire modelConfig into agent registration calls below.
|
|
57
|
+
const modelConfig = {
|
|
58
|
+
heavy: heavyModel,
|
|
59
|
+
standard: standardModel,
|
|
60
|
+
light: lightModel,
|
|
61
|
+
};
|
|
62
|
+
// Step 3.5e — Optional per-agent customization
|
|
63
|
+
const customizeAgents = await p.confirm({
|
|
64
|
+
message: "Customize model for individual agents?",
|
|
65
|
+
initialValue: false,
|
|
66
|
+
});
|
|
67
|
+
if (p.isCancel(customizeAgents)) {
|
|
68
|
+
p.cancel("Setup cancelled.");
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
if (customizeAgents) {
|
|
72
|
+
// Agent tier mapping for display
|
|
73
|
+
const agentTiers = [
|
|
74
|
+
{ name: "software-engineer", tier: "heavy" },
|
|
75
|
+
{ name: "docs-researcher", tier: "heavy" },
|
|
76
|
+
{ name: "arcs-docs", tier: "heavy" },
|
|
77
|
+
{ name: "oncall-ops", tier: "heavy" },
|
|
78
|
+
{ name: "system-architect", tier: "heavy" },
|
|
79
|
+
{ name: "plan", tier: "heavy" },
|
|
80
|
+
{ name: "general", tier: "heavy" },
|
|
81
|
+
{ name: "build", tier: "standard" },
|
|
82
|
+
{ name: "explore", tier: "light" },
|
|
83
|
+
{ name: "code-reviewer", tier: "light" },
|
|
84
|
+
{ name: "tech-architect", tier: "light" },
|
|
85
|
+
{ name: "qa-analyst", tier: "light" },
|
|
86
|
+
];
|
|
87
|
+
p.note("Select a model for each agent, or keep the tier default.", "Per-Agent Customization");
|
|
88
|
+
const perAgent = {};
|
|
89
|
+
for (const agent of agentTiers) {
|
|
90
|
+
const tierModel = modelConfig[agent.tier];
|
|
91
|
+
const override = await selectModelForAgent(`${agent.name} [${agent.tier}: ${tierModel}]`, availableModels, tierModel);
|
|
92
|
+
if (p.isCancel(override)) {
|
|
93
|
+
p.cancel("Setup cancelled.");
|
|
94
|
+
process.exit(0);
|
|
95
|
+
}
|
|
96
|
+
if (override && override !== tierModel) {
|
|
97
|
+
perAgent[agent.name] = override;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (Object.keys(perAgent).length > 0) {
|
|
101
|
+
modelConfig.perAgent = perAgent;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// ── Build config ──────────────────────────────────────────────────────────
|
|
105
|
+
const config = {
|
|
106
|
+
version: "1",
|
|
107
|
+
ides: ["opencode"],
|
|
108
|
+
};
|
|
109
|
+
// ── Write ARCS config ───────────────────────────────────────────────────
|
|
110
|
+
const s = p.spinner();
|
|
111
|
+
s.start("Writing configuration…");
|
|
112
|
+
writeConfig(config);
|
|
113
|
+
s.stop("Configuration saved.");
|
|
114
|
+
// ── Register OpenCode agent (orchestrate always enabled) ──────────────────
|
|
115
|
+
const selectedOpenCode = true;
|
|
116
|
+
const orchestrateEnabled = true;
|
|
117
|
+
let opencodeAgentActive = false;
|
|
118
|
+
if (selectedOpenCode && orchestrateEnabled) {
|
|
119
|
+
const alreadyHasAgent = opencodeHasAgent();
|
|
120
|
+
opencodeAgentActive = alreadyHasAgent;
|
|
121
|
+
if (alreadyHasAgent) {
|
|
122
|
+
// Already registered — re-apply silently to keep the entry and prompt up to date
|
|
123
|
+
const agentResult = writeOpencodeAgent(modelConfig);
|
|
124
|
+
opencodeAgentActive = true;
|
|
125
|
+
p.note([
|
|
126
|
+
`${color.green("✔")} Updated agent entries in ${color.dim(displayPath(agentResult.configPath))}`,
|
|
127
|
+
`${color.green("✔")} Refreshed orchestrator prompt at ${color.dim(displayPath(agentResult.promptPath))}`,
|
|
128
|
+
`${color.green("✔")} Refreshed Caveman prompt at ${color.dim(displayPath(agentResult.cavemanPromptPath))}`,
|
|
129
|
+
].join("\n"), "OpenCode Agent");
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
const shouldRegister = await p.confirm({
|
|
133
|
+
message: `Register ${color.cyan("ARCS - (Orchestrator)")} and ${color.cyan("ARCS - Caveman")} as primary agents in OpenCode? (Tab-switchable alongside Build/Plan)`,
|
|
134
|
+
initialValue: true,
|
|
135
|
+
});
|
|
136
|
+
if (p.isCancel(shouldRegister)) {
|
|
137
|
+
p.cancel("Setup cancelled.");
|
|
138
|
+
process.exit(0);
|
|
139
|
+
}
|
|
140
|
+
if (shouldRegister) {
|
|
141
|
+
const agentResult = writeOpencodeAgent(modelConfig);
|
|
142
|
+
opencodeAgentActive = true;
|
|
143
|
+
const verb = agentResult.action === "created" ? "Created" : "Updated";
|
|
144
|
+
p.note([
|
|
145
|
+
`${color.green("✔")} ${verb} agent entries in ${color.dim(displayPath(agentResult.configPath))}`,
|
|
146
|
+
`${color.green("✔")} Wrote orchestrator prompt to ${color.dim(displayPath(agentResult.promptPath))}`,
|
|
147
|
+
`${color.green("✔")} Wrote Caveman prompt to ${color.dim(displayPath(agentResult.cavemanPromptPath))}`,
|
|
148
|
+
"",
|
|
149
|
+
`Switch to ${color.cyan("ARCS - (Orchestrator)")} or ${color.cyan("ARCS - Caveman")} with ${color.bold("Tab")} in OpenCode.`,
|
|
150
|
+
`${color.dim("Caveman = same capabilities, ~65% fewer output tokens.")}`,
|
|
151
|
+
].join("\n"), "OpenCode Agent");
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
p.note(`${color.yellow("⊘")} Skipped OpenCode agent registration`, "OpenCode Agent");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (selectedOpenCode && orchestrateEnabled && !opencodeAgentActive) {
|
|
159
|
+
p.note(`${color.yellow("⊘")} Skipped bundled OpenCode ARCS Bundle install because the user declined ARCS Orchestrator registration`, "OpenCode ARCS Bundle");
|
|
160
|
+
}
|
|
161
|
+
if (selectedOpenCode && orchestrateEnabled && opencodeAgentActive) {
|
|
162
|
+
const detection = detectArcsBundleInstall();
|
|
163
|
+
if (detection.state === "foreign-existing") {
|
|
164
|
+
const shouldReplace = await p.confirm({
|
|
165
|
+
message: "Replace the active OpenCode ARCS bundle setup with the bundled ARCS-customized version? Future arcs config runs will keep it synced.",
|
|
166
|
+
initialValue: true,
|
|
167
|
+
});
|
|
168
|
+
if (p.isCancel(shouldReplace)) {
|
|
169
|
+
p.cancel("Setup cancelled.");
|
|
170
|
+
process.exit(0);
|
|
171
|
+
}
|
|
172
|
+
if (shouldReplace) {
|
|
173
|
+
const result = installArcsBundle({ autoConfirmReplacement: true });
|
|
174
|
+
p.note(result.summary, "OpenCode ARCS Bundle");
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
p.note(`${color.yellow("⊘")} Skipped OpenCode bundled ARCS Bundle install`, "OpenCode ARCS Bundle");
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
const result = installArcsBundle({ autoConfirmReplacement: false });
|
|
182
|
+
p.note(result.summary, "OpenCode ARCS Bundle");
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// ── Apply model config to all agent entries ────────────────────────────────
|
|
186
|
+
// Runs after bundle install to overwrite hardcoded manifest models
|
|
187
|
+
// with the user's configured tier values.
|
|
188
|
+
if (selectedOpenCode && opencodeAgentActive) {
|
|
189
|
+
applyAgentModelConfig(modelConfig);
|
|
190
|
+
}
|
|
191
|
+
// ── Optional graphify installation ──────────────────────────────────────────
|
|
192
|
+
await promptGraphifyInstall();
|
|
193
|
+
p.outro(color.green("Done!") +
|
|
194
|
+
" You can re-run this setup at any time with " +
|
|
195
|
+
color.cyan("npm run init"));
|
|
196
|
+
}
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
// Model Selection Helper
|
|
199
|
+
// ---------------------------------------------------------------------------
|
|
200
|
+
const CUSTOM_MODEL_SENTINEL = "__custom__";
|
|
201
|
+
const KEEP_DEFAULT_SENTINEL = "__keep_default__";
|
|
202
|
+
/**
|
|
203
|
+
* Per-agent model selection with "Keep default" as the first option.
|
|
204
|
+
*/
|
|
205
|
+
async function selectModelForAgent(message, availableModels, defaultModel) {
|
|
206
|
+
if (availableModels.length === 0) {
|
|
207
|
+
// No providers discovered — fall back to text input
|
|
208
|
+
const result = await p.text({
|
|
209
|
+
message: `${message}`,
|
|
210
|
+
placeholder: "Enter to keep default",
|
|
211
|
+
initialValue: "",
|
|
212
|
+
});
|
|
213
|
+
if (p.isCancel(result))
|
|
214
|
+
return result;
|
|
215
|
+
const trimmed = result.trim();
|
|
216
|
+
return trimmed === "" ? defaultModel : trimmed;
|
|
217
|
+
}
|
|
218
|
+
const options = [];
|
|
219
|
+
options.push({
|
|
220
|
+
value: KEEP_DEFAULT_SENTINEL,
|
|
221
|
+
label: `Keep default (${defaultModel})`,
|
|
222
|
+
});
|
|
223
|
+
for (const group of availableModels) {
|
|
224
|
+
options.push({
|
|
225
|
+
value: `__sep_${group.provider}__`,
|
|
226
|
+
label: `── ${group.provider} ──`,
|
|
227
|
+
hint: "separator",
|
|
228
|
+
});
|
|
229
|
+
for (const model of group.models) {
|
|
230
|
+
if (model === defaultModel)
|
|
231
|
+
continue; // already shown as "keep default"
|
|
232
|
+
options.push({
|
|
233
|
+
value: model,
|
|
234
|
+
label: model,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
options.push({
|
|
239
|
+
value: CUSTOM_MODEL_SENTINEL,
|
|
240
|
+
label: "Enter custom model ID",
|
|
241
|
+
});
|
|
242
|
+
const selected = await p.select({
|
|
243
|
+
message,
|
|
244
|
+
options,
|
|
245
|
+
initialValue: KEEP_DEFAULT_SENTINEL,
|
|
246
|
+
});
|
|
247
|
+
if (p.isCancel(selected))
|
|
248
|
+
return selected;
|
|
249
|
+
if (typeof selected === "string" && selected.startsWith("__sep_")) {
|
|
250
|
+
return selectModelForAgent(message, availableModels, defaultModel);
|
|
251
|
+
}
|
|
252
|
+
if (selected === KEEP_DEFAULT_SENTINEL) {
|
|
253
|
+
return defaultModel;
|
|
254
|
+
}
|
|
255
|
+
if (selected === CUSTOM_MODEL_SENTINEL) {
|
|
256
|
+
const custom = await p.text({
|
|
257
|
+
message: `${message} (custom)`,
|
|
258
|
+
placeholder: "e.g. github-copilot/claude-sonnet-4.6",
|
|
259
|
+
initialValue: "",
|
|
260
|
+
});
|
|
261
|
+
if (p.isCancel(custom))
|
|
262
|
+
return custom;
|
|
263
|
+
const trimmed = custom.trim();
|
|
264
|
+
return trimmed === "" ? defaultModel : trimmed;
|
|
265
|
+
}
|
|
266
|
+
return selected;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Presents a select UI with available models grouped by provider.
|
|
270
|
+
* Falls back to text input if no models available or user picks custom.
|
|
271
|
+
*/
|
|
272
|
+
async function selectModel(message, availableModels, currentValue) {
|
|
273
|
+
if (availableModels.length === 0) {
|
|
274
|
+
// No providers discovered — fall back to text input
|
|
275
|
+
return p.text({
|
|
276
|
+
message,
|
|
277
|
+
placeholder: "e.g. github-copilot/claude-sonnet-4.6",
|
|
278
|
+
initialValue: currentValue,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
const options = [];
|
|
282
|
+
for (const group of availableModels) {
|
|
283
|
+
// Add separator-style label for provider group
|
|
284
|
+
options.push({
|
|
285
|
+
value: `__sep_${group.provider}__`,
|
|
286
|
+
label: `── ${group.provider} ──`,
|
|
287
|
+
hint: "separator",
|
|
288
|
+
});
|
|
289
|
+
for (const model of group.models) {
|
|
290
|
+
options.push({
|
|
291
|
+
value: model,
|
|
292
|
+
label: model,
|
|
293
|
+
hint: model === currentValue ? "current" : undefined,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
options.push({
|
|
298
|
+
value: CUSTOM_MODEL_SENTINEL,
|
|
299
|
+
label: "Enter custom model ID",
|
|
300
|
+
});
|
|
301
|
+
const selected = await p.select({
|
|
302
|
+
message,
|
|
303
|
+
options,
|
|
304
|
+
initialValue: currentValue || undefined,
|
|
305
|
+
});
|
|
306
|
+
if (p.isCancel(selected))
|
|
307
|
+
return selected;
|
|
308
|
+
// Skip separators — shouldn't normally happen but guard
|
|
309
|
+
if (typeof selected === "string" && selected.startsWith("__sep_")) {
|
|
310
|
+
return selectModel(message, availableModels, currentValue);
|
|
311
|
+
}
|
|
312
|
+
if (selected === CUSTOM_MODEL_SENTINEL) {
|
|
313
|
+
return p.text({
|
|
314
|
+
message: `${message} (custom)`,
|
|
315
|
+
placeholder: "e.g. github-copilot/claude-sonnet-4.6",
|
|
316
|
+
initialValue: currentValue,
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
return selected;
|
|
320
|
+
}
|
|
321
|
+
// ---------------------------------------------------------------------------
|
|
322
|
+
// Graphify Installation Prompt
|
|
323
|
+
// ---------------------------------------------------------------------------
|
|
324
|
+
/**
|
|
325
|
+
* Detects Python 3.10+ availability and returns the major.minor version,
|
|
326
|
+
* or null if Python is not found or version is insufficient.
|
|
327
|
+
*/
|
|
328
|
+
function detectPython310() {
|
|
329
|
+
for (const cmd of ["python3", "python"]) {
|
|
330
|
+
try {
|
|
331
|
+
const output = execSync(`${cmd} --version`, {
|
|
332
|
+
encoding: "utf-8",
|
|
333
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
334
|
+
timeout: 5000,
|
|
335
|
+
}).trim();
|
|
336
|
+
const match = output.match(/(\d+)\.(\d+)\.(\d+)/);
|
|
337
|
+
if (match) {
|
|
338
|
+
const major = Number.parseInt(match[1], 10);
|
|
339
|
+
const minor = Number.parseInt(match[2], 10);
|
|
340
|
+
if (major >= 3 && minor >= 10) {
|
|
341
|
+
return { version: `${major}.${minor}.${match[3]}`, command: cmd };
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
// Command not found or failed, try next
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
return null;
|
|
350
|
+
}
|
|
351
|
+
const GRAPHIFY_URL = "https://github.com/safishamsi/graphify";
|
|
352
|
+
/**
|
|
353
|
+
* Prompts the user to install graphify if it's not already available
|
|
354
|
+
* and Python 3.10+ is detected. Gracefully handles all decline/failure paths.
|
|
355
|
+
*/
|
|
356
|
+
export async function promptGraphifyInstall() {
|
|
357
|
+
const info = detectGraphify();
|
|
358
|
+
if (info.available)
|
|
359
|
+
return;
|
|
360
|
+
const python = detectPython310();
|
|
361
|
+
if (!python) {
|
|
362
|
+
p.note([
|
|
363
|
+
"Graphify enables automatic codebase graph analysis.",
|
|
364
|
+
"AI agents get richer structural context without scanning from scratch each session.",
|
|
365
|
+
"",
|
|
366
|
+
`${color.yellow("Requirement not met:")} Python 3.10+ is required but was not found.`,
|
|
367
|
+
"",
|
|
368
|
+
"To enable this capability, install Python 3.10+ then follow:",
|
|
369
|
+
color.cyan(GRAPHIFY_URL),
|
|
370
|
+
"",
|
|
371
|
+
`Then run: ${color.dim("uv tool install graphifyy")} (or pipx / pip)`,
|
|
372
|
+
].join("\n"), "Optional: Graphify");
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
p.note([
|
|
376
|
+
"Graphify enables automatic codebase graph analysis.",
|
|
377
|
+
"AI agents get richer structural context without scanning from scratch each session.",
|
|
378
|
+
"",
|
|
379
|
+
color.cyan(GRAPHIFY_URL),
|
|
380
|
+
].join("\n"), "Optional: Graphify");
|
|
381
|
+
const shouldInstall = await p.confirm({
|
|
382
|
+
message: `Install graphify now? (Python ${python.version} detected)`,
|
|
383
|
+
initialValue: false,
|
|
384
|
+
});
|
|
385
|
+
if (p.isCancel(shouldInstall) || !shouldInstall) {
|
|
386
|
+
p.log.info(color.dim(`Install later: uv tool install graphifyy | ${GRAPHIFY_URL}`));
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
const installCommands = [
|
|
390
|
+
"uv tool install graphifyy",
|
|
391
|
+
"pipx install graphifyy",
|
|
392
|
+
"pip install graphifyy",
|
|
393
|
+
];
|
|
394
|
+
const s = p.spinner();
|
|
395
|
+
s.start("Installing graphify…");
|
|
396
|
+
for (const cmd of installCommands) {
|
|
397
|
+
try {
|
|
398
|
+
execSync(cmd, {
|
|
399
|
+
encoding: "utf-8",
|
|
400
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
401
|
+
timeout: 60_000,
|
|
402
|
+
});
|
|
403
|
+
s.stop(`${color.green("✔")} Graphify installed via ${color.dim(cmd.split(" ")[0])}`);
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
// Try next installer
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
s.stop([
|
|
411
|
+
`${color.yellow("⚠")} Could not install graphify — all installers failed.`,
|
|
412
|
+
`Install manually: ${color.cyan(GRAPHIFY_URL)}`,
|
|
413
|
+
].join("\n"));
|
|
414
|
+
}
|
|
415
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-dashboard.d.ts","sourceRoot":"","sources":["../../src/cli/status-dashboard.ts"],"names":[],"mappings":"AAwBA;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBzD"}
|