aiwcli 0.12.6 → 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 -12
- package/dist/templates/_shared/.claude/commands/handoff.md +12 -12
- 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 -421
- package/dist/templates/_shared/handoff-system/lib/document-generator.ts +215 -215
- package/dist/templates/_shared/handoff-system/lib/handoff-reader.ts +158 -158
- package/dist/templates/_shared/handoff-system/scripts/resume_handoff.ts +373 -373
- package/dist/templates/_shared/handoff-system/scripts/save_handoff.ts +469 -469
- package/dist/templates/_shared/handoff-system/workflows/handoff-resume.md +66 -66
- package/dist/templates/_shared/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 -196
- package/dist/templates/_shared/hooks-ts/session_start.ts +163 -163
- 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 -202
- package/dist/templates/_shared/lib-ts/base/stop-words.ts +184 -184
- package/dist/templates/_shared/lib-ts/base/utils.ts +184 -184
- package/dist/templates/_shared/lib-ts/context/context-formatter.ts +566 -566
- package/dist/templates/_shared/lib-ts/context/context-selector.ts +524 -524
- package/dist/templates/_shared/lib-ts/context/context-store.ts +712 -712
- 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 -186
- 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/cc-native/rlm/ask.md +136 -136
- package/dist/templates/cc-native/.claude/commands/cc-native/rlm/index.md +21 -21
- package/dist/templates/cc-native/.claude/commands/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 -66
- 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 -196
- 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 -446
- 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,93 +1,93 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
/**
|
|
3
|
-
* UserPromptSubmit hook: Context enforcement — ensures every prompt belongs
|
|
4
|
-
* to a tracked context. The most complex shared hook.
|
|
5
|
-
*
|
|
6
|
-
* Uses emitContext() for output — context text is passed via hookSpecificOutput JSON.
|
|
7
|
-
* Catches BlockRequest and uses emitBlock() to block the prompt.
|
|
8
|
-
*/
|
|
9
|
-
import {
|
|
10
|
-
loadHookInput, runHookAsync, logDebug, logInfo, logWarn, logBlocking, logDiagnostic, hookLog, emitContext, emitBlock,
|
|
11
|
-
} from "../lib-ts/base/hook-utils.js";
|
|
12
|
-
import { getProjectRoot } from "../lib-ts/base/constants.js";
|
|
13
|
-
import {
|
|
14
|
-
getContextBySessionId, bindSession, maybeActivate, saveState,
|
|
15
|
-
} from "../lib-ts/context/context-store.js";
|
|
16
|
-
import { determineContext, BlockRequest } from "../lib-ts/context/context-selector.js";
|
|
17
|
-
import { buildContextInventory } from "../lib-ts/context/context-formatter.js";
|
|
18
|
-
|
|
19
|
-
async function asyncMain(): Promise<void> {
|
|
20
|
-
const payload = loadHookInput();
|
|
21
|
-
if (!payload) return;
|
|
22
|
-
|
|
23
|
-
const prompt = (payload as any).prompt as string | undefined;
|
|
24
|
-
const sessionId = payload.session_id;
|
|
25
|
-
const permissionMode = payload.permission_mode ?? "";
|
|
26
|
-
const projectRoot = getProjectRoot(payload.cwd);
|
|
27
|
-
|
|
28
|
-
if (!sessionId) {
|
|
29
|
-
logDebug("user_prompt_submit", "No session_id");
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const outputs: string[] = [];
|
|
34
|
-
|
|
35
|
-
// Check if session is already bound to a context
|
|
36
|
-
const existingCtx = getContextBySessionId(sessionId, projectRoot);
|
|
37
|
-
|
|
38
|
-
if (existingCtx) {
|
|
39
|
-
// Returning user — context already bound (stderr: false to avoid "hook error" display)
|
|
40
|
-
try {
|
|
41
|
-
maybeActivate(existingCtx.id, permissionMode, projectRoot, "user_prompt_submit");
|
|
42
|
-
} catch (e) {
|
|
43
|
-
hookLog("warn", "user_prompt_submit", `maybeActivate failed (non-critical): ${e}`, { stderr: false });
|
|
44
|
-
}
|
|
45
|
-
hookLog("debug", "user_prompt_submit", `Session bound to ${existingCtx.id}`, { stderr: false });
|
|
46
|
-
} else if (prompt) {
|
|
47
|
-
// First prompt — need to determine context
|
|
48
|
-
try {
|
|
49
|
-
const [contextId, method, outputText] = await determineContext(prompt, sessionId, projectRoot);
|
|
50
|
-
|
|
51
|
-
if (contextId) {
|
|
52
|
-
bindSession(contextId, sessionId, projectRoot);
|
|
53
|
-
maybeActivate(contextId, permissionMode, projectRoot, "user_prompt_submit");
|
|
54
|
-
|
|
55
|
-
// Clear handoff_path after binding (prevents re-injection)
|
|
56
|
-
const state = getContextBySessionId(sessionId, projectRoot);
|
|
57
|
-
if (state && state.handoff_path) {
|
|
58
|
-
state.handoff_path = null;
|
|
59
|
-
saveState(state.id, state, projectRoot);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
logInfo("user_prompt_submit", `Context ${contextId} via ${method}`);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (outputText) {
|
|
66
|
-
outputs.push(outputText);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Append context folder inventory
|
|
70
|
-
try {
|
|
71
|
-
const boundState = getContextBySessionId(sessionId, projectRoot);
|
|
72
|
-
if (boundState) {
|
|
73
|
-
const inventory = buildContextInventory(boundState, projectRoot);
|
|
74
|
-
if (inventory) outputs.push(inventory);
|
|
75
|
-
}
|
|
76
|
-
} catch (e) {
|
|
77
|
-
logWarn("user_prompt_submit", `Inventory failed (non-critical): ${e}`);
|
|
78
|
-
}
|
|
79
|
-
} catch (e) {
|
|
80
|
-
if (e instanceof BlockRequest) {
|
|
81
|
-
emitBlock((e as Error).message);
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
throw e; // Re-throw unexpected errors
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (outputs.length > 0) {
|
|
89
|
-
emitContext(outputs.join("\n\n"));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
runHookAsync(asyncMain, "user_prompt_submit");
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* UserPromptSubmit hook: Context enforcement — ensures every prompt belongs
|
|
4
|
+
* to a tracked context. The most complex shared hook.
|
|
5
|
+
*
|
|
6
|
+
* Uses emitContext() for output — context text is passed via hookSpecificOutput JSON.
|
|
7
|
+
* Catches BlockRequest and uses emitBlock() to block the prompt.
|
|
8
|
+
*/
|
|
9
|
+
import {
|
|
10
|
+
loadHookInput, runHookAsync, logDebug, logInfo, logWarn, logBlocking, logDiagnostic, hookLog, emitContext, emitBlock,
|
|
11
|
+
} from "../lib-ts/base/hook-utils.js";
|
|
12
|
+
import { getProjectRoot } from "../lib-ts/base/constants.js";
|
|
13
|
+
import {
|
|
14
|
+
getContextBySessionId, bindSession, maybeActivate, saveState,
|
|
15
|
+
} from "../lib-ts/context/context-store.js";
|
|
16
|
+
import { determineContext, BlockRequest } from "../lib-ts/context/context-selector.js";
|
|
17
|
+
import { buildContextInventory } from "../lib-ts/context/context-formatter.js";
|
|
18
|
+
|
|
19
|
+
async function asyncMain(): Promise<void> {
|
|
20
|
+
const payload = loadHookInput();
|
|
21
|
+
if (!payload) return;
|
|
22
|
+
|
|
23
|
+
const prompt = (payload as any).prompt as string | undefined;
|
|
24
|
+
const sessionId = payload.session_id;
|
|
25
|
+
const permissionMode = payload.permission_mode ?? "";
|
|
26
|
+
const projectRoot = getProjectRoot(payload.cwd);
|
|
27
|
+
|
|
28
|
+
if (!sessionId) {
|
|
29
|
+
logDebug("user_prompt_submit", "No session_id");
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const outputs: string[] = [];
|
|
34
|
+
|
|
35
|
+
// Check if session is already bound to a context
|
|
36
|
+
const existingCtx = getContextBySessionId(sessionId, projectRoot);
|
|
37
|
+
|
|
38
|
+
if (existingCtx) {
|
|
39
|
+
// Returning user — context already bound (stderr: false to avoid "hook error" display)
|
|
40
|
+
try {
|
|
41
|
+
maybeActivate(existingCtx.id, permissionMode, projectRoot, "user_prompt_submit");
|
|
42
|
+
} catch (e) {
|
|
43
|
+
hookLog("warn", "user_prompt_submit", `maybeActivate failed (non-critical): ${e}`, { stderr: false });
|
|
44
|
+
}
|
|
45
|
+
hookLog("debug", "user_prompt_submit", `Session bound to ${existingCtx.id}`, { stderr: false });
|
|
46
|
+
} else if (prompt) {
|
|
47
|
+
// First prompt — need to determine context
|
|
48
|
+
try {
|
|
49
|
+
const [contextId, method, outputText] = await determineContext(prompt, sessionId, projectRoot);
|
|
50
|
+
|
|
51
|
+
if (contextId) {
|
|
52
|
+
bindSession(contextId, sessionId, projectRoot);
|
|
53
|
+
maybeActivate(contextId, permissionMode, projectRoot, "user_prompt_submit");
|
|
54
|
+
|
|
55
|
+
// Clear handoff_path after binding (prevents re-injection)
|
|
56
|
+
const state = getContextBySessionId(sessionId, projectRoot);
|
|
57
|
+
if (state && state.handoff_path) {
|
|
58
|
+
state.handoff_path = null;
|
|
59
|
+
saveState(state.id, state, projectRoot);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
logInfo("user_prompt_submit", `Context ${contextId} via ${method}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (outputText) {
|
|
66
|
+
outputs.push(outputText);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Append context folder inventory
|
|
70
|
+
try {
|
|
71
|
+
const boundState = getContextBySessionId(sessionId, projectRoot);
|
|
72
|
+
if (boundState) {
|
|
73
|
+
const inventory = buildContextInventory(boundState, projectRoot);
|
|
74
|
+
if (inventory) outputs.push(inventory);
|
|
75
|
+
}
|
|
76
|
+
} catch (e) {
|
|
77
|
+
logWarn("user_prompt_submit", `Inventory failed (non-critical): ${e}`);
|
|
78
|
+
}
|
|
79
|
+
} catch (e) {
|
|
80
|
+
if (e instanceof BlockRequest) {
|
|
81
|
+
emitBlock((e as Error).message);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
throw e; // Re-throw unexpected errors
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (outputs.length > 0) {
|
|
89
|
+
emitContext(outputs.join("\n\n"));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
runHookAsync(asyncMain, "user_prompt_submit");
|