codemini-cli 0.4.6 → 0.4.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/deployment.md CHANGED
@@ -13,13 +13,13 @@ npm pack
13
13
  Expected output:
14
14
 
15
15
  ```text
16
- codemini-cli-0.4.6.tgz
16
+ codemini-cli-0.4.7.tgz
17
17
  ```
18
18
 
19
19
  If you want to verify the package contents:
20
20
 
21
21
  ```bash
22
- tar -tf codemini-cli-0.4.6.tgz
22
+ tar -tf codemini-cli-0.4.7.tgz
23
23
  ```
24
24
 
25
25
  ## 2. Copy To The Target Machine
@@ -34,7 +34,7 @@ Copy the generated `.tgz` file to the Win10 machine by one of these methods:
34
34
  Recommended target path:
35
35
 
36
36
  ```powershell
37
- C:\temp\codemini-cli-0.4.6.tgz
37
+ C:\temp\codemini-cli-0.4.7.tgz
38
38
  ```
39
39
 
40
40
  ## 3. Environment Requirements
@@ -58,7 +58,7 @@ npm -v
58
58
  Global install:
59
59
 
60
60
  ```powershell
61
- npm install -g C:\temp\codemini-cli-0.4.6.tgz
61
+ npm install -g C:\temp\codemini-cli-0.4.7.tgz
62
62
  ```
63
63
 
64
64
  If global install is blocked by company policy, install in a working directory instead:
@@ -66,7 +66,7 @@ If global install is blocked by company policy, install in a working directory i
66
66
  ```powershell
67
67
  mkdir C:\temp\coder-test
68
68
  cd C:\temp\coder-test
69
- npm install C:\temp\codemini-cli-0.4.6.tgz
69
+ npm install C:\temp\codemini-cli-0.4.7.tgz
70
70
  ```
71
71
 
72
72
  ## 5. Confirm Installation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codemini-cli",
3
- "version": "0.4.6",
3
+ "version": "0.4.7",
4
4
  "description": "Coding CLI optimized for small-model workflows and Windows PowerShell",
5
5
  "keywords": [
6
6
  "cli",
@@ -779,7 +779,16 @@ export async function runAgentLoop({
779
779
  if (onEvent) onEvent({ type: 'tool:start', name: displayName, id: call.id, arguments: effectiveArgs });
780
780
  const handler = toolHandlers[toolName];
781
781
  if (!handler) {
782
- throw new Error(`Unknown tool: ${call.name}`);
782
+ const available = Object.keys(toolHandlers).join(', ');
783
+ const msg = `Unknown tool: "${toolName}". Available tools: ${available || '(none)'}`;
784
+ if (onEvent) {
785
+ onEvent({ type: 'tool:error', name: displayName, id: call.id, arguments: effectiveArgs, durationMs: 0, summary: trimInline(msg, 200) });
786
+ }
787
+ return {
788
+ callId: call.id,
789
+ content: JSON.stringify({ error: msg }),
790
+ error: true
791
+ };
783
792
  }
784
793
 
785
794
  const blockedReason = blockedExplorationReason(toolName, effectiveArgs, analysisGuard);
@@ -3341,8 +3341,23 @@ async function runProjectRequirementsPipeline({
3341
3341
  name: custom.name,
3342
3342
  summary: error instanceof Error ? error.message : String(error)
3343
3343
  });
3344
+ onAgentEvent({ type: 'skill:end', name: custom.name });
3344
3345
  }
3345
- throw error;
3346
+ if (manifestPath) {
3347
+ await updateProjectRequirementsManifest(manifestPath, {
3348
+ status: 'failed',
3349
+ failedCount: steps.length,
3350
+ error: error instanceof Error ? error.message : String(error)
3351
+ }).catch(() => {});
3352
+ }
3353
+ return {
3354
+ type: 'assistant',
3355
+ text: `Project requirements pipeline failed: ${error instanceof Error ? error.message : String(error)}`,
3356
+ planFile,
3357
+ reportPath,
3358
+ manifestPath,
3359
+ aborted: true
3360
+ };
3346
3361
  }
3347
3362
  if (onAgentEvent) {
3348
3363
  onAgentEvent({
@@ -5015,8 +5030,12 @@ export async function createChatRuntime({
5015
5030
  name: custom.name,
5016
5031
  summary: error instanceof Error ? error.message : String(error)
5017
5032
  });
5033
+ onAgentEvent({ type: 'skill:end', name: custom.name });
5018
5034
  }
5019
- throw error;
5035
+ return {
5036
+ type: 'system',
5037
+ text: `Skill "${custom.name}" failed: ${error instanceof Error ? error.message : String(error)}`
5038
+ };
5020
5039
  }
5021
5040
  if (custom.metadata.type === 'skill' && onAgentEvent) {
5022
5041
  onAgentEvent({ type: 'skill:end', name: custom.name });
@@ -111,7 +111,7 @@ class FffMcpClient {
111
111
  capabilities: {},
112
112
  clientInfo: {
113
113
  name: 'codemini-cli',
114
- version: '0.4.6'
114
+ version: '0.4.7'
115
115
  }
116
116
  });
117
117
  this.sendNotification('notifications/initialized', {});