@botiverse/oar 0.31.0 → 0.32.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/README.md +8 -7
- package/dist/contracts/records.d.ts +3 -3
- package/dist/contracts/records.d.ts.map +1 -1
- package/dist/contracts/session-options.d.ts +15 -10
- package/dist/contracts/session-options.d.ts.map +1 -1
- package/dist/runtimes/antigravity/session.d.ts +12 -1
- package/dist/runtimes/antigravity/session.d.ts.map +1 -1
- package/dist/runtimes/antigravity/session.js +18 -1
- package/dist/runtimes/antigravity/session.js.map +1 -1
- package/dist/runtimes/cursor/model.js +1 -1
- package/dist/runtimes/cursor/model.js.map +1 -1
- package/dist/runtimes/grok/index.d.ts +0 -1
- package/dist/runtimes/grok/index.d.ts.map +1 -1
- package/dist/runtimes/grok/index.js +1 -2
- package/dist/runtimes/grok/index.js.map +1 -1
- package/dist/runtimes/grok/redaction.d.ts +9 -0
- package/dist/runtimes/grok/redaction.d.ts.map +1 -0
- package/dist/runtimes/grok/redaction.js +42 -0
- package/dist/runtimes/grok/redaction.js.map +1 -0
- package/dist/runtimes/grok/session.d.ts +1 -3
- package/dist/runtimes/grok/session.d.ts.map +1 -1
- package/dist/runtimes/grok/session.js +3 -6
- package/dist/runtimes/grok/session.js.map +1 -1
- package/dist/runtimes/kimi/session.d.ts.map +1 -1
- package/dist/runtimes/kimi/session.js +0 -1
- package/dist/runtimes/kimi/session.js.map +1 -1
- package/dist/runtimes/opencode/index.d.ts +0 -1
- package/dist/runtimes/opencode/index.d.ts.map +1 -1
- package/dist/runtimes/opencode/index.js +1 -2
- package/dist/runtimes/opencode/index.js.map +1 -1
- package/dist/runtimes/opencode/session.d.ts +0 -2
- package/dist/runtimes/opencode/session.d.ts.map +1 -1
- package/dist/runtimes/opencode/session.js +5 -8
- package/dist/runtimes/opencode/session.js.map +1 -1
- package/dist/runtimes/pi/index.d.ts +0 -1
- package/dist/runtimes/pi/index.d.ts.map +1 -1
- package/dist/runtimes/pi/index.js +1 -2
- package/dist/runtimes/pi/index.js.map +1 -1
- package/dist/runtimes/pi/mcp.d.ts +44 -0
- package/dist/runtimes/pi/mcp.d.ts.map +1 -0
- package/dist/runtimes/pi/mcp.js +130 -0
- package/dist/runtimes/pi/mcp.js.map +1 -0
- package/dist/runtimes/pi/open.d.ts.map +1 -1
- package/dist/runtimes/pi/open.js +14 -0
- package/dist/runtimes/pi/open.js.map +1 -1
- package/dist/runtimes/pi/session.d.ts +0 -2
- package/dist/runtimes/pi/session.d.ts.map +1 -1
- package/dist/runtimes/pi/session.js +3 -5
- package/dist/runtimes/pi/session.js.map +1 -1
- package/dist/shared/acp/mcp-servers.d.ts +18 -0
- package/dist/shared/acp/mcp-servers.d.ts.map +1 -0
- package/dist/shared/acp/mcp-servers.js +50 -0
- package/dist/shared/acp/mcp-servers.js.map +1 -0
- package/dist/shared/acp/profile.d.ts +3 -0
- package/dist/shared/acp/profile.d.ts.map +1 -1
- package/dist/shared/acp/profile.js +4 -2
- package/dist/shared/acp/profile.js.map +1 -1
- package/dist/shared/acp/session.d.ts.map +1 -1
- package/dist/shared/acp/session.js +8 -4
- package/dist/shared/acp/session.js.map +1 -1
- package/dist/shared/mcp-servers.d.ts +4 -0
- package/dist/shared/mcp-servers.d.ts.map +1 -1
- package/dist/shared/mcp-servers.js +14 -0
- package/dist/shared/mcp-servers.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,7 +17,6 @@ export declare const piRuntime: {
|
|
|
17
17
|
readonly tools: import("../../index.js").InventoryReader<import("../../index.js").ToolEntry>;
|
|
18
18
|
readonly installation: import("../../index.js").InstallationProbe;
|
|
19
19
|
readonly listModels: import("../../index.js").ModelLister;
|
|
20
|
-
readonly refusedSessionOptions: Readonly<Partial<Record<import("../../contracts/runtime.js").RefusableSessionOption, string>>>;
|
|
21
20
|
readonly session: import("../../index.js").StartSession;
|
|
22
21
|
} & import("../../index.js").RuntimeInventories & {
|
|
23
22
|
readonly brand: import("../../brands.js").RuntimeBrand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;CAQpB,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { piSkills, piTools } from "./inventory.js";
|
|
|
3
3
|
import { defineRuntime } from "../../contracts/runtime.js";
|
|
4
4
|
import { piInstallation } from "./installation.js";
|
|
5
5
|
import { piListModels } from "./list-models.js";
|
|
6
|
-
import {
|
|
6
|
+
import { piSession } from "./session.js";
|
|
7
7
|
/**
|
|
8
8
|
* The bundled Pi runtime, embedded through the Pi SDK dependency. Account
|
|
9
9
|
* usage is intentionally absent: Pi runs on provider API keys and has no
|
|
@@ -16,7 +16,6 @@ export const piRuntime = defineRuntime({
|
|
|
16
16
|
tools: piTools,
|
|
17
17
|
installation: piInstallation,
|
|
18
18
|
listModels: piListModels,
|
|
19
|
-
refusedSessionOptions: piRefusedSessionOptions,
|
|
20
19
|
session: piSession,
|
|
21
20
|
});
|
|
22
21
|
export { piListModels, projectPiModels } from "./list-models.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtimes/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC;IACrC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,aAAa,CAAC,EAAE;IACvB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACnB,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { AgentSession as PiAgentSession, InlineExtension, McpServerConfig } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
import type { McpServer, SessionOptions } from "../../contracts/session.js";
|
|
3
|
+
/**
|
|
4
|
+
* A value as pi reads it literally: pi resolves `env` and `headers` values
|
|
5
|
+
* (`resolveConfigValue`), running one that starts with `!` as a shell
|
|
6
|
+
* command and interpolating `$NAME`; `$$` and `$!` are its escapes for a
|
|
7
|
+
* literal `$` and `!`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function piLiteralConfigValue(value: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* One entry as pi's MCP server config: http `{type, url, headers}`, stdio
|
|
12
|
+
* `{type, command, args, env}` whose env is `SessionOptions.env` with the
|
|
13
|
+
* entry's on top (pi starts it with the host's environment under that, like
|
|
14
|
+
* the bash tool's). Every value literal, every tool declared directly.
|
|
15
|
+
*/
|
|
16
|
+
export declare function piMcpServerConfig(server: McpServer, sessionEnv?: Readonly<Record<string, string>>): McpServerConfig;
|
|
17
|
+
/** The session's MCP extensions, and how to tell that pi loaded them. */
|
|
18
|
+
export interface PiMcpExtensions {
|
|
19
|
+
readonly extensions: readonly InlineExtension[];
|
|
20
|
+
/**
|
|
21
|
+
* Throws when pi failed to load either extension or refused a
|
|
22
|
+
* registration (another extension already holds the name), given the
|
|
23
|
+
* errors of pi's extension load: the session would run without the server.
|
|
24
|
+
*/
|
|
25
|
+
check(loadErrors: readonly {
|
|
26
|
+
readonly path: string;
|
|
27
|
+
readonly error: string;
|
|
28
|
+
}[]): void;
|
|
29
|
+
/** Start the created session's extensions (`session_start`), which connects the servers; `releasePiMcp` stops them. */
|
|
30
|
+
start(session: PiAgentSession): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Close the session's MCP connections (stdio servers exit) before it is
|
|
34
|
+
* disposed: pi's `session_shutdown`, emitted only for a session `start`
|
|
35
|
+
* bound; a no-op for any other.
|
|
36
|
+
*/
|
|
37
|
+
export declare function releasePiMcp(session: PiAgentSession): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* The inline extensions attaching `options.mcpServers` to a pi session, or
|
|
40
|
+
* null when it has none. Throws before anything opens on a name pi would
|
|
41
|
+
* refuse or fold into another. pi's MCP server log goes to `<agentDir>/mcp.log`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function piMcpExtensions(options: SessionOptions, agentDir: string): Promise<PiMcpExtensions | null>;
|
|
44
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/mcp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACxH,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA6B5E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,GAAG,eAAe,CAYvH;AAmBD,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAC;IAChD;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IACtF,uHAAuH;IACvH,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAKD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE;AAKD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAmChH"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { checkMcpServerNames, givenMcpServers, isHttpMcpServer, mcpCredentialRedactor } from "../../shared/mcp-servers.js";
|
|
3
|
+
/*
|
|
4
|
+
* SessionOptions.mcpServers on pi: the SDK's own MCP support, as the pi CLI
|
|
5
|
+
* runs it (pi-coding-agent 1.0.4). pi's MCP client is the built-in `mcp`
|
|
6
|
+
* extension (`createMcpExtension`, on `@earendil-works/pi-mcp`), which the
|
|
7
|
+
* CLI loads by default and the SDK path oar opens does not; an extension
|
|
8
|
+
* registers a server for one session with `pi.registerMcpServer(name,
|
|
9
|
+
* config)`, the `mcpServers` entry shape of pi's `mcp.json`. So a session
|
|
10
|
+
* given servers gets two inline extensions: the MCP extension with no
|
|
11
|
+
* `mcp.json` of its own (oar's pi never loaded the user's, with or without
|
|
12
|
+
* this option), and one registering the entries. The MCP extension connects
|
|
13
|
+
* them on `session_start` and closes them on `session_shutdown`, events the
|
|
14
|
+
* pi CLI's session host emits and oar's opener otherwise does not: such a
|
|
15
|
+
* session binds its extensions after it is created (`bindExtensions`, so
|
|
16
|
+
* the user's extensions see `session_start` too) and emits
|
|
17
|
+
* `session_shutdown` before it is disposed. The first prompt waits up to
|
|
18
|
+
* 10 s for the servers to connect. Tools are `mcp__<name>__<tool>` declared to the model
|
|
19
|
+
* directly (`exposure: "direct"`): pi's default, `codemode`, reaches them
|
|
20
|
+
* only from the codemode extension, which oar does not load either.
|
|
21
|
+
*
|
|
22
|
+
* Measured against a scripted provider: the vendor test
|
|
23
|
+
* (sea-trial/vendor/mcp-servers.vendor.test.ts) and docs/runtimes/pi.md.
|
|
24
|
+
*/
|
|
25
|
+
/** The names pi takes (`validateMcpServerConfig`); its tool namespace folds `-` into `_`, so `a-b` and `a_b` would be one server. */
|
|
26
|
+
const PI_MCP_SERVER_NAME = /^[\w-]+$/u;
|
|
27
|
+
/**
|
|
28
|
+
* A value as pi reads it literally: pi resolves `env` and `headers` values
|
|
29
|
+
* (`resolveConfigValue`), running one that starts with `!` as a shell
|
|
30
|
+
* command and interpolating `$NAME`; `$$` and `$!` are its escapes for a
|
|
31
|
+
* literal `$` and `!`.
|
|
32
|
+
*/
|
|
33
|
+
export function piLiteralConfigValue(value) {
|
|
34
|
+
return value.replaceAll(/[$!]/gu, (character) => `$${character}`);
|
|
35
|
+
}
|
|
36
|
+
function literalValues(values) {
|
|
37
|
+
return Object.fromEntries(Object.entries(values).map(([key, value]) => [key, piLiteralConfigValue(value)]));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* One entry as pi's MCP server config: http `{type, url, headers}`, stdio
|
|
41
|
+
* `{type, command, args, env}` whose env is `SessionOptions.env` with the
|
|
42
|
+
* entry's on top (pi starts it with the host's environment under that, like
|
|
43
|
+
* the bash tool's). Every value literal, every tool declared directly.
|
|
44
|
+
*/
|
|
45
|
+
export function piMcpServerConfig(server, sessionEnv = {}) {
|
|
46
|
+
if (isHttpMcpServer(server)) {
|
|
47
|
+
return { type: "http", url: server.url, ...(server.headers === undefined ? {} : { headers: literalValues(server.headers) }), exposure: "direct" };
|
|
48
|
+
}
|
|
49
|
+
const env = { ...sessionEnv, ...server.env };
|
|
50
|
+
return {
|
|
51
|
+
type: "stdio",
|
|
52
|
+
command: server.command,
|
|
53
|
+
args: [...server.args ?? []],
|
|
54
|
+
...(Object.keys(env).length === 0 ? {} : { env: literalValues(env) }),
|
|
55
|
+
exposure: "direct",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/** Throw on a list pi cannot register as given: an empty or repeated name, one pi refuses, or two pi would fold into one. */
|
|
59
|
+
function checkPiMcpServerNames(servers) {
|
|
60
|
+
checkMcpServerNames(servers);
|
|
61
|
+
const namespaces = new Map();
|
|
62
|
+
for (const { name } of servers) {
|
|
63
|
+
if (!PI_MCP_SERVER_NAME.test(name)) {
|
|
64
|
+
throw new Error(`pi registers no MCP server named ${JSON.stringify(name)}: its names match ${PI_MCP_SERVER_NAME.source}`);
|
|
65
|
+
}
|
|
66
|
+
const namespace = name.replaceAll("-", "_");
|
|
67
|
+
const other = namespaces.get(namespace);
|
|
68
|
+
if (other !== undefined) {
|
|
69
|
+
throw new Error(`pi would give the MCP servers ${JSON.stringify(other)} and ${JSON.stringify(name)} one tool namespace (mcp__${namespace})`);
|
|
70
|
+
}
|
|
71
|
+
namespaces.set(namespace, name);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** Sessions whose MCP extension was started, so their dispose emits `session_shutdown` first. */
|
|
75
|
+
const started = new WeakSet();
|
|
76
|
+
/**
|
|
77
|
+
* Close the session's MCP connections (stdio servers exit) before it is
|
|
78
|
+
* disposed: pi's `session_shutdown`, emitted only for a session `start`
|
|
79
|
+
* bound; a no-op for any other.
|
|
80
|
+
*/
|
|
81
|
+
export async function releasePiMcp(session) {
|
|
82
|
+
if (started.delete(session)) {
|
|
83
|
+
await session.extensionRunner.emit({ type: "session_shutdown", reason: "quit" });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const MCP_EXTENSION = "oar-mcp";
|
|
87
|
+
const REGISTER_EXTENSION = "oar-mcp-servers";
|
|
88
|
+
/**
|
|
89
|
+
* The inline extensions attaching `options.mcpServers` to a pi session, or
|
|
90
|
+
* null when it has none. Throws before anything opens on a name pi would
|
|
91
|
+
* refuse or fold into another. pi's MCP server log goes to `<agentDir>/mcp.log`.
|
|
92
|
+
*/
|
|
93
|
+
export async function piMcpExtensions(options, agentDir) {
|
|
94
|
+
const servers = givenMcpServers(options.mcpServers);
|
|
95
|
+
if (servers === null) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
checkPiMcpServerNames(servers);
|
|
99
|
+
const sdk = await import("@earendil-works/pi-coding-agent");
|
|
100
|
+
const redact = mcpCredentialRedactor(servers);
|
|
101
|
+
const failures = [];
|
|
102
|
+
const register = (pi) => {
|
|
103
|
+
for (const server of servers) {
|
|
104
|
+
try {
|
|
105
|
+
pi.registerMcpServer(server.name, piMcpServerConfig(server, options.env));
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
failures.push(redact(error instanceof Error ? error.message : String(error)));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
return {
|
|
113
|
+
extensions: [
|
|
114
|
+
{ name: MCP_EXTENSION, factory: sdk.createMcpExtension({ loadConfig: () => ({ servers: [], errors: [] }), logPath: path.join(agentDir, "mcp.log") }), hidden: true },
|
|
115
|
+
{ name: REGISTER_EXTENSION, factory: register, hidden: true },
|
|
116
|
+
],
|
|
117
|
+
check: (loadErrors) => {
|
|
118
|
+
const ours = new Set([`<inline:${MCP_EXTENSION}>`, `<inline:${REGISTER_EXTENSION}>`]);
|
|
119
|
+
failures.push(...loadErrors.filter((entry) => ours.has(entry.path)).map((entry) => redact(entry.error)));
|
|
120
|
+
if (failures.length > 0) {
|
|
121
|
+
throw new Error(`pi did not register the session's MCP servers: ${failures.join("; ")}`);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
start: async (session) => {
|
|
125
|
+
started.add(session);
|
|
126
|
+
await session.bindExtensions({});
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/runtimes/pi/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/open.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/open.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,IAAI,cAAc,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAWjE;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACxC,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAKxE;AAED,sHAAsH;AACtH,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC;AAatF;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAM/D;AAED,4FAA4F;AAC5F,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0BAA0B,IAAI,SAAS,MAAM,EAAE,CAAC;CACjD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAMzF;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAGtE;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAiGzF"}
|
package/dist/runtimes/pi/open.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { configurePiHttp } from "./http.js";
|
|
2
|
+
import { piMcpExtensions, releasePiMcp } from "./mcp.js";
|
|
2
3
|
import { piFindSessionFile, piResolveModel, piSessionDir } from "./resolve.js";
|
|
3
4
|
/*
|
|
4
5
|
* Opening the bundled pi SDK session: services, session file (create or
|
|
@@ -89,6 +90,10 @@ export async function openPiAgentSession(options) {
|
|
|
89
90
|
// http.ts).
|
|
90
91
|
const settingsManager = sdk.SettingsManager.create(options.cwd, agentDir);
|
|
91
92
|
await configurePiHttp(settingsManager);
|
|
93
|
+
// SessionOptions.mcpServers: pi's MCP extension plus one registering the
|
|
94
|
+
// session's servers (mcp.ts); it refuses a name pi cannot take before
|
|
95
|
+
// anything loads.
|
|
96
|
+
const mcp = await piMcpExtensions(options, agentDir);
|
|
92
97
|
const services = await sdk.createAgentSessionServices({
|
|
93
98
|
cwd: options.cwd,
|
|
94
99
|
agentDir,
|
|
@@ -106,8 +111,10 @@ export async function openPiAgentSession(options) {
|
|
|
106
111
|
resourceLoaderOptions: {
|
|
107
112
|
...(options.systemPrompt === undefined ? {} : { systemPrompt: options.systemPrompt }),
|
|
108
113
|
...(options.appendSystemPrompt === undefined ? {} : { appendSystemPrompt: [options.appendSystemPrompt] }),
|
|
114
|
+
...(mcp === null ? {} : { extensionFactories: [...mcp.extensions] }),
|
|
109
115
|
},
|
|
110
116
|
});
|
|
117
|
+
mcp?.check(services.resourceLoader.getExtensions().errors);
|
|
111
118
|
// pi persists sessions per cwd under <agentDir>/sessions; the same
|
|
112
119
|
// directory is used to create (so a later resume finds the file) and to
|
|
113
120
|
// look a resumed id up.
|
|
@@ -151,6 +158,13 @@ export async function openPiAgentSession(options) {
|
|
|
151
158
|
session.dispose();
|
|
152
159
|
throw new Error(refusal);
|
|
153
160
|
}
|
|
161
|
+
if (mcp !== null) {
|
|
162
|
+
await mcp.start(session).catch(async (error) => {
|
|
163
|
+
await releasePiMcp(session);
|
|
164
|
+
session.dispose();
|
|
165
|
+
throw error;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
154
168
|
return session;
|
|
155
169
|
}
|
|
156
170
|
//# sourceMappingURL=open.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/runtimes/pi/open.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/runtimes/pi/open.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { RefusedSessionOptions } from "../../contracts/runtime.js";
|
|
2
1
|
import type { StartSession } from "../../contracts/session.js";
|
|
3
2
|
export { piEffectiveModel, piEnvBashTool, type PiModelSource } from "./open.js";
|
|
4
|
-
export declare const piRefusedSessionOptions: RefusedSessionOptions;
|
|
5
3
|
export declare const piSession: StartSession;
|
|
6
4
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACuE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAoBpI,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAahF,eAAO,MAAM,SAAS,EAAE,YAuOvB,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { withdrawControl } from "../../shared/held-input.js";
|
|
|
3
3
|
import { withInputImages } from "../../shared/input-images.js";
|
|
4
4
|
import { sealSession } from "../../shared/seal-session.js";
|
|
5
5
|
import { createSessionKernel } from "../../shared/session-kernel.js";
|
|
6
|
-
import { refuseSessionOptions } from "../../shared/session-options.js";
|
|
7
6
|
import { foldPiEvent, initialPiProjection, piAbortRequested, piPrompted, } from "./projection.js";
|
|
7
|
+
import { releasePiMcp } from "./mcp.js";
|
|
8
8
|
import { openPiAgentSession, piEffectiveModel } from "./open.js";
|
|
9
9
|
/** pi's ImageContent: base64 data and its type. */
|
|
10
10
|
const piImages = (images) => images.map((image) => ({ type: "image", data: image.data, mimeType: image.mediaType }));
|
|
@@ -19,11 +19,7 @@ export { piEffectiveModel, piEnvBashTool } from "./open.js";
|
|
|
19
19
|
* Process-global lazy env reads mean another embedded pi cannot safely share
|
|
20
20
|
* this process.
|
|
21
21
|
*/
|
|
22
|
-
export const piRefusedSessionOptions = {
|
|
23
|
-
mcpServers: "OAR does not attach MCP servers to pi yet: its pi-mcp extension channel is not yet verified to reach the agent",
|
|
24
|
-
};
|
|
25
22
|
export const piSession = async (installation, options) => {
|
|
26
|
-
refuseSessionOptions(piRefusedSessionOptions, options);
|
|
27
23
|
if (installation.via !== "bundled") {
|
|
28
24
|
throw new Error("The pi session adapter needs the bundled sdk installation");
|
|
29
25
|
}
|
|
@@ -237,6 +233,8 @@ export const piSession = async (installation, options) => {
|
|
|
237
233
|
projection = piAbortRequested(projection);
|
|
238
234
|
await piAgentSession.abort();
|
|
239
235
|
}
|
|
236
|
+
// The session's MCP servers close first (mcp.ts), as pi's own host does.
|
|
237
|
+
await releasePiMcp(piAgentSession);
|
|
240
238
|
piAgentSession.dispose();
|
|
241
239
|
// pi runs in this process: there is no process exit to observe, so the
|
|
242
240
|
// dispose is answered as taken over rather than with an exit code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/pi/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { McpServer } from "../../contracts/session.js";
|
|
2
|
+
import { type JsonRecord } from "../json.js";
|
|
3
|
+
/** One entry in ACP's `McpServer` shape. */
|
|
4
|
+
export declare function acpMcpServer(server: McpServer): JsonRecord;
|
|
5
|
+
/**
|
|
6
|
+
* The `mcpServers` param for an open, given the agent's `initialize` answer:
|
|
7
|
+
* an http entry is refused (`UnsupportedOptionError` on `mcpServers`) unless
|
|
8
|
+
* the agent declares `agentCapabilities.mcpCapabilities.http`, which ACP
|
|
9
|
+
* requires before a client sends one. Stdio needs no capability.
|
|
10
|
+
*/
|
|
11
|
+
export declare function acpMcpServersParam(servers: readonly McpServer[] | undefined, initialized: JsonRecord): readonly JsonRecord[];
|
|
12
|
+
/**
|
|
13
|
+
* For an open given these entries: throws now, before the agent starts, on
|
|
14
|
+
* an empty or repeated name, and returns what a failed open's error becomes:
|
|
15
|
+
* the same error without the credentials the entries carry.
|
|
16
|
+
*/
|
|
17
|
+
export declare function acpMcpOpenGuard(servers: readonly McpServer[] | undefined): (error: unknown) => unknown;
|
|
18
|
+
//# sourceMappingURL=mcp-servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-servers.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/mcp-servers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBvD,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAI1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAW5H;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAItG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { UnsupportedOptionError } from "../../contracts/errors.js";
|
|
2
|
+
import { asRecord } from "../json.js";
|
|
3
|
+
import { checkMcpServerNames, givenMcpServers, isHttpMcpServer, mcpCredentialRedactor, redactError } from "../mcp-servers.js";
|
|
4
|
+
/*
|
|
5
|
+
* SessionOptions.mcpServers on an ACP runtime: the `mcpServers` param of
|
|
6
|
+
* `session/new`, `session/load` and `session/resume`, which ACP defines in
|
|
7
|
+
* the same shape (stdio `{name, command, args, env: [{name, value}]}`, http
|
|
8
|
+
* `{type: "http", name, url, headers: [{name, value}]}`). Given on every
|
|
9
|
+
* open: no measured agent remembers them across a resume (runtime pages).
|
|
10
|
+
* Every list is sent whole, `args`, `env` and `headers` included when empty,
|
|
11
|
+
* because opencode 1.18.30 reads them unguarded.
|
|
12
|
+
*/
|
|
13
|
+
function pairs(values) {
|
|
14
|
+
return Object.entries(values ?? {}).map(([name, value]) => ({ name, value }));
|
|
15
|
+
}
|
|
16
|
+
/** One entry in ACP's `McpServer` shape. */
|
|
17
|
+
export function acpMcpServer(server) {
|
|
18
|
+
return isHttpMcpServer(server)
|
|
19
|
+
? { type: "http", name: server.name, url: server.url, headers: pairs(server.headers) }
|
|
20
|
+
: { name: server.name, command: server.command, args: [...server.args ?? []], env: pairs(server.env) };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The `mcpServers` param for an open, given the agent's `initialize` answer:
|
|
24
|
+
* an http entry is refused (`UnsupportedOptionError` on `mcpServers`) unless
|
|
25
|
+
* the agent declares `agentCapabilities.mcpCapabilities.http`, which ACP
|
|
26
|
+
* requires before a client sends one. Stdio needs no capability.
|
|
27
|
+
*/
|
|
28
|
+
export function acpMcpServersParam(servers, initialized) {
|
|
29
|
+
const given = givenMcpServers(servers);
|
|
30
|
+
if (given === null) {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const http = given.find((server) => isHttpMcpServer(server));
|
|
34
|
+
const capabilities = asRecord(asRecord(initialized.agentCapabilities)?.mcpCapabilities);
|
|
35
|
+
if (http !== undefined && capabilities?.http !== true) {
|
|
36
|
+
throw new UnsupportedOptionError("mcpServers", `the agent's initialize declares no mcpCapabilities.http, so it attaches no http MCP server (${JSON.stringify(http.name)})`);
|
|
37
|
+
}
|
|
38
|
+
return given.map((server) => acpMcpServer(server));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* For an open given these entries: throws now, before the agent starts, on
|
|
42
|
+
* an empty or repeated name, and returns what a failed open's error becomes:
|
|
43
|
+
* the same error without the credentials the entries carry.
|
|
44
|
+
*/
|
|
45
|
+
export function acpMcpOpenGuard(servers) {
|
|
46
|
+
checkMcpServerNames(servers ?? []);
|
|
47
|
+
const redact = mcpCredentialRedactor(servers);
|
|
48
|
+
return (error) => redactError(error, redact);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=mcp-servers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-servers.js","sourceRoot":"","sources":["../../../src/shared/acp/mcp-servers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9H;;;;;;;;GAQG;AAEH,SAAS,KAAK,CAAC,MAAoD;IACjE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,OAAO,eAAe,CAAC,MAAM,CAAC;QAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;QACtF,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAyC,EAAE,WAAuB;IACnG,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,eAAe,CAAC,CAAC;IACxF,IAAI,IAAI,KAAK,SAAS,IAAI,YAAY,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,sBAAsB,CAAC,YAAY,EAAE,+FAA+F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9K,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyC;IACvE,mBAAmB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -3,6 +3,7 @@ import type { ContextUsage, SessionCapabilities, SessionOptions, TokenTotals, Tu
|
|
|
3
3
|
import { type JsonRecord } from "../json.js";
|
|
4
4
|
import { type AcpProcess } from "./process.js";
|
|
5
5
|
export { createUsageUpdateGate, type UsageUpdateGate } from "./usage-wait.js";
|
|
6
|
+
export { acpMcpOpenGuard } from "./mcp-servers.js";
|
|
6
7
|
export interface AcpSessionProfile {
|
|
7
8
|
readonly args: readonly string[] | ((options: SessionOptions) => readonly string[]);
|
|
8
9
|
/** What this runtime's ACP surface lets the adapter carry (docs/spec attribution tier included). */
|
|
@@ -20,6 +21,8 @@ export interface AcpSessionProfile {
|
|
|
20
21
|
* frame oar never sees, so list everything the runtime is known to emit.
|
|
21
22
|
*/
|
|
22
23
|
readonly extensionNotifications?: readonly string[];
|
|
24
|
+
/** Credential-only exception to verbatim recording; applied before queuing or publishing a notification. */
|
|
25
|
+
readonly redactExtensionNotification?: (method: string, params: JsonRecord) => JsonRecord;
|
|
23
26
|
readonly initializeMeta?: (options: SessionOptions) => JsonRecord | undefined;
|
|
24
27
|
/**
|
|
25
28
|
* Switch models with `session/set_config_option` on `model`, for agents whose `set_model` answers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/profile.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/* oxlint-disable typescript/promise-function-async -- Deadline callbacks deliberately return the SDK's native promises. */
|
|
2
|
-
import { methods, PROTOCOL_VERSION
|
|
2
|
+
import { methods, PROTOCOL_VERSION } from "@agentclientprotocol/sdk";
|
|
3
3
|
import { asRecord } from "../json.js";
|
|
4
4
|
import { applyAcpEffort, applyAcpModel } from "./effort.js";
|
|
5
|
+
import { acpMcpServersParam } from "./mcp-servers.js";
|
|
5
6
|
import { withAcpDeadline } from "./process.js";
|
|
6
7
|
import { refuseResumeElsewhere } from "./resume-cwd.js";
|
|
7
8
|
export { createUsageUpdateGate } from "./usage-wait.js";
|
|
9
|
+
export { acpMcpOpenGuard } from "./mcp-servers.js";
|
|
8
10
|
export function hasAcpCapability(value) {
|
|
9
11
|
return value === true || asRecord(value) !== null;
|
|
10
12
|
}
|
|
@@ -57,7 +59,7 @@ async function initialize(process, profile, options, observe) {
|
|
|
57
59
|
async function createOrResume(process, profile, initialized, options, meta) {
|
|
58
60
|
const baseParams = {
|
|
59
61
|
cwd: options.cwd,
|
|
60
|
-
mcpServers:
|
|
62
|
+
mcpServers: acpMcpServersParam(options.mcpServers, initialized),
|
|
61
63
|
...(meta === undefined ? {} : { _meta: meta }),
|
|
62
64
|
};
|
|
63
65
|
const capabilities = asRecord(initialized.agentCapabilities);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/shared/acp/profile.ts"],"names":[],"mappings":"AAAA,2HAA2H;AAC3H,OAAO,
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/shared/acp/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAIpC,OAAO,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/shared/acp/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAQV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAKL,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAMtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AActD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAsInE"}
|