@datalayer/agent-runtimes 1.5.86 → 1.5.88
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/dist-embed/chunks/{DeckComponent-D4X-rpbh.js → DeckComponent-etBrFG87.js} +1 -1
- package/dist-embed/chunks/{DocumentView-Aird-zRf.js → DocumentView-LE7AJ2BO.js} +1 -1
- package/dist-embed/chunks/{EphemeralDocument-qnhIdhNh.js → EphemeralDocument-YiGgJGkL.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawComponent-C33gsDzG.js → ExcalidrawComponent-C5J8Uqqj.js} +1 -1
- package/dist-embed/chunks/{ExcalidrawModal-DHCo94OE.js → ExcalidrawModal-D3cbhMgF.js} +1 -1
- package/dist-embed/chunks/{JupyterLexicalExtension-Cb2zt9Ki.js → JupyterLexicalExtension-BipHQ8U3.js} +7 -7
- package/dist-embed/chunks/{YouTubePlugin-C0a_9VKl.js → YouTubePlugin-BewlFg9c.js} +1 -1
- package/dist-embed/chunks/{ar-SA-G6X2FPQ2-DS3Xmdel.js → ar-SA-G6X2FPQ2-BgdfqrVp.js} +1 -1
- package/dist-embed/chunks/{az-AZ-76LH7QW2-DIApsK5M.js → az-AZ-76LH7QW2-xUMz4Jqu.js} +1 -1
- package/dist-embed/chunks/{bg-BG-XCXSNQG7-X-aS4Onm.js → bg-BG-XCXSNQG7-UR5Ld32v.js} +1 -1
- package/dist-embed/chunks/{bn-BD-2XOGV67Q-1YCe_Jnl.js → bn-BD-2XOGV67Q-CCNH7olK.js} +1 -1
- package/dist-embed/chunks/{ca-ES-6MX7JW3Y-D26sHSba.js → ca-ES-6MX7JW3Y-DaZb-gMN.js} +1 -1
- package/dist-embed/chunks/{cs-CZ-2BRQDIVT-B5pRYPPF.js → cs-CZ-2BRQDIVT-OaROtN46.js} +1 -1
- package/dist-embed/chunks/{da-DK-5WZEPLOC-BfajxBtH.js → da-DK-5WZEPLOC-DrcoMVce.js} +1 -1
- package/dist-embed/chunks/{de-DE-XR44H4JA-BovBXD5H.js → de-DE-XR44H4JA-b2_lYxS1.js} +1 -1
- package/dist-embed/chunks/{el-GR-BZB4AONW-rLXnfS2l.js → el-GR-BZB4AONW-BOT3RaFd.js} +1 -1
- package/dist-embed/chunks/{es-ES-U4NZUMDT-Do4MvuPW.js → es-ES-U4NZUMDT-BVlxd_yM.js} +1 -1
- package/dist-embed/chunks/{eu-ES-A7QVB2H4-CldbgpdZ.js → eu-ES-A7QVB2H4-BScAWOoO.js} +1 -1
- package/dist-embed/chunks/{fa-IR-HGAKTJCU-C988cp8F.js → fa-IR-HGAKTJCU-Kxnh8bHZ.js} +1 -1
- package/dist-embed/chunks/{fi-FI-Z5N7JZ37-BYmFVIh7.js → fi-FI-Z5N7JZ37-BOmDZi5v.js} +1 -1
- package/dist-embed/chunks/{fr-FR-RHASNOE6-D2Tarz3u.js → fr-FR-RHASNOE6-GOPhqKT4.js} +1 -1
- package/dist-embed/chunks/{gl-ES-HMX3MZ6V-BLuuMSHB.js → gl-ES-HMX3MZ6V-BRZS4fho.js} +1 -1
- package/dist-embed/chunks/{he-IL-6SHJWFNN-CyDIOeVd.js → he-IL-6SHJWFNN-MQEVUj2T.js} +1 -1
- package/dist-embed/chunks/{hi-IN-IWLTKZ5I-DKCduSTz.js → hi-IN-IWLTKZ5I-D_puNbt2.js} +1 -1
- package/dist-embed/chunks/{hu-HU-A5ZG7DT2-CFEUsNFV.js → hu-HU-A5ZG7DT2-VTn7BLHk.js} +1 -1
- package/dist-embed/chunks/{id-ID-SAP4L64H-DJgKxRp8.js → id-ID-SAP4L64H-DDpkcMxl.js} +1 -1
- package/dist-embed/chunks/{index-CaAB7eph.js → index-BnyTIBRs.js} +1 -1
- package/dist-embed/chunks/{index-BvYhxJ42.js → index-D4E_ai6G.js} +1 -1
- package/dist-embed/chunks/{it-IT-JPQ66NNP-CB1iVsAn.js → it-IT-JPQ66NNP-Dmm1oVBi.js} +1 -1
- package/dist-embed/chunks/{ja-JP-DBVTYXUO-BMEokiIe.js → ja-JP-DBVTYXUO-c8yMMjUO.js} +1 -1
- package/dist-embed/chunks/{kaa-6HZHGXH3-NDSx8vED.js → kaa-6HZHGXH3-Cr7KlyI3.js} +1 -1
- package/dist-embed/chunks/{kab-KAB-ZGHBKWFO-CDD0AUe8.js → kab-KAB-ZGHBKWFO-C5lvSze2.js} +1 -1
- package/dist-embed/chunks/{kk-KZ-P5N5QNE5-DiW940Xv.js → kk-KZ-P5N5QNE5-BWzl0srY.js} +1 -1
- package/dist-embed/chunks/{km-KH-HSX4SM5Z-D1yNJSuC.js → km-KH-HSX4SM5Z-D0hsReza.js} +1 -1
- package/dist-embed/chunks/{ko-KR-MTYHY66A-gxN7WKqI.js → ko-KR-MTYHY66A-BG6oRC2d.js} +1 -1
- package/dist-embed/chunks/{ku-TR-6OUDTVRD-AGx6lASh.js → ku-TR-6OUDTVRD-BcZeKYN4.js} +1 -1
- package/dist-embed/chunks/{lt-LT-XHIRWOB4-7aG3WRZ7.js → lt-LT-XHIRWOB4-CDMAwSRa.js} +1 -1
- package/dist-embed/chunks/{lv-LV-5QDEKY6T-kYU1Z9N2.js → lv-LV-5QDEKY6T-D2MZFbM-.js} +1 -1
- package/dist-embed/chunks/{mr-IN-CRQNXWMA-E1I_f_B2.js → mr-IN-CRQNXWMA-C4tnFlhM.js} +1 -1
- package/dist-embed/chunks/{my-MM-5M5IBNSE-BLvme-se.js → my-MM-5M5IBNSE-BeA-YSi-.js} +1 -1
- package/dist-embed/chunks/{nb-NO-T6EIAALU-CQe3vLx-.js → nb-NO-T6EIAALU-PoKJfg4d.js} +1 -1
- package/dist-embed/chunks/{nl-NL-IS3SIHDZ-DQ5lObK-.js → nl-NL-IS3SIHDZ-Cf4_wadm.js} +1 -1
- package/dist-embed/chunks/{nn-NO-6E72VCQL-JwOO_c6b.js → nn-NO-6E72VCQL-xgmyjeCA.js} +1 -1
- package/dist-embed/chunks/{oc-FR-POXYY2M6-OYZJk3Hj.js → oc-FR-POXYY2M6-CdWNnVCw.js} +1 -1
- package/dist-embed/chunks/{pa-IN-N4M65BXN-B7p6nOzS.js → pa-IN-N4M65BXN-QYWCqzud.js} +1 -1
- package/dist-embed/chunks/{percentages-BXMCSKIN-Cz9igCrb.js → percentages-BXMCSKIN-azlLrVPY.js} +3 -3
- package/dist-embed/chunks/{pl-PL-T2D74RX3-DiIfEp3O.js → pl-PL-T2D74RX3-CR9S6Ibc.js} +1 -1
- package/dist-embed/chunks/{pt-BR-5N22H2LF-7rqxomNz.js → pt-BR-5N22H2LF-BdXbK3ya.js} +1 -1
- package/dist-embed/chunks/{pt-PT-UZXXM6DQ-DE-uZxHk.js → pt-PT-UZXXM6DQ-2XA1j-L3.js} +1 -1
- package/dist-embed/chunks/{ro-RO-JPDTUUEW-BlMk-egr.js → ro-RO-JPDTUUEW-BtXn8ZEx.js} +1 -1
- package/dist-embed/chunks/{ru-RU-B4JR7IUQ-caVTslk_.js → ru-RU-B4JR7IUQ-CQX4iIyB.js} +1 -1
- package/dist-embed/chunks/{si-LK-N5RQ5JYF-DT4Sk0wC.js → si-LK-N5RQ5JYF-HKjZkrpb.js} +1 -1
- package/dist-embed/chunks/{sk-SK-C5VTKIMK-DS8_VUwQ.js → sk-SK-C5VTKIMK-D0qjylR3.js} +1 -1
- package/dist-embed/chunks/{sl-SI-NN7IZMDC-Dm37QL2T.js → sl-SI-NN7IZMDC-vxztaOUj.js} +1 -1
- package/dist-embed/chunks/{subset-shared.chunk-ByorZVMF.js → subset-shared.chunk-DEWjD_XG.js} +1 -1
- package/dist-embed/chunks/{subset-worker.chunk-CDbohCL0.js → subset-worker.chunk-DWTibNnY.js} +1 -1
- package/dist-embed/chunks/{sv-SE-XGPEYMSR-Ds2_OJfr.js → sv-SE-XGPEYMSR-N-SacX3h.js} +1 -1
- package/dist-embed/chunks/{ta-IN-2NMHFXQM-DalALtL3.js → ta-IN-2NMHFXQM-9GMEN3M3.js} +1 -1
- package/dist-embed/chunks/{th-TH-HPSO5L25-Db3wq-Mt.js → th-TH-HPSO5L25-CeESdLid.js} +1 -1
- package/dist-embed/chunks/{tr-TR-DEFEU3FU-BwZ2BWFh.js → tr-TR-DEFEU3FU-BjBigRhJ.js} +1 -1
- package/dist-embed/chunks/transformers.web-Br6X7w0a.js +42 -0
- package/dist-embed/chunks/{uk-UA-QMV73CPH-CvvKxEh4.js → uk-UA-QMV73CPH-v4nMobEN.js} +1 -1
- package/dist-embed/chunks/{vi-VN-M7AON7JQ-CWecJG5X.js → vi-VN-M7AON7JQ-D5thvMrO.js} +1 -1
- package/dist-embed/chunks/{zh-CN-LNUGB5OW-Bt8FQMA4.js → zh-CN-LNUGB5OW-Cn3ae1JT.js} +1 -1
- package/dist-embed/chunks/{zh-HK-E62DVLB3-D-aO7Cxy.js → zh-HK-E62DVLB3-OlNuka00.js} +1 -1
- package/dist-embed/chunks/{zh-TW-RAJ6MFWO-DhGr0I8R.js → zh-TW-RAJ6MFWO-DAwaB-Vu.js} +1 -1
- package/dist-embed/datalayer-app-main.js +8 -8
- package/lib/apps/apps/checks.d.ts +1 -1
- package/lib/apps/apps/checks.js +1 -1
- package/lib/apps/apps/computer.d.ts +1 -1
- package/lib/apps/apps/computer.js +1 -1
- package/lib/apps/apps/pluginPair.d.ts +1 -1
- package/lib/apps/apps/rules.d.ts +1 -1
- package/lib/apps/apps/rules.js +2 -2
- package/lib/apps/apps/visitorToken.d.ts +1 -1
- package/lib/apps/apps/visitorToken.js +1 -1
- package/lib/apps/core/appFiles.js +1 -1
- package/lib/apps/plugins/a2ui-surface/toolResult.d.ts +1 -1
- package/lib/apps/plugins/a2ui-surface/toolResult.js +1 -1
- package/lib/apps/plugins/app-page/appPageModel.d.ts +1 -1
- package/lib/apps/plugins/app-page/appPageModel.js +1 -1
- package/lib/components/cards/ToolApprovalCard.js +5 -2
- package/lib/portable/hosts/client.d.ts +11 -1
- package/lib/portable/hosts/client.js +12 -6
- package/lib/portable/hosts/contracts.json +9 -3
- package/lib/portable/hosts/index.d.ts +1 -1
- package/lib/portable/records.d.ts +1 -1
- package/lib/portable/records.js +1 -1
- package/lib/portable/semantic-events.json +3 -3
- package/lib/portable/semanticOfAgUi.d.ts +1 -1
- package/lib/runtimes/variants.d.ts +10 -8
- package/lib/runtimes/variants.js +14 -9
- package/lib/specs/agents/agents.d.ts +1 -0
- package/lib/specs/agents/agents.js +49 -0
- package/lib/specs/apps.js +32 -32
- package/lib/specs/harnesses.d.ts +1 -0
- package/lib/specs/harnesses.js +69 -18
- package/lib/specs/index.d.ts +1 -1
- package/lib/specs/index.js +1 -1
- package/lib/types/agentspecs.d.ts +2 -0
- package/package.json +1 -1
- package/scripts/codegen/generate_apps.py +1 -1
- package/scripts/codegen/generate_harnesses.py +2 -0
- package/scripts/validate_pap_examples.py +1 -1
- package/dist-embed/chunks/transformers.web-CLaqP_Vm.js +0 -42
package/lib/specs/harnesses.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const GEMINI_CLI_HARNESS_0_0_1: HarnessSpec;
|
|
|
15
15
|
export declare const GOOSE_HARNESS_0_0_1: HarnessSpec;
|
|
16
16
|
export declare const OPENCODE_HARNESS_0_0_1: HarnessSpec;
|
|
17
17
|
export declare const OPENHANDS_HARNESS_0_0_1: HarnessSpec;
|
|
18
|
+
export declare const PI_HARNESS_0_0_1: HarnessSpec;
|
|
18
19
|
export declare const HARNESS_CATALOGUE: Record<string, HarnessSpec>;
|
|
19
20
|
/** A harness by id. */
|
|
20
21
|
export declare function getHarness(harnessId: string): HarnessSpec | undefined;
|
package/lib/specs/harnesses.js
CHANGED
|
@@ -8,6 +8,7 @@ export const CLAUDE_CODE_HARNESS_0_0_1 = {
|
|
|
8
8
|
name: 'Claude Code',
|
|
9
9
|
description: "Anthropic's coding agent, driven over ACP through the Agent Client Protocol project's adapter on the Claude Agent SDK.",
|
|
10
10
|
enabled: true,
|
|
11
|
+
unavailable_because: '',
|
|
11
12
|
tags: ['harness'],
|
|
12
13
|
docs: 'https://github.com/agentclientprotocol/claude-agent-acp',
|
|
13
14
|
acp: {
|
|
@@ -72,6 +73,7 @@ export const CODEX_HARNESS_0_0_1 = {
|
|
|
72
73
|
name: 'Codex',
|
|
73
74
|
description: "OpenAI's coding agent, driven over ACP through the Agent Client Protocol project's adapter, which ships the Codex binary it drives.",
|
|
74
75
|
enabled: true,
|
|
76
|
+
unavailable_because: '',
|
|
75
77
|
tags: ['harness'],
|
|
76
78
|
docs: 'https://github.com/agentclientprotocol/codex-acp',
|
|
77
79
|
acp: {
|
|
@@ -127,6 +129,7 @@ export const CUSTOM_HARNESS_0_0_1 = {
|
|
|
127
129
|
name: 'Custom harness',
|
|
128
130
|
description: "An organization's own ACP agent, its command named by the organization's own harness spec and never typed into a form.",
|
|
129
131
|
enabled: false,
|
|
132
|
+
unavailable_because: '',
|
|
130
133
|
tags: ['harness'],
|
|
131
134
|
docs: '',
|
|
132
135
|
requires: {
|
|
@@ -171,7 +174,8 @@ export const FAST_AGENT_HARNESS_0_0_1 = {
|
|
|
171
174
|
version: '0.0.1',
|
|
172
175
|
name: 'fast-agent',
|
|
173
176
|
description: "llmindset's agent framework served over ACP; each agent it defines is a session mode, with any model provider it is configured with.",
|
|
174
|
-
enabled:
|
|
177
|
+
enabled: false,
|
|
178
|
+
unavailable_because: 'the catalogue offers four harnesses today — Claude Code, Codex, OpenCode and pi (28 October 2026); fast-agent is a framework served over ACP, not a coding agent, its adapter is a Python tool the runtime image does not carry, and it has not been drilled on Datalayer.',
|
|
175
179
|
tags: ['harness', 'framework'],
|
|
176
180
|
docs: 'https://github.com/evalstate/fast-agent/blob/main/docs/docs/acp/index.md',
|
|
177
181
|
acp: {
|
|
@@ -226,7 +230,8 @@ export const GEMINI_CLI_HARNESS_0_0_1 = {
|
|
|
226
230
|
version: '0.0.1',
|
|
227
231
|
name: 'Gemini CLI',
|
|
228
232
|
description: "Google's coding agent, which speaks ACP itself when started with --experimental-acp.",
|
|
229
|
-
enabled:
|
|
233
|
+
enabled: false,
|
|
234
|
+
unavailable_because: "the catalogue offers four harnesses today — Claude Code, Codex, OpenCode and pi (28 October 2026); Gemini CLI's API host (generativelanguage.googleapis.com) is outside a Datalayer runtime's egress boundary and is not routed through ai-inference, so it stays unfunded and unoffered there (the user's decision, 28 October 2026).",
|
|
230
235
|
tags: ['harness'],
|
|
231
236
|
docs: 'https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/cli-reference.md',
|
|
232
237
|
acp: {
|
|
@@ -282,7 +287,8 @@ export const GOOSE_HARNESS_0_0_1 = {
|
|
|
282
287
|
version: '0.0.1',
|
|
283
288
|
name: 'goose',
|
|
284
289
|
description: "Block's open agent (now the Agentic AI Foundation's), which speaks ACP itself with goose acp; any model provider it is configured with.",
|
|
285
|
-
enabled:
|
|
290
|
+
enabled: false,
|
|
291
|
+
unavailable_because: 'the catalogue offers four harnesses today — Claude Code, Codex, OpenCode and pi (28 October 2026); goose is a binary of its own release, not an npm adapter, the runtime image does not carry it, and it has not been drilled on Datalayer.',
|
|
286
292
|
tags: ['harness'],
|
|
287
293
|
docs: 'https://block.github.io/goose/docs/gdk/acp/',
|
|
288
294
|
acp: {
|
|
@@ -338,6 +344,7 @@ export const OPENCODE_HARNESS_0_0_1 = {
|
|
|
338
344
|
name: 'OpenCode',
|
|
339
345
|
description: "Anomaly's open coding agent, which speaks ACP itself with opencode acp; any model provider it is configured with.",
|
|
340
346
|
enabled: true,
|
|
347
|
+
unavailable_because: '',
|
|
341
348
|
tags: ['harness'],
|
|
342
349
|
docs: 'https://opencode.ai/docs/acp/',
|
|
343
350
|
acp: {
|
|
@@ -392,7 +399,8 @@ export const OPENHANDS_HARNESS_0_0_1 = {
|
|
|
392
399
|
version: '0.0.1',
|
|
393
400
|
name: 'OpenHands',
|
|
394
401
|
description: 'The OpenHands CLI, which speaks ACP itself with openhands acp; any model provider it is configured with.',
|
|
395
|
-
enabled:
|
|
402
|
+
enabled: false,
|
|
403
|
+
unavailable_because: "the catalogue offers four harnesses today — Claude Code, Codex, OpenCode and pi (28 October 2026); OpenHands' adapter is a Python tool the runtime image does not carry, and it has not been drilled on Datalayer.",
|
|
396
404
|
tags: ['harness'],
|
|
397
405
|
docs: 'https://docs.openhands.dev/openhands/usage/run-openhands/acp',
|
|
398
406
|
acp: {
|
|
@@ -448,6 +456,62 @@ export const OPENHANDS_HARNESS_0_0_1 = {
|
|
|
448
456
|
note: "Open source under MIT, no vendor terms of its own; the model provider's terms apply to the key. Launched as openhands acp (OpenHands-CLI README; docs.openhands.dev's ACP page); resumes with --resume; reads skills from .agents/skills (.openhands/skills is legacy).",
|
|
449
457
|
},
|
|
450
458
|
};
|
|
459
|
+
export const PI_HARNESS_0_0_1 = {
|
|
460
|
+
id: 'pi',
|
|
461
|
+
version: '0.0.1',
|
|
462
|
+
name: 'pi',
|
|
463
|
+
description: "Earendil's pi coding agent, driven over ACP through the pi-acp adapter, which spawns the published pi executable; any model provider pi is configured with.",
|
|
464
|
+
enabled: true,
|
|
465
|
+
unavailable_because: '',
|
|
466
|
+
tags: ['harness'],
|
|
467
|
+
docs: 'https://github.com/svkozak/pi-acp',
|
|
468
|
+
acp: {
|
|
469
|
+
command: 'npx',
|
|
470
|
+
args: ['-y', 'pi-acp@0.0.34'],
|
|
471
|
+
protocolVersion: 1,
|
|
472
|
+
loadSession: true,
|
|
473
|
+
mcp: 'lend',
|
|
474
|
+
modes: [],
|
|
475
|
+
env: {},
|
|
476
|
+
nativeSession: 'none',
|
|
477
|
+
},
|
|
478
|
+
requires: {
|
|
479
|
+
secrets: ['ANTHROPIC_API_KEY'],
|
|
480
|
+
binaries: ['node', 'git'],
|
|
481
|
+
},
|
|
482
|
+
terms: {
|
|
483
|
+
servedToThirdParties: 'permitted',
|
|
484
|
+
licence: 'MIT (adapter); MIT (the agent, @earendil-works/pi-coding-agent 1.4.0)',
|
|
485
|
+
},
|
|
486
|
+
skills: {
|
|
487
|
+
format: 'skill-md',
|
|
488
|
+
dir: '.pi/skills',
|
|
489
|
+
},
|
|
490
|
+
honours: {
|
|
491
|
+
model: true,
|
|
492
|
+
subagents: false,
|
|
493
|
+
},
|
|
494
|
+
capabilities: {
|
|
495
|
+
resume: 'load',
|
|
496
|
+
forkHistory: 'replay',
|
|
497
|
+
interrupt: true,
|
|
498
|
+
steering: false,
|
|
499
|
+
images: false,
|
|
500
|
+
compaction: 'own',
|
|
501
|
+
modes: [],
|
|
502
|
+
autoRun: [],
|
|
503
|
+
},
|
|
504
|
+
instructionsFile: 'AGENTS.md',
|
|
505
|
+
registered: {
|
|
506
|
+
adapter: 'pi-acp',
|
|
507
|
+
version: '0.0.34',
|
|
508
|
+
licenceSource: 'https://www.npmjs.com/package/pi-acp',
|
|
509
|
+
termsSource: 'https://github.com/earendil-works/pi/blob/main/LICENSE',
|
|
510
|
+
credential: "The provider's key pi is configured with; ANTHROPIC_API_KEY declared, the person's own",
|
|
511
|
+
binaries: 'Node 22 (pi-coding-agent engines.node >=22.19.0; pi-acp >=20), the pi executable 1.4.0 on the PATH (@earendil-works/pi-coding-agent), git',
|
|
512
|
+
note: "Read 2026-10-28. pi speaks no ACP itself; pi-acp 0.0.34 (MIT, an individual's, github.com/svkozak/pi-acp) speaks ACP JSON-RPC over stdio and spawns the published `pi` executable with `pi --mode rpc`, so pi 1.4.0 runs as published — chosen over @automatalabs/pi-acp 0.9.4 (Apache-2.0, in-process, which embeds pi 0.87.1 through its SDK on a fork's package). Open source under MIT on both sides, no vendor terms of their own; the model provider's terms apply to the key. Session persistence through pi's own session files (session/load).",
|
|
513
|
+
},
|
|
514
|
+
};
|
|
451
515
|
export const HARNESS_CATALOGUE = {
|
|
452
516
|
'claude-code': CLAUDE_CODE_HARNESS_0_0_1,
|
|
453
517
|
codex: CODEX_HARNESS_0_0_1,
|
|
@@ -457,6 +521,7 @@ export const HARNESS_CATALOGUE = {
|
|
|
457
521
|
goose: GOOSE_HARNESS_0_0_1,
|
|
458
522
|
opencode: OPENCODE_HARNESS_0_0_1,
|
|
459
523
|
openhands: OPENHANDS_HARNESS_0_0_1,
|
|
524
|
+
pi: PI_HARNESS_0_0_1,
|
|
460
525
|
};
|
|
461
526
|
/** A harness by id. */
|
|
462
527
|
export function getHarness(harnessId) {
|
|
@@ -836,20 +901,6 @@ export const LISTED_HARNESSES = [
|
|
|
836
901
|
servedToThirdParties: 'permitted',
|
|
837
902
|
note: 'Bridges ACP to an OpenClaw Gateway, whose providers keep their own terms.',
|
|
838
903
|
},
|
|
839
|
-
{
|
|
840
|
-
id: 'pi',
|
|
841
|
-
name: 'pi (through pi-acp)',
|
|
842
|
-
docs: 'https://github.com/svkozak/pi-acp',
|
|
843
|
-
adapter: 'pi-acp',
|
|
844
|
-
version: '0.0.34',
|
|
845
|
-
command: 'npx -y pi-acp',
|
|
846
|
-
licence: 'MIT',
|
|
847
|
-
licenceSource: 'https://github.com/svkozak/pi-acp/blob/main/LICENSE',
|
|
848
|
-
termsSource: 'https://github.com/svkozak/pi-acp/blob/main/LICENSE',
|
|
849
|
-
credential: "pi's configured provider's API key (a subscription login carries its provider's terms)",
|
|
850
|
-
servedToThirdParties: 'permitted',
|
|
851
|
-
note: 'Spawns pi --mode rpc from @earendil-works/pi-coding-agent (MIT).',
|
|
852
|
-
},
|
|
853
904
|
{
|
|
854
905
|
id: 'poolside',
|
|
855
906
|
name: 'Poolside (pool)',
|
package/lib/specs/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export * from './frames';
|
|
|
26
26
|
export * from './cogs';
|
|
27
27
|
export * from './harnesses';
|
|
28
28
|
export * from './sessionFiles';
|
|
29
|
-
export * from './
|
|
29
|
+
export * from './policies';
|
|
30
30
|
export * from './guards';
|
|
31
31
|
export * from './gates';
|
|
32
32
|
export * from './tracks';
|
package/lib/specs/index.js
CHANGED
|
@@ -30,7 +30,7 @@ export * from './frames.js';
|
|
|
30
30
|
export * from './cogs.js';
|
|
31
31
|
export * from './harnesses.js';
|
|
32
32
|
export * from './sessionFiles.js';
|
|
33
|
-
export * from './
|
|
33
|
+
export * from './policies.js';
|
|
34
34
|
export * from './guards.js';
|
|
35
35
|
export * from './gates.js';
|
|
36
36
|
export * from './tracks.js';
|
|
@@ -409,6 +409,8 @@ export interface HarnessSpec {
|
|
|
409
409
|
description: string;
|
|
410
410
|
/** Whether the shared catalogue offers it: `custom` is not. */
|
|
411
411
|
enabled: boolean;
|
|
412
|
+
/** Why it is not offered today, in a sentence said wherever it is named; set when `enabled` is false, and only then. */
|
|
413
|
+
unavailable_because: string;
|
|
412
414
|
tags: string[];
|
|
413
415
|
/** Where its ACP use is documented. */
|
|
414
416
|
docs: string;
|
package/package.json
CHANGED
|
@@ -94,7 +94,7 @@ def python_of(specs_dir: Path, identity: str) -> str:
|
|
|
94
94
|
Its own ``app.py`` when it was built in Python; otherwise the file `loop
|
|
95
95
|
apps eject` writes from its spec, so every example can be read in Python.
|
|
96
96
|
"""
|
|
97
|
-
from agent_runtimes.
|
|
97
|
+
from agent_runtimes.apps.scaffold import eject_text # noqa: PLC0415
|
|
98
98
|
|
|
99
99
|
code = specs_dir / identity / "app.py"
|
|
100
100
|
if code.is_file():
|
|
@@ -184,6 +184,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
|
|
|
184
184
|
f" name={_s(spec['name'])},",
|
|
185
185
|
f" description={_s(spec.get('description'))},",
|
|
186
186
|
f" enabled={bool(spec.get('enabled', True))},",
|
|
187
|
+
f" unavailable_because={_s(spec.get('unavailable_because'))},",
|
|
187
188
|
f" tags={json.dumps(list(spec.get('tags') or []))},",
|
|
188
189
|
f" docs={_s(spec.get('docs'))},",
|
|
189
190
|
]
|
|
@@ -316,6 +317,7 @@ def generate_typescript_code(
|
|
|
316
317
|
f" name: {_t(spec['name'])},",
|
|
317
318
|
f" description: {_t(spec.get('description'))},",
|
|
318
319
|
f" enabled: {json.dumps(bool(spec.get('enabled', True)))},",
|
|
320
|
+
f" unavailable_because: {_t(spec.get('unavailable_because'))},",
|
|
319
321
|
f" tags: {json.dumps(list(spec.get('tags') or []))},",
|
|
320
322
|
f" docs: {_t(spec.get('docs'))},",
|
|
321
323
|
]
|