@akira-tl/forgerelay 0.6.1 → 0.7.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/CHANGELOG.md +43 -0
- package/README.md +38 -0
- package/capabilities/subagents/GUIDE.md +100 -40
- package/dist/activity/lifecycle.js +1 -1
- package/dist/activity/mcp-query-tools.js +1 -0
- package/dist/activity/query-service.js +1 -0
- package/dist/capabilities.js +1 -1
- package/dist/capability-registry.js +34 -0
- package/dist/cli.js +80 -165
- package/dist/composite-activity.js +155 -0
- package/dist/composite-workspaces.js +197 -0
- package/dist/db/migrations.js +14 -0
- package/dist/db/schema.js +6 -0
- package/dist/remote-workspace-relay.js +16 -0
- package/dist/server.js +698 -172
- package/dist/{local-agent-targets.js → subagents/cli-target.js} +6 -6
- package/dist/{local-agent-profiles.js → subagents/profiles.js} +13 -5
- package/dist/subagents/providers/adapters/acp.js +148 -0
- package/dist/subagents/providers/adapters/claude.js +75 -0
- package/dist/{local-agent-runtime.js → subagents/providers/adapters/codex.js} +10 -4
- package/dist/subagents/providers/adapters/opencode.js +137 -0
- package/dist/subagents/providers/adapters/pi.js +232 -0
- package/dist/{local-agent-availability.js → subagents/providers/availability.js} +24 -10
- package/dist/subagents/providers/continuation.js +11 -0
- package/dist/subagents/providers/contract.js +1 -0
- package/dist/subagents/providers/registry.js +26 -0
- package/dist/subagents/providers/shared.js +40 -0
- package/dist/subagents/sessions/capability.js +214 -0
- package/dist/subagents/sessions/delivery-mailbox.js +115 -0
- package/dist/subagents/sessions/execution.js +171 -0
- package/dist/subagents/sessions/manager.js +107 -0
- package/dist/subagents/sessions/mcp/audit.js +85 -0
- package/dist/subagents/sessions/mcp/runtime.js +19 -0
- package/dist/{local-agent-store.js → subagents/sessions/store.js} +75 -39
- package/dist/ui/.vite/manifest.json +33 -33
- package/dist/ui/activity-panel-app.html +3 -3
- package/dist/ui/assets/{activity-panel-app-CjZVvVNc.js → activity-panel-app-E1ju2dqI.js} +1 -1
- package/dist/ui/assets/{heavy-payload-vGgBRvNX.js → heavy-payload-CeW-n9w5.js} +1 -1
- package/dist/ui/assets/{review-payload-4erWKckt.js → review-payload-B9CO298v.js} +1 -1
- package/dist/ui/assets/{scrollbar-CaOPzUJd.js → scrollbar-C2twAENW.js} +1 -1
- package/dist/ui/assets/workspace-app-BztEvZIC.js +5 -0
- package/dist/ui/assets/{workspace-app-DkAiSl_0.js → workspace-app-CwbJnb_w.js} +1 -1
- package/dist/ui/assets/workspace-app-YnUST8IP.css +1 -0
- package/dist/ui/assets/workspace-app-rKuhdae8.js +1 -0
- package/dist/ui/assets/workspace-lifecycle-app-CEfMdudP.js +1 -0
- package/dist/ui/workspace-app.html +4 -4
- package/dist/ui/workspace-lifecycle-app.html +4 -4
- package/dist/workspaces.js +3 -3
- package/docs/chatgpt-coding-workflow.md +2 -9
- package/docs/configuration.md +23 -0
- package/docs/debugging.md +7 -0
- package/docs/roadmap.md +42 -7
- package/package.json +2 -2
- package/scripts/debug/runtime.mjs +23 -1
- package/scripts/debug/runtime.test.mjs +14 -2
- package/scripts/debug/serve.mjs +4 -4
- package/scripts/release/release-gate.test.mjs +2 -2
- package/dist/local-agent-adapters.js +0 -653
- package/dist/ui/assets/workspace-app-CcrHAUIn.css +0 -1
- package/dist/ui/assets/workspace-app-DJmkPYJC.js +0 -1
- package/dist/ui/assets/workspace-app-QyauBrJX.js +0 -5
- package/dist/ui/assets/workspace-lifecycle-app-BIXEo53I.js +0 -1
- /package/dist/{local-agent-path.js → subagents/providers/path.js} +0 -0
package/dist/db/migrations.js
CHANGED
|
@@ -64,6 +64,11 @@ const migrations = [
|
|
|
64
64
|
name: "activity-host-turn-workspace",
|
|
65
65
|
up: migrateActivityHostTurnWorkspace,
|
|
66
66
|
},
|
|
67
|
+
{
|
|
68
|
+
version: 14,
|
|
69
|
+
name: "subagent-session-coordination",
|
|
70
|
+
up: migrateSubagentSessionCoordination,
|
|
71
|
+
},
|
|
67
72
|
];
|
|
68
73
|
export function migrateDatabase(sqlite) {
|
|
69
74
|
const migrate = sqlite.transaction(() => {
|
|
@@ -344,6 +349,15 @@ function migrateBashOutputAuditColumns(sqlite) {
|
|
|
344
349
|
addColumnIfMissing(sqlite, "bash_output_streams", "returned", "integer not null default 0");
|
|
345
350
|
addColumnIfMissing(sqlite, "bash_output_streams", "completion_claimed_at", "text");
|
|
346
351
|
}
|
|
352
|
+
function migrateSubagentSessionCoordination(sqlite) {
|
|
353
|
+
migrateLocalAgentSessions(sqlite);
|
|
354
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "active_run_id", "text");
|
|
355
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "active_activity_id", "text");
|
|
356
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "active_run_started_at", "text");
|
|
357
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "latest_run_id", "text");
|
|
358
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "latest_run_outcome", "text");
|
|
359
|
+
addColumnIfMissing(sqlite, "local_agent_sessions", "latest_run_finished_at", "text");
|
|
360
|
+
}
|
|
347
361
|
function migrateActivityHostTurnWorkspace(sqlite) {
|
|
348
362
|
migrateActivityHostTurns(sqlite);
|
|
349
363
|
addColumnIfMissing(sqlite, "activity_host_turns", "workspace_id", "text");
|
package/dist/db/schema.js
CHANGED
|
@@ -152,6 +152,12 @@ export const localAgentSessions = sqliteTable("local_agent_sessions", {
|
|
|
152
152
|
thinking: text("thinking"),
|
|
153
153
|
providerSessionId: text("provider_session_id"),
|
|
154
154
|
status: text("status").notNull(),
|
|
155
|
+
activeRunId: text("active_run_id"),
|
|
156
|
+
activeActivityId: text("active_activity_id"),
|
|
157
|
+
activeRunStartedAt: text("active_run_started_at"),
|
|
158
|
+
latestRunId: text("latest_run_id"),
|
|
159
|
+
latestRunOutcome: text("latest_run_outcome"),
|
|
160
|
+
latestRunFinishedAt: text("latest_run_finished_at"),
|
|
155
161
|
latestResponse: text("latest_response"),
|
|
156
162
|
error: text("error"),
|
|
157
163
|
hookReportsJson: text("hook_reports_json"),
|
|
@@ -101,6 +101,13 @@ export class RemoteWorkspaceRelay {
|
|
|
101
101
|
instruction: `${remoteInstruction}\nThis workspace executes on remote ${alias}.`,
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
+
async resumeWorkspace(gatewayWorkspaceId, context = "auto", conversationScopeId) {
|
|
105
|
+
const result = await this.callWorkspaceTool(gatewayWorkspaceId, "open_workspace", { context }, conversationScopeId);
|
|
106
|
+
if (result.isError === true) {
|
|
107
|
+
throw new Error(`Remote open_workspace failed: ${toolResultText(result)}`);
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
104
111
|
async read(gatewayWorkspaceId, input, conversationScopeId) {
|
|
105
112
|
return this.callWorkspaceTool(gatewayWorkspaceId, "read", input, conversationScopeId);
|
|
106
113
|
}
|
|
@@ -119,6 +126,15 @@ export class RemoteWorkspaceRelay {
|
|
|
119
126
|
async bash(gatewayWorkspaceId, input, conversationScopeId) {
|
|
120
127
|
return this.callWorkspaceTool(gatewayWorkspaceId, "bash", input, conversationScopeId);
|
|
121
128
|
}
|
|
129
|
+
async execCommand(gatewayWorkspaceId, input, conversationScopeId) {
|
|
130
|
+
return this.callWorkspaceTool(gatewayWorkspaceId, "exec_command", input, conversationScopeId);
|
|
131
|
+
}
|
|
132
|
+
async writeStdin(gatewayWorkspaceId, input, conversationScopeId) {
|
|
133
|
+
return this.callWorkspaceTool(gatewayWorkspaceId, "write_stdin", input, conversationScopeId);
|
|
134
|
+
}
|
|
135
|
+
async applyPatch(gatewayWorkspaceId, input, conversationScopeId) {
|
|
136
|
+
return this.callWorkspaceTool(gatewayWorkspaceId, "apply_patch", input, conversationScopeId);
|
|
137
|
+
}
|
|
122
138
|
async capability(gatewayWorkspaceId, input, conversationScopeId) {
|
|
123
139
|
return this.callWorkspaceTool(gatewayWorkspaceId, "capability", input, conversationScopeId);
|
|
124
140
|
}
|