@kontourai/flow-agents 3.3.0 → 3.4.1
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/.github/workflows/add-to-project.yml +15 -0
- package/.github/workflows/ci.yml +161 -0
- package/CHANGELOG.md +48 -0
- package/CONTEXT.md +5 -1
- package/README.md +19 -8
- package/build/src/builder-flow-run-adapter.d.ts +80 -0
- package/build/src/builder-flow-run-adapter.js +241 -0
- package/build/src/builder-flow-runtime.d.ts +16 -0
- package/build/src/builder-flow-runtime.js +290 -0
- package/build/src/cli/builder-run.d.ts +1 -0
- package/build/src/cli/builder-run.js +27 -0
- package/build/src/cli/effective-backlog-settings.js +70 -2
- package/build/src/cli/init.d.ts +34 -0
- package/build/src/cli/init.js +341 -61
- package/build/src/cli/kit.js +55 -12
- package/build/src/cli/pull-work-provider.js +346 -5
- package/build/src/cli/skill-drift-check.d.ts +1 -0
- package/build/src/cli/skill-drift-check.js +165 -0
- package/build/src/cli/telemetry-doctor.d.ts +37 -0
- package/build/src/cli/telemetry-doctor.js +53 -6
- package/build/src/cli/validate-hook-influence.js +37 -7
- package/build/src/cli/workflow-sidecar.d.ts +93 -8
- package/build/src/cli/workflow-sidecar.js +1175 -158
- package/build/src/cli.js +5 -0
- package/build/src/flow-kit/validate.d.ts +54 -34
- package/build/src/flow-kit/validate.js +237 -26
- package/build/src/index.d.ts +2 -0
- package/build/src/index.js +1 -0
- package/build/src/lib/console-connect-options.d.ts +97 -0
- package/build/src/lib/console-connect-options.js +199 -0
- package/build/src/lib/console-telemetry-validate.d.ts +49 -0
- package/build/src/lib/console-telemetry-validate.js +91 -0
- package/build/src/lib/flow-resolver.d.ts +56 -3
- package/build/src/lib/flow-resolver.js +151 -11
- package/build/src/lib/fs.d.ts +17 -0
- package/build/src/lib/fs.js +172 -0
- package/build/src/lib/local-artifact-root.d.ts +44 -1
- package/build/src/lib/local-artifact-root.js +131 -3
- package/build/src/runtime-adapters.d.ts +39 -3
- package/build/src/runtime-adapters.js +77 -31
- package/build/src/tools/build-universal-bundles.js +40 -2
- package/build/src/tools/codex-agent-routing.d.ts +2 -0
- package/build/src/tools/codex-agent-routing.js +49 -0
- package/build/src/tools/generate-context-map.js +1 -0
- package/build/src/tools/validate-source-tree.js +27 -1
- package/context/scripts/hooks/lib/kit-catalog.js +235 -0
- package/context/scripts/hooks/lib/runnable-command.js +177 -0
- package/context/scripts/hooks/stop-goal-fit.js +278 -48
- package/context/scripts/hooks/workflow-steering.js +121 -21
- package/context/scripts/package.json +3 -0
- package/context/scripts/telemetry/install-console-config.sh +25 -4
- package/context/scripts/telemetry/lib/config.sh +102 -12
- package/context/scripts/telemetry/lib/pricing.sh +50 -0
- package/context/scripts/telemetry/lib/session.sh +3 -0
- package/context/scripts/telemetry/lib/transport.sh +87 -0
- package/context/scripts/telemetry/lib/usage.sh +205 -4
- package/context/scripts/telemetry/telemetry.conf +6 -0
- package/context/scripts/telemetry/telemetry.sh +48 -0
- package/context/settings/workspace-backlog-provider-settings.example.json +48 -0
- package/docs/agent-usage-feedback-loop.md +35 -0
- package/docs/architecture-engine-and-kits.md +110 -0
- package/docs/context-map.md +2 -0
- package/docs/decisions/embeddable-engine.md +152 -0
- package/docs/decisions/index.md +3 -1
- package/docs/decisions/trust-ledger-retention.md +88 -0
- package/docs/decisions/workflow-enforcement.md +31 -9
- package/docs/fixture-ownership.md +3 -0
- package/docs/implementing-trust-reconciliation.md +129 -0
- package/docs/index.md +19 -9
- package/docs/integrations/flow-agents-console.md +167 -0
- package/docs/kit-authoring-guide.md +52 -21
- package/docs/spec/builder-flow-runtime.md +80 -0
- package/docs/spec/runtime-hook-surface.md +45 -1
- package/docs/specs/economics-record-contract.md +270 -0
- package/docs/specs/harness-capability-matrix.md +74 -0
- package/docs/specs/learning-review-proposals-contract.md +340 -0
- package/docs/specs/routing-efficiency-review.md +59 -0
- package/docs/verifiable-trust.md +74 -25
- package/docs/workflow-usage-guide.md +10 -0
- package/evals/acceptance/prove-capture-teeth.sh +132 -0
- package/evals/ci/antigaming-suite.sh +1 -0
- package/evals/ci/run-baseline.sh +72 -4
- package/evals/fixtures/economics/acceptance.json +12 -0
- package/evals/fixtures/economics/agents/tool-worker-1/events.jsonl +2 -0
- package/evals/fixtures/economics/agents/tool-worker-2/events.jsonl +2 -0
- package/evals/fixtures/economics/agents/tool-worker-3/events.jsonl +2 -0
- package/evals/fixtures/economics/agents/tool-worker-4/events.jsonl +1 -0
- package/evals/fixtures/economics/agents/tool-worker-5/events.jsonl +2 -0
- package/evals/fixtures/economics/critique.json +22 -0
- package/evals/fixtures/economics/expected-record.json +71 -0
- package/evals/fixtures/economics/session-usage-event.json +1 -0
- package/evals/fixtures/economics/state.json +11 -0
- package/evals/fixtures/economics/transcript.jsonl +3 -0
- package/evals/fixtures/hook-influence/cases.json +7 -7
- package/evals/fixtures/learning-review-proposals/balanced/economics.jsonl +6 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/economics.jsonl +5 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/sessions/task-lr-ef-1/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/sessions/task-lr-ef-2/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/sessions/task-lr-ef-3/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/sessions/task-lr-ef-4/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/effect-follow-up/sessions/task-lr-ef-5/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/economics.jsonl +6 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/expected-aggregates.json +30 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/expected-aggregates.md +66 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-1/gate-review.inquiries.json +26 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-1/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-2/gate-review.inquiries.json +26 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-2/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-3/gate-review.inquiries.json +26 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-3/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-4/gate-review.inquiries.json +26 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-4/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-5/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/pattern-present/sessions/task-lr-pp-6/trust.bundle +21 -0
- package/evals/fixtures/learning-review-proposals/repeat-window/economics.jsonl +6 -0
- package/evals/fixtures/learning-review-proposals/under-threshold/economics.jsonl +3 -0
- package/evals/fixtures/telemetry/usage-transcript-sample.jsonl +4 -0
- package/evals/fixtures/trust-reconcile-exploits/mcp-degrade.json +42 -0
- package/evals/integration/test_builder_entry_enforcement.sh +241 -0
- package/evals/integration/test_builder_step_producers.sh +18 -10
- package/evals/integration/test_bundle_install.sh +172 -0
- package/evals/integration/test_console_tenant_isolation.sh +167 -0
- package/evals/integration/test_critique_supersession_roundtrip.sh +4 -1
- package/evals/integration/test_dual_emit_flow_step.sh +10 -4
- package/evals/integration/test_economics_record.sh +674 -0
- package/evals/integration/test_effective_backlog_settings.sh +1 -1
- package/evals/integration/test_evidence_capture_hook.sh +17 -2
- package/evals/integration/test_exemption_usage_review.sh +198 -0
- package/evals/integration/test_fixture_retirement_audit.sh +2 -2
- package/evals/integration/test_flow_kit_install_git.sh +83 -0
- package/evals/integration/test_flowdef_session_activation.sh +0 -1
- package/evals/integration/test_flowdef_session_history_preservation.sh +13 -3
- package/evals/integration/test_gate_lockdown.sh +7 -0
- package/evals/integration/test_gate_review_inquiry_records.sh +9 -1
- package/evals/integration/test_goal_fit_hook.sh +2031 -0
- package/evals/integration/test_hook_category_behaviors.sh +8 -1
- package/evals/integration/test_hook_influence_cases.sh +25 -1
- package/evals/integration/test_install_merge.sh +227 -2
- package/evals/integration/test_kit_conformance_levels.sh +6 -6
- package/evals/integration/test_learning_review_proposals.sh +329 -0
- package/evals/integration/test_liveness_conflict_injection.sh +26 -22
- package/evals/integration/test_liveness_console_relay.sh +166 -0
- package/evals/integration/test_liveness_heartbeat.sh +17 -17
- package/evals/integration/test_liveness_worktree_root.sh +575 -0
- package/evals/integration/test_phase_map_and_gate_claim.sh +6 -1
- package/evals/integration/test_publish_delivery.sh +331 -1
- package/evals/integration/test_pull_work_board.sh +200 -0
- package/evals/integration/test_pull_work_provider.sh +1 -1
- package/evals/integration/test_record_check.sh +378 -0
- package/evals/integration/test_routing_efficiency.sh +71 -0
- package/evals/integration/test_runtime_adapter_activation.sh +28 -0
- package/evals/integration/test_session_resume_roundtrip.sh +16 -19
- package/evals/integration/test_skill_drift_check.sh +870 -0
- package/evals/integration/test_telemetry.sh +445 -0
- package/evals/integration/test_telemetry_doctor.sh +66 -0
- package/evals/integration/test_telemetry_usage_pipeline.sh +228 -0
- package/evals/integration/test_trust_reconcile_negatives.sh +30 -13
- package/evals/integration/test_trust_reconcile_trailer_diagnostic.sh +247 -0
- package/evals/integration/test_usage_cost.sh +61 -0
- package/evals/integration/test_workflow_sidecar_writer.sh +1395 -0
- package/evals/integration/test_workflow_steering_hook.sh +157 -16
- package/evals/integration/test_workspace_settings.sh +176 -0
- package/evals/lib/env.sh +26 -0
- package/evals/lib/node.sh +8 -0
- package/evals/run.sh +29 -0
- package/evals/static/test_ci_integration_coverage.sh +115 -0
- package/evals/static/test_declared_scope_forms_documented.sh +114 -0
- package/evals/static/test_universal_bundles.sh +34 -0
- package/evals/static/test_validate_source_kit_asset_scope.sh +259 -0
- package/evals/static/test_workflow_skills.sh +1 -1
- package/kits/builder/flows/build.flow.json +9 -18
- package/kits/builder/flows/publish-learn.flow.json +5 -1
- package/kits/builder/kit.json +120 -0
- package/kits/builder/skills/deliver/SKILL.md +42 -0
- package/kits/builder/skills/evidence-gate/SKILL.md +12 -0
- package/kits/builder/skills/execute-plan/SKILL.md +9 -0
- package/kits/builder/skills/learning-review/SKILL.md +51 -0
- package/kits/builder/skills/plan-work/SKILL.md +17 -20
- package/kits/builder/skills/pull-work/SKILL.md +21 -0
- package/kits/builder/skills/release-readiness/SKILL.md +12 -0
- package/kits/knowledge/kit.json +9 -0
- package/kits/veritas-governance/docs/README.md +35 -7
- package/kits/veritas-governance/fixtures/exemption-review/mixed-fresh-stale.DECLARED.json +14 -0
- package/kits/veritas-governance/kit.json +14 -0
- package/kits/veritas-governance/skills/exemption-usage-review/SKILL.md +128 -0
- package/kits/veritas-governance/skills/exemption-usage-review/review-exemptions.mjs +231 -0
- package/package.json +2 -2
- package/packaging/manifest.json +29 -0
- package/schemas/backlog-provider-settings.schema.json +13 -0
- package/schemas/workflow-state.schema.json +44 -0
- package/scripts/README.md +4 -0
- package/scripts/check-content-boundary.cjs +8 -1
- package/scripts/ci/trust-reconcile.js +136 -0
- package/scripts/hooks/codex-hook-adapter.js +77 -2
- package/scripts/hooks/evidence-capture.js +38 -5
- package/scripts/hooks/lib/codex-exit-code.js +316 -0
- package/scripts/hooks/lib/kit-catalog.js +235 -0
- package/scripts/hooks/lib/liveness-write.js +28 -1
- package/scripts/hooks/lib/local-artifact-paths.js +97 -1
- package/scripts/hooks/lib/runnable-command.js +177 -0
- package/scripts/hooks/lib/skill-drift.js +350 -0
- package/scripts/hooks/stop-goal-fit.js +278 -48
- package/scripts/hooks/workflow-steering.js +121 -21
- package/scripts/install-codex-home.sh +97 -47
- package/scripts/install-merge.js +72 -14
- package/scripts/install-owned-files.js +178 -0
- package/scripts/liveness/relay.sh +84 -0
- package/scripts/telemetry/economics-record.schema.json +145 -0
- package/scripts/telemetry/economics-record.sh +331 -0
- package/scripts/telemetry/install-console-config.sh +25 -4
- package/scripts/telemetry/learning-review-decide.sh +124 -0
- package/scripts/telemetry/learning-review-proposals.schema.json +161 -0
- package/scripts/telemetry/learning-review-proposals.sh +484 -0
- package/scripts/telemetry/lib/config.sh +102 -12
- package/scripts/telemetry/lib/pricing.sh +14 -6
- package/scripts/telemetry/lib/session.sh +3 -0
- package/scripts/telemetry/lib/transport.sh +133 -15
- package/scripts/telemetry/lib/usage.sh +121 -28
- package/scripts/telemetry/routing-efficiency.sh +0 -0
- package/scripts/telemetry/telemetry.conf +6 -0
- package/scripts/telemetry/telemetry.sh +48 -0
- package/src/builder-flow-run-adapter.ts +357 -0
- package/src/builder-flow-runtime.ts +348 -0
- package/src/cli/builder-flow-run-adapter.test.mjs +495 -0
- package/src/cli/builder-flow-runtime.test.mjs +213 -0
- package/src/cli/builder-run.ts +28 -0
- package/src/cli/codex-agent-routing.test.mjs +44 -0
- package/src/cli/codex-exit-code.test.mjs +207 -0
- package/src/cli/console-connect-options.test.mjs +329 -0
- package/src/cli/console-telemetry-validate.test.mjs +157 -0
- package/src/cli/effective-backlog-settings.ts +68 -2
- package/src/cli/flow-resolver-composition.test.mjs +101 -0
- package/src/cli/init.test.mjs +161 -0
- package/src/cli/init.ts +407 -62
- package/src/cli/kit-metadata-security.test.mjs +443 -0
- package/src/cli/kit.ts +50 -12
- package/src/cli/pull-work-provider.ts +377 -3
- package/src/cli/sidecar-pure-helpers.test.mjs +64 -0
- package/src/cli/skill-drift-check.ts +196 -0
- package/src/cli/telemetry-doctor.test.mjs +53 -0
- package/src/cli/telemetry-doctor.ts +50 -7
- package/src/cli/validate-hook-influence.ts +37 -6
- package/src/cli/workflow-sidecar.ts +1150 -151
- package/src/cli.ts +5 -0
- package/src/flow-kit/validate.ts +277 -38
- package/src/index.ts +19 -0
- package/src/lib/console-connect-options.ts +261 -0
- package/src/lib/console-telemetry-validate.ts +88 -0
- package/src/lib/flow-resolver.ts +153 -10
- package/src/lib/fs.ts +160 -0
- package/src/lib/local-artifact-root.ts +129 -3
- package/src/runtime-adapters.ts +113 -33
- package/src/tools/build-universal-bundles.ts +36 -2
- package/src/tools/codex-agent-routing.ts +48 -0
- package/src/tools/generate-context-map.ts +1 -0
- package/src/tools/validate-source-tree.ts +26 -1
|
@@ -6,6 +6,7 @@ import { fileURLToPath } from "node:url";
|
|
|
6
6
|
import { parseArgs, flagString, flagBool } from "../lib/args.js";
|
|
7
7
|
import { readJson } from "../lib/fs.js";
|
|
8
8
|
const PROJECT_SETTINGS_RELATIVE_PATH = path.join("context", "settings", "backlog-provider-settings.json");
|
|
9
|
+
const WORKSPACE_SETTINGS_RELATIVE_PATH = path.join(".kontourai", "settings.json");
|
|
9
10
|
function loadSettings(file) {
|
|
10
11
|
if (!fs.existsSync(file))
|
|
11
12
|
return null;
|
|
@@ -36,6 +37,14 @@ function currentRepo(repoPath) {
|
|
|
36
37
|
}
|
|
37
38
|
return null;
|
|
38
39
|
}
|
|
40
|
+
function gitRoot(repoPath) {
|
|
41
|
+
try {
|
|
42
|
+
return child_process.execFileSync("git", ["-C", repoPath, "rev-parse", "--show-toplevel"], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
39
48
|
function merge(base, override) {
|
|
40
49
|
if (!base && !override)
|
|
41
50
|
return null;
|
|
@@ -60,6 +69,45 @@ function findProject(settings, repo) {
|
|
|
60
69
|
return projectRepo.owner === repo.owner && projectRepo.name === repo.name;
|
|
61
70
|
}) ?? null;
|
|
62
71
|
}
|
|
72
|
+
function workspaceRepos(settings) {
|
|
73
|
+
const workspace = settings?.workspace;
|
|
74
|
+
if (typeof workspace !== "object" || workspace === null || Array.isArray(workspace))
|
|
75
|
+
return [];
|
|
76
|
+
const repos = workspace.repos;
|
|
77
|
+
return Array.isArray(repos) ? repos.flatMap((repo) => typeof repo === "string" && repo.trim() ? [repo.trim()] : []) : [];
|
|
78
|
+
}
|
|
79
|
+
function hasWorkspaceSettings(repoPath) {
|
|
80
|
+
return fs.existsSync(path.join(repoPath, WORKSPACE_SETTINGS_RELATIVE_PATH));
|
|
81
|
+
}
|
|
82
|
+
function isGitRepoRoot(candidate) {
|
|
83
|
+
if (fs.existsSync(path.join(candidate, ".git")))
|
|
84
|
+
return true;
|
|
85
|
+
try {
|
|
86
|
+
const root = child_process.execFileSync("git", ["-C", candidate, "rev-parse", "--show-toplevel"], { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
|
|
87
|
+
return fs.realpathSync(root) === fs.realpathSync(candidate);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function depthOneGitRepoCount(repoPath) {
|
|
94
|
+
if (!fs.existsSync(repoPath))
|
|
95
|
+
return 0;
|
|
96
|
+
let count = 0;
|
|
97
|
+
for (const name of fs.readdirSync(repoPath)) {
|
|
98
|
+
const candidate = path.join(repoPath, name);
|
|
99
|
+
if (!fs.statSync(candidate).isDirectory())
|
|
100
|
+
continue;
|
|
101
|
+
if (isGitRepoRoot(candidate))
|
|
102
|
+
count += 1;
|
|
103
|
+
if (count >= 2)
|
|
104
|
+
return count;
|
|
105
|
+
}
|
|
106
|
+
return count;
|
|
107
|
+
}
|
|
108
|
+
function isWorkspacePath(repoPath) {
|
|
109
|
+
return hasWorkspaceSettings(repoPath) || depthOneGitRepoCount(repoPath) >= 2;
|
|
110
|
+
}
|
|
63
111
|
function defaultProjectSettingsPath() {
|
|
64
112
|
let cursor = path.dirname(fileURLToPath(import.meta.url));
|
|
65
113
|
while (true) {
|
|
@@ -73,15 +121,35 @@ function defaultProjectSettingsPath() {
|
|
|
73
121
|
}
|
|
74
122
|
}
|
|
75
123
|
function effective(repoPath, projectSettings, globalSettings) {
|
|
124
|
+
const globalDoc = loadSettings(globalSettings);
|
|
125
|
+
const root = gitRoot(repoPath);
|
|
126
|
+
if (!root && isWorkspacePath(repoPath)) {
|
|
127
|
+
const workspaceSettings = path.join(repoPath, WORKSPACE_SETTINGS_RELATIVE_PATH);
|
|
128
|
+
const workspaceDoc = loadSettings(workspaceSettings);
|
|
129
|
+
const effectiveSettings = merge(globalDoc?.defaults, workspaceDoc?.defaults);
|
|
130
|
+
const repos = workspaceRepos(workspaceDoc);
|
|
131
|
+
if (effectiveSettings) {
|
|
132
|
+
if (repos.length)
|
|
133
|
+
effectiveSettings.workspace = { repos };
|
|
134
|
+
return [{
|
|
135
|
+
status: "configured",
|
|
136
|
+
scope: "workspace",
|
|
137
|
+
workspace: { root: repoPath, settings_path: workspaceSettings, repos },
|
|
138
|
+
source: workspaceDoc?.defaults ? "workspace" : "global",
|
|
139
|
+
precedence: ["workspace.defaults", "global.defaults"],
|
|
140
|
+
settings: effectiveSettings,
|
|
141
|
+
}, 0];
|
|
142
|
+
}
|
|
143
|
+
return [{ status: "ask_user", scope: "workspace", reason: "no_backlog_provider_settings", message: "Ask the user which backlog WorkItemProvider and BoardProvider to use for this workspace.", workspace: { root: repoPath, settings_path: workspaceSettings, repos }, resolution: { workspace_settings_path: workspaceSettings, global_settings_path: globalSettings, checked: ["workspace", "global"] } }, 2];
|
|
144
|
+
}
|
|
76
145
|
const repo = currentRepo(repoPath);
|
|
77
146
|
const projectDoc = loadSettings(projectSettings);
|
|
78
|
-
const globalDoc = loadSettings(globalSettings);
|
|
79
147
|
if (!repo)
|
|
80
148
|
return [{ status: "ask_user", reason: "could_not_identify_current_repo", message: "Ask the user which backlog WorkItemProvider and BoardProvider to use for this workspace.", resolution: { project_settings_path: projectSettings, global_settings_path: globalSettings } }, 2];
|
|
81
149
|
const effectiveSettings = merge(merge(merge(globalDoc?.defaults, findProject(globalDoc, repo)), projectDoc?.defaults), findProject(projectDoc, repo));
|
|
82
150
|
if (!effectiveSettings)
|
|
83
151
|
return [{ status: "ask_user", reason: "no_backlog_provider_settings", message: "Ask the user which backlog WorkItemProvider and BoardProvider to use before selecting work.", current_repo: repo, resolution: { project_settings_path: projectSettings, global_settings_path: globalSettings, checked: ["project", "global"] } }, 2];
|
|
84
|
-
return [{ status: "configured", current_repo: repo, source: findProject(projectDoc, repo) || projectDoc?.defaults ? "project" : "global", precedence: ["project.projects match", "project.defaults", "global.projects match", "global.defaults"], settings: effectiveSettings }, 0];
|
|
152
|
+
return [{ status: "configured", scope: "repo", current_repo: repo, source: findProject(projectDoc, repo) || projectDoc?.defaults ? "project" : "global", precedence: ["project.projects match", "project.defaults", "global.projects match", "global.defaults"], settings: effectiveSettings }, 0];
|
|
85
153
|
}
|
|
86
154
|
export function main(argv = process.argv.slice(2)) {
|
|
87
155
|
const args = parseArgs(argv);
|
package/build/src/cli/init.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
type Runtime = "base" | "codex" | "claude-code" | "kiro" | "opencode" | "pi";
|
|
1
2
|
export declare const COLLISION_MARKER = "Recording Flow Agents telemetry";
|
|
2
3
|
/**
|
|
3
4
|
* Check whether a user-level Claude Code settings file already contains
|
|
@@ -13,5 +14,38 @@ export declare const COLLISION_MARKER = "Recording Flow Agents telemetry";
|
|
|
13
14
|
* @returns true if a collision was detected, false otherwise.
|
|
14
15
|
*/
|
|
15
16
|
export declare function checkScopeCollision(userSettingsFile?: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Detect the current runtime from environment-variable signals already
|
|
19
|
+
* ambient in the invoking process (Claude Code / Codex / opencode session
|
|
20
|
+
* markers). Reuses the single existing `detectRuntime` implementation from
|
|
21
|
+
* `scripts/hooks/lib/actor-identity.js` (via the same `createRequire` pattern
|
|
22
|
+
* used elsewhere in this file for `install-merge.js`/`skill-drift.js`)
|
|
23
|
+
* instead of forking a second copy of the env-var contract. `pi`'s env-var
|
|
24
|
+
* contract is unverified there (see actor-identity.js's own docstring) and is
|
|
25
|
+
* intentionally out of scope for auto-detection, so it maps down to
|
|
26
|
+
* `"unknown"` here (pi still falls back to `"base"` like today).
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectRuntimeFromProcessEnv(env?: NodeJS.ProcessEnv): Runtime | "unknown";
|
|
29
|
+
/**
|
|
30
|
+
* Detect the current runtime by probing for exactly one runtime's own global
|
|
31
|
+
* config directory on disk (the same paths `globalDest` computes for
|
|
32
|
+
* `--global` installs — see `runtimeGlobalConfigCandidates`). Zero matches or
|
|
33
|
+
* 2+ matches are both ambiguous and must never guess: only a single
|
|
34
|
+
* unambiguous hit returns a runtime; everything else is `"unknown"`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function detectRuntimeFromFilesystem(homedir?: string, env?: NodeJS.ProcessEnv): Runtime | "unknown";
|
|
37
|
+
/**
|
|
38
|
+
* Layered runtime auto-detection default used to pre-fill both the
|
|
39
|
+
* interactive prompt and the headless `--runtime` fallback: (1) env-var
|
|
40
|
+
* signals from the invoking process, (2) failing that, an unambiguous
|
|
41
|
+
* filesystem probe, (3) failing that, today's `"base"` default. An explicit
|
|
42
|
+
* `--runtime` flag or interactive answer always overrides this — this
|
|
43
|
+
* function only supplies the fallback default (see `interactiveOptions` /
|
|
44
|
+
* `headlessOptions`).
|
|
45
|
+
*/
|
|
46
|
+
export declare function detectDefaultRuntime(env?: NodeJS.ProcessEnv, homedir?: string): Runtime;
|
|
47
|
+
export declare function globalDest(runtime: Runtime): string;
|
|
48
|
+
export declare function ensureBundle(runtime: Runtime): string;
|
|
16
49
|
export declare function main(argv?: string[]): Promise<number>;
|
|
17
50
|
export declare function mainDogfood(argv?: string[]): Promise<number>;
|
|
51
|
+
export {};
|