@bragi-gmbh/codebus 1.4.0 → 1.6.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/dist/ci-hooks/ci-hooks.js +126 -0
- package/dist/ci-hooks/ci-hooks.js.map +1 -0
- package/dist/commands/adr.js +30 -0
- package/dist/commands/adr.js.map +1 -0
- package/dist/commands/agent.js +175 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/as.js +1 -1
- package/dist/commands/as.js.map +1 -1
- package/dist/commands/ask.js +1 -1
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/checkin.js +1 -1
- package/dist/commands/checkin.js.map +1 -1
- package/dist/commands/ci-findings.js +129 -0
- package/dist/commands/ci-findings.js.map +1 -0
- package/dist/commands/ci-reply.js +117 -0
- package/dist/commands/ci-reply.js.map +1 -0
- package/dist/commands/ci-steer-escalate.js +65 -0
- package/dist/commands/ci-steer-escalate.js.map +1 -0
- package/dist/commands/cli-mcp-correlation.js +131 -0
- package/dist/commands/cli-mcp-correlation.js.map +1 -0
- package/dist/commands/connector-attach-detach.js +542 -0
- package/dist/commands/connector-attach-detach.js.map +1 -0
- package/dist/commands/connector.js +513 -0
- package/dist/commands/connector.js.map +1 -0
- package/dist/commands/contract.js +33 -0
- package/dist/commands/contract.js.map +1 -0
- package/dist/commands/correlation.js +194 -0
- package/dist/commands/correlation.js.map +1 -0
- package/dist/commands/decision.js +63 -0
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/digest.js +14 -3
- package/dist/commands/digest.js.map +1 -1
- package/dist/commands/do.js +127 -0
- package/dist/commands/do.js.map +1 -0
- package/dist/commands/factory-attention.js +106 -0
- package/dist/commands/factory-attention.js.map +1 -0
- package/dist/commands/factory-context-read.js +171 -0
- package/dist/commands/factory-context-read.js.map +1 -0
- package/dist/commands/factory-interventions.js +102 -0
- package/dist/commands/factory-interventions.js.map +1 -0
- package/dist/commands/factory.js +187 -0
- package/dist/commands/factory.js.map +1 -1
- package/dist/commands/github-login.js +109 -53
- package/dist/commands/github-login.js.map +1 -1
- package/dist/commands/graph-pull.js +130 -0
- package/dist/commands/graph-pull.js.map +1 -0
- package/dist/commands/graph.js +5 -1
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/inbox.js +7 -7
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/ingest.js +1 -1
- package/dist/commands/ingest.js.map +1 -1
- package/dist/commands/init.js +10 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.js +1160 -55
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/integration-ledger.js +81 -0
- package/dist/commands/integration-ledger.js.map +1 -0
- package/dist/commands/knowledge.js +194 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/links.js +1 -1
- package/dist/commands/links.js.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/morning.js +50 -1
- package/dist/commands/morning.js.map +1 -1
- package/dist/commands/plan-compiler.js +260 -0
- package/dist/commands/plan-compiler.js.map +1 -0
- package/dist/commands/plan-lint.js +275 -0
- package/dist/commands/plan-lint.js.map +1 -0
- package/dist/commands/plan-score.js +203 -0
- package/dist/commands/plan-score.js.map +1 -0
- package/dist/commands/plan.js +481 -15
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/product-validity.js +168 -0
- package/dist/commands/product-validity.js.map +1 -0
- package/dist/commands/question.js +1 -1
- package/dist/commands/question.js.map +1 -1
- package/dist/commands/read-policy.js +131 -0
- package/dist/commands/read-policy.js.map +1 -0
- package/dist/commands/read.js +1 -1
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.js +106 -8
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/repository-protection.js +209 -0
- package/dist/commands/repository-protection.js.map +1 -0
- package/dist/commands/resolve.js +2 -2
- package/dist/commands/resolve.js.map +1 -1
- package/dist/commands/self-healing.js +26 -0
- package/dist/commands/self-healing.js.map +1 -0
- package/dist/commands/send.js +1 -1
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/serial-merge.js +303 -0
- package/dist/commands/serial-merge.js.map +1 -0
- package/dist/commands/session.js +1 -1
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/spend.js +31 -0
- package/dist/commands/spend.js.map +1 -0
- package/dist/commands/task.js +92 -1
- package/dist/commands/task.js.map +1 -1
- package/dist/commands/taxonomy.js +21 -0
- package/dist/commands/taxonomy.js.map +1 -0
- package/dist/commands/verify.js +77 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/config/self-healing-analysis.json +158 -0
- package/dist/errors.js +18 -4
- package/dist/errors.js.map +1 -1
- package/dist/execution/client.js +53 -0
- package/dist/execution/client.js.map +1 -0
- package/dist/execution/local.js +24 -0
- package/dist/execution/local.js.map +1 -0
- package/dist/execution/ssh.js +38 -0
- package/dist/execution/ssh.js.map +1 -0
- package/dist/graph.js +78 -16
- package/dist/graph.js.map +1 -1
- package/dist/index.js +40 -2
- package/dist/index.js.map +1 -1
- package/dist/json-lite.js +248 -0
- package/dist/json-lite.js.map +1 -0
- package/dist/knowledge-drift.js +40 -0
- package/dist/knowledge-drift.js.map +1 -0
- package/dist/lint/parallelism.js +414 -0
- package/dist/lint/parallelism.js.map +1 -0
- package/dist/mail-latency.js +11 -1
- package/dist/mail-latency.js.map +1 -1
- package/dist/mcp-ci-findings.js +31 -0
- package/dist/mcp-ci-findings.js.map +1 -0
- package/dist/mcp-correlation.js +290 -0
- package/dist/mcp-correlation.js.map +1 -0
- package/dist/mcp-factory-context-read.js +81 -0
- package/dist/mcp-factory-context-read.js.map +1 -0
- package/dist/mcp-registry.js +147 -1
- package/dist/mcp-registry.js.map +1 -1
- package/dist/mcp.js +94 -5
- package/dist/mcp.js.map +1 -1
- package/dist/openrouter-reservation-guard.js +97 -0
- package/dist/openrouter-reservation-guard.js.map +1 -0
- package/dist/self-healing-analysis-loader.js +150 -0
- package/dist/self-healing-analysis-loader.js.map +1 -0
- package/dist/sender.js +11 -9
- package/dist/sender.js.map +1 -1
- package/dist/toml-lite.js +546 -0
- package/dist/toml-lite.js.map +1 -0
- package/dist/version-check.js +23 -7
- package/dist/version-check.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-attention.js","sourceRoot":"","sources":["../../src/commands/factory-attention.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory context read command — versioned taxonomy, contracts, ADRs, specs, knowledge, repos, graphs.
|
|
3
|
+
*
|
|
4
|
+
* Shared core logic for CLI + MCP (A5: dumb client, one command core).
|
|
5
|
+
* Exported: `factoryContextReadCore(ctx, contentType?, repoSlug?)` for both paths.
|
|
6
|
+
* Auth: workspace-scoped via `makeCtx(resolveConfig({}))`.
|
|
7
|
+
* Contract: com.bragi.contract.factory-context-read-api@0.5.0-proposed + cli-mcp-parity.
|
|
8
|
+
* Parity pretest fixture: `identical_version_schema_auth_result_and_errors`.
|
|
9
|
+
* Negative fixture: `stale_local_taxonomy_or_transport_drift`.
|
|
10
|
+
*/
|
|
11
|
+
import { CodebusError } from "../errors.js";
|
|
12
|
+
/**
|
|
13
|
+
* Core factory context read logic — shared by CLI and MCP handlers.
|
|
14
|
+
*
|
|
15
|
+
* Calls CodeBus versioned RPC (pending context-read-api migration 0131),
|
|
16
|
+
* validates schema, asserts no stale/local-copy fallback, returns versioned digest.
|
|
17
|
+
*
|
|
18
|
+
* Errors: thrown as CodebusError with message (used identically by CLI exit code and MCP error).
|
|
19
|
+
* Fixtures: positive = versioned_taxonomy_contract_ADR_spec_knowledge_repo_reads_with_RLS,
|
|
20
|
+
* negative = direct_database_unversioned_or_local_copy_authority.
|
|
21
|
+
*
|
|
22
|
+
* @param ctx authenticated context with workspace/person scoping
|
|
23
|
+
* @param contentType what to read (default "taxonomy")
|
|
24
|
+
* @param repoSlug optional repo filter for repositories/graphs queries
|
|
25
|
+
* @throws CodebusError if content is stale, unversioned, or fetched from direct DB / local copy
|
|
26
|
+
*/
|
|
27
|
+
export async function factoryContextReadCore(ctx, contentType = "taxonomy", repoSlug) {
|
|
28
|
+
// Validate content type
|
|
29
|
+
const validTypes = [
|
|
30
|
+
"taxonomy",
|
|
31
|
+
"contracts",
|
|
32
|
+
"adrs",
|
|
33
|
+
"specs",
|
|
34
|
+
"knowledge",
|
|
35
|
+
"repositories",
|
|
36
|
+
"graphs",
|
|
37
|
+
"configuration",
|
|
38
|
+
];
|
|
39
|
+
if (!validTypes.includes(contentType)) {
|
|
40
|
+
throw new CodebusError(`Invalid contentType '${contentType}'. Allowed: ${validTypes.join(", ")}`);
|
|
41
|
+
}
|
|
42
|
+
// Fix #6: graphs query REQUIRES repoSlug — enforce even when omitted (checked
|
|
43
|
+
// BEFORE the generic non-empty check so the message is contract-specific)
|
|
44
|
+
if (contentType === "graphs" && !repoSlug) {
|
|
45
|
+
throw new CodebusError("repoSlug is required for 'graphs' query");
|
|
46
|
+
}
|
|
47
|
+
// Validate repo slug format when provided (non-graphs types)
|
|
48
|
+
if (repoSlug !== undefined && (typeof repoSlug !== "string" || repoSlug.trim().length === 0)) {
|
|
49
|
+
throw new CodebusError("repoSlug must be a non-empty string or undefined");
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
// RPC call (pending migration 0131: context_read_versioned RPC).
|
|
53
|
+
// For now, placeholder that demonstrates the pattern:
|
|
54
|
+
// Real implementation will query supabase RPC with auth scope.
|
|
55
|
+
// Actual RPC signature (TBD): context_read_versioned(p_content_type, p_repo_slug?, p_version?)
|
|
56
|
+
// -> {version, content, schema_id, source, digest, created_at, authenticated, cascade}
|
|
57
|
+
// Negative case: if source='local_copy' or 'direct_database' → throw "direct_database_unversioned_or_local_copy_authority"
|
|
58
|
+
const rpcResult = await ctx.supabase?.rpc?.("context_read_versioned", {
|
|
59
|
+
p_content_type: contentType,
|
|
60
|
+
p_repo_slug: repoSlug || null,
|
|
61
|
+
});
|
|
62
|
+
if (!rpcResult) {
|
|
63
|
+
throw new CodebusError(`Failed to fetch ${contentType}${repoSlug ? ` for repo ${repoSlug}` : ""}: context-read-api RPC not ready (migration 0131)`);
|
|
64
|
+
}
|
|
65
|
+
// Fix #3: inspect error field — RPC failure must surface the actual transport/database error
|
|
66
|
+
if (rpcResult.error) {
|
|
67
|
+
throw new CodebusError(`context_read_versioned RPC failed for ${contentType}${repoSlug ? ` (repo ${repoSlug})` : ""}: ${rpcResult.error.message ?? String(rpcResult.error)}`);
|
|
68
|
+
}
|
|
69
|
+
// Negative: reject direct-database or local-copy sources
|
|
70
|
+
if (rpcResult.data?.source === "direct_database") {
|
|
71
|
+
throw new CodebusError("Rejected: direct_database query source violates schema (RLS required) — use a versioned ref ('<id>@<version>') or the bounded-cache path; see 'codebus factory-context-read <id>'.");
|
|
72
|
+
}
|
|
73
|
+
if (rpcResult.data?.source === "local_copy") {
|
|
74
|
+
throw new CodebusError("Rejected: local_copy source violates contract (no authoritative local copies)");
|
|
75
|
+
}
|
|
76
|
+
// Negative: reject unversioned content
|
|
77
|
+
if (!rpcResult.data?.version) {
|
|
78
|
+
throw new CodebusError(`Unversioned ${contentType} returned; contract requires versioned read`);
|
|
79
|
+
}
|
|
80
|
+
// Fix #4: digest is content SHA-256 used for cache/staleness. Missing digest
|
|
81
|
+
// means we cannot verify content — fail-closed instead of returning "unknown".
|
|
82
|
+
if (typeof rpcResult.data?.digest !== "string" || rpcResult.data.digest.length === 0) {
|
|
83
|
+
throw new CodebusError(`Missing or empty digest for ${contentType}; content cannot be verified as authoritative`);
|
|
84
|
+
}
|
|
85
|
+
// Fix #5: authenticated must come from the RPC's authorization metadata,
|
|
86
|
+
// not hard-coded. Only trust the response's authenticated flag.
|
|
87
|
+
const authenticated = Boolean(rpcResult.data?.authenticated);
|
|
88
|
+
if (!authenticated) {
|
|
89
|
+
throw new CodebusError(`Unauthorized or unauthenticated response for ${contentType}; RLS scoping required`);
|
|
90
|
+
}
|
|
91
|
+
// Build result
|
|
92
|
+
const result = {
|
|
93
|
+
version: rpcResult.data.version,
|
|
94
|
+
contentType,
|
|
95
|
+
repoSlug,
|
|
96
|
+
content: rpcResult.data.content,
|
|
97
|
+
digest: rpcResult.data.digest,
|
|
98
|
+
timestamp: rpcResult.data.created_at || new Date().toISOString(),
|
|
99
|
+
authenticated,
|
|
100
|
+
cached: rpcResult.data.source === "bounded_cache",
|
|
101
|
+
};
|
|
102
|
+
// Validate schema (placeholder for actual contract schema check)
|
|
103
|
+
if (!result.content) {
|
|
104
|
+
throw new CodebusError(`Empty content for ${contentType}: the contract artifact returned no body — re-run 'codebus factory-context-read <id>' after republishing the artifact.`);
|
|
105
|
+
}
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
// Propagate as CodebusError (identical for CLI + MCP error paths)
|
|
110
|
+
if (error instanceof CodebusError) {
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
throw new CodebusError(error instanceof Error
|
|
114
|
+
? error.message
|
|
115
|
+
: `Unknown error fetching ${contentType}: ${String(error)}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* CLI command registration (thin adapter over factoryContextReadCore).
|
|
120
|
+
* Reads ctx, calls core, renders result to console.
|
|
121
|
+
* Commander integration for CLI arg parsing.
|
|
122
|
+
*/
|
|
123
|
+
export async function registerFactoryContextRead(program) {
|
|
124
|
+
program
|
|
125
|
+
.command("factory-context-read")
|
|
126
|
+
.alias("fcr")
|
|
127
|
+
.description("Read versioned Factory context: taxonomy, contracts, ADRs, specs, knowledge, repos, graphs, configuration")
|
|
128
|
+
.option("-t, --type <contentType>", "Content type: taxonomy|contracts|adrs|specs|knowledge|repositories|graphs|configuration (default: taxonomy)", "taxonomy")
|
|
129
|
+
.option("-r, --repo <slug>", "Optional repo slug for repositories/graphs queries")
|
|
130
|
+
.option("-j, --json", "Output raw JSON")
|
|
131
|
+
.action(async (options) => {
|
|
132
|
+
try {
|
|
133
|
+
const contentType = (options.type || "taxonomy");
|
|
134
|
+
const { makeCtx } = await import("../client.js");
|
|
135
|
+
const { resolveConfig } = await import("../config.js");
|
|
136
|
+
const ctx = await makeCtx(resolveConfig({}));
|
|
137
|
+
const result = await factoryContextReadCore(ctx, contentType, options.repo);
|
|
138
|
+
if (options.json) {
|
|
139
|
+
console.log(JSON.stringify(result, null, 2));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Human-readable output
|
|
143
|
+
console.log(`Factory Context Read — ${contentType}`);
|
|
144
|
+
console.log(`Version: ${result.version}`);
|
|
145
|
+
console.log(`Timestamp: ${result.timestamp}`);
|
|
146
|
+
console.log(`Digest: ${result.digest}`);
|
|
147
|
+
if (result.repoSlug)
|
|
148
|
+
console.log(`Repo: ${result.repoSlug}`);
|
|
149
|
+
if (result.cached)
|
|
150
|
+
console.log("[Cached: bounded non-authoritative]");
|
|
151
|
+
console.log(`Content:\n${JSON.stringify(result.content, null, 2)}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
const message = error instanceof CodebusError
|
|
156
|
+
? error.message
|
|
157
|
+
: error instanceof Error
|
|
158
|
+
? error.message
|
|
159
|
+
: String(error);
|
|
160
|
+
console.error(`Error: ${message}`);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Export for use by mcp-factory-context-read.ts (MCP handler imports and calls this same core).
|
|
167
|
+
*/
|
|
168
|
+
export function createFactoryContextReadCLI(program) {
|
|
169
|
+
registerFactoryContextRead(program);
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=factory-context-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-context-read.js","sourceRoot":"","sources":["../../src/commands/factory-context-read.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { resolveConfig } from "../config.js";
|
|
2
|
+
import { makeCtx } from "../client.js";
|
|
3
|
+
import { CodebusError } from "../errors.js";
|
|
4
|
+
import { render } from "../output.js";
|
|
5
|
+
import { ExecutionClient } from "../execution/client.js";
|
|
6
|
+
import { LocalExecutionTransport } from "../execution/local.js";
|
|
7
|
+
/** Resolve a run id argument: accept a UUID or a CB-FRUN-<uuid> display id. */
|
|
8
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
9
|
+
const FRUN_PREFIX = "CB-FRUN-";
|
|
10
|
+
export function resolveFactoryRunId(idOrDisplay) {
|
|
11
|
+
const raw = /^CB-FRUN-/i.test(idOrDisplay)
|
|
12
|
+
? idOrDisplay.slice(FRUN_PREFIX.length)
|
|
13
|
+
: idOrDisplay;
|
|
14
|
+
if (!UUID_RE.test(raw)) {
|
|
15
|
+
throw new CodebusError(`invalid factory run id: ${idOrDisplay} (expected ${FRUN_PREFIX}<uuid> or a UUID)`);
|
|
16
|
+
}
|
|
17
|
+
return raw;
|
|
18
|
+
}
|
|
19
|
+
export function makeExecutionClient() {
|
|
20
|
+
return new ExecutionClient(new LocalExecutionTransport());
|
|
21
|
+
}
|
|
22
|
+
/** Shared approve core — routes the answer through the intervention_answer RPC
|
|
23
|
+
* (0110). The RPC authorizes from the caller's JWT, compare-and-sets the
|
|
24
|
+
* revision, and returns a structured receipt. */
|
|
25
|
+
export async function approveInterventionCore(ctx, options) {
|
|
26
|
+
const runId = resolveFactoryRunId(options.runId);
|
|
27
|
+
const { data, error } = await ctx.supabase.rpc("intervention_answer", {
|
|
28
|
+
p_run_id: runId,
|
|
29
|
+
p_revision: options.revision,
|
|
30
|
+
p_answer_text: options.answer,
|
|
31
|
+
p_reason: options.reason,
|
|
32
|
+
});
|
|
33
|
+
if (error) {
|
|
34
|
+
throw new CodebusError(`intervention answer RPC failed: ${error.message}`);
|
|
35
|
+
}
|
|
36
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) {
|
|
37
|
+
throw new CodebusError("intervention answer RPC returned an invalid response");
|
|
38
|
+
}
|
|
39
|
+
const receipt = data;
|
|
40
|
+
if (typeof receipt.applied !== "boolean") {
|
|
41
|
+
throw new CodebusError("intervention answer RPC returned no applied flag");
|
|
42
|
+
}
|
|
43
|
+
if (typeof receipt.revision_after !== "number") {
|
|
44
|
+
throw new CodebusError("intervention answer RPC returned no revision_after");
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
intervention_id: receipt.intervention_id ?? "",
|
|
48
|
+
decision_id: receipt.decision_id ?? "",
|
|
49
|
+
applied: receipt.applied,
|
|
50
|
+
revision_after: receipt.revision_after,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** Apply the answer through the local factory binary — this is the runtime
|
|
54
|
+
* execution path. Still calls the local factory binary (not SSH, not a
|
|
55
|
+
* remote host), preserving the factory-no-ssh dispatch model. */
|
|
56
|
+
export async function approveViaLocalFactory(client, runId, answer) {
|
|
57
|
+
const result = await client.execute(["approve", runId, answer]);
|
|
58
|
+
if (result.exitCode !== 0) {
|
|
59
|
+
throw new CodebusError(result.stderr.trim() || `factory approve exited with code ${result.exitCode}`, result.exitCode);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function approveResultRow(receipt, runId) {
|
|
63
|
+
return {
|
|
64
|
+
run_id: runId,
|
|
65
|
+
intervention_id: receipt.intervention_id,
|
|
66
|
+
decision_id: receipt.decision_id,
|
|
67
|
+
applied: receipt.applied,
|
|
68
|
+
revision_after: receipt.revision_after,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
async function approveIntervention(runId, answer, o, command) {
|
|
72
|
+
const ctx = await makeCtx(resolveConfig(command.optsWithGlobals()));
|
|
73
|
+
const revisionStr = o.revision ?? "1";
|
|
74
|
+
const revision = Number(revisionStr);
|
|
75
|
+
if (!Number.isInteger(revision) || revision < 1) {
|
|
76
|
+
throw new CodebusError(`invalid --revision: ${revisionStr} (expected a positive integer)`, 2);
|
|
77
|
+
}
|
|
78
|
+
const reason = o.reason ?? "approved via CLI intervention";
|
|
79
|
+
// 1) Record the answer through the intervention_answer RPC (positive fixture).
|
|
80
|
+
const receipt = await approveInterventionCore(ctx, { runId, revision, answer, reason });
|
|
81
|
+
// 2) Still drive the local factory binary (negative fixture: no OpenSSH).
|
|
82
|
+
const client = makeExecutionClient();
|
|
83
|
+
await approveViaLocalFactory(client, runId, answer);
|
|
84
|
+
const row = approveResultRow(receipt, runId);
|
|
85
|
+
console.log(o.json ? render([row], { json: true }) : render([row], { json: false }));
|
|
86
|
+
}
|
|
87
|
+
export function registerFactoryInterventions(program, g) {
|
|
88
|
+
// Attach `approve` to the existing `factory` command group registered by
|
|
89
|
+
// registerFactory (factory.ts), so `codebus factory approve <run-id> <answer>`
|
|
90
|
+
// routes through the intervention_answer RPC. Fall back to creating the
|
|
91
|
+
// group if this module is registered before factory.ts.
|
|
92
|
+
const factory = program.commands.find((c) => c.name() === "factory") ??
|
|
93
|
+
program.command("factory").description("coding factory intake");
|
|
94
|
+
g(factory.command("approve")
|
|
95
|
+
.description("answer a blocked factory run via the intervention_answer RPC, then drive the local factory binary")
|
|
96
|
+
.argument("<run-id>", "bound run UUID or CB-FRUN-<uuid> to answer")
|
|
97
|
+
.argument("<answer>", "answer text for the blocked run"))
|
|
98
|
+
.option("--revision <n>", "expected plan revision for compare-and-set (default: 1)")
|
|
99
|
+
.option("--reason <text>", "justification recorded against the intervention decision")
|
|
100
|
+
.action(approveIntervention);
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=factory-interventions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory-interventions.js","sourceRoot":"","sources":["../../src/commands/factory-interventions.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/factory.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { Option } from "commander";
|
|
3
4
|
import { resolveConfig } from "../config.js";
|
|
4
5
|
import { makeCtx, workspaceId } from "../client.js";
|
|
5
6
|
import { CodebusError } from "../errors.js";
|
|
6
7
|
import { render } from "../output.js";
|
|
8
|
+
import { ExecutionClient } from "../execution/client.js";
|
|
9
|
+
import { LocalExecutionTransport } from "../execution/local.js";
|
|
7
10
|
/**
|
|
8
11
|
* 0076 does not add a display_id column to factory_tasks: the task UUID is
|
|
9
12
|
* the ledger's identity. Keep the CLI's typed surface recognizable while
|
|
@@ -174,6 +177,187 @@ async function cancelFactory(id, o) {
|
|
|
174
177
|
const result = await cancelFactoryCore(ctx, id);
|
|
175
178
|
console.log(o.json ? render([result], { json: true }) : render([cancelHumanRow(result)], { json: false }));
|
|
176
179
|
}
|
|
180
|
+
export function makeExecutionClient(_host) {
|
|
181
|
+
return new ExecutionClient(new LocalExecutionTransport());
|
|
182
|
+
}
|
|
183
|
+
export async function factoryRunStatusCore(client, runId) {
|
|
184
|
+
const result = await client.execute(["status", runId]);
|
|
185
|
+
if (result.exitCode !== 0) {
|
|
186
|
+
throw new CodebusError(result.stderr.trim() || `factory exited with code ${result.exitCode}`, result.exitCode);
|
|
187
|
+
}
|
|
188
|
+
return result.value;
|
|
189
|
+
}
|
|
190
|
+
export async function factoryRunEventsCore(client, runId) {
|
|
191
|
+
const result = await client.execute(["events", runId], "jsonl");
|
|
192
|
+
if (result.exitCode !== 0) {
|
|
193
|
+
throw new CodebusError(result.stderr.trim() || `factory exited with code ${result.exitCode}`, result.exitCode);
|
|
194
|
+
}
|
|
195
|
+
return result.value;
|
|
196
|
+
}
|
|
197
|
+
function executionClient(_command) {
|
|
198
|
+
return makeExecutionClient();
|
|
199
|
+
}
|
|
200
|
+
async function executeFactory(command, argv, kind = "object") {
|
|
201
|
+
const result = await executionClient(command).execute(argv, kind);
|
|
202
|
+
process.stdout.write(result.stdout.endsWith("\n") ? result.stdout : `${result.stdout}\n`);
|
|
203
|
+
if (result.exitCode !== 0) {
|
|
204
|
+
throw new CodebusError(result.stderr.trim() || `factory exited with code ${result.exitCode}`, result.exitCode);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
export async function executionBindCore(ctx, options) {
|
|
208
|
+
let planRevisionId = options.planRevisionId;
|
|
209
|
+
if (!planRevisionId) {
|
|
210
|
+
const ws = await workspaceId(ctx);
|
|
211
|
+
const key = /^CB-PLAN-/i.test(options.plan) ? "display_id" : "id";
|
|
212
|
+
const { data: plan, error: planError } = await ctx.supabase.from("plan_list_v1")
|
|
213
|
+
.select("latest_revision_id").eq("workspace_id", ws)
|
|
214
|
+
.eq(key, key === "display_id" ? options.plan.toUpperCase() : options.plan).single();
|
|
215
|
+
if (planError || !plan?.latest_revision_id) {
|
|
216
|
+
throw new CodebusError(`plan has no executable revision: ${options.plan}`);
|
|
217
|
+
}
|
|
218
|
+
planRevisionId = plan.latest_revision_id;
|
|
219
|
+
}
|
|
220
|
+
let executorAgentId = options.executorAgentId;
|
|
221
|
+
if (!executorAgentId) {
|
|
222
|
+
const { data: agent, error: agentError } = await ctx.supabase.from("agents")
|
|
223
|
+
.select("id").eq("slug", ctx.agentSlug).single();
|
|
224
|
+
if (agentError || !agent)
|
|
225
|
+
throw new CodebusError(`unable to resolve executor agent: ${ctx.agentSlug}`);
|
|
226
|
+
executorAgentId = agent.id;
|
|
227
|
+
}
|
|
228
|
+
const externalRunId = options.externalRunId ?? randomUUID();
|
|
229
|
+
const { data, error } = await ctx.supabase.rpc("execution_bind", {
|
|
230
|
+
p_plan_revision_id: planRevisionId,
|
|
231
|
+
p_stage_id: options.stage,
|
|
232
|
+
p_task_id: null,
|
|
233
|
+
p_backend: "dev01",
|
|
234
|
+
p_external_run_id: externalRunId,
|
|
235
|
+
p_attempt: 1,
|
|
236
|
+
p_resume_of: null,
|
|
237
|
+
p_idempotency_key: options.idempotencyKey ?? externalRunId,
|
|
238
|
+
p_executor_agent_id: executorAgentId,
|
|
239
|
+
p_provenance: {
|
|
240
|
+
os_user: process.env.USER ?? "unknown",
|
|
241
|
+
dispatcher: process.env.DEV01_DISPATCHER ?? "codebus-cli",
|
|
242
|
+
opencode_role: options.role,
|
|
243
|
+
requested_role: options.role,
|
|
244
|
+
...(options.repo ? { repo: options.repo } : {}),
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
if (error)
|
|
248
|
+
throw new CodebusError(`execution bind RPC failed: ${error.message}`);
|
|
249
|
+
const bindingId = typeof data === "string"
|
|
250
|
+
? data
|
|
251
|
+
: data && typeof data === "object" && !Array.isArray(data)
|
|
252
|
+
? data.binding_id ?? data.id
|
|
253
|
+
: undefined;
|
|
254
|
+
if (typeof bindingId !== "string" || !bindingId) {
|
|
255
|
+
throw new CodebusError("execution bind RPC returned no binding id");
|
|
256
|
+
}
|
|
257
|
+
return bindingId;
|
|
258
|
+
}
|
|
259
|
+
/** Bind first, then dispatch the exact server-issued binding through the injected backend. */
|
|
260
|
+
export async function dispatchFactoryRunCore(ctx, client, options) {
|
|
261
|
+
const bindingId = await executionBindCore(ctx, options);
|
|
262
|
+
const abstract = options.abstract ?? `${options.plan}/${options.stage}`;
|
|
263
|
+
const argv = ["dispatch", "--abstract", abstract, "--binding", bindingId];
|
|
264
|
+
if (options.doneWhen)
|
|
265
|
+
argv.push("--done-when", options.doneWhen);
|
|
266
|
+
if (options.file)
|
|
267
|
+
argv.push("--file", options.file);
|
|
268
|
+
argv.push("--agent", options.role);
|
|
269
|
+
if (options.repo)
|
|
270
|
+
argv.push("--repo", options.repo);
|
|
271
|
+
if (options.task !== undefined)
|
|
272
|
+
argv.push(options.task);
|
|
273
|
+
else if (!options.file)
|
|
274
|
+
argv.push(abstract);
|
|
275
|
+
const result = await client.execute(argv);
|
|
276
|
+
return { ...result, bindingId };
|
|
277
|
+
}
|
|
278
|
+
/** Daemon-local execution: all factory run/night/dev01 paths route through
|
|
279
|
+
* the local factory binary via execution_bind (dispatch) + execution_observe
|
|
280
|
+
* (status/watch/events). No OpenSSH transport, no host flag. */
|
|
281
|
+
function withExecutionOptions(command) {
|
|
282
|
+
return command;
|
|
283
|
+
}
|
|
284
|
+
function registerFactoryRun(factory, g) {
|
|
285
|
+
const run = factory.command("run").description("deployed factory v0 execution");
|
|
286
|
+
withExecutionOptions(g(run.command("dispatch").argument("[task]")))
|
|
287
|
+
.option("--abstract <text>")
|
|
288
|
+
.option("--done-when <predicate>")
|
|
289
|
+
.option("--file <path>")
|
|
290
|
+
.option("--role <role>", "factory agent role", "build")
|
|
291
|
+
.option("--repo <slug>")
|
|
292
|
+
.option("--plan <plan>", "CB-PLAN display id or plan UUID")
|
|
293
|
+
.option("--stage <stage>", "stage id in the selected plan revision")
|
|
294
|
+
.action(async (task, options, command) => {
|
|
295
|
+
if ((options.plan && !options.stage) || (!options.plan && options.stage)) {
|
|
296
|
+
throw new CodebusError("factory run dispatch requires --plan and --stage together", 2);
|
|
297
|
+
}
|
|
298
|
+
if (options.plan && options.stage) {
|
|
299
|
+
const ctx = await makeCtx(resolveConfig(command.optsWithGlobals()));
|
|
300
|
+
const result = await dispatchFactoryRunCore(ctx, executionClient(command), {
|
|
301
|
+
plan: options.plan,
|
|
302
|
+
stage: options.stage,
|
|
303
|
+
role: options.role,
|
|
304
|
+
repo: options.repo,
|
|
305
|
+
abstract: options.abstract,
|
|
306
|
+
doneWhen: options.doneWhen,
|
|
307
|
+
file: options.file,
|
|
308
|
+
task,
|
|
309
|
+
});
|
|
310
|
+
process.stdout.write(result.stdout.endsWith("\n") ? result.stdout : `${result.stdout}\n`);
|
|
311
|
+
if (result.exitCode !== 0) {
|
|
312
|
+
throw new CodebusError(result.stderr.trim() || `factory exited with code ${result.exitCode}`, result.exitCode);
|
|
313
|
+
}
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (!options.abstract)
|
|
317
|
+
throw new CodebusError("factory run dispatch requires --abstract or --plan with --stage", 2);
|
|
318
|
+
const argv = ["dispatch", "--abstract", options.abstract];
|
|
319
|
+
if (options.doneWhen)
|
|
320
|
+
argv.push("--done-when", options.doneWhen);
|
|
321
|
+
if (options.file)
|
|
322
|
+
argv.push("--file", options.file);
|
|
323
|
+
if (options.role)
|
|
324
|
+
argv.push("--agent", options.role);
|
|
325
|
+
if (options.repo)
|
|
326
|
+
argv.push("--repo", options.repo);
|
|
327
|
+
if (task !== undefined)
|
|
328
|
+
argv.push(task);
|
|
329
|
+
await executeFactory(command, argv);
|
|
330
|
+
});
|
|
331
|
+
for (const name of ["status", "watch", "wait", "cancel"]) {
|
|
332
|
+
withExecutionOptions(run.command(name).argument("<run-id>"))
|
|
333
|
+
.action((runId, _options, command) => executeFactory(command, [name === "wait" ? "watch" : name, runId]));
|
|
334
|
+
}
|
|
335
|
+
withExecutionOptions(run.command("events").argument("<run-id>"))
|
|
336
|
+
.option("--follow")
|
|
337
|
+
.action((runId, options, command) => executeFactory(command, ["events", runId, ...(options.follow ? ["--follow"] : [])], "jsonl"));
|
|
338
|
+
withExecutionOptions(run.command("approve").argument("<run-id>").argument("<answer>"))
|
|
339
|
+
.action((runId, answer, _options, command) => executeFactory(command, ["approve", runId, answer]));
|
|
340
|
+
withExecutionOptions(run.command("list").argument("[limit]"))
|
|
341
|
+
.action((limit, _options, command) => executeFactory(command, ["list", ...(limit === undefined ? [] : [limit])], "array"));
|
|
342
|
+
}
|
|
343
|
+
function registerFactoryNight(factory) {
|
|
344
|
+
const night = factory.command("night").description("deployed factory v0 overnight workflows");
|
|
345
|
+
withExecutionOptions(night.command("run").argument("<workflow>"))
|
|
346
|
+
.option("--dry-run")
|
|
347
|
+
.action((workflow, options, command) => executeFactory(command, ["night", "run", workflow, ...(options.dryRun ? ["--dry-run"] : [])]));
|
|
348
|
+
for (const name of ["status", "report"]) {
|
|
349
|
+
withExecutionOptions(night.command(name).argument("<workflow>"))
|
|
350
|
+
.action((workflow, _options, command) => executeFactory(command, ["night", name, workflow]));
|
|
351
|
+
}
|
|
352
|
+
withExecutionOptions(night.command("approve").argument("<run-id>"))
|
|
353
|
+
.action((runId, _options, command) => executeFactory(command, ["night", "approve", runId]));
|
|
354
|
+
}
|
|
355
|
+
function registerFactoryCleanup(factory, g) {
|
|
356
|
+
const cleanup = factory.command("dev01").description("dev01 factory maintenance reports");
|
|
357
|
+
const cleanupCommand = cleanup.command("cleanup").description("report-only dev01 cleanup inspection");
|
|
358
|
+
g(withExecutionOptions(cleanupCommand.command("inspect").description("inspect residue without mutating filesystem or Git")))
|
|
359
|
+
.action((_options, command) => executeFactory(command, ["cleanup", "inspect"]));
|
|
360
|
+
}
|
|
177
361
|
export function registerFactory(program, g) {
|
|
178
362
|
const factory = program.command("factory").description("coding factory intake");
|
|
179
363
|
g(factory.command("submit"))
|
|
@@ -187,5 +371,8 @@ export function registerFactory(program, g) {
|
|
|
187
371
|
.action(submitFactory);
|
|
188
372
|
g(factory.command("status").argument("<id>", "CB-FTASK-<uuid> or UUID")).action(statusFactory);
|
|
189
373
|
g(factory.command("cancel").argument("<id>", "CB-FTASK-<uuid> or UUID")).action(cancelFactory);
|
|
374
|
+
registerFactoryRun(factory, g);
|
|
375
|
+
registerFactoryNight(factory);
|
|
376
|
+
registerFactoryCleanup(factory, g);
|
|
190
377
|
}
|
|
191
378
|
//# sourceMappingURL=factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/commands/factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/commands/factory.ts"],"names":[],"mappings":"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"}
|