@botiverse/oar 0.20.4 → 0.21.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/README.md +5 -3
- package/assets/brands/NOTICE.md +2 -0
- package/assets/brands/morph-on-dark.svg +9 -0
- package/assets/brands/morph-on-light.svg +9 -0
- package/assets/brands/morph.svg +9 -0
- package/dist/agents/crew.js +1 -1
- package/dist/agents/crew.js.map +1 -1
- package/dist/community/index.d.ts +2 -0
- package/dist/community/index.d.ts.map +1 -0
- package/dist/community/index.js +8 -0
- package/dist/community/index.js.map +1 -0
- package/dist/community/morph/console.d.ts +54 -0
- package/dist/community/morph/console.d.ts.map +1 -0
- package/dist/community/morph/console.js +237 -0
- package/dist/community/morph/console.js.map +1 -0
- package/dist/community/morph/index.d.ts +15 -0
- package/dist/community/morph/index.d.ts.map +1 -0
- package/dist/community/morph/index.js +31 -0
- package/dist/community/morph/index.js.map +1 -0
- package/dist/community/morph/installation.d.ts +4 -0
- package/dist/community/morph/installation.d.ts.map +1 -0
- package/dist/community/morph/installation.js +14 -0
- package/dist/community/morph/installation.js.map +1 -0
- package/dist/community/morph/list-models.d.ts +9 -0
- package/dist/community/morph/list-models.d.ts.map +1 -0
- package/dist/community/morph/list-models.js +34 -0
- package/dist/community/morph/list-models.js.map +1 -0
- package/dist/community/morph/projection.d.ts +36 -0
- package/dist/community/morph/projection.d.ts.map +1 -0
- package/dist/community/morph/projection.js +210 -0
- package/dist/community/morph/projection.js.map +1 -0
- package/dist/community/morph/session.d.ts +9 -0
- package/dist/community/morph/session.d.ts.map +1 -0
- package/dist/community/morph/session.js +220 -0
- package/dist/community/morph/session.js.map +1 -0
- package/dist/community/morph/topic.d.ts +24 -0
- package/dist/community/morph/topic.d.ts.map +1 -0
- package/dist/community/morph/topic.js +74 -0
- package/dist/community/morph/topic.js.map +1 -0
- package/dist/community/morph/tracker.d.ts +33 -0
- package/dist/community/morph/tracker.d.ts.map +1 -0
- package/dist/community/morph/tracker.js +157 -0
- package/dist/community/morph/tracker.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/runtimes/cursor/index.d.ts +3 -3
- package/dist/runtimes/cursor/index.js +3 -3
- package/dist/shared/update.d.ts +7 -3
- package/dist/shared/update.d.ts.map +1 -1
- package/dist/shared/update.js +11 -5
- package/dist/shared/update.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Provider-independent TypeScript contracts and built-in implementations for controlling and observing Antigravity, Claude, Codex, Cursor, Grok, Kimi, and Pi.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
|
-
import {
|
|
6
|
+
import { defaultRuntimes, promptAndWait } from "@botiverse/oar";
|
|
7
7
|
|
|
8
|
-
const runtime =
|
|
8
|
+
const runtime = defaultRuntimes.require("grok");
|
|
9
9
|
const installation = await runtime.installation?.();
|
|
10
10
|
|
|
11
11
|
if (installation?.kind === "available") {
|
|
@@ -68,7 +68,9 @@ The package has six public entry points:
|
|
|
68
68
|
|
|
69
69
|
Brand SVG files are exported at `@botiverse/oar/assets/brands/<runtime-id>.svg`. Any other deep import (`@botiverse/oar/dist/...`, source paths) is internal and may break without notice.
|
|
70
70
|
|
|
71
|
-
Antigravity, Grok, and Kimi share an internal ACP v1 transport and session kernel, but only their concrete runtime identities are public. The registry deliberately does not expose a generic `acp` runtime. Pi and Cursor run in the host process through their SDKs. The pi SDK (`@earendil-works/pi-coding-agent`) is a dependency of this package. `@cursor/sdk` is an optional peer dependency, and cursor is not in
|
|
71
|
+
Antigravity, Grok, and Kimi share an internal ACP v1 transport and session kernel, but only their concrete runtime identities are public. The registry deliberately does not expose a generic `acp` runtime. Pi and Cursor run in the host process through their SDKs. The pi SDK (`@earendil-works/pi-coding-agent`) is a dependency of this package. `@cursor/sdk` is an optional peer dependency, and cursor is not in `defaultRuntimes`: install the SDK (`npm install @cursor/sdk@1.0.35`) and hand it over, `createRuntimeRegistry([...defaultRuntimes.list(), createCursorRuntime({ sdk: () => import("@cursor/sdk") })])`. Written in your code, that import fails your compile if the package is missing. It is Cursor's own package under Cursor's terms, and it signs in with `CURSOR_API_KEY` or its own `Cursor.auth.login()`.
|
|
72
|
+
|
|
73
|
+
Community runtimes are contributed and maintained outside the core team (each maintainer is named on its runtime page). They ship in this package from a separate entry point, `@botiverse/oar/community`, and are not in `defaultRuntimes`: `createRuntimeRegistry([...defaultRuntimes.list(), createMorphRuntime()])` adds [Mister Morph](https://github.com/botiverse/oar/blob/main/docs/runtimes/morph.md), driven through its Console Runtime API. The `oar` CLI includes them.
|
|
72
74
|
|
|
73
75
|
**Pi 1.0.3 Azure migration:** Pi renamed its provider from
|
|
74
76
|
`azure-openai-responses` to `azure`. Update that prefix in native provider
|
package/assets/brands/NOTICE.md
CHANGED
|
@@ -5,6 +5,8 @@ Source: https://github.com/lobehub/lobe-icons/tree/a94750e3f5f8fc33757b839d85030
|
|
|
5
5
|
Files: claudecode-color.svg, codex.svg, kimi-color.svg, grok.svg, cursor.svg, antigravity-color.svg.
|
|
6
6
|
Brand names and marks belong to their respective owners.
|
|
7
7
|
|
|
8
|
+
Mister Morph: `app_logo_dark.svg` from the Mister Morph website (quailyquaily/mistermorph-website, `public/`), the project's own mark. `morph-on-dark.svg` swaps its two colors (#1F1F1F and white) for dark backgrounds.
|
|
9
|
+
|
|
8
10
|
Pi: https://pi.dev/logo-on-dark.svg (retrieved 2026-09-16), unmodified official site asset for identification on dark backgrounds. Pi branding belongs to its respective owner; the LobeHub MIT license below does not cover this asset.
|
|
9
11
|
|
|
10
12
|
## Theme variants
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z" fill="#FFFFFF"/>
|
|
3
|
+
<circle cx="256" cy="256" r="160" fill="#FFFFFF"/>
|
|
4
|
+
<path d="M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z" fill="#FFFFFF"/>
|
|
5
|
+
<circle cx="318" cy="255" r="19.5" fill="#1F1F1F" stroke="#1F1F1F"/>
|
|
6
|
+
<circle cx="191" cy="255" r="19.5" fill="#1F1F1F" stroke="#1F1F1F"/>
|
|
7
|
+
<path d="M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5" stroke="#1F1F1F" stroke-width="12" stroke-linecap="round"/>
|
|
8
|
+
<path d="M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z" fill="#FFFFFF"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z" fill="#1F1F1F"/>
|
|
3
|
+
<circle cx="256" cy="256" r="160" fill="#1F1F1F"/>
|
|
4
|
+
<path d="M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z" fill="#1F1F1F"/>
|
|
5
|
+
<circle cx="318" cy="255" r="19.5" fill="white" stroke="white"/>
|
|
6
|
+
<circle cx="191" cy="255" r="19.5" fill="white" stroke="white"/>
|
|
7
|
+
<path d="M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5" stroke="white" stroke-width="12" stroke-linecap="round"/>
|
|
8
|
+
<path d="M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z" fill="#1F1F1F"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z" fill="#1F1F1F"/>
|
|
3
|
+
<circle cx="256" cy="256" r="160" fill="#1F1F1F"/>
|
|
4
|
+
<path d="M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z" fill="#1F1F1F"/>
|
|
5
|
+
<circle cx="318" cy="255" r="19.5" fill="white" stroke="white"/>
|
|
6
|
+
<circle cx="191" cy="255" r="19.5" fill="white" stroke="white"/>
|
|
7
|
+
<path d="M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5" stroke="white" stroke-width="12" stroke-linecap="round"/>
|
|
8
|
+
<path d="M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z" fill="#1F1F1F"/>
|
|
9
|
+
</svg>
|
package/dist/agents/crew.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { applyTaskEvent, initialTasks } from "../observe/tasks.js";
|
|
3
|
-
import {
|
|
3
|
+
import { defaultRuntimes as builtInRuntimes } from "../index.js";
|
|
4
4
|
import { attachLog, DEFAULT_WAIT_MS, hostDepth, installationOf, logName, readerOrTimeout, sessionOf, SUBAGENT_DEPTH_ENV } from "./helpers.js";
|
|
5
5
|
import { createSubagent } from "./subagent.js";
|
|
6
6
|
/**
|
package/dist/agents/crew.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crew.js","sourceRoot":"","sources":["../../src/agents/crew.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crew.js","sourceRoot":"","sources":["../../src/agents/crew.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/community/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Community runtimes: contributed and maintained outside the OAR core team
|
|
3
|
+
* (each one's maintainer is named on its docs/runtimes page). They are not
|
|
4
|
+
* in `defaultRuntimes`; a host adds the ones it wants to its own:
|
|
5
|
+
* `createRuntimeRegistry([...defaultRuntimes.list(), createMorphRuntime()])`.
|
|
6
|
+
*/
|
|
7
|
+
export { createMorphRuntime, morphBrand, projectMorphModels } from "./morph/index.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/community/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAqB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** The Runtime API endpoint a running Console publishes. */
|
|
2
|
+
export interface ConsoleEndpoint {
|
|
3
|
+
readonly url: string;
|
|
4
|
+
readonly token: string;
|
|
5
|
+
}
|
|
6
|
+
/** A Runtime API answer: the status, and the body as JSON when it is JSON, otherwise its text. */
|
|
7
|
+
export interface ConsoleReply {
|
|
8
|
+
readonly status: number;
|
|
9
|
+
readonly body: unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare class ConsoleClient {
|
|
12
|
+
readonly endpoint: ConsoleEndpoint;
|
|
13
|
+
/**
|
|
14
|
+
* The Console's own connection: every request carries its bearer token, so
|
|
15
|
+
* none may follow a process-wide dispatcher (an HTTP proxy from the host,
|
|
16
|
+
* or the `EnvHttpProxyAgent` the pi runtime installs) off the loopback.
|
|
17
|
+
*/
|
|
18
|
+
private readonly dispatcher;
|
|
19
|
+
constructor(endpoint: ConsoleEndpoint);
|
|
20
|
+
call(method: string, route: string, body?: unknown): Promise<ConsoleReply>;
|
|
21
|
+
/** A call whose non-2xx answer is an error carrying the Runtime API's message. */
|
|
22
|
+
expect(method: string, route: string, body?: unknown): Promise<unknown>;
|
|
23
|
+
/** One task's `/stream/ws` snapshots, each handed over parsed. */
|
|
24
|
+
stream(taskId: string, onFrame: (frame: unknown) => void, onClose: () => void): () => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function replyMessage(reply: ConsoleReply): string;
|
|
27
|
+
/**
|
|
28
|
+
* The state directory morph resolves: `MISTER_MORPH_FILE_STATE_DIR`, else a
|
|
29
|
+
* top-level `file_state_dir` in its config file (`MISTER_MORPH_CONFIG`, else
|
|
30
|
+
* `~/.morph/config.yaml`), else `~/.morph`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function morphStateDir(env?: Readonly<NodeJS.ProcessEnv>, home?: string): string;
|
|
33
|
+
/** The Console published for `stateDir`, when one answers as a Console; a stale file from a dead one is not. */
|
|
34
|
+
export declare function discoverConsole(stateDir: string): Promise<ConsoleClient | null>;
|
|
35
|
+
/** A session's hold on a Console: released once, after which the Console may stop. */
|
|
36
|
+
export interface ConsoleLease {
|
|
37
|
+
readonly client: ConsoleClient;
|
|
38
|
+
/** True when this process started the Console (it stops with the last lease). */
|
|
39
|
+
readonly owned: boolean;
|
|
40
|
+
/** Fires when an owned Console exits while held. Never fires for an attached one. */
|
|
41
|
+
onExit(listener: (code: number | null) => void): void;
|
|
42
|
+
/** Resolves with the Console's exit when this release stopped it, null when it keeps running. */
|
|
43
|
+
release(): Promise<{
|
|
44
|
+
readonly code: number | null;
|
|
45
|
+
} | null>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Hold the Console for `stateDir`: the one already running (attached, never
|
|
49
|
+
* stopped by OAR), or one this process starts and shares until the last lease
|
|
50
|
+
* is released. A Console the user started in the meantime wins the state
|
|
51
|
+
* directory lock, and the start falls back to attaching to it.
|
|
52
|
+
*/
|
|
53
|
+
export declare function acquireConsole(command: string, stateDir: string): Promise<ConsoleLease>;
|
|
54
|
+
//# sourceMappingURL=console.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/community/morph/console.ts"],"names":[],"mappings":"AAyBA,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;gBAE9B,QAAQ,EAAE,eAAe;IAI/B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAgBhF,kFAAkF;IAC5E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7E,kEAAkE;IAClE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;CAmB3F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAe,EAAE,IAAI,GAAE,MAAkB,GAAG,MAAM,CAqB9G;AAWD,gHAAgH;AAChH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAYrF;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,qFAAqF;IACrF,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACtD,iGAAiG;IACjG,OAAO,IAAI,OAAO,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC7D;AA6CD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAmD7F"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
5
|
+
import { Agent, WebSocket, fetch } from "undici";
|
|
6
|
+
import { processFailure } from "../../shared/executable/diagnostics.js";
|
|
7
|
+
import { spawnLineProcess } from "../../shared/executable/index.js";
|
|
8
|
+
import { asRecord, parseJson } from "../../shared/json.js";
|
|
9
|
+
/*
|
|
10
|
+
* A morph Console owns one state directory: it takes `console/owner.lck`
|
|
11
|
+
* there, and a second `morph console serve` on the same directory refuses to
|
|
12
|
+
* start. While it runs, Console publishes a loopback Runtime API endpoint and
|
|
13
|
+
* a private bearer token in `<state>/console/runtime.json` (mistermorph
|
|
14
|
+
* cmd/mistermorph/consolecmd/local_chat.go); `morph chat` and
|
|
15
|
+
* `morph console stop` find it there. OAR attaches to that Console when one is
|
|
16
|
+
* running and starts one otherwise, shared by every session of this process
|
|
17
|
+
* on the same directory and stopped when the last of them is released.
|
|
18
|
+
*/
|
|
19
|
+
/** How long a started Console may take to publish its endpoint. */
|
|
20
|
+
const CONSOLE_START_TIMEOUT_MS = 60_000;
|
|
21
|
+
const DISCOVERY_POLL_MS = 200;
|
|
22
|
+
const REQUEST_TIMEOUT_MS = 15_000;
|
|
23
|
+
export class ConsoleClient {
|
|
24
|
+
endpoint;
|
|
25
|
+
/**
|
|
26
|
+
* The Console's own connection: every request carries its bearer token, so
|
|
27
|
+
* none may follow a process-wide dispatcher (an HTTP proxy from the host,
|
|
28
|
+
* or the `EnvHttpProxyAgent` the pi runtime installs) off the loopback.
|
|
29
|
+
*/
|
|
30
|
+
dispatcher = new Agent();
|
|
31
|
+
constructor(endpoint) {
|
|
32
|
+
this.endpoint = endpoint;
|
|
33
|
+
}
|
|
34
|
+
async call(method, route, body) {
|
|
35
|
+
const response = await fetch(`${this.endpoint.url}${route}`, {
|
|
36
|
+
method,
|
|
37
|
+
headers: {
|
|
38
|
+
Authorization: `Bearer ${this.endpoint.token}`,
|
|
39
|
+
...(body === undefined ? {} : { "Content-Type": "application/json" }),
|
|
40
|
+
},
|
|
41
|
+
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
42
|
+
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
43
|
+
dispatcher: this.dispatcher,
|
|
44
|
+
});
|
|
45
|
+
const text = await response.text();
|
|
46
|
+
const parsed = (response.headers.get("content-type") ?? "").includes("json") ? parseJson(text) : undefined;
|
|
47
|
+
return { status: response.status, body: parsed ?? text.trim() };
|
|
48
|
+
}
|
|
49
|
+
/** A call whose non-2xx answer is an error carrying the Runtime API's message. */
|
|
50
|
+
async expect(method, route, body) {
|
|
51
|
+
const reply = await this.call(method, route, body);
|
|
52
|
+
if (reply.status < 200 || reply.status > 299) {
|
|
53
|
+
throw new Error(`morph ${method} ${route} answered ${String(reply.status)}: ${replyMessage(reply)}`);
|
|
54
|
+
}
|
|
55
|
+
return reply.body;
|
|
56
|
+
}
|
|
57
|
+
/** One task's `/stream/ws` snapshots, each handed over parsed. */
|
|
58
|
+
stream(taskId, onFrame, onClose) {
|
|
59
|
+
const socket = new WebSocket(`${this.endpoint.url.replace(/^http/u, "ws")}/stream/ws?task_id=${encodeURIComponent(taskId)}`, { headers: { Authorization: `Bearer ${this.endpoint.token}` }, dispatcher: this.dispatcher });
|
|
60
|
+
socket.addEventListener("message", (event) => {
|
|
61
|
+
const frame = parseJson(String(event.data));
|
|
62
|
+
if (frame !== undefined) {
|
|
63
|
+
onFrame(frame);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
socket.addEventListener("close", onClose);
|
|
67
|
+
socket.addEventListener("error", () => {
|
|
68
|
+
// A close follows; the session decides there whether to reconnect.
|
|
69
|
+
});
|
|
70
|
+
return () => {
|
|
71
|
+
socket.close();
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function replyMessage(reply) {
|
|
76
|
+
const record = asRecord(reply.body);
|
|
77
|
+
if (typeof record?.error === "string") {
|
|
78
|
+
return record.error;
|
|
79
|
+
}
|
|
80
|
+
return typeof reply.body === "string" ? reply.body : JSON.stringify(reply.body);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The state directory morph resolves: `MISTER_MORPH_FILE_STATE_DIR`, else a
|
|
84
|
+
* top-level `file_state_dir` in its config file (`MISTER_MORPH_CONFIG`, else
|
|
85
|
+
* `~/.morph/config.yaml`), else `~/.morph`.
|
|
86
|
+
*/
|
|
87
|
+
export function morphStateDir(env = process.env, home = homedir()) {
|
|
88
|
+
const expand = (dir) => {
|
|
89
|
+
if (dir === "~") {
|
|
90
|
+
return home;
|
|
91
|
+
}
|
|
92
|
+
return dir.startsWith("~/") ? path.join(home, dir.slice(2)) : dir;
|
|
93
|
+
};
|
|
94
|
+
const fromEnv = env.MISTER_MORPH_FILE_STATE_DIR?.trim();
|
|
95
|
+
if (fromEnv !== undefined && fromEnv !== "") {
|
|
96
|
+
return expand(fromEnv);
|
|
97
|
+
}
|
|
98
|
+
const configured = env.MISTER_MORPH_CONFIG?.trim();
|
|
99
|
+
const configPath = expand(configured === undefined || configured === "" ? path.join(home, ".morph", "config.yaml") : configured);
|
|
100
|
+
if (existsSync(configPath)) {
|
|
101
|
+
const match = /^file_state_dir:[ \t]*["']?([^"'#\r\n]*?)["']?[ \t]*(?:#.*)?$/mu.exec(readFileSync(configPath, "utf8"));
|
|
102
|
+
const stateDir = match?.[1]?.trim();
|
|
103
|
+
if (stateDir !== undefined && stateDir !== "") {
|
|
104
|
+
return expand(stateDir);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return path.join(home, ".morph");
|
|
108
|
+
}
|
|
109
|
+
function readEndpoint(stateDir) {
|
|
110
|
+
const file = path.join(stateDir, "console", "runtime.json");
|
|
111
|
+
if (!existsSync(file)) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const record = asRecord(parseJson(readFileSync(file, "utf8")));
|
|
115
|
+
return typeof record?.url === "string" && typeof record.token === "string" ? { url: record.url.replace(/\/+$/u, ""), token: record.token } : null;
|
|
116
|
+
}
|
|
117
|
+
/** The Console published for `stateDir`, when one answers as a Console; a stale file from a dead one is not. */
|
|
118
|
+
export async function discoverConsole(stateDir) {
|
|
119
|
+
const endpoint = readEndpoint(stateDir);
|
|
120
|
+
if (endpoint === null) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
const client = new ConsoleClient(endpoint);
|
|
124
|
+
try {
|
|
125
|
+
const health = await client.call("GET", "/health");
|
|
126
|
+
return health.status === 200 && asRecord(health.body)?.mode === "console" ? client : null;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const owned = new Map();
|
|
133
|
+
async function startConsole(command, stateDir) {
|
|
134
|
+
// An ephemeral port: the Runtime API is found through runtime.json, and a
|
|
135
|
+
// fixed port would collide with a Console the user starts later.
|
|
136
|
+
const child = spawnLineProcess(command, ["console", "serve", "--console-listen", "127.0.0.1:0"], { cwd: stateDir });
|
|
137
|
+
await child.spawned;
|
|
138
|
+
const exit = {};
|
|
139
|
+
child.onExit((code) => {
|
|
140
|
+
exit.code = code;
|
|
141
|
+
});
|
|
142
|
+
const deadline = Date.now() + CONSOLE_START_TIMEOUT_MS;
|
|
143
|
+
for (;;) {
|
|
144
|
+
const client = await discoverConsole(stateDir);
|
|
145
|
+
if (client !== null) {
|
|
146
|
+
const console = { child, client, listeners: new Set(), holders: 0 };
|
|
147
|
+
child.onExit((code) => {
|
|
148
|
+
owned.delete(stateDir);
|
|
149
|
+
for (const listener of console.listeners) {
|
|
150
|
+
listener(code);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
return console;
|
|
154
|
+
}
|
|
155
|
+
if ("code" in exit) {
|
|
156
|
+
throw processFailure(`morph console serve exited before publishing ${path.join(stateDir, "console", "runtime.json")}`, child.diagnostics());
|
|
157
|
+
}
|
|
158
|
+
if (Date.now() > deadline) {
|
|
159
|
+
child.kill();
|
|
160
|
+
await child.exited;
|
|
161
|
+
throw processFailure(`morph console serve did not publish its Runtime API within ${String(CONSOLE_START_TIMEOUT_MS)} ms`, child.diagnostics());
|
|
162
|
+
}
|
|
163
|
+
await delay(DISCOVERY_POLL_MS);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Hold the Console for `stateDir`: the one already running (attached, never
|
|
168
|
+
* stopped by OAR), or one this process starts and shares until the last lease
|
|
169
|
+
* is released. A Console the user started in the meantime wins the state
|
|
170
|
+
* directory lock, and the start falls back to attaching to it.
|
|
171
|
+
*/
|
|
172
|
+
export async function acquireConsole(command, stateDir) {
|
|
173
|
+
const pending = owned.get(stateDir);
|
|
174
|
+
if (pending === undefined) {
|
|
175
|
+
const running = await discoverConsole(stateDir);
|
|
176
|
+
if (running !== null) {
|
|
177
|
+
return attachedLease(running);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
let starting = owned.get(stateDir);
|
|
181
|
+
if (starting === undefined) {
|
|
182
|
+
starting = startConsole(command, stateDir);
|
|
183
|
+
owned.set(stateDir, starting);
|
|
184
|
+
}
|
|
185
|
+
const console = await starting.catch(async (error) => {
|
|
186
|
+
owned.delete(stateDir);
|
|
187
|
+
const running = await discoverConsole(stateDir);
|
|
188
|
+
if (running === null) {
|
|
189
|
+
throw error;
|
|
190
|
+
}
|
|
191
|
+
return running;
|
|
192
|
+
});
|
|
193
|
+
if (console instanceof ConsoleClient) {
|
|
194
|
+
return attachedLease(console);
|
|
195
|
+
}
|
|
196
|
+
console.holders += 1;
|
|
197
|
+
let released = false;
|
|
198
|
+
const mine = new Set();
|
|
199
|
+
return {
|
|
200
|
+
client: console.client,
|
|
201
|
+
owned: true,
|
|
202
|
+
onExit(listener) {
|
|
203
|
+
mine.add(listener);
|
|
204
|
+
console.listeners.add(listener);
|
|
205
|
+
},
|
|
206
|
+
async release() {
|
|
207
|
+
if (released) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
released = true;
|
|
211
|
+
for (const listener of mine) {
|
|
212
|
+
console.listeners.delete(listener);
|
|
213
|
+
}
|
|
214
|
+
console.holders -= 1;
|
|
215
|
+
if (console.holders > 0) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
218
|
+
owned.delete(stateDir);
|
|
219
|
+
console.child.kill();
|
|
220
|
+
return { code: await console.child.exited };
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
function attachedLease(client) {
|
|
225
|
+
return {
|
|
226
|
+
client,
|
|
227
|
+
owned: false,
|
|
228
|
+
onExit() {
|
|
229
|
+
// Not ours: its exit shows up as unreachable calls instead.
|
|
230
|
+
},
|
|
231
|
+
release: async () => {
|
|
232
|
+
await Promise.resolve();
|
|
233
|
+
return null;
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=console.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/community/morph/console.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RuntimeBrand } from "../../contracts/brand.js";
|
|
2
|
+
import { type Runtime } from "../../contracts/runtime.js";
|
|
3
|
+
/** The Mister Morph mark (assets/brands/morph*.svg; see assets/brands/NOTICE.md). */
|
|
4
|
+
export declare const morphBrand: RuntimeBrand;
|
|
5
|
+
/** A morph runtime: its probe, model listing and refusals are always there. */
|
|
6
|
+
export type MorphRuntime = Runtime & Required<Pick<Runtime, "installation" | "listModels" | "refusedSessionOptions">>;
|
|
7
|
+
/**
|
|
8
|
+
* Mister Morph, driven through its Console Runtime API
|
|
9
|
+
* (docs/runtimes/morph.md). A community runtime: not in the built-in
|
|
10
|
+
* `runtimes` registry; a host adds it with
|
|
11
|
+
* `createRuntimeRegistry([...defaultRuntimes.list(), createMorphRuntime()])`.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createMorphRuntime(): MorphRuntime;
|
|
14
|
+
export { projectMorphModels } from "./list-models.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/community/morph/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAKzE,qFAAqF;AACrF,eAAO,MAAM,UAAU,EAAE,YAOxB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,YAAY,GAAG,uBAAuB,CAAC,CAAC,CAAC;AAEtH;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CASjD;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { defineRuntime } from "../../contracts/runtime.js";
|
|
2
|
+
import { morphInstallation } from "./installation.js";
|
|
3
|
+
import { morphListModels } from "./list-models.js";
|
|
4
|
+
import { morphRefusedSessionOptions, morphSession } from "./session.js";
|
|
5
|
+
/** The Mister Morph mark (assets/brands/morph*.svg; see assets/brands/NOTICE.md). */
|
|
6
|
+
export const morphBrand = {
|
|
7
|
+
name: "Mister Morph",
|
|
8
|
+
icon: `data:image/svg+xml,${encodeURIComponent("<svg width=\"512\" height=\"512\" viewBox=\"0 0 512 512\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z\" fill=\"#1F1F1F\"/>\n<circle cx=\"256\" cy=\"256\" r=\"160\" fill=\"#1F1F1F\"/>\n<path d=\"M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z\" fill=\"#1F1F1F\"/>\n<circle cx=\"318\" cy=\"255\" r=\"19.5\" fill=\"white\" stroke=\"white\"/>\n<circle cx=\"191\" cy=\"255\" r=\"19.5\" fill=\"white\" stroke=\"white\"/>\n<path d=\"M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5\" stroke=\"white\" stroke-width=\"12\" stroke-linecap=\"round\"/>\n<path d=\"M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z\" fill=\"#1F1F1F\"/>\n</svg>\n")}`,
|
|
9
|
+
icons: {
|
|
10
|
+
light: `data:image/svg+xml,${encodeURIComponent("<svg width=\"512\" height=\"512\" viewBox=\"0 0 512 512\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z\" fill=\"#1F1F1F\"/>\n<circle cx=\"256\" cy=\"256\" r=\"160\" fill=\"#1F1F1F\"/>\n<path d=\"M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z\" fill=\"#1F1F1F\"/>\n<circle cx=\"318\" cy=\"255\" r=\"19.5\" fill=\"white\" stroke=\"white\"/>\n<circle cx=\"191\" cy=\"255\" r=\"19.5\" fill=\"white\" stroke=\"white\"/>\n<path d=\"M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5\" stroke=\"white\" stroke-width=\"12\" stroke-linecap=\"round\"/>\n<path d=\"M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z\" fill=\"#1F1F1F\"/>\n</svg>\n")}`,
|
|
11
|
+
dark: `data:image/svg+xml,${encodeURIComponent("<svg width=\"512\" height=\"512\" viewBox=\"0 0 512 512\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M256 42C374.189 42 470 137.811 470 256C470 374.189 374.189 470 256 470C137.811 470 42 374.189 42 256C42 137.811 137.811 42 256 42ZM256 56C145.543 56 56 145.543 56 256C56 366.457 145.543 456 256 456C366.457 456 456 366.457 456 256C456 145.543 366.457 56 256 56Z\" fill=\"#FFFFFF\"/>\n<circle cx=\"256\" cy=\"256\" r=\"160\" fill=\"#FFFFFF\"/>\n<path d=\"M256 96C344.366 96 416 167.634 416 256C416 344.366 344.366 416 256 416C167.634 416 96 344.366 96 256C96 167.634 167.634 96 256 96ZM256 116C178.68 116 116 178.68 116 256C116 333.32 178.68 396 256 396C333.32 396 396 333.32 396 256C396 178.68 333.32 116 256 116Z\" fill=\"#FFFFFF\"/>\n<circle cx=\"318\" cy=\"255\" r=\"19.5\" fill=\"#1F1F1F\" stroke=\"#1F1F1F\"/>\n<circle cx=\"191\" cy=\"255\" r=\"19.5\" fill=\"#1F1F1F\" stroke=\"#1F1F1F\"/>\n<path d=\"M233.5 282.5C235.333 287.167 242.4 296.5 256 296.5C269.6 296.5 276.333 287.167 278 282.5\" stroke=\"#1F1F1F\" stroke-width=\"12\" stroke-linecap=\"round\"/>\n<path d=\"M264 466H248V412H264V466ZM132 355.188L95.3662 381.321L86.0742 368.296L122.708 342.162L132 355.188ZM427.279 368.134L417.987 381.159L381.354 355.025L390.646 342L427.279 368.134ZM428.926 151.025L392.292 177.159L383 164.134L419.634 138L428.926 151.025ZM129.279 161.134L119.987 174.159L83.3545 148.025L92.6465 135L129.279 161.134ZM264 97H248V51H264V97Z\" fill=\"#FFFFFF\"/>\n</svg>\n")}`,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Mister Morph, driven through its Console Runtime API
|
|
16
|
+
* (docs/runtimes/morph.md). A community runtime: not in the built-in
|
|
17
|
+
* `runtimes` registry; a host adds it with
|
|
18
|
+
* `createRuntimeRegistry([...defaultRuntimes.list(), createMorphRuntime()])`.
|
|
19
|
+
*/
|
|
20
|
+
export function createMorphRuntime() {
|
|
21
|
+
return defineRuntime({
|
|
22
|
+
id: "morph",
|
|
23
|
+
brand: morphBrand,
|
|
24
|
+
installation: morphInstallation,
|
|
25
|
+
listModels: morphListModels,
|
|
26
|
+
session: morphSession,
|
|
27
|
+
refusedSessionOptions: morphRefusedSessionOptions,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export { projectMorphModels } from "./list-models.js";
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/community/morph/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAgB,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAExE,qFAAqF;AACrF,MAAM,CAAC,MAAM,UAAU,GAAiB;IACtC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,w7CAAw7C,CAAC,EAAE;IAC1+C,KAAK,EAAE;QACL,KAAK,EAAE,sBAAsB,kBAAkB,CAAC,w7CAAw7C,CAAC,EAAE;QAC3+C,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,k8CAAk8C,CAAC,EAAE;KACr/C;CACF,CAAC;AAKF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,aAAa,CAAC;QACnB,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,UAAU;QACjB,YAAY,EAAE,iBAAiB;QAC/B,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,YAAY;QACrB,qBAAqB,EAAE,0BAA0B;KAClD,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { InstallationProbe } from "../../contracts/installation.js";
|
|
2
|
+
/** `morph` rejects `--version`; its version is the `version` subcommand's "morph <version>" line. */
|
|
3
|
+
export declare const morphInstallation: InstallationProbe;
|
|
4
|
+
//# sourceMappingURL=installation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.d.ts","sourceRoot":"","sources":["../../../src/community/morph/installation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAMzE,qGAAqG;AACrG,eAAO,MAAM,iBAAiB,EAAE,iBAQ/B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { runExecutable } from "../../shared/executable/index.js";
|
|
2
|
+
import { executableInstallation } from "../../shared/installation.js";
|
|
3
|
+
const executable = executableInstallation("OAR_MORPH_BIN", "morph", ["mistermorph"]);
|
|
4
|
+
/** `morph` rejects `--version`; its version is the `version` subcommand's "morph <version>" line. */
|
|
5
|
+
export const morphInstallation = async () => {
|
|
6
|
+
const snapshot = await executable();
|
|
7
|
+
if (snapshot.kind !== "available" || snapshot.via !== "executable" || snapshot.version !== undefined) {
|
|
8
|
+
return snapshot;
|
|
9
|
+
}
|
|
10
|
+
const result = await runExecutable(snapshot.command, ["version"], { timeoutMs: 10_000 });
|
|
11
|
+
const version = result.ok ? /^(?:morph|mistermorph)\s+(\S+)/mu.exec(result.stdout)?.[1] : undefined;
|
|
12
|
+
return version === undefined ? snapshot : { ...snapshot, version };
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=installation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installation.js","sourceRoot":"","sources":["../../../src/community/morph/installation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AAErF,qGAAqG;AACrG,MAAM,CAAC,MAAM,iBAAiB,GAAsB,KAAK,IAAI,EAAE;IAC7D,MAAM,QAAQ,GAAG,MAAM,UAAU,EAAE,CAAC;IACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,QAAQ,CAAC,GAAG,KAAK,YAAY,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACrG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC;AACrE,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ModelEntry, ModelLister } from "../../contracts/list-models.js";
|
|
2
|
+
/**
|
|
3
|
+
* Console's LLM profiles (`GET /llm/profiles`) as models: the profile name is
|
|
4
|
+
* the selector a session's `model` takes (sent as `llm_profile`), the model it
|
|
5
|
+
* names today is `resolvedId`. The default profile comes first.
|
|
6
|
+
*/
|
|
7
|
+
export declare function projectMorphModels(catalog: unknown): ModelEntry[];
|
|
8
|
+
export declare const morphListModels: ModelLister;
|
|
9
|
+
//# sourceMappingURL=list-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-models.d.ts","sourceRoot":"","sources":["../../../src/community/morph/list-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,UAAU,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIhG;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE,CAajE;AAED,eAAO,MAAM,eAAe,EAAE,WAU7B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { asRecord, asRecordList } from "../../shared/json.js";
|
|
2
|
+
import { acquireConsole, morphStateDir } from "./console.js";
|
|
3
|
+
/**
|
|
4
|
+
* Console's LLM profiles (`GET /llm/profiles`) as models: the profile name is
|
|
5
|
+
* the selector a session's `model` takes (sent as `llm_profile`), the model it
|
|
6
|
+
* names today is `resolvedId`. The default profile comes first.
|
|
7
|
+
*/
|
|
8
|
+
export function projectMorphModels(catalog) {
|
|
9
|
+
const record = asRecord(catalog);
|
|
10
|
+
const models = [];
|
|
11
|
+
for (const profile of [asRecord(record?.default), ...asRecordList(record?.items)]) {
|
|
12
|
+
if (typeof profile?.name !== "string" || profile.name === "" || models.some((model) => model.id === profile.name)) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
models.push({
|
|
16
|
+
id: profile.name,
|
|
17
|
+
...(typeof profile.model === "string" && profile.model !== "" ? { resolvedId: profile.model } : {}),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return models;
|
|
21
|
+
}
|
|
22
|
+
export const morphListModels = async (installation) => {
|
|
23
|
+
if (installation.via !== "executable") {
|
|
24
|
+
return { kind: "unsupported", reason: "morph models are listed by its Console, which needs the morph executable" };
|
|
25
|
+
}
|
|
26
|
+
const lease = await acquireConsole(installation.command, morphStateDir());
|
|
27
|
+
try {
|
|
28
|
+
return { kind: "ok", models: projectMorphModels(await lease.client.expect("GET", "/llm/profiles")) };
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
await lease.release();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=list-models.js.map
|