@kdonev/termscape 0.1.0
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/LICENSE +21 -0
- package/README.md +288 -0
- package/dist/agents/env.d.ts +36 -0
- package/dist/agents/env.d.ts.map +1 -0
- package/dist/agents/env.js +61 -0
- package/dist/agents/env.js.map +1 -0
- package/dist/agents/profiles.d.ts +45 -0
- package/dist/agents/profiles.d.ts.map +1 -0
- package/dist/agents/profiles.js +123 -0
- package/dist/agents/profiles.js.map +1 -0
- package/dist/agents/resolve.d.ts +16 -0
- package/dist/agents/resolve.d.ts.map +1 -0
- package/dist/agents/resolve.js +71 -0
- package/dist/agents/resolve.js.map +1 -0
- package/dist/agents/router.d.ts +29 -0
- package/dist/agents/router.d.ts.map +1 -0
- package/dist/agents/router.js +83 -0
- package/dist/agents/router.js.map +1 -0
- package/dist/agents/tokens.d.ts +21 -0
- package/dist/agents/tokens.d.ts.map +1 -0
- package/dist/agents/tokens.js +39 -0
- package/dist/agents/tokens.js.map +1 -0
- package/dist/agents/wiring.d.ts +30 -0
- package/dist/agents/wiring.d.ts.map +1 -0
- package/dist/agents/wiring.js +110 -0
- package/dist/agents/wiring.js.map +1 -0
- package/dist/browser.d.ts +13 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +34 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +200 -0
- package/dist/cli.js.map +1 -0
- package/dist/db/index.d.ts +14 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +24 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrations.d.ts +15 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +176 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/store.d.ts +71 -0
- package/dist/db/store.d.ts.map +1 -0
- package/dist/db/store.js +341 -0
- package/dist/db/store.js.map +1 -0
- package/dist/hub.d.ts +188 -0
- package/dist/hub.d.ts.map +1 -0
- package/dist/hub.js +636 -0
- package/dist/hub.js.map +1 -0
- package/dist/hub.tgz +0 -0
- package/dist/mcp/server.d.ts +31 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +66 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/paths.d.ts +27 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +31 -0
- package/dist/paths.js.map +1 -0
- package/dist/protocol/address.d.ts +15 -0
- package/dist/protocol/address.d.ts.map +1 -0
- package/dist/protocol/address.js +39 -0
- package/dist/protocol/address.js.map +1 -0
- package/dist/protocol/domain.d.ts +151 -0
- package/dist/protocol/domain.d.ts.map +1 -0
- package/dist/protocol/domain.js +104 -0
- package/dist/protocol/domain.js.map +1 -0
- package/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +7 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/inject.d.ts +29 -0
- package/dist/protocol/inject.d.ts.map +1 -0
- package/dist/protocol/inject.js +40 -0
- package/dist/protocol/inject.js.map +1 -0
- package/dist/protocol/mcp-tools.d.ts +45 -0
- package/dist/protocol/mcp-tools.d.ts.map +1 -0
- package/dist/protocol/mcp-tools.js +46 -0
- package/dist/protocol/mcp-tools.js.map +1 -0
- package/dist/protocol/peer.d.ts +304 -0
- package/dist/protocol/peer.d.ts.map +1 -0
- package/dist/protocol/peer.js +183 -0
- package/dist/protocol/peer.js.map +1 -0
- package/dist/protocol/ws.d.ts +416 -0
- package/dist/protocol/ws.d.ts.map +1 -0
- package/dist/protocol/ws.js +119 -0
- package/dist/protocol/ws.js.map +1 -0
- package/dist/remote/deployer.d.ts +78 -0
- package/dist/remote/deployer.d.ts.map +1 -0
- package/dist/remote/deployer.js +216 -0
- package/dist/remote/deployer.js.map +1 -0
- package/dist/remote/enroll.d.ts +14 -0
- package/dist/remote/enroll.d.ts.map +1 -0
- package/dist/remote/enroll.js +244 -0
- package/dist/remote/enroll.js.map +1 -0
- package/dist/remote/join-script.d.ts +29 -0
- package/dist/remote/join-script.d.ts.map +1 -0
- package/dist/remote/join-script.js +709 -0
- package/dist/remote/join-script.js.map +1 -0
- package/dist/remote/join.d.ts +19 -0
- package/dist/remote/join.d.ts.map +1 -0
- package/dist/remote/join.js +195 -0
- package/dist/remote/join.js.map +1 -0
- package/dist/remote/lan.d.ts +45 -0
- package/dist/remote/lan.d.ts.map +1 -0
- package/dist/remote/lan.js +105 -0
- package/dist/remote/lan.js.map +1 -0
- package/dist/remote/peer-serve.d.ts +27 -0
- package/dist/remote/peer-serve.d.ts.map +1 -0
- package/dist/remote/peer-serve.js +274 -0
- package/dist/remote/peer-serve.js.map +1 -0
- package/dist/remote/peer.d.ts +62 -0
- package/dist/remote/peer.d.ts.map +1 -0
- package/dist/remote/peer.js +250 -0
- package/dist/remote/peer.js.map +1 -0
- package/dist/remote/registry.d.ts +104 -0
- package/dist/remote/registry.d.ts.map +1 -0
- package/dist/remote/registry.js +359 -0
- package/dist/remote/registry.js.map +1 -0
- package/dist/remote/tarball.d.ts +9 -0
- package/dist/remote/tarball.d.ts.map +1 -0
- package/dist/remote/tarball.js +22 -0
- package/dist/remote/tarball.js.map +1 -0
- package/dist/server.d.ts +54 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +438 -0
- package/dist/server.js.map +1 -0
- package/dist/session/manager.d.ts +104 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +421 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/session/pty.d.ts +114 -0
- package/dist/session/pty.d.ts.map +1 -0
- package/dist/session/pty.js +300 -0
- package/dist/session/pty.js.map +1 -0
- package/package.json +49 -0
- package/web/assets/index-B2JtCtHa.css +1 -0
- package/web/assets/index-BOqZOoep.js +107 -0
- package/web/index.html +13 -0
package/dist/hub.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/hub.tgz
ADDED
|
Binary file
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
+
/**
|
|
4
|
+
* Operations the MCP tools need. Implemented by the Hub; kept as an interface
|
|
5
|
+
* so the tool layer has no idea whether a target agent is local or on a peer.
|
|
6
|
+
*/
|
|
7
|
+
export interface AgentApi {
|
|
8
|
+
whoami(sessionId: string): Promise<unknown>;
|
|
9
|
+
listAgents(sessionId: string, workspace?: string): Promise<unknown>;
|
|
10
|
+
sendMessage(sessionId: string, to: string, text: string): Promise<unknown>;
|
|
11
|
+
spawnAgent(sessionId: string, opts: {
|
|
12
|
+
profile?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
workspace?: string;
|
|
15
|
+
prompt?: string;
|
|
16
|
+
}): Promise<unknown>;
|
|
17
|
+
readScreen(sessionId: string, address: string, lines?: number): Promise<unknown>;
|
|
18
|
+
setStatus(sessionId: string, text: string): Promise<unknown>;
|
|
19
|
+
stopAgent(sessionId: string, address: string): Promise<unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build an MCP server bound to one calling agent.
|
|
23
|
+
*
|
|
24
|
+
* A fresh server and transport are created per request (stateless mode). That
|
|
25
|
+
* is the right shape here because the caller's identity comes from the bearer
|
|
26
|
+
* token on each request, so there is no cross-request session state worth
|
|
27
|
+
* keeping, and no way for one agent's connection to be reused by another.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildMcpServer(callerSessionId: string, api: AgentApi): McpServer;
|
|
30
|
+
export declare function buildMcpTransport(): StreamableHTTPServerTransport;
|
|
31
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAWnG;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3E,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7E,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE;AAsBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,SAAS,CA2EhF;AAED,wBAAgB,iBAAiB,IAAI,6BAA6B,CAGjE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
3
|
+
import { ListAgentsInput, ReadScreenInput, SendMessageInput, SetStatusInput, SpawnAgentInput, StopAgentInput, WhoamiInput, } from '../protocol/index.js';
|
|
4
|
+
function ok(value) {
|
|
5
|
+
return { content: [{ type: 'text', text: JSON.stringify(value, null, 2) }] };
|
|
6
|
+
}
|
|
7
|
+
function fail(message) {
|
|
8
|
+
return {
|
|
9
|
+
isError: true,
|
|
10
|
+
content: [{ type: 'text', text: message }],
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/** Wrap a handler so a thrown error becomes a tool error, not a 500. */
|
|
14
|
+
async function guard(fn) {
|
|
15
|
+
try {
|
|
16
|
+
return ok(await fn());
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
return fail(err.message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Build an MCP server bound to one calling agent.
|
|
24
|
+
*
|
|
25
|
+
* A fresh server and transport are created per request (stateless mode). That
|
|
26
|
+
* is the right shape here because the caller's identity comes from the bearer
|
|
27
|
+
* token on each request, so there is no cross-request session state worth
|
|
28
|
+
* keeping, and no way for one agent's connection to be reused by another.
|
|
29
|
+
*/
|
|
30
|
+
export function buildMcpServer(callerSessionId, api) {
|
|
31
|
+
const server = new McpServer({ name: 'termscape', version: '0.1.0' }, { capabilities: { tools: {} } });
|
|
32
|
+
server.registerTool('whoami', {
|
|
33
|
+
description: 'Your own agent address, workspace and working directory.',
|
|
34
|
+
inputSchema: WhoamiInput.shape,
|
|
35
|
+
}, () => guard(() => api.whoami(callerSessionId)));
|
|
36
|
+
server.registerTool('list_agents', {
|
|
37
|
+
description: 'List every agent on the canvas: address, profile, whether it is idle or busy, and what it is doing.',
|
|
38
|
+
inputSchema: ListAgentsInput.shape,
|
|
39
|
+
}, ({ workspace }) => guard(() => api.listAgents(callerSessionId, workspace)));
|
|
40
|
+
server.registerTool('send_message', {
|
|
41
|
+
description: 'Send a message to another agent. It is typed directly into their terminal, immediately, even if they are mid-task. Your address is attached automatically and cannot be forged.',
|
|
42
|
+
inputSchema: SendMessageInput.shape,
|
|
43
|
+
}, ({ to, text }) => guard(() => api.sendMessage(callerSessionId, to, text)));
|
|
44
|
+
server.registerTool('spawn_agent', {
|
|
45
|
+
description: 'Start a new agent, by default in your own workspace, and optionally give it a first instruction. Use this to delegate work you want done in parallel.',
|
|
46
|
+
inputSchema: SpawnAgentInput.shape,
|
|
47
|
+
}, (opts) => guard(() => api.spawnAgent(callerSessionId, opts)));
|
|
48
|
+
server.registerTool('read_screen', {
|
|
49
|
+
description: "Read the last lines of another agent's terminal without interrupting it. Prefer this over messaging when you only want to check progress.",
|
|
50
|
+
inputSchema: ReadScreenInput.shape,
|
|
51
|
+
}, ({ address, lines }) => guard(() => api.readScreen(callerSessionId, address, lines)));
|
|
52
|
+
server.registerTool('set_status', {
|
|
53
|
+
description: 'Set a short status label shown under your window on the canvas, so the human can see what you are doing.',
|
|
54
|
+
inputSchema: SetStatusInput.shape,
|
|
55
|
+
}, ({ text }) => guard(() => api.setStatus(callerSessionId, text)));
|
|
56
|
+
server.registerTool('stop_agent', {
|
|
57
|
+
description: 'Stop an agent you spawned.',
|
|
58
|
+
inputSchema: StopAgentInput.shape,
|
|
59
|
+
}, ({ address }) => guard(() => api.stopAgent(callerSessionId, address)));
|
|
60
|
+
return server;
|
|
61
|
+
}
|
|
62
|
+
export function buildMcpTransport() {
|
|
63
|
+
// Stateless: no server-assigned MCP session ids. Identity is the token.
|
|
64
|
+
return new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All hub state lives under one root so it is trivially portable and
|
|
3
|
+
* trivially deletable. `TERMSCAPE_HOME` overrides it, which is what the
|
|
4
|
+
* integration tests use to get an isolated hub per test.
|
|
5
|
+
*/
|
|
6
|
+
export declare function hubHome(): string;
|
|
7
|
+
export declare const paths: {
|
|
8
|
+
home: typeof hubHome;
|
|
9
|
+
db: () => string;
|
|
10
|
+
/** Generated per-session MCP configs, settings and briefs. */
|
|
11
|
+
run: () => string;
|
|
12
|
+
sessionDir: (sessionId: string) => string;
|
|
13
|
+
profiles: () => string;
|
|
14
|
+
tokenFile: () => string;
|
|
15
|
+
/**
|
|
16
|
+
* Durable credential an enrolled host presents when it dials its canvas hub
|
|
17
|
+
* again. Written 0600; its presence is what makes a reboot rejoin silently.
|
|
18
|
+
*/
|
|
19
|
+
hostTokenFile: () => string;
|
|
20
|
+
/**
|
|
21
|
+
* PID of the running hub. The join installer reads it to stop a previous
|
|
22
|
+
* hub before replacing its files — on Windows an open .node cannot be
|
|
23
|
+
* deleted, so re-joining fails outright without this.
|
|
24
|
+
*/
|
|
25
|
+
pidFile: () => string;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED,eAAO,MAAM,KAAK;;;IAGhB,8DAA8D;;4BAEtC,MAAM;;;IAG9B;;;OAGG;;IAEH;;;;OAIG;;CAEJ,CAAC"}
|
package/dist/paths.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* All hub state lives under one root so it is trivially portable and
|
|
5
|
+
* trivially deletable. `TERMSCAPE_HOME` overrides it, which is what the
|
|
6
|
+
* integration tests use to get an isolated hub per test.
|
|
7
|
+
*/
|
|
8
|
+
export function hubHome() {
|
|
9
|
+
return process.env.TERMSCAPE_HOME ?? join(homedir(), '.termscape');
|
|
10
|
+
}
|
|
11
|
+
export const paths = {
|
|
12
|
+
home: hubHome,
|
|
13
|
+
db: () => join(hubHome(), 'state.db'),
|
|
14
|
+
/** Generated per-session MCP configs, settings and briefs. */
|
|
15
|
+
run: () => join(hubHome(), 'run'),
|
|
16
|
+
sessionDir: (sessionId) => join(hubHome(), 'run', sessionId),
|
|
17
|
+
profiles: () => join(hubHome(), 'agents.toml'),
|
|
18
|
+
tokenFile: () => join(hubHome(), 'token'),
|
|
19
|
+
/**
|
|
20
|
+
* Durable credential an enrolled host presents when it dials its canvas hub
|
|
21
|
+
* again. Written 0600; its presence is what makes a reboot rejoin silently.
|
|
22
|
+
*/
|
|
23
|
+
hostTokenFile: () => join(hubHome(), 'host-token'),
|
|
24
|
+
/**
|
|
25
|
+
* PID of the running hub. The join installer reads it to stop a previous
|
|
26
|
+
* hub before replacing its files — on Windows an open .node cannot be
|
|
27
|
+
* deleted, so re-joining fails outright without this.
|
|
28
|
+
*/
|
|
29
|
+
pidFile: () => join(hubHome(), 'hub.pid'),
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC;IACrC,8DAA8D;IAC9D,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC;IACjC,UAAU,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC;IACpE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC;IAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;IACzC;;;OAGG;IACH,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC;IAClD;;;;OAIG;IACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;CAC1C,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Agent addressing: `workspace/name`, unique across all connected hubs. */
|
|
2
|
+
export interface ParsedAddress {
|
|
3
|
+
workspace: string;
|
|
4
|
+
name: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function makeAddress(workspace: string, name: string): string;
|
|
7
|
+
export declare function parseAddress(addr: string): ParsedAddress | null;
|
|
8
|
+
/** Lowercase, hyphenated, safe for use in an address segment. */
|
|
9
|
+
export declare function slugify(input: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Allocate a name unique within `taken`, suffixing -2, -3, ... on collision.
|
|
12
|
+
* Deterministic, so restoring a workspace reproduces the same names.
|
|
13
|
+
*/
|
|
14
|
+
export declare function uniqueName(desired: string, taken: Iterable<string>): string;
|
|
15
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAO/D;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM7C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAS3E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Agent addressing: `workspace/name`, unique across all connected hubs. */
|
|
2
|
+
export function makeAddress(workspace, name) {
|
|
3
|
+
return `${workspace}/${name}`;
|
|
4
|
+
}
|
|
5
|
+
export function parseAddress(addr) {
|
|
6
|
+
const i = addr.indexOf('/');
|
|
7
|
+
if (i <= 0 || i === addr.length - 1)
|
|
8
|
+
return null;
|
|
9
|
+
const workspace = addr.slice(0, i);
|
|
10
|
+
const name = addr.slice(i + 1);
|
|
11
|
+
if (name.includes('/'))
|
|
12
|
+
return null;
|
|
13
|
+
return { workspace, name };
|
|
14
|
+
}
|
|
15
|
+
/** Lowercase, hyphenated, safe for use in an address segment. */
|
|
16
|
+
export function slugify(input) {
|
|
17
|
+
const s = input
|
|
18
|
+
.toLowerCase()
|
|
19
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
20
|
+
.replace(/^-+|-+$/g, '');
|
|
21
|
+
return s.length > 0 ? s.slice(0, 40) : 'agent';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Allocate a name unique within `taken`, suffixing -2, -3, ... on collision.
|
|
25
|
+
* Deterministic, so restoring a workspace reproduces the same names.
|
|
26
|
+
*/
|
|
27
|
+
export function uniqueName(desired, taken) {
|
|
28
|
+
const set = new Set(taken);
|
|
29
|
+
const base = slugify(desired);
|
|
30
|
+
if (!set.has(base))
|
|
31
|
+
return base;
|
|
32
|
+
for (let n = 2; n < 10_000; n++) {
|
|
33
|
+
const candidate = `${base}-${n}`;
|
|
34
|
+
if (!set.has(candidate))
|
|
35
|
+
return candidate;
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`could not allocate a unique name for "${desired}"`);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAO5E,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,IAAY;IACzD,OAAO,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,MAAM,CAAC,GAAG,KAAK;SACZ,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAuB;IACjE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Lifecycle of a PTY-backed session. `stopped` means restored-from-DB but not running. */
|
|
3
|
+
export declare const SessionState: z.ZodEnum<{
|
|
4
|
+
starting: "starting";
|
|
5
|
+
running: "running";
|
|
6
|
+
stopped: "stopped";
|
|
7
|
+
exited: "exited";
|
|
8
|
+
failed: "failed";
|
|
9
|
+
}>;
|
|
10
|
+
export type SessionState = z.infer<typeof SessionState>;
|
|
11
|
+
/** Coarse activity signal shown as a chip on the canvas window. */
|
|
12
|
+
export declare const AgentStatus: z.ZodEnum<{
|
|
13
|
+
idle: "idle";
|
|
14
|
+
busy: "busy";
|
|
15
|
+
unknown: "unknown";
|
|
16
|
+
}>;
|
|
17
|
+
export type AgentStatus = z.infer<typeof AgentStatus>;
|
|
18
|
+
export declare const WorkspaceKind: z.ZodEnum<{
|
|
19
|
+
local: "local";
|
|
20
|
+
remote: "remote";
|
|
21
|
+
}>;
|
|
22
|
+
export type WorkspaceKind = z.infer<typeof WorkspaceKind>;
|
|
23
|
+
/**
|
|
24
|
+
* How the link to a host was established. `ssh` hosts are deployed and dialled
|
|
25
|
+
* by this hub; `enrolled` hosts ran the join installer and dialled in to us.
|
|
26
|
+
* The peer protocol is identical either way — only who opens the socket differs.
|
|
27
|
+
*/
|
|
28
|
+
export declare const HostKind: z.ZodEnum<{
|
|
29
|
+
ssh: "ssh";
|
|
30
|
+
enrolled: "enrolled";
|
|
31
|
+
}>;
|
|
32
|
+
export type HostKind = z.infer<typeof HostKind>;
|
|
33
|
+
export declare const Host: z.ZodObject<{
|
|
34
|
+
id: z.ZodString;
|
|
35
|
+
label: z.ZodString;
|
|
36
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
37
|
+
ssh: "ssh";
|
|
38
|
+
enrolled: "enrolled";
|
|
39
|
+
}>>;
|
|
40
|
+
sshHost: z.ZodNullable<z.ZodString>;
|
|
41
|
+
sshUser: z.ZodNullable<z.ZodString>;
|
|
42
|
+
sshPort: z.ZodDefault<z.ZodNumber>;
|
|
43
|
+
platform: z.ZodNullable<z.ZodString>;
|
|
44
|
+
hubVersion: z.ZodNullable<z.ZodString>;
|
|
45
|
+
state: z.ZodEnum<{
|
|
46
|
+
error: "error";
|
|
47
|
+
disconnected: "disconnected";
|
|
48
|
+
connecting: "connecting";
|
|
49
|
+
connected: "connected";
|
|
50
|
+
}>;
|
|
51
|
+
lastSeenAt: z.ZodNullable<z.ZodNumber>;
|
|
52
|
+
error: z.ZodNullable<z.ZodString>;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export type Host = z.infer<typeof Host>;
|
|
55
|
+
export declare const Workspace: z.ZodObject<{
|
|
56
|
+
id: z.ZodString;
|
|
57
|
+
name: z.ZodString;
|
|
58
|
+
kind: z.ZodEnum<{
|
|
59
|
+
local: "local";
|
|
60
|
+
remote: "remote";
|
|
61
|
+
}>;
|
|
62
|
+
rootPath: z.ZodString;
|
|
63
|
+
hostId: z.ZodNullable<z.ZodString>;
|
|
64
|
+
color: z.ZodString;
|
|
65
|
+
createdAt: z.ZodNumber;
|
|
66
|
+
archivedAt: z.ZodNullable<z.ZodNumber>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
export type Workspace = z.infer<typeof Workspace>;
|
|
69
|
+
export declare const WindowRect: z.ZodObject<{
|
|
70
|
+
x: z.ZodNumber;
|
|
71
|
+
y: z.ZodNumber;
|
|
72
|
+
w: z.ZodNumber;
|
|
73
|
+
h: z.ZodNumber;
|
|
74
|
+
z: z.ZodNumber;
|
|
75
|
+
collapsed: z.ZodBoolean;
|
|
76
|
+
}, z.core.$strip>;
|
|
77
|
+
export type WindowRect = z.infer<typeof WindowRect>;
|
|
78
|
+
export declare const Viewport: z.ZodObject<{
|
|
79
|
+
panX: z.ZodNumber;
|
|
80
|
+
panY: z.ZodNumber;
|
|
81
|
+
zoom: z.ZodNumber;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
export type Viewport = z.infer<typeof Viewport>;
|
|
84
|
+
export declare const Session: z.ZodObject<{
|
|
85
|
+
id: z.ZodString;
|
|
86
|
+
workspaceId: z.ZodString;
|
|
87
|
+
name: z.ZodString;
|
|
88
|
+
address: z.ZodString;
|
|
89
|
+
profile: z.ZodString;
|
|
90
|
+
cwd: z.ZodString;
|
|
91
|
+
agentSessionUuid: z.ZodNullable<z.ZodString>;
|
|
92
|
+
spawnedBy: z.ZodNullable<z.ZodString>;
|
|
93
|
+
state: z.ZodEnum<{
|
|
94
|
+
starting: "starting";
|
|
95
|
+
running: "running";
|
|
96
|
+
stopped: "stopped";
|
|
97
|
+
exited: "exited";
|
|
98
|
+
failed: "failed";
|
|
99
|
+
}>;
|
|
100
|
+
status: z.ZodEnum<{
|
|
101
|
+
idle: "idle";
|
|
102
|
+
busy: "busy";
|
|
103
|
+
unknown: "unknown";
|
|
104
|
+
}>;
|
|
105
|
+
statusText: z.ZodNullable<z.ZodString>;
|
|
106
|
+
title: z.ZodNullable<z.ZodString>;
|
|
107
|
+
pid: z.ZodNullable<z.ZodNumber>;
|
|
108
|
+
exitCode: z.ZodNullable<z.ZodNumber>;
|
|
109
|
+
cols: z.ZodNumber;
|
|
110
|
+
rows: z.ZodNumber;
|
|
111
|
+
resumable: z.ZodBoolean;
|
|
112
|
+
createdAt: z.ZodNumber;
|
|
113
|
+
exitedAt: z.ZodNullable<z.ZodNumber>;
|
|
114
|
+
lastActiveAt: z.ZodNumber;
|
|
115
|
+
window: z.ZodObject<{
|
|
116
|
+
x: z.ZodNumber;
|
|
117
|
+
y: z.ZodNumber;
|
|
118
|
+
w: z.ZodNumber;
|
|
119
|
+
h: z.ZodNumber;
|
|
120
|
+
z: z.ZodNumber;
|
|
121
|
+
collapsed: z.ZodBoolean;
|
|
122
|
+
}, z.core.$strip>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export type Session = z.infer<typeof Session>;
|
|
125
|
+
export declare const DeliveryState: z.ZodEnum<{
|
|
126
|
+
failed: "failed";
|
|
127
|
+
delivered: "delivered";
|
|
128
|
+
}>;
|
|
129
|
+
export type DeliveryState = z.infer<typeof DeliveryState>;
|
|
130
|
+
export declare const Message: z.ZodObject<{
|
|
131
|
+
id: z.ZodString;
|
|
132
|
+
fromAddr: z.ZodString;
|
|
133
|
+
toAddr: z.ZodString;
|
|
134
|
+
body: z.ZodString;
|
|
135
|
+
sentAt: z.ZodNumber;
|
|
136
|
+
deliveredAt: z.ZodNullable<z.ZodNumber>;
|
|
137
|
+
deliveryState: z.ZodEnum<{
|
|
138
|
+
failed: "failed";
|
|
139
|
+
delivered: "delivered";
|
|
140
|
+
}>;
|
|
141
|
+
error: z.ZodNullable<z.ZodString>;
|
|
142
|
+
}, z.core.$strip>;
|
|
143
|
+
export type Message = z.infer<typeof Message>;
|
|
144
|
+
export declare const AgentProfileInfo: z.ZodObject<{
|
|
145
|
+
id: z.ZodString;
|
|
146
|
+
description: z.ZodString;
|
|
147
|
+
mcp: z.ZodBoolean;
|
|
148
|
+
resumable: z.ZodBoolean;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type AgentProfileInfo = z.infer<typeof AgentProfileInfo>;
|
|
151
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2FAA2F;AAC3F,eAAO,MAAM,YAAY;;;;;;EAMvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,mEAAmE;AACnE,eAAO,MAAM,WAAW;;;;EAAsC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,aAAa;;;EAA8B,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;EAA8B,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;iBAef,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,SAAS;;;;;;;;;;;;iBASpB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,UAAU;;;;;;;iBAOrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,QAAQ;;;;iBAInB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BlB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,aAAa;;;EAAkC,CAAC;AAC7D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,OAAO;;;;;;;;;;;;iBASlB,CAAC;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,gBAAgB;;;;;iBAM3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Lifecycle of a PTY-backed session. `stopped` means restored-from-DB but not running. */
|
|
3
|
+
export const SessionState = z.enum([
|
|
4
|
+
'starting',
|
|
5
|
+
'running',
|
|
6
|
+
'stopped',
|
|
7
|
+
'exited',
|
|
8
|
+
'failed',
|
|
9
|
+
]);
|
|
10
|
+
/** Coarse activity signal shown as a chip on the canvas window. */
|
|
11
|
+
export const AgentStatus = z.enum(['idle', 'busy', 'unknown']);
|
|
12
|
+
export const WorkspaceKind = z.enum(['local', 'remote']);
|
|
13
|
+
/**
|
|
14
|
+
* How the link to a host was established. `ssh` hosts are deployed and dialled
|
|
15
|
+
* by this hub; `enrolled` hosts ran the join installer and dialled in to us.
|
|
16
|
+
* The peer protocol is identical either way — only who opens the socket differs.
|
|
17
|
+
*/
|
|
18
|
+
export const HostKind = z.enum(['ssh', 'enrolled']);
|
|
19
|
+
export const Host = z.object({
|
|
20
|
+
id: z.string(),
|
|
21
|
+
label: z.string(),
|
|
22
|
+
kind: HostKind.default('ssh'),
|
|
23
|
+
// Null for enrolled hosts: they reached us, so we hold no credentials
|
|
24
|
+
// for reaching them.
|
|
25
|
+
sshHost: z.string().nullable(),
|
|
26
|
+
sshUser: z.string().nullable(),
|
|
27
|
+
sshPort: z.number().int().positive().default(22),
|
|
28
|
+
/** `linux-x64`, `darwin-arm64`, ... as reported by an enrolling host. */
|
|
29
|
+
platform: z.string().nullable(),
|
|
30
|
+
hubVersion: z.string().nullable(),
|
|
31
|
+
state: z.enum(['disconnected', 'connecting', 'connected', 'error']),
|
|
32
|
+
lastSeenAt: z.number().nullable(),
|
|
33
|
+
error: z.string().nullable(),
|
|
34
|
+
});
|
|
35
|
+
export const Workspace = z.object({
|
|
36
|
+
id: z.string(),
|
|
37
|
+
name: z.string(),
|
|
38
|
+
kind: WorkspaceKind,
|
|
39
|
+
rootPath: z.string(),
|
|
40
|
+
hostId: z.string().nullable(),
|
|
41
|
+
color: z.string(),
|
|
42
|
+
createdAt: z.number(),
|
|
43
|
+
archivedAt: z.number().nullable(),
|
|
44
|
+
});
|
|
45
|
+
export const WindowRect = z.object({
|
|
46
|
+
x: z.number(),
|
|
47
|
+
y: z.number(),
|
|
48
|
+
w: z.number(),
|
|
49
|
+
h: z.number(),
|
|
50
|
+
z: z.number(),
|
|
51
|
+
collapsed: z.boolean(),
|
|
52
|
+
});
|
|
53
|
+
export const Viewport = z.object({
|
|
54
|
+
panX: z.number(),
|
|
55
|
+
panY: z.number(),
|
|
56
|
+
zoom: z.number(),
|
|
57
|
+
});
|
|
58
|
+
export const Session = z.object({
|
|
59
|
+
id: z.string(),
|
|
60
|
+
workspaceId: z.string(),
|
|
61
|
+
/** Unique within the workspace; `workspace/name` is the routable address. */
|
|
62
|
+
name: z.string(),
|
|
63
|
+
address: z.string(),
|
|
64
|
+
profile: z.string(),
|
|
65
|
+
cwd: z.string(),
|
|
66
|
+
/** The agent CLI's own conversation id (Claude Code `--session-id`). */
|
|
67
|
+
agentSessionUuid: z.string().nullable(),
|
|
68
|
+
/** Parent session that called spawn_agent, for lineage edges. */
|
|
69
|
+
spawnedBy: z.string().nullable(),
|
|
70
|
+
state: SessionState,
|
|
71
|
+
status: AgentStatus,
|
|
72
|
+
/** Free-text label the agent sets via the set_status tool. */
|
|
73
|
+
statusText: z.string().nullable(),
|
|
74
|
+
title: z.string().nullable(),
|
|
75
|
+
pid: z.number().nullable(),
|
|
76
|
+
exitCode: z.number().nullable(),
|
|
77
|
+
cols: z.number(),
|
|
78
|
+
rows: z.number(),
|
|
79
|
+
/** True when the profile supports being brought back with --resume. */
|
|
80
|
+
resumable: z.boolean(),
|
|
81
|
+
createdAt: z.number(),
|
|
82
|
+
exitedAt: z.number().nullable(),
|
|
83
|
+
lastActiveAt: z.number(),
|
|
84
|
+
window: WindowRect,
|
|
85
|
+
});
|
|
86
|
+
export const DeliveryState = z.enum(['delivered', 'failed']);
|
|
87
|
+
export const Message = z.object({
|
|
88
|
+
id: z.string(),
|
|
89
|
+
fromAddr: z.string(),
|
|
90
|
+
toAddr: z.string(),
|
|
91
|
+
body: z.string(),
|
|
92
|
+
sentAt: z.number(),
|
|
93
|
+
deliveredAt: z.number().nullable(),
|
|
94
|
+
deliveryState: DeliveryState,
|
|
95
|
+
error: z.string().nullable(),
|
|
96
|
+
});
|
|
97
|
+
export const AgentProfileInfo = z.object({
|
|
98
|
+
id: z.string(),
|
|
99
|
+
description: z.string(),
|
|
100
|
+
/** false for plain terminals like the `shell` profile. */
|
|
101
|
+
mcp: z.boolean(),
|
|
102
|
+
resumable: z.boolean(),
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encoding for text written into another agent's PTY.
|
|
3
|
+
*
|
|
4
|
+
* Two properties matter here and both are security-relevant:
|
|
5
|
+
*
|
|
6
|
+
* 1. Attribution cannot be forged. The `from` address is supplied by the hub
|
|
7
|
+
* from the sender's bearer token, never by the sending agent.
|
|
8
|
+
*
|
|
9
|
+
* 2. A message cannot break out of its own paste. Bracketed paste is framed
|
|
10
|
+
* by ESC[200~ ... ESC[201~; a body containing the terminator would end the
|
|
11
|
+
* paste early and let the remainder be interpreted as keystrokes. We strip
|
|
12
|
+
* the terminator (and bare ESC) from the body before framing.
|
|
13
|
+
*/
|
|
14
|
+
export declare const PASTE_START = "\u001B[200~";
|
|
15
|
+
export declare const PASTE_END = "\u001B[201~";
|
|
16
|
+
export type InjectMode = 'bracketed' | 'raw';
|
|
17
|
+
/** Strip anything that would let a body escape its paste framing. */
|
|
18
|
+
export declare function sanitizeMessageBody(text: string): string;
|
|
19
|
+
/** The visible, unspoofable prefix a receiving agent sees. */
|
|
20
|
+
export declare function formatMessage(from: string, text: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Wire bytes for injecting `body` into a PTY.
|
|
23
|
+
*
|
|
24
|
+
* Bracketed paste makes a multi-line body arrive as one atomic paste rather
|
|
25
|
+
* than as a line-by-line keystroke stream, so a CLI that reads line-at-a-time
|
|
26
|
+
* does not act on a half-delivered message. The trailing CR submits it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function encodeInjection(body: string, mode: InjectMode): string;
|
|
29
|
+
//# sourceMappingURL=inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,WAAW,gBAAc,CAAC;AACvC,eAAO,MAAM,SAAS,gBAAc,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC;AAE7C,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAItE"}
|