zelari-code 0.7.8 → 0.7.10

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 (89) hide show
  1. package/README.md +95 -44
  2. package/bin/zelari-code.js +1 -1
  3. package/dist/agents/councilApi.js +7 -7
  4. package/dist/agents/councilApi.js.map +1 -1
  5. package/dist/agents/councilDirectives.js +3 -3
  6. package/dist/agents/promoteMember.js +2 -2
  7. package/dist/agents/roles.js +50 -32
  8. package/dist/agents/roles.js.map +1 -1
  9. package/dist/agents/skills/builtin/debugging.js +4 -4
  10. package/dist/agents/skills/builtin/debugging.js.map +1 -1
  11. package/dist/agents/skills/builtin/docs.js +23 -13
  12. package/dist/agents/skills/builtin/docs.js.map +1 -1
  13. package/dist/agents/skills/builtin/git-ops.js +3 -3
  14. package/dist/agents/skills/builtin/git-ops.js.map +1 -1
  15. package/dist/agents/skills/builtin/planning.js +4 -4
  16. package/dist/agents/skills/builtin/planning.js.map +1 -1
  17. package/dist/agents/skills/builtin/refactoring.js +3 -3
  18. package/dist/agents/skills/builtin/refactoring.js.map +1 -1
  19. package/dist/agents/skills/builtin/review.js +9 -9
  20. package/dist/agents/skills/builtin/review.js.map +1 -1
  21. package/dist/agents/skills/builtin/testing.js +3 -3
  22. package/dist/agents/skills/builtin/testing.js.map +1 -1
  23. package/dist/agents/tools.js +2 -9
  24. package/dist/agents/tools.js.map +1 -1
  25. package/dist/cli/app.js +79 -18
  26. package/dist/cli/app.js.map +1 -1
  27. package/dist/cli/components/CollapsibleToolOutput.js +8 -26
  28. package/dist/cli/components/CollapsibleToolOutput.js.map +1 -1
  29. package/dist/cli/components/Header.js +6 -18
  30. package/dist/cli/components/Header.js.map +1 -1
  31. package/dist/cli/components/LiveRegion.js +7 -3
  32. package/dist/cli/components/LiveRegion.js.map +1 -1
  33. package/dist/cli/components/SelectList.js +67 -0
  34. package/dist/cli/components/SelectList.js.map +1 -0
  35. package/dist/cli/components/Sidebar.js +86 -37
  36. package/dist/cli/components/Sidebar.js.map +1 -1
  37. package/dist/cli/components/Spinner.js +51 -0
  38. package/dist/cli/components/Spinner.js.map +1 -0
  39. package/dist/cli/components/SplashScreen.js +117 -71
  40. package/dist/cli/components/SplashScreen.js.map +1 -1
  41. package/dist/cli/components/StatusBar.js +44 -32
  42. package/dist/cli/components/StatusBar.js.map +1 -1
  43. package/dist/cli/councilConfig.js +38 -0
  44. package/dist/cli/councilConfig.js.map +1 -0
  45. package/dist/cli/councilDispatcher.js +35 -49
  46. package/dist/cli/councilDispatcher.js.map +1 -1
  47. package/dist/cli/hooks/useChatTurn.js +80 -61
  48. package/dist/cli/hooks/useChatTurn.js.map +1 -1
  49. package/dist/cli/hooks/useExecutionTimer.js +25 -0
  50. package/dist/cli/hooks/useExecutionTimer.js.map +1 -0
  51. package/dist/cli/hooks/useGitChanges.js +142 -0
  52. package/dist/cli/hooks/useGitChanges.js.map +1 -0
  53. package/dist/cli/hooks/useSlashDispatch.js +20 -3
  54. package/dist/cli/hooks/useSlashDispatch.js.map +1 -1
  55. package/dist/cli/main.bundled.js +19776 -19052
  56. package/dist/cli/main.bundled.js.map +4 -4
  57. package/dist/cli/main.js +1 -1
  58. package/dist/cli/main.js.map +1 -1
  59. package/dist/cli/mcp/mcpClient.js +14 -6
  60. package/dist/cli/mcp/mcpClient.js.map +1 -1
  61. package/dist/cli/slashCommands.js +21 -4
  62. package/dist/cli/slashCommands.js.map +1 -1
  63. package/dist/cli/slashHandlers/provider.js +101 -4
  64. package/dist/cli/slashHandlers/provider.js.map +1 -1
  65. package/dist/cli/updater.js +8 -5
  66. package/dist/cli/updater.js.map +1 -1
  67. package/dist/cli/utils/cmdline.js +26 -0
  68. package/dist/cli/utils/cmdline.js.map +1 -0
  69. package/dist/cli/utils/paths.js +20 -0
  70. package/dist/cli/utils/paths.js.map +1 -0
  71. package/dist/cli/workspace/planDetect.js +17 -0
  72. package/dist/cli/workspace/planDetect.js.map +1 -0
  73. package/dist/cli/workspace/postCouncilHook.js +39 -28
  74. package/dist/cli/workspace/postCouncilHook.js.map +1 -1
  75. package/dist/cli/workspace/stubs.js +241 -196
  76. package/dist/cli/workspace/stubs.js.map +1 -1
  77. package/dist/main/core/AgentHarness.js +36 -7
  78. package/dist/main/core/AgentHarness.js.map +1 -1
  79. package/dist/main/core/tools/builtin/listFiles.js +43 -5
  80. package/dist/main/core/tools/builtin/listFiles.js.map +1 -1
  81. package/dist/main/core/tools/builtin/search.js +28 -120
  82. package/dist/main/core/tools/builtin/search.js.map +1 -1
  83. package/package.json +71 -71
  84. package/dist/cli/oauthCallbackServer.js +0 -207
  85. package/dist/cli/oauthCallbackServer.js.map +0 -1
  86. package/dist/main/core/tools/builtin/_walk.js +0 -129
  87. package/dist/main/core/tools/builtin/_walk.js.map +0 -1
  88. package/dist/main/core/tools/builtin/diff.js +0 -477
  89. package/dist/main/core/tools/builtin/diff.js.map +0 -1
@@ -9,11 +9,11 @@
9
9
  * composer-2.5) refuses to emit createTask/createMilestone as real
10
10
  * tool calls.
11
11
  */
12
- import { spawn } from 'node:child_process';
13
- import { existsSync, readFileSync } from 'node:fs';
14
- import { join } from 'node:path';
15
- import { updateAgentsMd } from './agentsMd.js';
16
- import { runBuiltinCompleteDesign } from './completeDesign.js';
12
+ import { spawn } from "node:child_process";
13
+ import { existsSync, readFileSync } from "node:fs";
14
+ import { join } from "node:path";
15
+ import { updateAgentsMd } from "./agentsMd.js";
16
+ import { runBuiltinCompleteDesign } from "./completeDesign.js";
17
17
  /**
18
18
  * v0.7.7 Opzione B / v0.7.8 — Run the deterministic complete-design
19
19
  * post-processor if the workspace is in design-phase (`.zelari/plan.json`
@@ -33,25 +33,34 @@ import { runBuiltinCompleteDesign } from './completeDesign.js';
33
33
  *
34
34
  * Disabled by setting `ZELARI_COMPLETE_DESIGN=0` in the environment.
35
35
  */
36
- export async function runCompleteDesignPostProcessor(ctx) {
37
- if (process.env['ZELARI_COMPLETE_DESIGN'] === '0') {
38
- return { ran: false, reason: 'ZELARI_COMPLETE_DESIGN=0 (disabled)' };
36
+ export async function runCompleteDesignPostProcessor(ctx, options) {
37
+ if (options?.runMode === "implementation") {
38
+ return {
39
+ ran: false,
40
+ reason: "implementation mode (complete-design skipped)",
41
+ };
42
+ }
43
+ if (process.env["ZELARI_COMPLETE_DESIGN"] === "0") {
44
+ return { ran: false, reason: "ZELARI_COMPLETE_DESIGN=0 (disabled)" };
39
45
  }
40
- const planJsonPath = join(ctx.rootDir, 'plan.json');
41
- const scriptPath = join(ctx.projectRoot, 'complete-design.mjs');
46
+ const planJsonPath = join(ctx.rootDir, "plan.json");
47
+ const scriptPath = join(ctx.projectRoot, "complete-design.mjs");
42
48
  if (!existsSync(planJsonPath)) {
43
- return { ran: false, reason: '.zelari/plan.json missing (not design-phase)' };
49
+ return {
50
+ ran: false,
51
+ reason: ".zelari/plan.json missing (not design-phase)",
52
+ };
44
53
  }
45
54
  let phaseCount = 0;
46
55
  try {
47
- const parsed = JSON.parse(readFileSync(planJsonPath, 'utf8'));
56
+ const parsed = JSON.parse(readFileSync(planJsonPath, "utf8"));
48
57
  phaseCount = Array.isArray(parsed.phases) ? parsed.phases.length : 0;
49
58
  }
50
59
  catch {
51
- return { ran: false, reason: '.zelari/plan.json corrupt' };
60
+ return { ran: false, reason: ".zelari/plan.json corrupt" };
52
61
  }
53
62
  if (phaseCount === 0) {
54
- return { ran: false, reason: '.zelari/plan.json has no phases' };
63
+ return { ran: false, reason: ".zelari/plan.json has no phases" };
55
64
  }
56
65
  if (!existsSync(scriptPath)) {
57
66
  // v0.7.8: no workspace script → run the built-in deterministic
@@ -77,18 +86,18 @@ export async function runCompleteDesignPostProcessor(ctx) {
77
86
  return await new Promise((resolveRun) => {
78
87
  const child = spawn(process.execPath, [scriptPath], {
79
88
  cwd: ctx.projectRoot,
80
- stdio: ['ignore', 'pipe', 'pipe'],
89
+ stdio: ["ignore", "pipe", "pipe"],
81
90
  env: process.env,
82
91
  });
83
- let stdout = '';
84
- let stderr = '';
85
- child.stdout?.on('data', (chunk) => {
86
- stdout += chunk.toString('utf8');
92
+ let stdout = "";
93
+ let stderr = "";
94
+ child.stdout?.on("data", (chunk) => {
95
+ stdout += chunk.toString("utf8");
87
96
  });
88
- child.stderr?.on('data', (chunk) => {
89
- stderr += chunk.toString('utf8');
97
+ child.stderr?.on("data", (chunk) => {
98
+ stderr += chunk.toString("utf8");
90
99
  });
91
- child.on('error', (err) => {
100
+ child.on("error", (err) => {
92
101
  resolveRun({
93
102
  ran: true,
94
103
  exitCode: -1,
@@ -96,14 +105,16 @@ export async function runCompleteDesignPostProcessor(ctx) {
96
105
  reason: `spawn error: ${err.message}`,
97
106
  });
98
107
  });
99
- child.on('close', (code) => {
108
+ child.on("close", (code) => {
100
109
  const exitCode = code ?? -1;
101
110
  const ok = exitCode === 0;
102
111
  resolveRun({
103
112
  ran: true,
104
113
  exitCode,
105
114
  output: stdout + stderr,
106
- ...(ok ? {} : { reason: `complete-design exited with code ${exitCode}` }),
115
+ ...(ok
116
+ ? {}
117
+ : { reason: `complete-design exited with code ${exitCode}` }),
107
118
  });
108
119
  });
109
120
  });
@@ -121,15 +132,15 @@ export async function runCompleteDesignPostProcessor(ctx) {
121
132
  * Errors from either step are caught and reported in the result — the
122
133
  * hook never throws.
123
134
  */
124
- export async function runPostCouncilHook(ctx) {
135
+ export async function runPostCouncilHook(ctx, options) {
125
136
  // ── Step 1: AGENTS.MD maintenance ─────────────────────────────────────
126
137
  let agentsMdResult;
127
- if (process.env['ZELARI_AGENTS_MD'] === '0') {
138
+ if (process.env["ZELARI_AGENTS_MD"] === "0") {
128
139
  agentsMdResult = {
129
140
  ran: false,
130
141
  changed: false,
131
142
  sections: [],
132
- reason: 'ZELARI_AGENTS_MD=0 (disabled)',
143
+ reason: "ZELARI_AGENTS_MD=0 (disabled)",
133
144
  };
134
145
  }
135
146
  else {
@@ -152,7 +163,7 @@ export async function runPostCouncilHook(ctx) {
152
163
  }
153
164
  }
154
165
  // ── Step 2: complete-design post-processor ───────────────────────────
155
- const completeDesign = await runCompleteDesignPostProcessor(ctx);
166
+ const completeDesign = await runCompleteDesignPostProcessor(ctx, options);
156
167
  return {
157
168
  ran: agentsMdResult.ran || completeDesign.ran,
158
169
  changed: agentsMdResult.changed,
@@ -1 +1 @@
1
- {"version":3,"file":"postCouncilHook.js","sourceRoot":"","sources":["../../../src/cli/workspace/postCouncilHook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postCouncilHook.js","sourceRoot":"","sources":["../../../src/cli/workspace/postCouncilHook.ts"],"names":[],"mappings":"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"}