@openclaw-cloud/agent-controller 3.1.1 → 3.1.3
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/bin/agent-controller.js +5 -9
- package/dist/commands/agent-update-cli.js +23 -38
- package/dist/commands/agent-update-cli.js.map +1 -1
- package/dist/commands/backup-cli.js +6 -4
- package/dist/commands/backup-cli.js.map +1 -1
- package/dist/commands/bootstrap.js +4 -4
- package/dist/commands/bootstrap.js.map +1 -1
- package/dist/commands/channel-server.js +4 -3
- package/dist/commands/channel-server.js.map +1 -1
- package/dist/commands/heartbeat-cli.js +2 -6
- package/dist/commands/heartbeat-cli.js.map +1 -1
- package/dist/commands/install-deps.d.ts +10 -0
- package/dist/commands/install-deps.js +33 -43
- package/dist/commands/install-deps.js.map +1 -1
- package/dist/commands/knowledge-sync-cli.js +6 -4
- package/dist/commands/knowledge-sync-cli.js.map +1 -1
- package/dist/commands/plugin-update-cli.js +2 -9
- package/dist/commands/plugin-update-cli.js.map +1 -1
- package/dist/commands/self-update.js +17 -34
- package/dist/commands/self-update.js.map +1 -1
- package/dist/commands/update-skills.js +4 -3
- package/dist/commands/update-skills.js.map +1 -1
- package/dist/config-file.d.ts +7 -0
- package/dist/config-file.js +21 -11
- package/dist/config-file.js.map +1 -1
- package/dist/handlers/agent-update.d.ts +4 -0
- package/dist/handlers/agent-update.js +16 -44
- package/dist/handlers/agent-update.js.map +1 -1
- package/dist/handlers/deploy.d.ts +1 -2
- package/dist/handlers/deploy.js +4 -20
- package/dist/handlers/deploy.js.map +1 -1
- package/dist/handlers/diagnostics.js +0 -12
- package/dist/handlers/diagnostics.js.map +1 -1
- package/dist/handlers/file-delete.js +4 -5
- package/dist/handlers/file-delete.js.map +1 -1
- package/dist/handlers/file-write.js +4 -4
- package/dist/handlers/file-write.js.map +1 -1
- package/dist/handlers/knowledge-sync.js +2 -14
- package/dist/handlers/knowledge-sync.js.map +1 -1
- package/dist/handlers/onboarding.d.ts +1 -2
- package/dist/handlers/onboarding.js +3 -20
- package/dist/handlers/onboarding.js.map +1 -1
- package/dist/handlers/package-install.js +1 -1
- package/dist/handlers/package-install.js.map +1 -1
- package/dist/handlers/pair.js +0 -12
- package/dist/handlers/pair.js.map +1 -1
- package/dist/handlers/restart.d.ts +1 -2
- package/dist/handlers/restart.js +3 -8
- package/dist/handlers/restart.js.map +1 -1
- package/dist/handlers/stop.js +0 -7
- package/dist/handlers/stop.js.map +1 -1
- package/dist/handlers/telegram-webhook.js +3 -22
- package/dist/handlers/telegram-webhook.js.map +1 -1
- package/dist/handlers/update-config.js +3 -11
- package/dist/handlers/update-config.js.map +1 -1
- package/dist/heartbeat.js +2 -1
- package/dist/heartbeat.js.map +1 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.js +37 -84
- package/dist/index.js.map +1 -1
- package/dist/lockfile.js +2 -1
- package/dist/lockfile.js.map +1 -1
- package/dist/platform/linux.js +6 -5
- package/dist/platform/linux.js.map +1 -1
- package/dist/platform/macos.js +3 -2
- package/dist/platform/macos.js.map +1 -1
- package/dist/platform/windows.js +3 -2
- package/dist/platform/windows.js.map +1 -1
- package/dist/providers/claude-code/channel-server.js +2 -1
- package/dist/providers/claude-code/channel-server.js.map +1 -1
- package/dist/providers/claude-code/settings-writer.d.ts +3 -2
- package/dist/providers/claude-code/settings-writer.js +6 -15
- package/dist/providers/claude-code/settings-writer.js.map +1 -1
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.js +25 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openclaw/index.js +11 -13
- package/dist/providers/openclaw/index.js.map +1 -1
- package/dist/utils/anthropic-auth.d.ts +14 -0
- package/dist/utils/anthropic-auth.js +24 -0
- package/dist/utils/anthropic-auth.js.map +1 -1
- package/dist/utils/apply-config.d.ts +16 -1
- package/dist/utils/apply-config.js +59 -81
- package/dist/utils/apply-config.js.map +1 -1
- package/dist/utils/claude-env.js +18 -28
- package/dist/utils/claude-env.js.map +1 -1
- package/dist/utils/config-merge-paths.d.ts +9 -1
- package/dist/utils/config-merge-paths.js +10 -2
- package/dist/utils/config-merge-paths.js.map +1 -1
- package/dist/utils/env.d.ts +0 -1
- package/dist/utils/env.js +0 -8
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/gateway-restart-handler.d.ts +6 -2
- package/dist/utils/gateway-restart-handler.js +11 -2
- package/dist/utils/gateway-restart-handler.js.map +1 -1
- package/dist/utils/gateway-restart.d.ts +7 -0
- package/dist/utils/gateway-restart.js +12 -4
- package/dist/utils/gateway-restart.js.map +1 -1
- package/dist/utils/legacy-mcp-servers.d.ts +12 -0
- package/dist/utils/legacy-mcp-servers.js +37 -0
- package/dist/utils/legacy-mcp-servers.js.map +1 -0
- package/dist/utils/log-collector.js +2 -1
- package/dist/utils/log-collector.js.map +1 -1
- package/dist/utils/openclaw-ops.js +8 -7
- package/dist/utils/openclaw-ops.js.map +1 -1
- package/dist/utils/openclaw-stack-update.d.ts +31 -0
- package/dist/utils/openclaw-stack-update.js +50 -0
- package/dist/utils/openclaw-stack-update.js.map +1 -0
- package/dist/utils/package-install.js +4 -12
- package/dist/utils/package-install.js.map +1 -1
- package/dist/utils/package-version.d.ts +10 -0
- package/dist/utils/package-version.js +18 -0
- package/dist/utils/package-version.js.map +1 -0
- package/dist/utils/parse-id-at-version.d.ts +15 -0
- package/dist/utils/parse-id-at-version.js +22 -0
- package/dist/utils/parse-id-at-version.js.map +1 -0
- package/dist/utils/response.js +1 -0
- package/dist/utils/response.js.map +1 -1
- package/dist/utils/write-workspace-files.js +8 -13
- package/dist/utils/write-workspace-files.js.map +1 -1
- package/dist/workspace.d.ts +11 -0
- package/dist/workspace.js +20 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { createAgentApi } from '../api.js';
|
|
2
|
-
import { getBackendUrl
|
|
2
|
+
import { getBackendUrl } from '../utils/env.js';
|
|
3
|
+
import { requireConfig } from '../config.js';
|
|
3
4
|
import { getWorkspaceDir } from '../workspace.js';
|
|
4
5
|
import { writeWorkspaceFiles } from '../utils/write-workspace-files.js';
|
|
5
6
|
export async function updateSkills() {
|
|
6
7
|
const backendUrl = getBackendUrl();
|
|
7
|
-
const agentToken =
|
|
8
|
-
const agentId =
|
|
8
|
+
const agentToken = requireConfig('agentToken');
|
|
9
|
+
const agentId = requireConfig('agentId');
|
|
9
10
|
const workspaceDir = getWorkspaceDir();
|
|
10
11
|
const api = createAgentApi(backendUrl, agentToken);
|
|
11
12
|
const data = await api.agentBootstrap(agentId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-skills.js","sourceRoot":"","sources":["../../src/commands/update-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"update-skills.js","sourceRoot":"","sources":["../../src/commands/update-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IAEvC,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,cAAc,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/config-file.d.ts
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
export declare const VM_ENV_PATH = "/opt/openclaw-cloud/agent-controller/.env";
|
|
3
3
|
export declare function getConfigDir(): string;
|
|
4
4
|
export declare function getConfigPath(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Serialize a dict to `KEY=VALUE` lines and write it 0600, creating the parent
|
|
7
|
+
* directory. The one writer for every env file we own (`agent.env` and the VM
|
|
8
|
+
* provisioner's `.env`) — these files carry AGENT_TOKEN and provider API keys,
|
|
9
|
+
* so the mode is not optional.
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeEnvFile(filePath: string, vars: Record<string, string>): Promise<void>;
|
|
5
12
|
export declare function saveEnvFile(config: {
|
|
6
13
|
centrifugoUrl: string;
|
|
7
14
|
agentToken: string;
|
package/dist/config-file.js
CHANGED
|
@@ -29,20 +29,30 @@ export function getConfigDir() {
|
|
|
29
29
|
export function getConfigPath() {
|
|
30
30
|
return path.join(getConfigDir(), 'agent.env');
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Serialize a dict to `KEY=VALUE` lines and write it 0600, creating the parent
|
|
34
|
+
* directory. The one writer for every env file we own (`agent.env` and the VM
|
|
35
|
+
* provisioner's `.env`) — these files carry AGENT_TOKEN and provider API keys,
|
|
36
|
+
* so the mode is not optional.
|
|
37
|
+
*/
|
|
38
|
+
export async function writeEnvFile(filePath, vars) {
|
|
39
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
40
|
+
const content = Object.entries(vars)
|
|
41
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
42
|
+
.join('\n') + '\n';
|
|
43
|
+
await fs.writeFile(filePath, content, { mode: 0o600 });
|
|
44
|
+
}
|
|
32
45
|
export async function saveEnvFile(config) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`BACKEND_URL=${config.backendInternalUrl}`,
|
|
40
|
-
];
|
|
46
|
+
const vars = {
|
|
47
|
+
CENTRIFUGO_URL: config.centrifugoUrl,
|
|
48
|
+
AGENT_TOKEN: config.agentToken,
|
|
49
|
+
AGENT_ID: config.agentId,
|
|
50
|
+
BACKEND_URL: config.backendInternalUrl,
|
|
51
|
+
};
|
|
41
52
|
if (config.gatewayToken) {
|
|
42
|
-
|
|
53
|
+
vars.OPENCLAW_GATEWAY_TOKEN = config.gatewayToken;
|
|
43
54
|
}
|
|
44
|
-
|
|
45
|
-
await fs.writeFile(getConfigPath(), content, { mode: 0o600 });
|
|
55
|
+
await writeEnvFile(getConfigPath(), vars);
|
|
46
56
|
console.log(` Config saved to ${getConfigPath()}`);
|
|
47
57
|
}
|
|
48
58
|
async function loadFile(filePath) {
|
package/dist/config-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,QAAQ,GAAG;IACf,gBAAgB;IAChB,aAAa;IACb,UAAU;IACV,sBAAsB;IACtB,aAAa;IACb,SAAS;IACT,cAAc;IACd,wBAAwB;IACxB,oBAAoB;IACpB,UAAU;IACV,gBAAgB;IAChB,mBAAmB;IACnB,mBAAmB;IACnB,sBAAsB;IACtB,yBAAyB;IACzB,sBAAsB;IACtB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,qCAAqC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,2CAA2C,CAAC;AAEvE,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"config-file.js","sourceRoot":"","sources":["../src/config-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,10 @@ import type { AgentCommand, AgentResponse } from '../types.js';
|
|
|
12
12
|
* command, regardless of how many things changed. Restart failure is
|
|
13
13
|
* a warn — install already succeeded.
|
|
14
14
|
*
|
|
15
|
+
* Steps 2-4 are `runOpenclawStackUpdate()`, shared with the self-update flow
|
|
16
|
+
* and the `agent-update` CLI. This handler owns only payload validation and
|
|
17
|
+
* the AgentResponse shape.
|
|
18
|
+
*
|
|
15
19
|
* Per-plugin failures are recorded in `data.failed[]` but DO NOT flip the
|
|
16
20
|
* top-level success flag. A whole-flow failure (e.g. installOpenclaw throws)
|
|
17
21
|
* does flip success to false.
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { logCollector } from '../connection.js';
|
|
2
2
|
import { toErrorMessage } from '../utils/response.js';
|
|
3
|
-
import {
|
|
4
|
-
import { restartGateway } from '../utils/gateway-restart.js';
|
|
3
|
+
import { runOpenclawStackUpdate, } from '../utils/openclaw-stack-update.js';
|
|
5
4
|
/**
|
|
6
5
|
* Update the openclaw runtime + (optionally) a batch of plugins.
|
|
7
6
|
* payload: { version: string, plugins?: Array<{ id, version }> }
|
|
@@ -15,6 +14,10 @@ import { restartGateway } from '../utils/gateway-restart.js';
|
|
|
15
14
|
* command, regardless of how many things changed. Restart failure is
|
|
16
15
|
* a warn — install already succeeded.
|
|
17
16
|
*
|
|
17
|
+
* Steps 2-4 are `runOpenclawStackUpdate()`, shared with the self-update flow
|
|
18
|
+
* and the `agent-update` CLI. This handler owns only payload validation and
|
|
19
|
+
* the AgentResponse shape.
|
|
20
|
+
*
|
|
18
21
|
* Per-plugin failures are recorded in `data.failed[]` but DO NOT flip the
|
|
19
22
|
* top-level success flag. A whole-flow failure (e.g. installOpenclaw throws)
|
|
20
23
|
* does flip success to false.
|
|
@@ -39,15 +42,18 @@ export async function handleAgentUpdate(cmd) {
|
|
|
39
42
|
error: 'agent_update payload requires non-empty `version`',
|
|
40
43
|
};
|
|
41
44
|
}
|
|
42
|
-
let
|
|
43
|
-
let pluginSummary;
|
|
45
|
+
let stack;
|
|
44
46
|
try {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
:
|
|
47
|
+
stack = await runOpenclawStackUpdate({
|
|
48
|
+
version,
|
|
49
|
+
plugins,
|
|
50
|
+
eventPrefix: 'agent_update',
|
|
51
|
+
meta: { commandId: cmd.id },
|
|
52
|
+
});
|
|
49
53
|
}
|
|
50
54
|
catch (err) {
|
|
55
|
+
// installPlugins swallows per-plugin errors; anything thrown here is a
|
|
56
|
+
// whole-flow failure (installOpenclaw, or installPlugins blowing up).
|
|
51
57
|
return {
|
|
52
58
|
id: cmd.id,
|
|
53
59
|
type: cmd.type,
|
|
@@ -55,41 +61,7 @@ export async function handleAgentUpdate(cmd) {
|
|
|
55
61
|
error: toErrorMessage(err),
|
|
56
62
|
};
|
|
57
63
|
}
|
|
58
|
-
|
|
59
|
-
try {
|
|
60
|
-
pluginSummary = await installPlugins(plugins);
|
|
61
|
-
logCollector?.push('agent_update_plugins_done', 'info', 'Plugin batch processed', {
|
|
62
|
-
commandId: cmd.id,
|
|
63
|
-
installed: pluginSummary.installed.length,
|
|
64
|
-
skipped: pluginSummary.skipped.length,
|
|
65
|
-
failed: pluginSummary.failed.length,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
catch (err) {
|
|
69
|
-
// installPlugins is supposed to swallow per-plugin errors; if it
|
|
70
|
-
// throws something globally, surface it.
|
|
71
|
-
return {
|
|
72
|
-
id: cmd.id,
|
|
73
|
-
type: cmd.type,
|
|
74
|
-
success: false,
|
|
75
|
-
error: toErrorMessage(err),
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
const installedPluginCount = pluginSummary?.installed.length ?? 0;
|
|
80
|
-
const anyChanged = runtimeChanged || installedPluginCount > 0;
|
|
81
|
-
let restarted = false;
|
|
82
|
-
let restartFailed = false;
|
|
83
|
-
if (anyChanged) {
|
|
84
|
-
try {
|
|
85
|
-
await restartGateway();
|
|
86
|
-
restarted = true;
|
|
87
|
-
}
|
|
88
|
-
catch (err) {
|
|
89
|
-
restartFailed = true;
|
|
90
|
-
logCollector?.push('agent_update_restart_failed', 'warn', 'Gateway restart after agent_update failed', { commandId: cmd.id, error: toErrorMessage(err) });
|
|
91
|
-
}
|
|
92
|
-
}
|
|
64
|
+
const { runtimeChanged, pluginSummary } = stack;
|
|
93
65
|
return {
|
|
94
66
|
id: cmd.id,
|
|
95
67
|
type: cmd.type,
|
|
@@ -100,7 +72,7 @@ export async function handleAgentUpdate(cmd) {
|
|
|
100
72
|
installed: pluginSummary?.installed ?? [],
|
|
101
73
|
skipped: pluginSummary?.skipped ?? [],
|
|
102
74
|
failed: pluginSummary?.failed ?? [],
|
|
103
|
-
restarted:
|
|
75
|
+
restarted: stack.gatewayRestarted,
|
|
104
76
|
durationMs: Date.now() - startMs,
|
|
105
77
|
},
|
|
106
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-update.js","sourceRoot":"","sources":["../../src/handlers/agent-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"agent-update.js","sourceRoot":"","sources":["../../src/handlers/agent-update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,sBAAsB,GAEvB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAiB;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAGjC,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC5C,CAAC,CAAE,OAAO,CAAC,OAAkD;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEd,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAAE,MAAM,EAAE,wBAAwB,EAAE;QAC5E,SAAS,EAAE,GAAG,CAAC,EAAE;QACjB,OAAO;QACP,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;KAClC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mDAAmD;SAC3D,CAAC;IACJ,CAAC;IAED,IAAI,KAAgC,CAAC;IACrC,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,sBAAsB,CAAC;YACnC,OAAO;YACP,OAAO;YACP,WAAW,EAAE,cAAc;YAC3B,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uEAAuE;QACvE,sEAAsE;QACtE,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAChD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,OAAO;YACP,cAAc;YACd,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE;YACzC,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,EAAE;YACrC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,EAAE;YACnC,SAAS,EAAE,KAAK,CAAC,gBAAgB;YACjC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;SACjC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function handleDeploy(command: AgentCommand): Promise<AgentResponse>;
|
|
1
|
+
export { handleGatewayRestartCommand as handleDeploy } from '../utils/gateway-restart-handler.js';
|
package/dist/handlers/deploy.js
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
6
|
-
commandId: command.id,
|
|
7
|
-
});
|
|
8
|
-
const response = await handleGatewayRestartCommand(command);
|
|
9
|
-
const durationMs = Date.now() - startMs;
|
|
10
|
-
if (response.success) {
|
|
11
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
12
|
-
commandId: command.id,
|
|
13
|
-
durationMs,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: ${response.error ?? ''}`, { commandId: command.id, durationMs });
|
|
18
|
-
}
|
|
19
|
-
return response;
|
|
20
|
-
}
|
|
1
|
+
// See handlers/restart.ts — `deploy` is a gateway restart. The backend is
|
|
2
|
+
// expected to have installed the new runtime via agent_update / self_update
|
|
3
|
+
// first; this command only cycles the gateway.
|
|
4
|
+
export { handleGatewayRestartCommand as handleDeploy } from '../utils/gateway-restart-handler.js';
|
|
21
5
|
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/handlers/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/handlers/deploy.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,4EAA4E;AAC5E,+CAA+C;AAC/C,OAAO,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import { logCollector } from '../connection.js';
|
|
2
1
|
import { runDiagnostics } from '../utils/diagnostics.js';
|
|
3
2
|
export async function handleDiagnostics(command) {
|
|
4
|
-
const startMs = Date.now();
|
|
5
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
6
|
-
commandId: command.id,
|
|
7
|
-
});
|
|
8
3
|
const checks = command.payload.checks;
|
|
9
4
|
if (!Array.isArray(checks) || checks.length === 0) {
|
|
10
|
-
const durationMs = Date.now() - startMs;
|
|
11
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: Missing "checks" array in payload`, { commandId: command.id, durationMs });
|
|
12
5
|
return {
|
|
13
6
|
id: command.id,
|
|
14
7
|
type: 'diagnostics',
|
|
@@ -17,11 +10,6 @@ export async function handleDiagnostics(command) {
|
|
|
17
10
|
};
|
|
18
11
|
}
|
|
19
12
|
const results = await runDiagnostics(checks);
|
|
20
|
-
const durationMs = Date.now() - startMs;
|
|
21
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
22
|
-
commandId: command.id,
|
|
23
|
-
durationMs,
|
|
24
|
-
});
|
|
25
13
|
return {
|
|
26
14
|
id: command.id,
|
|
27
15
|
type: 'diagnostics',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/handlers/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/handlers/diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAqB;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA8B,CAAC;IAE9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,mCAAmC;SAC3C,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,EAAE,OAAO,EAAE;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
|
-
import
|
|
3
|
-
import { getWorkspaceDir } from '../workspace.js';
|
|
2
|
+
import { getWorkspaceDir, resolveInsideWorkspace } from '../workspace.js';
|
|
4
3
|
import { toErrorMessage } from '../utils/response.js';
|
|
5
4
|
import { logCollector } from '../connection.js';
|
|
6
5
|
export async function handleFileDelete(command) {
|
|
@@ -13,15 +12,15 @@ export async function handleFileDelete(command) {
|
|
|
13
12
|
error: 'Missing "path" in payload',
|
|
14
13
|
};
|
|
15
14
|
}
|
|
16
|
-
|
|
15
|
+
const resolvedPath = resolveInsideWorkspace(getWorkspaceDir(), filePath);
|
|
16
|
+
if (!resolvedPath) {
|
|
17
17
|
return {
|
|
18
18
|
id: command.id,
|
|
19
19
|
type: 'file_delete',
|
|
20
20
|
success: false,
|
|
21
|
-
error: 'Invalid path: must
|
|
21
|
+
error: 'Invalid path: must stay inside the workspace',
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
const resolvedPath = path.join(getWorkspaceDir(), filePath);
|
|
25
24
|
try {
|
|
26
25
|
await fs.unlink(resolvedPath);
|
|
27
26
|
logCollector?.push('file_delete', 'info', `File deleted: ${filePath}`, { path: filePath });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-delete.js","sourceRoot":"","sources":["../../src/handlers/file-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-delete.js","sourceRoot":"","sources":["../../src/handlers/file-delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAqB;IAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAc,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,8CAA8C;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3F,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;SAC7B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { getWorkspaceDir } from '../workspace.js';
|
|
3
|
+
import { getWorkspaceDir, resolveInsideWorkspace } from '../workspace.js';
|
|
4
4
|
import { toErrorMessage } from '../utils/response.js';
|
|
5
5
|
import { logCollector } from '../connection.js';
|
|
6
6
|
export async function handleFileWrite(command) {
|
|
@@ -16,15 +16,15 @@ export async function handleFileWrite(command) {
|
|
|
16
16
|
error: 'Missing "path" or "content" in payload',
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
const resolvedPath = resolveInsideWorkspace(getWorkspaceDir(), filePath);
|
|
20
|
+
if (!resolvedPath) {
|
|
20
21
|
return {
|
|
21
22
|
id: command.id,
|
|
22
23
|
type: 'file_write',
|
|
23
24
|
success: false,
|
|
24
|
-
error: 'Invalid path: must
|
|
25
|
+
error: 'Invalid path: must stay inside the workspace',
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
const resolvedPath = path.join(getWorkspaceDir(), filePath);
|
|
28
28
|
try {
|
|
29
29
|
if (!overwrite) {
|
|
30
30
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-write.js","sourceRoot":"","sources":["../../src/handlers/file-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-write.js","sourceRoot":"","sources":["../../src/handlers/file-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAc,CAAC;IAChD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;IACxC,MAAM,SAAS,GAAI,OAAO,CAAC,OAAO,CAAC,SAAiC,IAAI,IAAI,CAAC;IAC7E,MAAM,UAAU,GAAI,OAAO,CAAC,OAAO,CAAC,UAAkC,IAAI,KAAK,CAAC;IAEhF,IAAI,CAAC,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wCAAwC;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,8CAA8C;SACtD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC9B,qBAAqB;gBACrB,OAAO;oBACL,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;iBAC5D,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;QAED,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAiB,EAAE,OAAO,CAAC,CAAC;QAE7D,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,iBAAiB,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE1F,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE;SAC5C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC;SAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -2,16 +2,8 @@ import { pushKnowledgeToBackend } from '../utils/knowledge-push.js';
|
|
|
2
2
|
import { toErrorMessage } from '../utils/response.js';
|
|
3
3
|
import { logCollector } from '../connection.js';
|
|
4
4
|
export async function handleKnowledgeSync(command, api, agentId) {
|
|
5
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
6
|
-
commandId: command.id,
|
|
7
|
-
});
|
|
8
|
-
const startMs = Date.now();
|
|
9
5
|
const paths = command.payload.paths;
|
|
10
6
|
if (paths !== undefined && !Array.isArray(paths)) {
|
|
11
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: invalid paths payload`, {
|
|
12
|
-
commandId: command.id,
|
|
13
|
-
durationMs: Date.now() - startMs,
|
|
14
|
-
});
|
|
15
7
|
return {
|
|
16
8
|
id: command.id,
|
|
17
9
|
type: 'knowledge_sync',
|
|
@@ -21,9 +13,9 @@ export async function handleKnowledgeSync(command, api, agentId) {
|
|
|
21
13
|
}
|
|
22
14
|
try {
|
|
23
15
|
const { filesRead, filesUpdated } = await pushKnowledgeToBackend(api, agentId, paths);
|
|
24
|
-
|
|
16
|
+
// Domain event: the file counts. Lifecycle events come from connection.ts.
|
|
17
|
+
logCollector?.push('knowledge_sync', 'info', 'Knowledge synced to backend', {
|
|
25
18
|
commandId: command.id,
|
|
26
|
-
durationMs: Date.now() - startMs,
|
|
27
19
|
filesRead,
|
|
28
20
|
filesUpdated,
|
|
29
21
|
});
|
|
@@ -35,10 +27,6 @@ export async function handleKnowledgeSync(command, api, agentId) {
|
|
|
35
27
|
};
|
|
36
28
|
}
|
|
37
29
|
catch (e) {
|
|
38
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: ${toErrorMessage(e)}`, {
|
|
39
|
-
commandId: command.id,
|
|
40
|
-
durationMs: Date.now() - startMs,
|
|
41
|
-
});
|
|
42
30
|
return {
|
|
43
31
|
id: command.id,
|
|
44
32
|
type: 'knowledge_sync',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-sync.js","sourceRoot":"","sources":["../../src/handlers/knowledge-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAqB,EACrB,GAAa,EACb,OAAe;IAEf,
|
|
1
|
+
{"version":3,"file":"knowledge-sync.js","sourceRoot":"","sources":["../../src/handlers/knowledge-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAqB,EACrB,GAAa,EACb,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAA6B,CAAC;IAC5D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,qDAAqD;SAC7D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACtF,2EAA2E;QAC3E,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,6BAA6B,EAAE;YAC1E,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,SAAS;YACT,YAAY;SACb,CAAC,CAAC;QACH,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;SAClC,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;SACzB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function handleOnboardingComplete(command: AgentCommand): Promise<AgentResponse>;
|
|
1
|
+
export { handleGatewayRestartCommand as handleOnboardingComplete } from '../utils/gateway-restart-handler.js';
|
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
const startMs = Date.now();
|
|
5
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
6
|
-
commandId: command.id,
|
|
7
|
-
});
|
|
8
|
-
const response = await handleGatewayRestartCommand(command);
|
|
9
|
-
const durationMs = Date.now() - startMs;
|
|
10
|
-
if (response.success) {
|
|
11
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
12
|
-
commandId: command.id,
|
|
13
|
-
durationMs,
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: ${response.error ?? ''}`, { commandId: command.id, durationMs });
|
|
18
|
-
}
|
|
19
|
-
return response;
|
|
20
|
-
}
|
|
1
|
+
// See handlers/restart.ts — `onboarding_complete` acknowledges the UI wizard by
|
|
2
|
+
// restarting the gateway so it picks up whatever the wizard configured.
|
|
3
|
+
export { handleGatewayRestartCommand as handleOnboardingComplete } from '../utils/gateway-restart-handler.js';
|
|
21
4
|
//# sourceMappingURL=onboarding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/handlers/onboarding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/handlers/onboarding.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wEAAwE;AACxE,OAAO,EAAE,2BAA2B,IAAI,wBAAwB,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -13,7 +13,7 @@ export async function handlePackageInstall(command) {
|
|
|
13
13
|
data: { installed: { apt: [], npm: [], pip: [] }, errors: [] },
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
logCollector?.push('
|
|
16
|
+
logCollector?.push('package_install_start', 'info', 'Package install starting', {
|
|
17
17
|
commandId: command.id,
|
|
18
18
|
npm: npm.length ? npm : undefined,
|
|
19
19
|
pip: pip.length ? pip : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/handlers/package-install.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAqB;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAMpB,CAAC;IAEd,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;IAEhC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SAC/D,CAAC;IACJ,CAAC;IAED,YAAY,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"package-install.js","sourceRoot":"","sources":["../../src/handlers/package-install.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/pair.js
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
import { logCollector } from '../connection.js';
|
|
2
1
|
import { config } from '../config.js';
|
|
3
2
|
// STRUCT-3: This handler is intentionally a stub. The backend validates the pairing
|
|
4
3
|
// token server-side; agent-controller only echoes back the identifiers as confirmation.
|
|
5
4
|
// No local pairing operation is performed here.
|
|
6
5
|
export function handlePair(command) {
|
|
7
|
-
const startMs = Date.now();
|
|
8
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
9
|
-
commandId: command.id,
|
|
10
|
-
});
|
|
11
6
|
const pairToken = command.payload.token;
|
|
12
7
|
const targetId = command.payload.targetId;
|
|
13
8
|
if (!pairToken || !targetId) {
|
|
14
|
-
const durationMs = Date.now() - startMs;
|
|
15
|
-
logCollector?.push('command_failed', 'error', `${command.type} failed: Missing "token" or "targetId" in payload`, { commandId: command.id, durationMs });
|
|
16
9
|
return Promise.resolve({
|
|
17
10
|
id: command.id,
|
|
18
11
|
type: 'pair',
|
|
@@ -20,11 +13,6 @@ export function handlePair(command) {
|
|
|
20
13
|
error: 'Missing "token" or "targetId" in payload',
|
|
21
14
|
});
|
|
22
15
|
}
|
|
23
|
-
const durationMs = Date.now() - startMs;
|
|
24
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
25
|
-
commandId: command.id,
|
|
26
|
-
durationMs,
|
|
27
|
-
});
|
|
28
16
|
return Promise.resolve({
|
|
29
17
|
id: command.id,
|
|
30
18
|
type: 'pair',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/handlers/pair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"pair.js","sourceRoot":"","sources":["../../src/handlers/pair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,oFAAoF;AACpF,wFAAwF;AACxF,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAe,CAAC;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAkB,CAAC;IAEpD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0CAA0C;SAClD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC;QACrB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,MAAM,EAAE,IAAI;YACZ,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function handleRestart(command: AgentCommand): Promise<AgentResponse>;
|
|
1
|
+
export { handleGatewayRestartCommand as handleRestart } from '../utils/gateway-restart-handler.js';
|
package/dist/handlers/restart.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
logCollector?.push('gateway_restart', 'info', 'Gateway restart requested', {
|
|
5
|
-
commandId: command.id,
|
|
6
|
-
});
|
|
7
|
-
return handleGatewayRestartCommand(command);
|
|
8
|
-
}
|
|
1
|
+
// `restart`, `deploy` and `onboarding_complete` are the same operation — a
|
|
2
|
+
// gateway restart. One implementation, three command names.
|
|
3
|
+
export { handleGatewayRestartCommand as handleRestart } from '../utils/gateway-restart-handler.js';
|
|
9
4
|
//# sourceMappingURL=restart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/handlers/restart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"restart.js","sourceRoot":"","sources":["../../src/handlers/restart.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4DAA4D;AAC5D,OAAO,EAAE,2BAA2B,IAAI,aAAa,EAAE,MAAM,qCAAqC,CAAC"}
|
package/dist/handlers/stop.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import { logCollector } from '../connection.js';
|
|
2
1
|
export function handleStop(command) {
|
|
3
|
-
logCollector?.push('command_received', 'info', `Command: ${command.type}`, {
|
|
4
|
-
commandId: command.id,
|
|
5
|
-
});
|
|
6
|
-
logCollector?.push('command_completed', 'info', `${command.type} completed`, {
|
|
7
|
-
commandId: command.id,
|
|
8
|
-
});
|
|
9
2
|
const response = {
|
|
10
3
|
id: command.id,
|
|
11
4
|
type: 'stop',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/handlers/stop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/handlers/stop.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,OAAqB;IAC9C,MAAM,QAAQ,GAAkB;QAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE;KAC9C,CAAC;IAEF,yFAAyF;IACzF,yFAAyF;IACzF,qFAAqF;IACrF,8CAA8C;IAC9C,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
|