@shipers-dev/multi 0.11.0 → 0.11.1
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/dist/index.js +3 -3
- package/package.json +3 -3
- package/src/acp-runner.ts +2 -2
- package/src/index.ts +4 -4
package/dist/index.js
CHANGED
|
@@ -5842,7 +5842,7 @@ import { join as join4, dirname as dirname3 } from "path";
|
|
|
5842
5842
|
// package.json
|
|
5843
5843
|
var package_default = {
|
|
5844
5844
|
name: "@shipers-dev/multi",
|
|
5845
|
-
version: "0.11.
|
|
5845
|
+
version: "0.11.1",
|
|
5846
5846
|
type: "module",
|
|
5847
5847
|
bin: {
|
|
5848
5848
|
"multi-agent": "./dist/index.js"
|
|
@@ -7071,7 +7071,7 @@ Rules:
|
|
|
7071
7071
|
- Omit the block if no actions are needed.
|
|
7072
7072
|
- Max 10 actions per turn. Sub-caps: agent.create=2, skill.create=3 per turn.
|
|
7073
7073
|
- Planning depth capped at ${PLANNING_DEPTH_LIMIT}. At depth \u2265 1 you can only \`update\` your own issue \u2014 no creates, no agents, no skills.
|
|
7074
|
-
- \`agent.create\`
|
|
7074
|
+
- \`agent.create\` is auto-approved on auto-autonomy issues. Caps + rate limits prevent abuse.
|
|
7075
7075
|
- \`skill.create\` ALWAYS waits for human review (skill bodies become future system prompts).
|
|
7076
7076
|
- \`allowed_tools\` on a new agent must be a subset of your own tools.
|
|
7077
7077
|
- \`create\` / \`update\` / \`delegate\` target issues only in the current project (${projectId || "this project"}).
|
|
@@ -7184,7 +7184,7 @@ async function executePlanActions(apiUrl, parentTask, actions, ctx) {
|
|
|
7184
7184
|
if (res.data?.queued)
|
|
7185
7185
|
lines.push(`- \u23F3 agent.create "${a.name}" queued for human approval (op ${res.data.pending_op_id})`);
|
|
7186
7186
|
else
|
|
7187
|
-
lines.push(`- \u2713 agent.create "${a.name}" \u2192 ${res.data?.agent_id}
|
|
7187
|
+
lines.push(`- \u2713 agent.create "${a.name}" \u2192 ${res.data?.agent_id}`);
|
|
7188
7188
|
} else if (a.type === "agent.update") {
|
|
7189
7189
|
const res = await apiClient.post(`${apiUrl}/api/agent_ops/agents/mutate`, { action: "update", ...a }, { headers });
|
|
7190
7190
|
if (!res.success) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipers-dev/multi",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"multi-agent": "./dist/index.js"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"build": "bun build src/index.ts --outdir=dist --target=bun"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@
|
|
14
|
-
"@
|
|
13
|
+
"@agentclientprotocol/sdk": "^0.20.0",
|
|
14
|
+
"@agentclientprotocol/claude-agent-acp": "^0.31.0"
|
|
15
15
|
}
|
|
16
16
|
}
|
package/src/acp-runner.ts
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Spawns the adapter as a subprocess over stdio, converts ACP events → our StreamEvent shape
|
|
3
3
|
// and handles client-side callbacks (requestPermission forwarded to server, fs read/write local).
|
|
4
4
|
|
|
5
|
-
import { ClientSideConnection, ndJsonStream } from '@
|
|
6
|
-
import type { Client, SessionNotification, RequestPermissionRequest, RequestPermissionResponse, ReadTextFileRequest, ReadTextFileResponse, WriteTextFileRequest, WriteTextFileResponse } from '@
|
|
5
|
+
import { ClientSideConnection, ndJsonStream } from '@agentclientprotocol/sdk';
|
|
6
|
+
import type { Client, SessionNotification, RequestPermissionRequest, RequestPermissionResponse, ReadTextFileRequest, ReadTextFileResponse, WriteTextFileRequest, WriteTextFileResponse } from '@agentclientprotocol/sdk';
|
|
7
7
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
8
8
|
import { dirname } from 'path';
|
|
9
9
|
import { apiClient } from './client';
|
package/src/index.ts
CHANGED
|
@@ -1130,7 +1130,7 @@ Rules:
|
|
|
1130
1130
|
- Omit the block if no actions are needed.
|
|
1131
1131
|
- Max 10 actions per turn. Sub-caps: agent.create=2, skill.create=3 per turn.
|
|
1132
1132
|
- Planning depth capped at ${PLANNING_DEPTH_LIMIT}. At depth ≥ 1 you can only \`update\` your own issue — no creates, no agents, no skills.
|
|
1133
|
-
- \`agent.create\`
|
|
1133
|
+
- \`agent.create\` is auto-approved on auto-autonomy issues. Caps + rate limits prevent abuse.
|
|
1134
1134
|
- \`skill.create\` ALWAYS waits for human review (skill bodies become future system prompts).
|
|
1135
1135
|
- \`allowed_tools\` on a new agent must be a subset of your own tools.
|
|
1136
1136
|
- \`create\` / \`update\` / \`delegate\` target issues only in the current project (${projectId || 'this project'}).
|
|
@@ -1235,7 +1235,7 @@ async function executePlanActions(apiUrl: string, parentTask: any, actions: Plan
|
|
|
1235
1235
|
const res = await apiClient.post<any>(`${apiUrl}/api/agent_ops/agents/mutate`, { action: 'create', name: a.name, type: a.agent_type, prompt: a.prompt, skill_ids: a.skill_ids, allowed_tools: a.allowed_tools }, { headers });
|
|
1236
1236
|
if (!res.success) { lines.push(`- ❌ agent.create "${a.name}": ${res.error || res.status}`); continue; }
|
|
1237
1237
|
if (res.data?.queued) lines.push(`- ⏳ agent.create "${a.name}" queued for human approval (op ${res.data.pending_op_id})`);
|
|
1238
|
-
else lines.push(`- ✓ agent.create "${a.name}" → ${res.data?.agent_id}
|
|
1238
|
+
else lines.push(`- ✓ agent.create "${a.name}" → ${res.data?.agent_id}`);
|
|
1239
1239
|
} else if (a.type === 'agent.update') {
|
|
1240
1240
|
const res = await apiClient.post<any>(`${apiUrl}/api/agent_ops/agents/mutate`, { action: 'update', ...a }, { headers });
|
|
1241
1241
|
if (!res.success) { lines.push(`- ❌ agent.update ${a.id}: ${res.error || res.status}`); continue; }
|
|
@@ -1304,8 +1304,8 @@ async function resolveAcpAdapter(agentType: string, detectedPath?: string): Prom
|
|
|
1304
1304
|
return [detectedPath, '--mode', 'rpc'];
|
|
1305
1305
|
}
|
|
1306
1306
|
|
|
1307
|
-
// claude-code →
|
|
1308
|
-
const adapterName = 'claude-
|
|
1307
|
+
// claude-code → claude-agent-acp adapter wrapper (stdio ACP)
|
|
1308
|
+
const adapterName = 'claude-agent-acp';
|
|
1309
1309
|
const candidates = [
|
|
1310
1310
|
join(HOME, '.bun', 'install', 'global', 'node_modules', '.bin', adapterName),
|
|
1311
1311
|
];
|