@executioncontrolprotocol/cli 0.10.0 → 0.11.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.
Files changed (82) hide show
  1. package/README.md +61 -0
  2. package/dist/commands/invoke.d.ts +17 -0
  3. package/dist/commands/invoke.d.ts.map +1 -0
  4. package/dist/commands/invoke.js +47 -0
  5. package/dist/commands/invoke.js.map +1 -0
  6. package/dist/commands/serve.d.ts +15 -0
  7. package/dist/commands/serve.d.ts.map +1 -0
  8. package/dist/commands/serve.js +53 -0
  9. package/dist/commands/serve.js.map +1 -0
  10. package/dist/commands/test/rerun.d.ts +16 -0
  11. package/dist/commands/test/rerun.d.ts.map +1 -0
  12. package/dist/commands/test/rerun.js +38 -0
  13. package/dist/commands/test/rerun.js.map +1 -0
  14. package/dist/commands/test/run.d.ts +14 -0
  15. package/dist/commands/test/run.d.ts.map +1 -0
  16. package/dist/commands/test/run.js +36 -0
  17. package/dist/commands/test/run.js.map +1 -0
  18. package/dist/commands/test/start.d.ts +17 -0
  19. package/dist/commands/test/start.d.ts.map +1 -0
  20. package/dist/commands/test/start.js +43 -0
  21. package/dist/commands/test/start.js.map +1 -0
  22. package/dist/commands/test/status.d.ts +12 -0
  23. package/dist/commands/test/status.d.ts.map +1 -0
  24. package/dist/commands/test/status.js +24 -0
  25. package/dist/commands/test/status.js.map +1 -0
  26. package/dist/commands/test.d.ts +9 -0
  27. package/dist/commands/test.d.ts.map +1 -0
  28. package/dist/commands/test.js +32 -0
  29. package/dist/commands/test.js.map +1 -0
  30. package/dist/commands/up.d.ts +18 -0
  31. package/dist/commands/up.d.ts.map +1 -0
  32. package/dist/commands/up.js +95 -0
  33. package/dist/commands/up.js.map +1 -0
  34. package/dist/lib/http/create-serve-handler.d.ts +15 -0
  35. package/dist/lib/http/create-serve-handler.d.ts.map +1 -0
  36. package/dist/lib/http/create-serve-handler.js +34 -0
  37. package/dist/lib/http/create-serve-handler.js.map +1 -0
  38. package/dist/lib/http/create-serve.d.ts +30 -0
  39. package/dist/lib/http/create-serve.d.ts.map +1 -0
  40. package/dist/lib/http/create-serve.js +43 -0
  41. package/dist/lib/http/create-serve.js.map +1 -0
  42. package/dist/lib/http/handle-invoke.d.ts +42 -0
  43. package/dist/lib/http/handle-invoke.d.ts.map +1 -0
  44. package/dist/lib/http/handle-invoke.js +66 -0
  45. package/dist/lib/http/handle-invoke.js.map +1 -0
  46. package/dist/lib/http/read-body.d.ts +7 -0
  47. package/dist/lib/http/read-body.d.ts.map +1 -0
  48. package/dist/lib/http/read-body.js +12 -0
  49. package/dist/lib/http/read-body.js.map +1 -0
  50. package/dist/lib/http/write-json.d.ts +7 -0
  51. package/dist/lib/http/write-json.d.ts.map +1 -0
  52. package/dist/lib/http/write-json.js +11 -0
  53. package/dist/lib/http/write-json.js.map +1 -0
  54. package/dist/lib/test-session-io.d.ts +12 -0
  55. package/dist/lib/test-session-io.d.ts.map +1 -0
  56. package/dist/lib/test-session-io.js +36 -0
  57. package/dist/lib/test-session-io.js.map +1 -0
  58. package/dist/lib/up/constants.d.ts +15 -0
  59. package/dist/lib/up/constants.d.ts.map +1 -0
  60. package/dist/lib/up/constants.js +21 -0
  61. package/dist/lib/up/constants.js.map +1 -0
  62. package/dist/lib/up/cors.d.ts +12 -0
  63. package/dist/lib/up/cors.d.ts.map +1 -0
  64. package/dist/lib/up/cors.js +28 -0
  65. package/dist/lib/up/cors.js.map +1 -0
  66. package/dist/lib/up/create-daemon.d.ts +37 -0
  67. package/dist/lib/up/create-daemon.d.ts.map +1 -0
  68. package/dist/lib/up/create-daemon.js +63 -0
  69. package/dist/lib/up/create-daemon.js.map +1 -0
  70. package/dist/lib/up/handle-request.d.ts +19 -0
  71. package/dist/lib/up/handle-request.d.ts.map +1 -0
  72. package/dist/lib/up/handle-request.js +49 -0
  73. package/dist/lib/up/handle-request.js.map +1 -0
  74. package/dist/lib/up/open-browser.d.ts +19 -0
  75. package/dist/lib/up/open-browser.d.ts.map +1 -0
  76. package/dist/lib/up/open-browser.js +43 -0
  77. package/dist/lib/up/open-browser.js.map +1 -0
  78. package/dist/lib/up/read-body.d.ts +3 -0
  79. package/dist/lib/up/read-body.d.ts.map +1 -0
  80. package/dist/lib/up/read-body.js +3 -0
  81. package/dist/lib/up/read-body.js.map +1 -0
  82. package/package.json +8 -7
@@ -0,0 +1,63 @@
1
+ import { createServer } from "node:http";
2
+ import { environment, extension } from "@executioncontrolprotocol/node";
3
+ import "@executioncontrolprotocol/extension-ollama";
4
+ import { registerOllamaExtension } from "@executioncontrolprotocol/extension-ollama";
5
+ import { DEFAULT_CORS_ORIGINS, DEFAULT_ECP_UP_HOST, DEFAULT_ECP_UP_PORT, DEFAULT_OLLAMA_URL, } from "./constants.js";
6
+ import { createUpRequestHandler } from "./handle-request.js";
7
+ /**
8
+ * Start the local ECP daemon (`ecp up`).
9
+ * @category CLI
10
+ */
11
+ export async function startEcpUpDaemon(options) {
12
+ const port = options.port ?? DEFAULT_ECP_UP_PORT;
13
+ const host = options.host ?? DEFAULT_ECP_UP_HOST;
14
+ const ollamaUrl = options.ollamaUrl ?? DEFAULT_OLLAMA_URL;
15
+ const token = options.token;
16
+ await registerOllamaExtension();
17
+ const env = (await environment("ecp-up")).withExtensions([
18
+ extension("@executioncontrolprotocol/ollama").with({
19
+ baseURL: ollamaUrl,
20
+ }),
21
+ ]);
22
+ const ecp = await env.init();
23
+ const allowOrigins = new Set([
24
+ ...DEFAULT_CORS_ORIGINS,
25
+ ...(options.corsOrigins ?? []),
26
+ ]);
27
+ const handler = createUpRequestHandler({
28
+ ecp,
29
+ allowOrigins,
30
+ token,
31
+ ollamaUrl,
32
+ });
33
+ const server = createServer((req, res) => {
34
+ void handler(req, res).catch((err) => {
35
+ const message = err instanceof Error ? err.message : String(err);
36
+ if (!res.headersSent) {
37
+ res.writeHead(500, { "Content-Type": "application/json" });
38
+ }
39
+ res.end(JSON.stringify({ error: message }));
40
+ });
41
+ });
42
+ await new Promise((resolve, reject) => {
43
+ server.once("error", reject);
44
+ server.listen(port, host, () => {
45
+ server.off("error", reject);
46
+ resolve();
47
+ });
48
+ });
49
+ return {
50
+ server,
51
+ ecp,
52
+ port,
53
+ host,
54
+ token,
55
+ close: async () => {
56
+ await new Promise((resolve, reject) => {
57
+ server.close((err) => (err ? reject(err) : resolve()));
58
+ });
59
+ await ecp.terminate();
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=create-daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-daemon.js","sourceRoot":"","sources":["../../../src/lib/up/create-daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { Ecp } from "@executioncontrolprotocol/core";
3
+ /** Dependencies for {@link createUpRequestHandler}. @category CLI */
4
+ export interface UpRequestHandlerOptions {
5
+ /** Operational ECP instance. */
6
+ ecp: Ecp;
7
+ /** Allowlisted CORS origins. */
8
+ allowOrigins: ReadonlySet<string>;
9
+ /** Pairing token for `/v1/*`. */
10
+ token: string;
11
+ /** Ollama base URL used for `/health` reachability. */
12
+ ollamaUrl: string;
13
+ }
14
+ /**
15
+ * Create the HTTP request handler for `ecp up`.
16
+ * @category CLI
17
+ */
18
+ export declare function createUpRequestHandler(options: UpRequestHandlerOptions): (req: IncomingMessage, res: ServerResponse) => Promise<void>;
19
+ //# sourceMappingURL=handle-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-request.d.ts","sourceRoot":"","sources":["../../../src/lib/up/handle-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAA;AAOzD,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,GAAG,EAAE,GAAG,CAAA;IACR,gCAAgC;IAChC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,IAInE,KAAK,eAAe,EACpB,KAAK,cAAc,KAClB,OAAO,CAAC,IAAI,CAAC,CAwCjB"}
@@ -0,0 +1,49 @@
1
+ import { listOllamaModels } from "@executioncontrolprotocol/extension-ollama";
2
+ import { handleInvokePost } from "../http/handle-invoke.js";
3
+ import { writeJson } from "../http/write-json.js";
4
+ import { ECP_UP_VERSION } from "./constants.js";
5
+ import { readBearerToken, setCorsAndPna } from "./cors.js";
6
+ /**
7
+ * Create the HTTP request handler for `ecp up`.
8
+ * @category CLI
9
+ */
10
+ export function createUpRequestHandler(options) {
11
+ const { ecp, allowOrigins, token, ollamaUrl } = options;
12
+ return async function handleUpRequest(req, res) {
13
+ setCorsAndPna(req, res, allowOrigins);
14
+ if (req.method === "OPTIONS") {
15
+ res.writeHead(204);
16
+ res.end();
17
+ return;
18
+ }
19
+ const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "127.0.0.1"}`);
20
+ const pathname = url.pathname;
21
+ if (req.method === "GET" && pathname === "/health") {
22
+ let ollamaReachable = false;
23
+ try {
24
+ await listOllamaModels(ollamaUrl, { signal: AbortSignal.timeout(2000) });
25
+ ollamaReachable = true;
26
+ }
27
+ catch {
28
+ ollamaReachable = false;
29
+ }
30
+ writeJson(res, 200, {
31
+ ok: true,
32
+ version: ECP_UP_VERSION,
33
+ ollamaReachable,
34
+ });
35
+ return;
36
+ }
37
+ if (req.method === "POST" && pathname === "/v1/invoke") {
38
+ const presented = readBearerToken(req);
39
+ if (!presented || presented !== token) {
40
+ writeJson(res, 401, { error: "Unauthorized" });
41
+ return;
42
+ }
43
+ await handleInvokePost(ecp, req, res);
44
+ return;
45
+ }
46
+ writeJson(res, 404, { error: "Not found" });
47
+ };
48
+ }
49
+ //# sourceMappingURL=handle-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-request.js","sourceRoot":"","sources":["../../../src/lib/up/handle-request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAc1D;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEvD,OAAO,KAAK,UAAU,eAAe,CACnC,GAAoB,EACpB,GAAmB;QAEnB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAA;QAErC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClB,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAA;QAChF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAE7B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,eAAe,GAAG,KAAK,CAAA;YAC3B,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACxE,eAAe,GAAG,IAAI,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe,GAAG,KAAK,CAAA;YACzB,CAAC;YACD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;gBAClB,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,cAAc;gBACvB,eAAe;aAChB,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;gBACtC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAA;gBAC9C,OAAM;YACR,CAAC;YACD,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Open a URL in the default browser (best-effort, fire-and-forget).
3
+ * @category CLI
4
+ */
5
+ export declare function openBrowserUrl(url: string): void;
6
+ /**
7
+ * Build the demo open URL with pairing token (and optional bridge base).
8
+ * @category CLI
9
+ */
10
+ export declare function buildDemoOpenUrl(openUrl: string, options: {
11
+ token: string;
12
+ bridgeBaseURL?: string;
13
+ }): string;
14
+ /**
15
+ * Origin (scheme + host + port) for CORS allowlisting from an open URL.
16
+ * @category CLI
17
+ */
18
+ export declare function originFromUrl(raw: string): string | undefined;
19
+ //# sourceMappingURL=open-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../../../src/lib/up/open-browser.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAWhD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO7D"}
@@ -0,0 +1,43 @@
1
+ import { spawn } from "node:child_process";
2
+ /**
3
+ * Open a URL in the default browser (best-effort, fire-and-forget).
4
+ * @category CLI
5
+ */
6
+ export function openBrowserUrl(url) {
7
+ const platform = process.platform;
8
+ if (platform === "win32") {
9
+ spawn("cmd", ["/c", "start", "", url], { detached: true, stdio: "ignore" }).unref();
10
+ return;
11
+ }
12
+ if (platform === "darwin") {
13
+ spawn("open", [url], { detached: true, stdio: "ignore" }).unref();
14
+ return;
15
+ }
16
+ spawn("xdg-open", [url], { detached: true, stdio: "ignore" }).unref();
17
+ }
18
+ /**
19
+ * Build the demo open URL with pairing token (and optional bridge base).
20
+ * @category CLI
21
+ */
22
+ export function buildDemoOpenUrl(openUrl, options) {
23
+ const url = new URL(openUrl);
24
+ url.searchParams.set("token", options.token);
25
+ if (options.bridgeBaseURL) {
26
+ url.searchParams.set("bridge", options.bridgeBaseURL);
27
+ }
28
+ return url.toString();
29
+ }
30
+ /**
31
+ * Origin (scheme + host + port) for CORS allowlisting from an open URL.
32
+ * @category CLI
33
+ */
34
+ export function originFromUrl(raw) {
35
+ try {
36
+ const url = new URL(raw);
37
+ return url.origin;
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ //# sourceMappingURL=open-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../../src/lib/up/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACnF,OAAM;IACR,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACjE,OAAM;IACR,CAAC;IACD,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAAkD;IAElD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,OAAO,GAAG,CAAC,MAAM,CAAA;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Re-export for callers that still import from the up path. @category CLI */
2
+ export { readRequestBody } from "../http/read-body.js";
3
+ //# sourceMappingURL=read-body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.d.ts","sourceRoot":"","sources":["../../../src/lib/up/read-body.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Re-export for callers that still import from the up path. @category CLI */
2
+ export { readRequestBody } from "../http/read-body.js";
3
+ //# sourceMappingURL=read-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-body.js","sourceRoot":"","sources":["../../../src/lib/up/read-body.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@executioncontrolprotocol/cli",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "ECP command-line interface",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -19,18 +19,19 @@
19
19
  "start": "node ./bin/dev.js"
20
20
  },
21
21
  "peerDependencies": {
22
- "@executioncontrolprotocol/core": "^0.10.0",
23
- "@executioncontrolprotocol/types": "^0.10.0",
22
+ "@executioncontrolprotocol/core": "^0.11.0",
23
+ "@executioncontrolprotocol/types": "^0.11.0",
24
24
  "zod": "^3.24.0"
25
25
  },
26
26
  "dependencies": {
27
- "@executioncontrolprotocol/node": "0.10.0",
28
- "@executioncontrolprotocol/secrets": "0.10.0",
27
+ "@executioncontrolprotocol/node": "0.11.0",
28
+ "@executioncontrolprotocol/secrets": "0.11.0",
29
+ "@executioncontrolprotocol/extension-ollama": "0.11.0",
29
30
  "@oclif/core": "^4.10.0"
30
31
  },
31
32
  "devDependencies": {
32
- "@executioncontrolprotocol/core": "0.10.0",
33
- "@executioncontrolprotocol/types": "0.10.0",
33
+ "@executioncontrolprotocol/core": "0.11.0",
34
+ "@executioncontrolprotocol/types": "0.11.0",
34
35
  "typescript": "^5.7.0",
35
36
  "zod": "^3.24.0"
36
37
  },