aiwcli 0.12.3 → 0.12.7
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/bin/dev.cmd +3 -3
- package/bin/dev.js +16 -16
- package/bin/run.cmd +3 -3
- package/bin/run.js +21 -21
- package/dist/commands/branch.js +7 -2
- package/dist/lib/bmad-installer.js +37 -37
- package/dist/lib/terminal.d.ts +2 -0
- package/dist/lib/terminal.js +57 -7
- package/dist/templates/CLAUDE.md +205 -205
- package/dist/templates/_shared/.claude/commands/handoff-resume.md +12 -64
- package/dist/templates/_shared/.claude/commands/handoff.md +12 -198
- package/dist/templates/_shared/.claude/settings.json +65 -65
- package/dist/templates/_shared/.codex/workflows/handoff.md +226 -226
- package/dist/templates/_shared/.windsurf/workflows/handoff.md +226 -226
- package/dist/templates/_shared/handoff-system/CLAUDE.md +421 -0
- package/dist/templates/_shared/{lib-ts/handoff → handoff-system/lib}/document-generator.ts +215 -216
- package/dist/templates/_shared/{lib-ts/handoff → handoff-system/lib}/handoff-reader.ts +157 -158
- package/dist/templates/_shared/{scripts → handoff-system/scripts}/resume_handoff.ts +373 -373
- package/dist/templates/_shared/{scripts → handoff-system/scripts}/save_handoff.ts +469 -358
- package/dist/templates/_shared/handoff-system/workflows/handoff-resume.md +66 -0
- package/dist/templates/_shared/{workflows → handoff-system/workflows}/handoff.md +254 -254
- package/dist/templates/_shared/hooks-ts/_utils/git-state.ts +2 -2
- package/dist/templates/_shared/hooks-ts/archive_plan.ts +159 -159
- package/dist/templates/_shared/hooks-ts/context_monitor.ts +147 -147
- package/dist/templates/_shared/hooks-ts/file-suggestion.ts +128 -128
- package/dist/templates/_shared/hooks-ts/pre_compact.ts +49 -49
- package/dist/templates/_shared/hooks-ts/session_end.ts +196 -183
- package/dist/templates/_shared/hooks-ts/session_start.ts +163 -151
- package/dist/templates/_shared/hooks-ts/task_create_capture.ts +48 -48
- package/dist/templates/_shared/hooks-ts/task_update_capture.ts +74 -74
- package/dist/templates/_shared/hooks-ts/user_prompt_submit.ts +93 -93
- package/dist/templates/_shared/lib-ts/CLAUDE.md +367 -367
- package/dist/templates/_shared/lib-ts/base/atomic-write.ts +138 -138
- package/dist/templates/_shared/lib-ts/base/constants.ts +303 -303
- package/dist/templates/_shared/lib-ts/base/git-state.ts +58 -58
- package/dist/templates/_shared/lib-ts/base/hook-utils.ts +582 -582
- package/dist/templates/_shared/lib-ts/base/inference.ts +301 -301
- package/dist/templates/_shared/lib-ts/base/logger.ts +247 -247
- package/dist/templates/_shared/lib-ts/base/state-io.ts +202 -130
- package/dist/templates/_shared/lib-ts/base/stop-words.ts +184 -184
- package/dist/templates/_shared/lib-ts/base/subprocess-utils.ts +56 -0
- package/dist/templates/_shared/lib-ts/base/utils.ts +184 -184
- package/dist/templates/_shared/lib-ts/context/context-formatter.ts +566 -560
- package/dist/templates/_shared/lib-ts/context/context-selector.ts +524 -515
- package/dist/templates/_shared/lib-ts/context/context-store.ts +712 -668
- package/dist/templates/_shared/lib-ts/context/plan-manager.ts +312 -312
- package/dist/templates/_shared/lib-ts/context/task-tracker.ts +185 -185
- package/dist/templates/_shared/lib-ts/package.json +20 -20
- package/dist/templates/_shared/lib-ts/templates/formatters.ts +102 -102
- package/dist/templates/_shared/lib-ts/templates/plan-context.ts +58 -58
- package/dist/templates/_shared/lib-ts/tsconfig.json +13 -13
- package/dist/templates/_shared/lib-ts/types.ts +186 -180
- package/dist/templates/_shared/scripts/resolve_context.ts +33 -33
- package/dist/templates/_shared/scripts/status_line.ts +690 -690
- package/dist/templates/cc-native/.claude/commands/{rlm → cc-native/rlm}/ask.md +136 -136
- package/dist/templates/cc-native/.claude/commands/{rlm → cc-native/rlm}/index.md +21 -21
- package/dist/templates/cc-native/.claude/commands/{rlm → cc-native/rlm}/overview.md +56 -56
- package/dist/templates/cc-native/.claude/commands/cc-native/specdev.md +10 -10
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/fix.md +8 -8
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/implement.md +8 -8
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/research.md +8 -8
- package/dist/templates/cc-native/CC-NATIVE-README.md +189 -189
- package/dist/templates/cc-native/TEMPLATE-SCHEMA.md +304 -304
- package/dist/templates/cc-native/_cc-native/agents/CLAUDE.md +143 -143
- package/dist/templates/cc-native/_cc-native/agents/PLAN-ORCHESTRATOR.md +213 -213
- package/dist/templates/cc-native/_cc-native/agents/plan-questions/PLAN-QUESTIONER.md +70 -70
- package/dist/templates/cc-native/_cc-native/cc-native.config.json +96 -96
- package/dist/templates/cc-native/_cc-native/hooks/CLAUDE.md +247 -247
- package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.ts +76 -76
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_subagent.ts +54 -54
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_write.ts +51 -51
- package/dist/templates/cc-native/_cc-native/hooks/mark_questions_asked.ts +53 -53
- package/dist/templates/cc-native/_cc-native/hooks/plan_questions_early.ts +61 -61
- package/dist/templates/cc-native/_cc-native/lib-ts/agent-selection.ts +163 -163
- package/dist/templates/cc-native/_cc-native/lib-ts/aggregate-agents.ts +156 -156
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/format.ts +597 -597
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/index.ts +26 -26
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/tracker.ts +107 -107
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/write.ts +119 -119
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts.ts +21 -21
- package/dist/templates/cc-native/_cc-native/lib-ts/cc-native-state.ts +319 -319
- package/dist/templates/cc-native/_cc-native/lib-ts/cli-output-parser.ts +144 -144
- package/dist/templates/cc-native/_cc-native/lib-ts/config.ts +57 -57
- package/dist/templates/cc-native/_cc-native/lib-ts/constants.ts +83 -83
- package/dist/templates/cc-native/_cc-native/lib-ts/corroboration.ts +119 -119
- package/dist/templates/cc-native/_cc-native/lib-ts/debug.ts +79 -79
- package/dist/templates/cc-native/_cc-native/lib-ts/graduation.ts +132 -132
- package/dist/templates/cc-native/_cc-native/lib-ts/index.ts +116 -116
- package/dist/templates/cc-native/_cc-native/lib-ts/json-parser.ts +168 -168
- package/dist/templates/cc-native/_cc-native/lib-ts/orchestrator.ts +70 -70
- package/dist/templates/cc-native/_cc-native/lib-ts/output-builder.ts +130 -130
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-discovery.ts +80 -80
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-enhancement.ts +41 -41
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-questions.ts +101 -101
- package/dist/templates/cc-native/_cc-native/lib-ts/review-pipeline.ts +511 -511
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/agent.ts +71 -71
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/base/base-agent.ts +217 -217
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/index.ts +12 -12
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/claude-agent.ts +66 -65
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/codex-agent.ts +184 -184
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/gemini-agent.ts +39 -39
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/orchestrator-claude-agent.ts +196 -195
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/schemas.ts +201 -201
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/types.ts +21 -21
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/CLAUDE.md +480 -480
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/embedding-indexer.ts +287 -287
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/hyde.ts +148 -148
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/index.ts +54 -54
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/logger.ts +58 -58
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/ollama-client.ts +208 -208
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/retrieval-pipeline.ts +460 -460
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-indexer.ts +446 -447
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-loader.ts +280 -280
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-searcher.ts +274 -274
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/types.ts +201 -201
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/vector-store.ts +278 -278
- package/dist/templates/cc-native/_cc-native/lib-ts/settings.ts +184 -184
- package/dist/templates/cc-native/_cc-native/lib-ts/state.ts +275 -275
- package/dist/templates/cc-native/_cc-native/lib-ts/tsconfig.json +18 -18
- package/dist/templates/cc-native/_cc-native/lib-ts/types.ts +329 -329
- package/dist/templates/cc-native/_cc-native/lib-ts/verdict.ts +72 -72
- package/dist/templates/cc-native/_cc-native/workflows/specdev.md +9 -9
- package/oclif.manifest.json +1 -1
- package/package.json +108 -108
- package/dist/templates/cc-native/_cc-native/lib-ts/nul +0 -3
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plan question generation — runs a fresh-context agent to identify
|
|
3
|
-
* questions, assumptions, and ambiguities in a plan before review.
|
|
4
|
-
* See cc-native-plan-review.ts for integration point (questions gate).
|
|
5
|
-
*/
|
|
6
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Plan question generation — runs a fresh-context agent to identify
|
|
3
|
+
* questions, assumptions, and ambiguities in a plan before review.
|
|
4
|
+
* See cc-native-plan-review.ts for integration point (questions gate).
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
7
|
import * as path from "node:path";
|
|
8
|
-
|
|
9
|
-
import { aggregateAgents } from "./aggregate-agents.js";
|
|
10
|
-
import { runAgentReview } from "./reviewers/index.js";
|
|
11
|
-
import { QUESTIONS_SCHEMA } from "./reviewers/schemas.js";
|
|
12
|
-
import type { AgentConfig, ModelsConfig } from "./types.js";
|
|
13
|
-
import { logInfo, logWarn, logError } from "../../_shared/lib-ts/base/logger.js";
|
|
14
|
-
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
// Types
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
|
-
|
|
19
|
-
export interface PlanQuestionsResult {
|
|
20
|
-
questions: string[];
|
|
21
|
-
assumptions: string[];
|
|
22
|
-
ambiguities: string[];
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// ---------------------------------------------------------------------------
|
|
26
|
-
// Provider assignment (local copy — avoids circular import from hook)
|
|
27
|
-
// ---------------------------------------------------------------------------
|
|
28
|
-
|
|
29
|
-
import { findExecutable } from "../../_shared/lib-ts/base/subprocess-utils.js";
|
|
30
|
-
|
|
31
|
-
function assignProvider(agent: AgentConfig): AgentConfig {
|
|
32
|
-
// Default to claude provider with the agent's configured model
|
|
33
|
-
const found = findExecutable("claude");
|
|
34
|
-
if (found) {
|
|
35
|
-
return { ...agent, provider: "claude" };
|
|
36
|
-
}
|
|
37
|
-
logWarn("plan-questions", "Claude CLI not found, using agent defaults");
|
|
38
|
-
return agent;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
// Main
|
|
43
|
-
// ---------------------------------------------------------------------------
|
|
44
|
-
|
|
45
|
-
const HOOK = "plan-questions";
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Run the plan-questions agent to generate questions about a plan.
|
|
49
|
-
* Returns structured questions/assumptions/ambiguities, or null on failure.
|
|
50
|
-
*
|
|
51
|
-
* The agent runs in a fresh context (no codebase, no session history)
|
|
52
|
-
* and uses QUESTIONS_SCHEMA instead of REVIEW_SCHEMA — the agent runner
|
|
53
|
-
* is schema-agnostic.
|
|
54
|
-
*/
|
|
55
|
-
export async function runPlanQuestions(
|
|
56
|
-
plan: string,
|
|
57
|
-
aiwcliDir: string,
|
|
58
|
-
timeout: number,
|
|
59
|
-
contextPath?: string,
|
|
60
|
-
sessionName?: string,
|
|
61
|
-
): Promise<PlanQuestionsResult | null> {
|
|
62
|
-
// Load the plan-questions agent from agents/plan-questions/
|
|
63
|
-
const questionsAgentDir = path.join(aiwcliDir, "_cc-native", "agents", "plan-questions");
|
|
64
|
-
const agents = aggregateAgents(questionsAgentDir);
|
|
65
|
-
|
|
66
|
-
if (agents.length === 0) {
|
|
67
|
-
logWarn(HOOK, `No agents found in ${questionsAgentDir}`);
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Use the first agent (PLAN-QUESTIONER)
|
|
72
|
-
let agent = agents[0]!;
|
|
73
|
-
logInfo(HOOK, `Using plan-questions agent: ${agent.name}`);
|
|
74
|
-
|
|
75
|
-
// Assign provider
|
|
76
|
-
agent = assignProvider(agent);
|
|
77
|
-
|
|
78
|
-
// Run the agent with QUESTIONS_SCHEMA
|
|
79
|
-
const result = await runAgentReview(
|
|
80
|
-
plan,
|
|
81
|
-
agent,
|
|
82
|
-
QUESTIONS_SCHEMA,
|
|
83
|
-
timeout,
|
|
84
|
-
contextPath,
|
|
85
|
-
sessionName ?? "unknown",
|
|
86
|
-
);
|
|
87
|
-
|
|
88
|
-
if (!result.ok) {
|
|
89
|
-
logError(HOOK, `Plan-questions agent failed: ${result.err}`);
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// Extract structured data
|
|
94
|
-
const data = result.data ?? {};
|
|
95
|
-
const questions = Array.isArray(data.questions) ? (data.questions as string[]) : [];
|
|
96
|
-
const assumptions = Array.isArray(data.assumptions) ? (data.assumptions as string[]) : [];
|
|
97
|
-
const ambiguities = Array.isArray(data.ambiguities) ? (data.ambiguities as string[]) : [];
|
|
98
|
-
|
|
99
|
-
logInfo(HOOK, `Plan-questions result: ${questions.length} questions, ${assumptions.length} assumptions, ${ambiguities.length} ambiguities`);
|
|
100
|
-
|
|
101
|
-
return { questions, assumptions, ambiguities };
|
|
102
|
-
}
|
|
8
|
+
|
|
9
|
+
import { aggregateAgents } from "./aggregate-agents.js";
|
|
10
|
+
import { runAgentReview } from "./reviewers/index.js";
|
|
11
|
+
import { QUESTIONS_SCHEMA } from "./reviewers/schemas.js";
|
|
12
|
+
import type { AgentConfig, ModelsConfig } from "./types.js";
|
|
13
|
+
import { logInfo, logWarn, logError } from "../../_shared/lib-ts/base/logger.js";
|
|
14
|
+
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Types
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
export interface PlanQuestionsResult {
|
|
20
|
+
questions: string[];
|
|
21
|
+
assumptions: string[];
|
|
22
|
+
ambiguities: string[];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Provider assignment (local copy — avoids circular import from hook)
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
|
|
29
|
+
import { findExecutable } from "../../_shared/lib-ts/base/subprocess-utils.js";
|
|
30
|
+
|
|
31
|
+
function assignProvider(agent: AgentConfig): AgentConfig {
|
|
32
|
+
// Default to claude provider with the agent's configured model
|
|
33
|
+
const found = findExecutable("claude");
|
|
34
|
+
if (found) {
|
|
35
|
+
return { ...agent, provider: "claude" };
|
|
36
|
+
}
|
|
37
|
+
logWarn("plan-questions", "Claude CLI not found, using agent defaults");
|
|
38
|
+
return agent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Main
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
const HOOK = "plan-questions";
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Run the plan-questions agent to generate questions about a plan.
|
|
49
|
+
* Returns structured questions/assumptions/ambiguities, or null on failure.
|
|
50
|
+
*
|
|
51
|
+
* The agent runs in a fresh context (no codebase, no session history)
|
|
52
|
+
* and uses QUESTIONS_SCHEMA instead of REVIEW_SCHEMA — the agent runner
|
|
53
|
+
* is schema-agnostic.
|
|
54
|
+
*/
|
|
55
|
+
export async function runPlanQuestions(
|
|
56
|
+
plan: string,
|
|
57
|
+
aiwcliDir: string,
|
|
58
|
+
timeout: number,
|
|
59
|
+
contextPath?: string,
|
|
60
|
+
sessionName?: string,
|
|
61
|
+
): Promise<PlanQuestionsResult | null> {
|
|
62
|
+
// Load the plan-questions agent from agents/plan-questions/
|
|
63
|
+
const questionsAgentDir = path.join(aiwcliDir, "_cc-native", "agents", "plan-questions");
|
|
64
|
+
const agents = aggregateAgents(questionsAgentDir);
|
|
65
|
+
|
|
66
|
+
if (agents.length === 0) {
|
|
67
|
+
logWarn(HOOK, `No agents found in ${questionsAgentDir}`);
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Use the first agent (PLAN-QUESTIONER)
|
|
72
|
+
let agent = agents[0]!;
|
|
73
|
+
logInfo(HOOK, `Using plan-questions agent: ${agent.name}`);
|
|
74
|
+
|
|
75
|
+
// Assign provider
|
|
76
|
+
agent = assignProvider(agent);
|
|
77
|
+
|
|
78
|
+
// Run the agent with QUESTIONS_SCHEMA
|
|
79
|
+
const result = await runAgentReview(
|
|
80
|
+
plan,
|
|
81
|
+
agent,
|
|
82
|
+
QUESTIONS_SCHEMA,
|
|
83
|
+
timeout,
|
|
84
|
+
contextPath,
|
|
85
|
+
sessionName ?? "unknown",
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
if (!result.ok) {
|
|
89
|
+
logError(HOOK, `Plan-questions agent failed: ${result.err}`);
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Extract structured data
|
|
94
|
+
const data = result.data ?? {};
|
|
95
|
+
const questions = Array.isArray(data.questions) ? (data.questions as string[]) : [];
|
|
96
|
+
const assumptions = Array.isArray(data.assumptions) ? (data.assumptions as string[]) : [];
|
|
97
|
+
const ambiguities = Array.isArray(data.ambiguities) ? (data.ambiguities as string[]) : [];
|
|
98
|
+
|
|
99
|
+
logInfo(HOOK, `Plan-questions result: ${questions.length} questions, ${assumptions.length} assumptions, ${ambiguities.length} ambiguities`);
|
|
100
|
+
|
|
101
|
+
return { questions, assumptions, ambiguities };
|
|
102
|
+
}
|