oh-my-codex 0.13.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +5 -5
- package/Cargo.toml +1 -1
- package/dist/autoresearch/__tests__/skill-validation.test.d.ts +2 -0
- package/dist/autoresearch/__tests__/skill-validation.test.d.ts.map +1 -0
- package/dist/autoresearch/__tests__/skill-validation.test.js +91 -0
- package/dist/autoresearch/__tests__/skill-validation.test.js.map +1 -0
- package/dist/autoresearch/skill-validation.d.ts +13 -0
- package/dist/autoresearch/skill-validation.d.ts.map +1 -0
- package/dist/autoresearch/skill-validation.js +165 -0
- package/dist/autoresearch/skill-validation.js.map +1 -0
- package/dist/catalog/__tests__/schema.test.js +6 -0
- package/dist/catalog/__tests__/schema.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch-guided.test.js +236 -273
- package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
- package/dist/cli/__tests__/autoresearch.test.js +64 -653
- package/dist/cli/__tests__/autoresearch.test.js.map +1 -1
- package/dist/cli/__tests__/index.test.js +7 -0
- package/dist/cli/__tests__/index.test.js.map +1 -1
- package/dist/cli/__tests__/nested-help-routing.test.js +2 -1
- package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
- package/dist/cli/__tests__/question.test.d.ts +2 -0
- package/dist/cli/__tests__/question.test.d.ts.map +1 -0
- package/dist/cli/__tests__/question.test.js +113 -0
- package/dist/cli/__tests__/question.test.js.map +1 -0
- package/dist/cli/__tests__/session-search-help.test.js +1 -1
- package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
- package/dist/cli/__tests__/setup-skills-overwrite.test.js +2 -0
- package/dist/cli/__tests__/setup-skills-overwrite.test.js.map +1 -1
- package/dist/cli/autoresearch-guided.d.ts +24 -7
- package/dist/cli/autoresearch-guided.d.ts.map +1 -1
- package/dist/cli/autoresearch-guided.js +189 -130
- package/dist/cli/autoresearch-guided.js.map +1 -1
- package/dist/cli/autoresearch.d.ts +3 -2
- package/dist/cli/autoresearch.d.ts.map +1 -1
- package/dist/cli/autoresearch.js +29 -305
- package/dist/cli/autoresearch.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +43 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +8 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/question.d.ts +3 -0
- package/dist/cli/question.d.ts.map +1 -0
- package/dist/cli/question.js +182 -0
- package/dist/cli/question.js.map +1 -0
- package/dist/hooks/__tests__/analyze-routing-contract.test.js +22 -13
- package/dist/hooks/__tests__/analyze-routing-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/anti-slop-workflow.test.js +3 -3
- package/dist/hooks/__tests__/anti-slop-workflow.test.js.map +1 -1
- package/dist/hooks/__tests__/debugger-log-recency-contract.test.js +2 -2
- package/dist/hooks/__tests__/debugger-log-recency-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/deep-interview-contract.test.js +22 -5
- package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +2 -2
- package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/keyword-detector.test.js +308 -17
- package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js +570 -2
- package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +717 -16
- package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js +25 -0
- package/dist/hooks/__tests__/notify-hook-cross-worktree-heartbeat.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +894 -1
- package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +34 -0
- package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +132 -0
- package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js +22 -4
- package/dist/hooks/__tests__/prompt-guidance-contract.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-fragments.test.js +4 -2
- package/dist/hooks/__tests__/prompt-guidance-fragments.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts +1 -0
- package/dist/hooks/__tests__/prompt-guidance-test-helpers.d.ts.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-test-helpers.js +4 -1
- package/dist/hooks/__tests__/prompt-guidance-test-helpers.js.map +1 -1
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js +28 -0
- package/dist/hooks/__tests__/prompt-guidance-wave-two.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js +5 -4
- package/dist/hooks/__tests__/prompt-orchestration-boundary.test.js.map +1 -1
- package/dist/hooks/__tests__/prompt-team-routing.test.js +2 -2
- package/dist/hooks/__tests__/prompt-team-routing.test.js.map +1 -1
- package/dist/hooks/__tests__/triage-config.test.d.ts +2 -0
- package/dist/hooks/__tests__/triage-config.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/triage-config.test.js +211 -0
- package/dist/hooks/__tests__/triage-config.test.js.map +1 -0
- package/dist/hooks/__tests__/triage-heuristic.test.d.ts +2 -0
- package/dist/hooks/__tests__/triage-heuristic.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/triage-heuristic.test.js +230 -0
- package/dist/hooks/__tests__/triage-heuristic.test.js.map +1 -0
- package/dist/hooks/__tests__/triage-state.test.d.ts +2 -0
- package/dist/hooks/__tests__/triage-state.test.d.ts.map +1 -0
- package/dist/hooks/__tests__/triage-state.test.js +426 -0
- package/dist/hooks/__tests__/triage-state.test.js.map +1 -0
- package/dist/hooks/keyword-detector.d.ts +26 -7
- package/dist/hooks/keyword-detector.d.ts.map +1 -1
- package/dist/hooks/keyword-detector.js +97 -26
- package/dist/hooks/keyword-detector.js.map +1 -1
- package/dist/hooks/keyword-registry.d.ts.map +1 -1
- package/dist/hooks/keyword-registry.js +16 -9
- package/dist/hooks/keyword-registry.js.map +1 -1
- package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
- package/dist/hooks/prompt-guidance-contract.js +28 -1
- package/dist/hooks/prompt-guidance-contract.js.map +1 -1
- package/dist/hooks/triage-config.d.ts +33 -0
- package/dist/hooks/triage-config.d.ts.map +1 -0
- package/dist/hooks/triage-config.js +87 -0
- package/dist/hooks/triage-config.js.map +1 -0
- package/dist/hooks/triage-heuristic.d.ts +20 -0
- package/dist/hooks/triage-heuristic.d.ts.map +1 -0
- package/dist/hooks/triage-heuristic.js +210 -0
- package/dist/hooks/triage-heuristic.js.map +1 -0
- package/dist/hooks/triage-state.d.ts +63 -0
- package/dist/hooks/triage-state.d.ts.map +1 -0
- package/dist/hooks/triage-state.js +138 -0
- package/dist/hooks/triage-state.js.map +1 -0
- package/dist/hud/__tests__/reconcile.test.js +20 -0
- package/dist/hud/__tests__/reconcile.test.js.map +1 -1
- package/dist/hud/reconcile.d.ts +1 -0
- package/dist/hud/reconcile.d.ts.map +1 -1
- package/dist/hud/reconcile.js +2 -1
- package/dist/hud/reconcile.js.map +1 -1
- package/dist/mcp/__tests__/state-server.test.js +1 -0
- package/dist/mcp/__tests__/state-server.test.js.map +1 -1
- package/dist/mcp/state-server.d.ts +8 -0
- package/dist/mcp/state-server.d.ts.map +1 -1
- package/dist/mcp/state-server.js +4 -0
- package/dist/mcp/state-server.js.map +1 -1
- package/dist/modes/__tests__/base-ralph-contract.test.js +15 -0
- package/dist/modes/__tests__/base-ralph-contract.test.js.map +1 -1
- package/dist/modes/base.d.ts +1 -0
- package/dist/modes/base.d.ts.map +1 -1
- package/dist/modes/base.js +22 -6
- package/dist/modes/base.js.map +1 -1
- package/dist/notifications/__tests__/index.test.js +78 -0
- package/dist/notifications/__tests__/index.test.js.map +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +39 -22
- package/dist/notifications/index.js.map +1 -1
- package/dist/openclaw/index.d.ts +5 -3
- package/dist/openclaw/index.d.ts.map +1 -1
- package/dist/openclaw/index.js +5 -3
- package/dist/openclaw/index.js.map +1 -1
- package/dist/question/__tests__/client.test.d.ts +2 -0
- package/dist/question/__tests__/client.test.d.ts.map +1 -0
- package/dist/question/__tests__/client.test.js +70 -0
- package/dist/question/__tests__/client.test.js.map +1 -0
- package/dist/question/__tests__/deep-interview.test.d.ts +2 -0
- package/dist/question/__tests__/deep-interview.test.d.ts.map +1 -0
- package/dist/question/__tests__/deep-interview.test.js +108 -0
- package/dist/question/__tests__/deep-interview.test.js.map +1 -0
- package/dist/question/__tests__/policy.test.d.ts +2 -0
- package/dist/question/__tests__/policy.test.d.ts.map +1 -0
- package/dist/question/__tests__/policy.test.js +107 -0
- package/dist/question/__tests__/policy.test.js.map +1 -0
- package/dist/question/__tests__/renderer.test.d.ts +2 -0
- package/dist/question/__tests__/renderer.test.d.ts.map +1 -0
- package/dist/question/__tests__/renderer.test.js +88 -0
- package/dist/question/__tests__/renderer.test.js.map +1 -0
- package/dist/question/__tests__/state.test.d.ts +2 -0
- package/dist/question/__tests__/state.test.d.ts.map +1 -0
- package/dist/question/__tests__/state.test.js +55 -0
- package/dist/question/__tests__/state.test.js.map +1 -0
- package/dist/question/__tests__/types.test.d.ts +2 -0
- package/dist/question/__tests__/types.test.d.ts.map +1 -0
- package/dist/question/__tests__/types.test.js +44 -0
- package/dist/question/__tests__/types.test.js.map +1 -0
- package/dist/question/__tests__/ui.test.d.ts +2 -0
- package/dist/question/__tests__/ui.test.d.ts.map +1 -0
- package/dist/question/__tests__/ui.test.js +169 -0
- package/dist/question/__tests__/ui.test.js.map +1 -0
- package/dist/question/client.d.ts +54 -0
- package/dist/question/client.d.ts.map +1 -0
- package/dist/question/client.js +77 -0
- package/dist/question/client.js.map +1 -0
- package/dist/question/deep-interview.d.ts +27 -0
- package/dist/question/deep-interview.d.ts.map +1 -0
- package/dist/question/deep-interview.js +101 -0
- package/dist/question/deep-interview.js.map +1 -0
- package/dist/question/policy.d.ts +18 -0
- package/dist/question/policy.d.ts.map +1 -0
- package/dist/question/policy.js +77 -0
- package/dist/question/policy.js.map +1 -0
- package/dist/question/renderer.d.ts +18 -0
- package/dist/question/renderer.d.ts.map +1 -0
- package/dist/question/renderer.js +128 -0
- package/dist/question/renderer.js.map +1 -0
- package/dist/question/state.d.ts +19 -0
- package/dist/question/state.d.ts.map +1 -0
- package/dist/question/state.js +108 -0
- package/dist/question/state.js.map +1 -0
- package/dist/question/types.d.ts +66 -0
- package/dist/question/types.d.ts.map +1 -0
- package/dist/question/types.js +82 -0
- package/dist/question/types.js.map +1 -0
- package/dist/question/ui.d.ts +38 -0
- package/dist/question/ui.d.ts.map +1 -0
- package/dist/question/ui.js +321 -0
- package/dist/question/ui.js.map +1 -0
- package/dist/ralph/contract.d.ts +1 -1
- package/dist/ralph/contract.d.ts.map +1 -1
- package/dist/ralph/contract.js +4 -1
- package/dist/ralph/contract.js.map +1 -1
- package/dist/ralplan/runtime.js +1 -1
- package/dist/ralplan/runtime.js.map +1 -1
- package/dist/runtime/__tests__/run-loop.test.d.ts +2 -0
- package/dist/runtime/__tests__/run-loop.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/run-loop.test.js +35 -0
- package/dist/runtime/__tests__/run-loop.test.js.map +1 -0
- package/dist/runtime/__tests__/run-outcome.test.d.ts +2 -0
- package/dist/runtime/__tests__/run-outcome.test.d.ts.map +1 -0
- package/dist/runtime/__tests__/run-outcome.test.js +64 -0
- package/dist/runtime/__tests__/run-outcome.test.js.map +1 -0
- package/dist/runtime/run-loop.d.ts +41 -0
- package/dist/runtime/run-loop.d.ts.map +1 -0
- package/dist/runtime/run-loop.js +46 -0
- package/dist/runtime/run-loop.js.map +1 -0
- package/dist/runtime/run-outcome.d.ts +28 -0
- package/dist/runtime/run-outcome.d.ts.map +1 -0
- package/dist/runtime/run-outcome.js +136 -0
- package/dist/runtime/run-outcome.js.map +1 -0
- package/dist/runtime/run-state.d.ts +36 -0
- package/dist/runtime/run-state.d.ts.map +1 -0
- package/dist/runtime/run-state.js +110 -0
- package/dist/runtime/run-state.js.map +1 -0
- package/dist/scripts/__tests__/codex-native-hook.test.js +1128 -85
- package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
- package/dist/scripts/codex-native-hook.d.ts +2 -0
- package/dist/scripts/codex-native-hook.d.ts.map +1 -1
- package/dist/scripts/codex-native-hook.js +199 -11
- package/dist/scripts/codex-native-hook.js.map +1 -1
- package/dist/scripts/notify-fallback-watcher.js +81 -2
- package/dist/scripts/notify-fallback-watcher.js.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.d.ts +27 -0
- package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
- package/dist/scripts/notify-hook/auto-nudge.js +83 -20
- package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
- package/dist/scripts/notify-hook/managed-tmux.js +64 -38
- package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.js +1 -1
- package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
- package/dist/scripts/notify-hook.js +15 -5
- package/dist/scripts/notify-hook.js.map +1 -1
- package/dist/scripts/sync-prompt-guidance-fragments.js +5 -0
- package/dist/scripts/sync-prompt-guidance-fragments.js.map +1 -1
- package/dist/state/__tests__/operations-ralph-phase.test.js +21 -0
- package/dist/state/__tests__/operations-ralph-phase.test.js.map +1 -1
- package/dist/state/__tests__/workflow-transition.test.js +11 -0
- package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
- package/dist/state/operations.d.ts.map +1 -1
- package/dist/state/operations.js +15 -0
- package/dist/state/operations.js.map +1 -1
- package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
- package/dist/state/workflow-transition-reconcile.js +14 -1
- package/dist/state/workflow-transition-reconcile.js.map +1 -1
- package/dist/state/workflow-transition.d.ts.map +1 -1
- package/dist/state/workflow-transition.js +3 -1
- package/dist/state/workflow-transition.js.map +1 -1
- package/dist/team/__tests__/followup-planner.test.js +15 -0
- package/dist/team/__tests__/followup-planner.test.js.map +1 -1
- package/dist/team/__tests__/role-router.test.js +41 -0
- package/dist/team/__tests__/role-router.test.js.map +1 -1
- package/dist/team/followup-planner.d.ts.map +1 -1
- package/dist/team/followup-planner.js +31 -9
- package/dist/team/followup-planner.js.map +1 -1
- package/dist/team/role-router.d.ts.map +1 -1
- package/dist/team/role-router.js +73 -0
- package/dist/team/role-router.js.map +1 -1
- package/package.json +3 -2
- package/prompts/dependency-expert.md +3 -0
- package/prompts/executor.md +5 -0
- package/prompts/explore.md +2 -0
- package/prompts/planner.md +5 -0
- package/prompts/product-analyst.md +8 -8
- package/prompts/researcher.md +78 -30
- package/prompts/verifier.md +4 -0
- package/skills/autoresearch/SKILL.md +68 -0
- package/skills/deep-interview/SKILL.md +10 -9
- package/skills/help/SKILL.md +3 -1
- package/skills/ralplan/SKILL.md +1 -0
- package/skills/team/SKILL.md +1 -0
- package/skills/ultrawork/SKILL.md +1 -0
- package/src/scripts/__tests__/codex-native-hook.test.ts +1495 -188
- package/src/scripts/codex-native-hook.ts +235 -19
- package/src/scripts/notify-fallback-watcher.ts +92 -2
- package/src/scripts/notify-hook/auto-nudge.ts +89 -20
- package/src/scripts/notify-hook/managed-tmux.ts +70 -31
- package/src/scripts/notify-hook/ralph-session-resume.ts +1 -1
- package/src/scripts/notify-hook.ts +23 -5
- package/src/scripts/sync-prompt-guidance-fragments.ts +4 -0
- package/templates/AGENTS.md +48 -37
- package/templates/catalog-manifest.json +7 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
|
+
import { performance } from 'node:perf_hooks';
|
|
4
|
+
import { triagePrompt } from '../triage-heuristic.js';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Helpers
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
function assertLane(prompt, lane) {
|
|
9
|
+
const result = triagePrompt(prompt);
|
|
10
|
+
assert.equal(result.lane, lane, `prompt="${prompt}" expected lane=${lane} got lane=${result.lane} (reason=${result.reason})`);
|
|
11
|
+
}
|
|
12
|
+
function assertLightDestination(prompt, destination) {
|
|
13
|
+
const result = triagePrompt(prompt);
|
|
14
|
+
assert.equal(result.lane, 'LIGHT', `prompt="${prompt}" expected LIGHT got ${result.lane} (reason=${result.reason})`);
|
|
15
|
+
assert.equal(result.destination, destination, `prompt="${prompt}" expected destination=${destination} got ${result.destination}`);
|
|
16
|
+
}
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Canonical corpus (also used for performance benchmark)
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
const CANONICAL_CORPUS = [
|
|
21
|
+
// PASS — trivial
|
|
22
|
+
'hi',
|
|
23
|
+
'thanks',
|
|
24
|
+
'yes',
|
|
25
|
+
'',
|
|
26
|
+
' ',
|
|
27
|
+
'fix the thing',
|
|
28
|
+
'make it better',
|
|
29
|
+
// PASS — opt-out
|
|
30
|
+
'add dark mode toggle to the settings page, but just chat about it',
|
|
31
|
+
'make the button blue, no workflow',
|
|
32
|
+
'implement soft delete, don\'t route',
|
|
33
|
+
'refactor auth, plain answer only',
|
|
34
|
+
'explain this but talk through it',
|
|
35
|
+
// LIGHT/explore
|
|
36
|
+
'explain this function',
|
|
37
|
+
'what does this error mean',
|
|
38
|
+
'where is auth implemented',
|
|
39
|
+
// LIGHT/executor
|
|
40
|
+
'fix typo in src/foo.ts',
|
|
41
|
+
'add null check to line 42',
|
|
42
|
+
'rename function processFoo in src/bar.ts',
|
|
43
|
+
// LIGHT/designer
|
|
44
|
+
'make the button blue',
|
|
45
|
+
'style this page',
|
|
46
|
+
'adjust spacing on the settings panel',
|
|
47
|
+
'redesign the settings page layout',
|
|
48
|
+
// HEAVY
|
|
49
|
+
'add dark mode toggle to the settings page',
|
|
50
|
+
'implement soft delete across the ORM layer',
|
|
51
|
+
'refactor the auth flow to use session cookies',
|
|
52
|
+
'redesign the auth flow',
|
|
53
|
+
'redesign the deployment pipeline',
|
|
54
|
+
];
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// 1. PASS cases
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
describe('triagePrompt — PASS (trivial acknowledgements)', () => {
|
|
59
|
+
const trivialCases = ['hi', 'thanks', 'yes'];
|
|
60
|
+
for (const prompt of trivialCases) {
|
|
61
|
+
it(`routes "${prompt}" to PASS`, () => {
|
|
62
|
+
assertLane(prompt, 'PASS');
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
it('routes empty string to PASS', () => {
|
|
66
|
+
assertLane('', 'PASS');
|
|
67
|
+
});
|
|
68
|
+
it('routes whitespace-only string to PASS', () => {
|
|
69
|
+
assertLane(' ', 'PASS');
|
|
70
|
+
});
|
|
71
|
+
it('routes "fix the thing" (too short / vague) to PASS', () => {
|
|
72
|
+
assertLane('fix the thing', 'PASS');
|
|
73
|
+
});
|
|
74
|
+
it('routes "make it better" (too short / vague) to PASS', () => {
|
|
75
|
+
assertLane('make it better', 'PASS');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
describe('triagePrompt — PASS (explicit opt-out phrases)', () => {
|
|
79
|
+
it('routes HEAVY-shaped prompt with "just chat" to PASS', () => {
|
|
80
|
+
assertLane('add dark mode toggle to the settings page, but just chat about it', 'PASS');
|
|
81
|
+
});
|
|
82
|
+
it('routes "no workflow" opt-out to PASS', () => {
|
|
83
|
+
assertLane('make the button blue, no workflow', 'PASS');
|
|
84
|
+
});
|
|
85
|
+
it('routes "don\'t route" opt-out to PASS', () => {
|
|
86
|
+
assertLane("implement soft delete, don't route", 'PASS');
|
|
87
|
+
});
|
|
88
|
+
it('routes "plain answer only" to PASS', () => {
|
|
89
|
+
assertLane('refactor auth, plain answer only', 'PASS');
|
|
90
|
+
});
|
|
91
|
+
it('routes "talk through it" to PASS', () => {
|
|
92
|
+
assertLane('explain this but talk through it', 'PASS');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
// ---------------------------------------------------------------------------
|
|
96
|
+
// 2. LIGHT / explore
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
describe('triagePrompt — LIGHT/explore', () => {
|
|
99
|
+
it('routes "explain this function" to explore', () => {
|
|
100
|
+
assertLightDestination('explain this function', 'explore');
|
|
101
|
+
});
|
|
102
|
+
it('routes "what does this error mean" to explore', () => {
|
|
103
|
+
assertLightDestination('what does this error mean', 'explore');
|
|
104
|
+
});
|
|
105
|
+
it('routes "where is auth implemented" to explore', () => {
|
|
106
|
+
assertLightDestination('where is auth implemented', 'explore');
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// 3. LIGHT / executor (anchored edits)
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
describe('triagePrompt — LIGHT/executor (anchored edits)', () => {
|
|
113
|
+
it('routes "fix typo in src/foo.ts" to executor', () => {
|
|
114
|
+
assertLightDestination('fix typo in src/foo.ts', 'executor');
|
|
115
|
+
});
|
|
116
|
+
it('routes "add null check to line 42" to executor', () => {
|
|
117
|
+
assertLightDestination('add null check to line 42', 'executor');
|
|
118
|
+
});
|
|
119
|
+
it('routes "rename function processFoo in src/bar.ts" to executor', () => {
|
|
120
|
+
assertLightDestination('rename function processFoo in src/bar.ts', 'executor');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// 4. LIGHT / designer
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
describe('triagePrompt — LIGHT/designer', () => {
|
|
127
|
+
it('routes "make the button blue" to designer', () => {
|
|
128
|
+
assertLightDestination('make the button blue', 'designer');
|
|
129
|
+
});
|
|
130
|
+
it('routes "style this page" to designer', () => {
|
|
131
|
+
assertLightDestination('style this page', 'designer');
|
|
132
|
+
});
|
|
133
|
+
it('routes "adjust spacing on the settings panel" to designer', () => {
|
|
134
|
+
assertLightDestination('adjust spacing on the settings panel', 'designer');
|
|
135
|
+
});
|
|
136
|
+
it('routes visual redesign prompts to designer', () => {
|
|
137
|
+
assertLightDestination('redesign the settings page layout', 'designer');
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
// 5. HEAVY
|
|
142
|
+
// ---------------------------------------------------------------------------
|
|
143
|
+
describe('triagePrompt — HEAVY', () => {
|
|
144
|
+
it('routes "add dark mode toggle to the settings page" to HEAVY', () => {
|
|
145
|
+
assertLane('add dark mode toggle to the settings page', 'HEAVY');
|
|
146
|
+
});
|
|
147
|
+
it('routes "implement soft delete across the ORM layer" to HEAVY', () => {
|
|
148
|
+
assertLane('implement soft delete across the ORM layer', 'HEAVY');
|
|
149
|
+
});
|
|
150
|
+
it('routes "refactor the auth flow to use session cookies" to HEAVY', () => {
|
|
151
|
+
assertLane('refactor the auth flow to use session cookies', 'HEAVY');
|
|
152
|
+
});
|
|
153
|
+
it('does not route non-visual auth redesign prompts to LIGHT/designer', () => {
|
|
154
|
+
const result = triagePrompt('redesign the auth flow');
|
|
155
|
+
assert.equal(result.lane, 'HEAVY', `expected HEAVY got ${result.lane} (reason=${result.reason})`);
|
|
156
|
+
assert.equal(result.destination, 'autopilot');
|
|
157
|
+
});
|
|
158
|
+
it('routes mixed auth page flow redesign prompts to HEAVY instead of designer', () => {
|
|
159
|
+
const result = triagePrompt('redesign the auth page flow');
|
|
160
|
+
assert.equal(result.lane, 'HEAVY', `expected HEAVY got ${result.lane} (reason=${result.reason})`);
|
|
161
|
+
assert.equal(result.destination, 'autopilot');
|
|
162
|
+
});
|
|
163
|
+
it('does not route non-visual deployment redesign prompts to LIGHT/designer', () => {
|
|
164
|
+
const result = triagePrompt('redesign the deployment pipeline');
|
|
165
|
+
assert.equal(result.lane, 'HEAVY', `expected HEAVY got ${result.lane} (reason=${result.reason})`);
|
|
166
|
+
assert.equal(result.destination, 'autopilot');
|
|
167
|
+
});
|
|
168
|
+
it('sets destination=autopilot for HEAVY decisions', () => {
|
|
169
|
+
const result = triagePrompt('add dark mode toggle to the settings page');
|
|
170
|
+
assert.equal(result.destination, 'autopilot', `expected destination=autopilot got ${result.destination}`);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
174
|
+
// 6. Punctuation / casing regression
|
|
175
|
+
// ---------------------------------------------------------------------------
|
|
176
|
+
describe('triagePrompt — punctuation and casing regression', () => {
|
|
177
|
+
it('"EXPLAIN this function" → LIGHT/explore (all-caps)', () => {
|
|
178
|
+
assertLightDestination('EXPLAIN this function', 'explore');
|
|
179
|
+
});
|
|
180
|
+
it('"Explain This Function." → LIGHT/explore (title case + period)', () => {
|
|
181
|
+
assertLightDestination('Explain This Function.', 'explore');
|
|
182
|
+
});
|
|
183
|
+
it('"FIX TYPO IN src/foo.ts" → LIGHT/executor (all-caps)', () => {
|
|
184
|
+
assertLightDestination('FIX TYPO IN src/foo.ts', 'executor');
|
|
185
|
+
});
|
|
186
|
+
it('"Add Dark Mode Toggle To The Settings Page!" → HEAVY (title case + exclamation)', () => {
|
|
187
|
+
assertLane('Add Dark Mode Toggle To The Settings Page!', 'HEAVY');
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
// ---------------------------------------------------------------------------
|
|
191
|
+
// 7. Determinism / purity proof
|
|
192
|
+
// ---------------------------------------------------------------------------
|
|
193
|
+
describe('triagePrompt — determinism', () => {
|
|
194
|
+
it('returns identical results across 1000 calls for the same input', () => {
|
|
195
|
+
const prompt = 'add dark mode toggle to the settings page';
|
|
196
|
+
const first = triagePrompt(prompt);
|
|
197
|
+
for (let i = 1; i < 1000; i++) {
|
|
198
|
+
const result = triagePrompt(prompt);
|
|
199
|
+
assert.equal(result.lane, first.lane, `non-deterministic: call ${i} returned lane=${result.lane}, first was ${first.lane}`);
|
|
200
|
+
assert.equal(result.destination, first.destination, `non-deterministic: call ${i} returned destination=${result.destination}, first was ${first.destination}`);
|
|
201
|
+
assert.equal(result.reason, first.reason, `non-deterministic: call ${i} returned reason=${result.reason}, first was ${first.reason}`);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
// ---------------------------------------------------------------------------
|
|
206
|
+
// 8. Performance benchmark (soft assertion — avg < 1 ms per call)
|
|
207
|
+
// ---------------------------------------------------------------------------
|
|
208
|
+
describe('triagePrompt — performance benchmark', () => {
|
|
209
|
+
it('classifies the full canonical corpus 1000x with avg < 1 ms per call', () => {
|
|
210
|
+
const N = 1000;
|
|
211
|
+
const corpusLength = CANONICAL_CORPUS.length;
|
|
212
|
+
const totalCalls = N * corpusLength;
|
|
213
|
+
// Warm-up pass (avoid JIT cold-start skewing results)
|
|
214
|
+
for (const prompt of CANONICAL_CORPUS) {
|
|
215
|
+
triagePrompt(prompt);
|
|
216
|
+
}
|
|
217
|
+
const start = performance.now();
|
|
218
|
+
for (let i = 0; i < N; i++) {
|
|
219
|
+
for (const prompt of CANONICAL_CORPUS) {
|
|
220
|
+
triagePrompt(prompt);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const elapsed = performance.now() - start;
|
|
224
|
+
const avgPerCall = elapsed / totalCalls;
|
|
225
|
+
console.log(`[triage-heuristic benchmark] ${totalCalls} calls in ${elapsed.toFixed(2)} ms` +
|
|
226
|
+
` — avg ${avgPerCall.toFixed(4)} ms/call (corpus size: ${corpusLength})`);
|
|
227
|
+
assert.ok(avgPerCall < 1.0, `avg per call ${avgPerCall.toFixed(4)} ms exceeded 1 ms soft bound (total: ${elapsed.toFixed(2)} ms over ${totalCalls} calls)`);
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
//# sourceMappingURL=triage-heuristic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage-heuristic.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/triage-heuristic.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triage-state.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/triage-state.test.ts"],"names":[],"mappings":""}
|