zelari-code 1.48.1 → 2.0.0-alpha.2

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.
Files changed (77) hide show
  1. package/dist/cli/app.js +4 -1
  2. package/dist/cli/app.js.map +1 -1
  3. package/dist/cli/desktopConfig.js +51 -4
  4. package/dist/cli/desktopConfig.js.map +1 -1
  5. package/dist/cli/headless.js +65 -0
  6. package/dist/cli/headless.js.map +1 -1
  7. package/dist/cli/headlessSpine.js +102 -0
  8. package/dist/cli/headlessSpine.js.map +1 -0
  9. package/dist/cli/headlessSpine.test.js +153 -0
  10. package/dist/cli/headlessSpine.test.js.map +1 -0
  11. package/dist/cli/hooks/useChatTurn.js +85 -0
  12. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  13. package/dist/cli/hooks/useSession.js +16 -2
  14. package/dist/cli/hooks/useSession.js.map +1 -1
  15. package/dist/cli/kraken/candidateRegistry.js +195 -0
  16. package/dist/cli/kraken/candidateRegistry.js.map +1 -0
  17. package/dist/cli/kraken/candidateRegistry.test.js +211 -0
  18. package/dist/cli/kraken/candidateRegistry.test.js.map +1 -0
  19. package/dist/cli/kraken/completionGate.js +116 -0
  20. package/dist/cli/kraken/completionGate.js.map +1 -0
  21. package/dist/cli/kraken/completionGate.test.js +172 -0
  22. package/dist/cli/kraken/completionGate.test.js.map +1 -0
  23. package/dist/cli/kraken/metrics.js +96 -0
  24. package/dist/cli/kraken/metrics.js.map +1 -0
  25. package/dist/cli/kraken/metrics.test.js +145 -0
  26. package/dist/cli/kraken/metrics.test.js.map +1 -0
  27. package/dist/cli/kraken/selectionPlaybook.js +23 -0
  28. package/dist/cli/kraken/selectionPlaybook.js.map +1 -0
  29. package/dist/cli/kraken/selectionPlaybook.test.js +55 -0
  30. package/dist/cli/kraken/selectionPlaybook.test.js.map +1 -0
  31. package/dist/cli/kraken/turnRuntime.js +207 -0
  32. package/dist/cli/kraken/turnRuntime.js.map +1 -0
  33. package/dist/cli/kraken/turnRuntime.test.js +377 -0
  34. package/dist/cli/kraken/turnRuntime.test.js.map +1 -0
  35. package/dist/cli/kraken/verificationBridge.js +153 -0
  36. package/dist/cli/kraken/verificationBridge.js.map +1 -0
  37. package/dist/cli/kraken/verificationBridge.test.js +131 -0
  38. package/dist/cli/kraken/verificationBridge.test.js.map +1 -0
  39. package/dist/cli/kraken/verifier.js +233 -0
  40. package/dist/cli/kraken/verifier.js.map +1 -0
  41. package/dist/cli/kraken/verifier.test.js +232 -0
  42. package/dist/cli/kraken/verifier.test.js.map +1 -0
  43. package/dist/cli/kraken/verifierSettings.test.js +237 -0
  44. package/dist/cli/kraken/verifierSettings.test.js.map +1 -0
  45. package/dist/cli/kraken/verifyReport.js +115 -0
  46. package/dist/cli/kraken/verifyReport.js.map +1 -0
  47. package/dist/cli/kraken/verifyReport.test.js +111 -0
  48. package/dist/cli/kraken/verifyReport.test.js.map +1 -0
  49. package/dist/cli/main.bundled.js +4676 -943
  50. package/dist/cli/main.bundled.js.map +4 -4
  51. package/dist/cli/main.js +29 -0
  52. package/dist/cli/main.js.map +1 -1
  53. package/dist/cli/providerConfig.js +46 -0
  54. package/dist/cli/providerConfig.js.map +1 -1
  55. package/dist/cli/runHeadless.js +198 -4
  56. package/dist/cli/runHeadless.js.map +1 -1
  57. package/dist/cli/sessionSpine.js +272 -0
  58. package/dist/cli/sessionSpine.js.map +1 -0
  59. package/dist/cli/sessionSpine.test.js +171 -0
  60. package/dist/cli/sessionSpine.test.js.map +1 -0
  61. package/dist/cli/toolRegistry.js +50 -6
  62. package/dist/cli/toolRegistry.js.map +1 -1
  63. package/dist/cli/tools/krakenSelectTool.js +165 -0
  64. package/dist/cli/tools/krakenSelectTool.js.map +1 -0
  65. package/dist/cli/tools/krakenSelectTool.test.js +246 -0
  66. package/dist/cli/tools/krakenSelectTool.test.js.map +1 -0
  67. package/dist/cli/tools/taskTool.dynamicChecks.test.js +156 -0
  68. package/dist/cli/tools/taskTool.dynamicChecks.test.js.map +1 -0
  69. package/dist/cli/tools/taskTool.js +174 -6
  70. package/dist/cli/tools/taskTool.js.map +1 -1
  71. package/dist/cli/tools/taskTool.planSafety.test.js +280 -0
  72. package/dist/cli/tools/taskTool.planSafety.test.js.map +1 -0
  73. package/dist/cli/tools/taskTool.verifyReport.test.js +140 -0
  74. package/dist/cli/tools/taskTool.verifyReport.test.js.map +1 -0
  75. package/dist/cli/zelariMission.js +18 -8
  76. package/dist/cli/zelariMission.js.map +1 -1
  77. package/package.json +3 -2
@@ -0,0 +1,111 @@
1
+ /**
2
+ * verifyReport.test — Fase 7 (ADR-0020): structured verification.
3
+ * - parse `<verify-report>` blocks (pass/fail/unknown per required check)
4
+ * - unmatched / invalid / missing status → unknown (never pass)
5
+ * - wording-tolerant matching (normalized equality, then containment)
6
+ * - later duplicate blocks win
7
+ * - failed tentacle → allUnknownCheckResults
8
+ */
9
+ import { describe, expect, it } from 'vitest';
10
+ import { allUnknownCheckResults, extractVerifyReportBlocks, parseVerifyReport, } from './verifyReport.js';
11
+ const CHECKS = [
12
+ 'unit test for session refresh passes',
13
+ 'no Set-Cookie regression on logout',
14
+ ];
15
+ function block(check, status, note) {
16
+ return [
17
+ '<verify-report>',
18
+ `check: ${check}`,
19
+ `status: ${status}`,
20
+ ...(note ? [`note: ${note}`] : []),
21
+ '</verify-report>',
22
+ ].join('\n');
23
+ }
24
+ const REPORTED = [
25
+ 'Ran the targeted suite.',
26
+ block(CHECKS[0], 'pass', 'vitest src/auth 41/41 green'),
27
+ block(CHECKS[1], 'fail', 'logout still emits double Set-Cookie'),
28
+ ].join('\n');
29
+ describe('extractVerifyReportBlocks', () => {
30
+ it('extracts blocks with check/status/note', () => {
31
+ const blocks = extractVerifyReportBlocks(REPORTED);
32
+ expect(blocks).toHaveLength(2);
33
+ expect(blocks[0]).toMatchObject({ check: CHECKS[0], status: 'pass', note: 'vitest src/auth 41/41 green' });
34
+ expect(blocks[1]).toMatchObject({ check: CHECKS[1], status: 'fail' });
35
+ });
36
+ it('skips blocks without a check line and tolerates prose between blocks', () => {
37
+ const raw = [
38
+ 'prose',
39
+ '<verify-report>',
40
+ 'status: pass',
41
+ '</verify-report>',
42
+ 'more prose',
43
+ block('some check', 'unknown'),
44
+ ].join('\n');
45
+ const blocks = extractVerifyReportBlocks(raw);
46
+ expect(blocks).toHaveLength(1);
47
+ expect(blocks[0].check).toBe('some check');
48
+ });
49
+ it('stops at an unterminated block (no close tag)', () => {
50
+ const raw = '<verify-report>\ncheck: x\nstatus: pass';
51
+ expect(extractVerifyReportBlocks(raw)).toEqual([]);
52
+ });
53
+ });
54
+ describe('parseVerifyReport', () => {
55
+ it('maps each required check to its reported status', () => {
56
+ const results = parseVerifyReport(REPORTED, CHECKS);
57
+ expect(results[0]).toMatchObject({ check: CHECKS[0], status: 'pass' });
58
+ expect(results[1]).toMatchObject({ check: CHECKS[1], status: 'fail' });
59
+ });
60
+ it('unmatched check → unknown, never pass', () => {
61
+ const raw = block(CHECKS[0], 'pass');
62
+ const results = parseVerifyReport(raw, CHECKS);
63
+ expect(results[0].status).toBe('pass');
64
+ expect(results[1].status).toBe('unknown');
65
+ expect(results[1].note).toContain('no verify-report block');
66
+ });
67
+ it('invalid status word → unknown', () => {
68
+ const raw = block(CHECKS[0], 'mostly-fine');
69
+ expect(parseVerifyReport(raw, [CHECKS[0]])[0].status).toBe('unknown');
70
+ });
71
+ it('missing status line → unknown', () => {
72
+ const raw = ['<verify-report>', `check: ${CHECKS[0]}`, '</verify-report>'].join('\n');
73
+ expect(parseVerifyReport(raw, [CHECKS[0]])[0].status).toBe('unknown');
74
+ });
75
+ it('matches a lightly reworded criterion (containment, case-insensitive)', () => {
76
+ const raw = block('Unit test for Session REFRESH passes (targeted)', 'pass');
77
+ expect(parseVerifyReport(raw, [CHECKS[0]])[0].status).toBe('pass');
78
+ });
79
+ it('later duplicate block for the same check wins (self-correction)', () => {
80
+ const raw = [block(CHECKS[0], 'fail'), block(CHECKS[0], 'pass', 're-ran: green')].join('\n');
81
+ const results = parseVerifyReport(raw, [CHECKS[0]]);
82
+ expect(results[0].status).toBe('pass');
83
+ expect(results[0].note).toBe('re-ran: green');
84
+ });
85
+ it('no blocks at all → every check unknown', () => {
86
+ const results = parseVerifyReport('plain conclusion, no structure', CHECKS);
87
+ expect(results.map((r) => r.status)).toEqual(['unknown', 'unknown']);
88
+ });
89
+ it('empty required list → empty results', () => {
90
+ expect(parseVerifyReport(REPORTED, [])).toEqual([]);
91
+ });
92
+ it('unknown status from a legit `unknown` report is preserved verbatim', () => {
93
+ const raw = block(CHECKS[0], 'unknown', 'grep timed out');
94
+ const results = parseVerifyReport(raw, [CHECKS[0]]);
95
+ expect(results[0]).toMatchObject({ status: 'unknown', note: 'grep timed out' });
96
+ });
97
+ });
98
+ describe('allUnknownCheckResults', () => {
99
+ it('marks every check unknown with the failure reason', () => {
100
+ const results = allUnknownCheckResults(CHECKS, 'verify tentacle failed: timeout');
101
+ expect(results).toHaveLength(2);
102
+ for (const r of results) {
103
+ expect(r.status).toBe('unknown');
104
+ expect(r.note).toBe('verify tentacle failed: timeout');
105
+ }
106
+ });
107
+ it('empty list → empty results', () => {
108
+ expect(allUnknownCheckResults([], 'x')).toEqual([]);
109
+ });
110
+ });
111
+ //# sourceMappingURL=verifyReport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyReport.test.js","sourceRoot":"","sources":["../../../src/cli/kraken/verifyReport.test.ts"],"names":[],"mappings":"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"}