openpond 0.0.38 → 0.0.39
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 +3 -4
- package/dist/api/core.d.ts +6 -0
- package/dist/api/vercel-protection.d.ts +1 -0
- package/dist/chunks/{app-layer-DPUJRNO2.js → app-layer-LTBWNA2F.js} +32 -10
- package/dist/chunks/app-server-runtime-VYYJ2AWX.js +18 -0
- package/dist/chunks/{apps-AKBI6AS7.js → apps-CZAJBGE3.js} +6 -4
- package/dist/chunks/{chunk-LZZM3IHS.js → chunk-2SF6HLT7.js} +5899 -5939
- package/dist/chunks/{chunk-XCATKTK3.js → chunk-3CDPPVLE.js} +108 -66
- package/dist/chunks/{chunk-JWF37O5E.js → chunk-3HW6OSHP.js} +1 -3
- package/dist/chunks/{chunk-43YI36NA.js → chunk-3KLQ52B2.js} +228 -5
- package/dist/chunks/chunk-4HIWFIMN.js +37172 -0
- package/dist/chunks/{chunk-AHPQTEIJ.js → chunk-4N6E3OVF.js} +4 -4
- package/dist/chunks/{chunk-YTJL6XPU.js → chunk-6V7MJVRO.js} +56 -11
- package/dist/chunks/{chunk-QRM7XMAO.js → chunk-BQQZNGI6.js} +152 -161
- package/dist/chunks/chunk-DBHSOTYZ.js +1552 -0
- package/dist/chunks/{chunk-275WCETC.js → chunk-FCVVOMIP.js} +145 -5
- package/dist/chunks/{chunk-GB6VUZUA.js → chunk-JIEUB6OS.js} +1 -1
- package/dist/chunks/{chunk-HS2AGRDV.js → chunk-JJPAMKXZ.js} +1 -1
- package/dist/chunks/{chunk-GDZYDLEL.js → chunk-JRROTGQT.js} +1 -110
- package/dist/chunks/chunk-KHNHUA2H.js +1737 -0
- package/dist/chunks/{chunk-AHNFNWUN.js → chunk-L6XH4ZGZ.js} +1 -1
- package/dist/chunks/chunk-M2NXTLH2.js +4054 -0
- package/dist/chunks/{chunk-SLMP353Q.js → chunk-MIZHCABO.js} +2 -195
- package/dist/chunks/chunk-SMNFI2FU.js +113 -0
- package/dist/chunks/chunk-VCVQLECH.js +675 -0
- package/dist/chunks/{chunk-V35STJF4.js → chunk-ZJBJQCQZ.js} +179 -52
- package/dist/chunks/{cli-7BKDWFNU.js → cli-JS76LCW2.js} +9 -5
- package/dist/chunks/{core-commands-YN4RMWA3.js → core-commands-4MRJQZJV.js} +7 -5
- package/dist/chunks/{harness-BHQRMXJR.js → desktop-test-RNMWLOVU.js} +15 -14
- package/dist/chunks/{chunk-XERQHYBO.js → extension-GDRW22N3.js} +5868 -3580
- package/dist/chunks/{help-VREQNA4I.js → help-LWNREJ7U.js} +1 -1
- package/dist/chunks/{opchat-D63YTNSX.js → opchat-2K2JIGK3.js} +9 -10
- package/dist/chunks/{organizations-I46KG7TC.js → organizations-Z5HVD2E7.js} +11 -9
- package/dist/chunks/{profile-WKZJHEPG.js → profile-QNECVVGN.js} +12 -38
- package/dist/chunks/{project-agent-ZUC3YMCT.js → project-agent-W3V75WBR.js} +9 -411
- package/dist/chunks/{sandbox-command-AAOPFTI5.js → sandbox-command-X3FO74NX.js} +7 -5
- package/dist/chunks/{sandbox-template-GKNVR4C5.js → sandbox-template-5B4T4BGU.js} +8 -6
- package/dist/chunks/{src-RPW5TOPI.js → src-ESAILPUH.js} +32 -30
- package/dist/chunks/src-IC5RX4L6.js +63517 -0
- package/dist/chunks/{teams-bot-PSL3ZO6Z.js → teams-bot-NTQ6VFFL.js} +6 -4
- package/dist/chunks/training-BR5A7SPU.js +320 -0
- package/dist/chunks/{workspaces-BPXC2DHT.js → workspaces-XC3QBD2Y.js} +2 -2
- package/dist/cli.js +24 -12
- package/dist/config.d.ts +9 -3
- package/dist/index.js +1300 -1045
- package/dist/profile/local-profile-types.d.ts +16 -0
- package/dist/profile/local-profile.d.ts +50 -4
- package/dist/sandbox/client-handles.d.ts +33 -46
- package/dist/sandbox/client.d.ts +4 -26
- package/dist/sandbox/sandbox-instance-client.d.ts +5 -5
- package/dist/sandbox/types/client.d.ts +1 -2
- package/dist/sandbox/types/core.d.ts +0 -1
- package/dist/sandbox/types/org-project-agent.d.ts +3 -89
- package/dist/sandbox/types/record.d.ts +1 -2
- package/dist/sandbox/types/runtime-profiles.d.ts +2 -2
- package/dist/sandbox-template/manifest.d.ts +1 -1
- package/dist/skills/openpond-agent-authoring/SKILL.md +40 -0
- package/dist/skills/openpond-agent-authoring/references/action-and-chat-design.md +13 -0
- package/dist/skills/openpond-agent-authoring/references/integrations-and-setup.md +13 -0
- package/dist/skills/openpond-agent-authoring/references/profile-layout.md +29 -0
- package/dist/skills/openpond-agent-authoring/references/validation-and-repair.md +14 -0
- package/dist/skills/openpond-desktop-harness/SKILL.md +1 -1
- package/dist/skills/openpond-skill-authoring/SKILL.md +44 -0
- package/dist/skills/openpond-skill-authoring/references/copying-and-adaptation.md +16 -0
- package/dist/skills/openpond-skill-authoring/references/skill-package-layout.md +38 -0
- package/dist/skills/openpond-skill-authoring/references/validation-and-repair.md +24 -0
- package/dist/skills/openpond-skill-authoring/scripts/validate-skill.mjs +102 -0
- package/dist/skills/openpond-taskset-authoring/SKILL.md +64 -22
- package/dist/skills/openpond-taskset-authoring/artifact.json +39 -0
- package/dist/skills/openpond-taskset-authoring/references/graders-and-rewards.md +3 -0
- package/dist/skills/openpond-taskset-authoring/references/method-selection.md +1 -1
- package/dist/skills/openpond-taskset-authoring/references/privacy-and-provenance.md +2 -0
- package/dist/skills/openpond-taskset-authoring/references/task-design.md +32 -0
- package/dist/web/assets/{AppDialog-DrwJb_wG.js → AppDialog-Bua3f-6v.js} +1 -1
- package/dist/web/assets/{AppsView-DPagLMsc.js → AppsView-DrJkHeSO.js} +1 -1
- package/dist/web/assets/BrowserSidebar-Bf-4Vozm.js +1 -0
- package/dist/web/assets/CommandMenu-DDZlGQiB.js +1 -0
- package/dist/web/assets/CommunityView-BtcCrba7.js +1 -0
- package/dist/web/assets/ComposerCreateImproveStrip-DOe5Otg6.js +1 -0
- package/dist/web/assets/GetStartedView-CG4z0Dtw.js +1 -0
- package/dist/web/assets/GetStartedView-yVmnGZPw.css +1 -0
- package/dist/web/assets/LabModelVersionDetailPage-BEkmSKuv.js +1 -0
- package/dist/web/assets/LabSkillSidebar-BIotN_RB.js +1 -0
- package/dist/web/assets/LabsRoute-CfOe0Zt5.js +3 -0
- package/dist/web/assets/LabsRoute-CoSPO4HR.css +1 -0
- package/dist/web/assets/MainChatThread-C0-l1mHt.js +2 -0
- package/dist/web/assets/MainPane-Bky_Rqcx.css +1 -0
- package/dist/web/assets/MainPane-aOVlVyRK.js +6 -0
- package/dist/web/assets/MarkdownText-D7DT1k1k.js +9 -0
- package/dist/web/assets/Messages-CBIXruA9.js +9 -0
- package/dist/web/assets/NativeSkillSidebar-C4t69Y7B.js +1 -0
- package/dist/web/assets/NewProjectDialog-Bat65tYD.js +1 -0
- package/dist/web/assets/OutputsPage-C58n39Db.js +1 -0
- package/dist/web/assets/RightChatPanelStack-Bp7nZxQ0.js +1 -0
- package/dist/web/assets/ScheduledWorkPage-BXP0j_c_.js +1 -0
- package/dist/web/assets/SettingsView-CtWK_aQ0.css +1 -0
- package/dist/web/assets/SettingsView-DOOfhO9a.js +6 -0
- package/dist/web/assets/TeamChatView-Cgxm-pKA.css +1 -0
- package/dist/web/assets/TeamChatView-De2wdqyY.js +3 -0
- package/dist/web/assets/{TerminalOverlay-BKl0p8pa.js → TerminalOverlay-BsuCH3NX.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-D2OFWyQ-.js +1 -0
- package/dist/web/assets/TrainingDraftPanel-DBpulXTz.js +1 -0
- package/dist/web/assets/{UsageSettingsSection-zDAwzTGl.js → UsageSettingsSection-DzMLUXAO.js} +37 -37
- package/dist/web/assets/WorkspaceDiffPanel-B7yIhjNF.js +14 -0
- package/dist/web/assets/WorkspaceEnvironmentMenu-B6jXM9xG.js +32 -0
- package/dist/web/assets/WorkspaceGitDialogs-CQ0fl9Qk.js +1 -0
- package/dist/web/assets/{WorkspaceMonacoEditor-DPGcG8fy.js → WorkspaceMonacoEditor-C2ctzITz.js} +3 -3
- package/dist/web/assets/arrow-up-right-ecwcx3xt.js +1 -0
- package/dist/web/assets/chevron-up-DP8PPfWd.js +1 -0
- package/dist/web/assets/circle-alert-envg1D6O.js +1 -0
- package/dist/web/assets/cloud-upload-5MGPLnaA.js +1 -0
- package/dist/web/assets/{cssMode-CKN9CcfG.js → cssMode-CFifcEfw.js} +1 -1
- package/dist/web/assets/folder-open-Dq3ZjeEP.js +1 -0
- package/dist/web/assets/folder-plus-EiZ5wbv_.js +1 -0
- package/dist/web/assets/git-branch-w29jmQ-X.js +1 -0
- package/dist/web/assets/{git-commit-horizontal-Bxi8YPep.js → git-commit-horizontal-CGZM0PZo.js} +1 -1
- package/dist/web/assets/{htmlMode-CeUcNhBZ.js → htmlMode-Ct1P-_lf.js} +1 -1
- package/dist/web/assets/index-ByIQyiUl.js +178 -0
- package/dist/web/assets/index-D4uCeiep.js +1 -0
- package/dist/web/assets/index-D9jTe16Q.css +1 -0
- package/dist/web/assets/info-Cd2HkIeb.js +1 -0
- package/dist/web/assets/{jsonMode-97z0Yz9u.js → jsonMode-BAUNCNAX.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-D4Tp-JmI.js → lspLanguageFeatures-fucFYI1A.js} +1 -1
- package/dist/web/assets/monaco.contribution-Ce4v5kei.js +2 -0
- package/dist/web/assets/monaco.contribution-DLLMi4cB.js +2 -0
- package/dist/web/assets/monaco.contribution-g9QiIm1d.js +2 -0
- package/dist/web/assets/monaco.contribution-nG-5Cyjz.js +2 -0
- package/dist/web/assets/monitor-DgHCnCKl.js +1 -0
- package/dist/web/assets/{play-C-37dnR1.js → play-Be0XDHBu.js} +1 -1
- package/dist/web/assets/{python-CGpDXY7_.js → python-CEhEiPo7.js} +1 -1
- package/dist/web/assets/{refresh-cw-BAaaPCXl.js → refresh-cw-DH0KLbdD.js} +1 -1
- package/dist/web/assets/reply-D1TK2yV8.js +1 -0
- package/dist/web/assets/{save-Cvxs3XyC.js → save-C1MSeBnQ.js} +1 -1
- package/dist/web/assets/square-CemI-0g5.js +1 -0
- package/dist/web/assets/square-pen-CqfsvR_n.js +1 -0
- package/dist/web/assets/{toggleHighContrast-CD42jH4g.js → toggleHighContrast-DrdQN3Rl.js} +1 -1
- package/dist/web/assets/training-BQVNUTZA.css +1 -0
- package/dist/web/assets/training-model-data-B7-1Bxil.js +1 -0
- package/dist/web/assets/{tsMode-ZROIxEjv.js → tsMode-CKB5oOUU.js} +1 -1
- package/dist/web/assets/{upload-DvCSGERK.js → upload-t751LLqP.js} +1 -1
- package/dist/web/assets/useLocalAgentSchedules-CzC3wfIP.js +1 -0
- package/dist/web/assets/{wifi-off-BIb94PkS.js → wifi-off-CxTHH3JU.js} +1 -1
- package/dist/web/assets/{workers-oYqbrVYG.js → workers-CqYddzCd.js} +1 -1
- package/dist/web/assets/{yaml-WqBjNgOO.js → yaml-e5wBkc-C.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +75 -40
- package/package.json +3 -1
- package/dist/chunks/chunk-FWLOFUPU.js +0 -864
- package/dist/chunks/chunk-HLCTINEP.js +0 -224
- package/dist/chunks/chunk-MPGSHXGF.js +0 -3896
- package/dist/chunks/chunk-T4QXKU5Y.js +0 -1
- package/dist/chunks/chunk-XEJ7XXUQ.js +0 -1301
- package/dist/chunks/chunk-ZI4GDAUB.js +0 -3522
- package/dist/chunks/cli-2KBVNDRY.js +0 -23
- package/dist/chunks/extend-REGNTBK3.js +0 -89
- package/dist/chunks/extension-7K77DAVL.js +0 -121
- package/dist/chunks/fileFromPath-DHCRY3BD.js +0 -2151
- package/dist/chunks/src-MWDIK56B.js +0 -105881
- package/dist/web/assets/BrowserSidebar-DMn2V8RV.js +0 -1
- package/dist/web/assets/CloudWorkView-Cl_7mM3c.js +0 -1
- package/dist/web/assets/CloudWorkView-DNoPIlMj.css +0 -1
- package/dist/web/assets/CommandMenu-CHMQLez_.js +0 -1
- package/dist/web/assets/CommunityView-DcHVDUk0.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-BZ3Dgzmo.js +0 -1
- package/dist/web/assets/GetStartedView-DBLdduwr.css +0 -1
- package/dist/web/assets/GetStartedView-DTRotFqz.js +0 -1
- package/dist/web/assets/LabSkillSidebar-D-PqFe1T.js +0 -1
- package/dist/web/assets/LabsRoute-BrJkBNig.css +0 -1
- package/dist/web/assets/LabsRoute-Dew1BwK5.js +0 -3
- package/dist/web/assets/MainChatThread-BaPxxzrw.js +0 -2
- package/dist/web/assets/MakeAgentTutorialLearningPanel-CBsfnONQ.js +0 -2
- package/dist/web/assets/MarkdownText-DGLfAM_Z.js +0 -7
- package/dist/web/assets/Messages-CIX9uTjX.js +0 -10
- package/dist/web/assets/NativeSkillSidebar-AP_uHn6g.js +0 -1
- package/dist/web/assets/NewProjectDialog-C6lHkafU.js +0 -1
- package/dist/web/assets/PostTrainingLearningPanel-CZEgPc8O.js +0 -2
- package/dist/web/assets/PostTrainingStatusPill-CeEpwUDB.js +0 -1
- package/dist/web/assets/ProfileSettingsSection-Cg4tKO-C.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-EumMLlEp.js +0 -1
- package/dist/web/assets/RightChatPanelStack-MXBcx3zO.js +0 -1
- package/dist/web/assets/SettingsView-Caljbns2.css +0 -1
- package/dist/web/assets/SettingsView-DyURG_Uh.js +0 -6
- package/dist/web/assets/TeamChatView-Bx44q3WV.css +0 -1
- package/dist/web/assets/TeamChatView-D3v6aqJ3.js +0 -3
- package/dist/web/assets/TrainingCreationPanel-CfZQTuT5.js +0 -1
- package/dist/web/assets/TrainingDraftPanel-DslRPSDW.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-C_MZPPlL.js +0 -14
- package/dist/web/assets/WorkspaceEnvironmentMenu-BUAnn80j.js +0 -32
- package/dist/web/assets/WorkspaceGitDialogs-Drbf4ujA.js +0 -1
- package/dist/web/assets/activity-Dnr3jqb3.js +0 -1
- package/dist/web/assets/boxes-BinC8UPn.js +0 -1
- package/dist/web/assets/chevron-up-Bjp_-_Cb.js +0 -1
- package/dist/web/assets/circle-x-ubnvEYuE.js +0 -1
- package/dist/web/assets/copy-B_ZCCUMz.js +0 -1
- package/dist/web/assets/create-pipeline-request-D6uLUxe9.js +0 -4
- package/dist/web/assets/file-8HAMlTmQ.js +0 -1
- package/dist/web/assets/git-branch-l2Zih3Bv.js +0 -1
- package/dist/web/assets/index-BMFyOFRU.css +0 -1
- package/dist/web/assets/index-BzwcDzbT.js +0 -1
- package/dist/web/assets/index-KoQSSt_f.js +0 -177
- package/dist/web/assets/info-JTbDQxHx.js +0 -1
- package/dist/web/assets/make-agent-tutorial-D6nBCgv-.js +0 -2
- package/dist/web/assets/monaco.contribution-B3j6oown.js +0 -2
- package/dist/web/assets/monaco.contribution-BXHxPPWL.js +0 -2
- package/dist/web/assets/monaco.contribution-C2P5zIzh.js +0 -2
- package/dist/web/assets/monaco.contribution-C8c6OtGi.js +0 -2
- package/dist/web/assets/monitor-kzHtxHnA.js +0 -1
- package/dist/web/assets/reply-9rehU13k.js +0 -1
- package/dist/web/assets/rotate-cw-C1Z_Xs23.js +0 -1
- package/dist/web/assets/training-BN8CALIc.css +0 -1
- package/dist/web/assets/training-model-data-BXUCzS0p.js +0 -1
- package/docs/agent-edit-check-status-json.md +0 -132
|
@@ -0,0 +1,675 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
external_exports
|
|
4
|
+
} from "./chunk-WYDVQOBL.js";
|
|
5
|
+
|
|
6
|
+
// ../../packages/agent-runtime/dist/compaction.js
|
|
7
|
+
function agentCompactionDecision(input) {
|
|
8
|
+
if (!input.maxContextTokens || !input.usableContextTokens) {
|
|
9
|
+
return {
|
|
10
|
+
shouldCompact: false,
|
|
11
|
+
projectedTokens: input.projectedTokens,
|
|
12
|
+
thresholdTokens: Number.MAX_SAFE_INTEGER,
|
|
13
|
+
usableContextTokens: 0,
|
|
14
|
+
maxContextTokens: 0,
|
|
15
|
+
tokenSource: "heuristic"
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const triggerRatio = Math.max(0.01, Math.min(1, (input.triggerPercent ?? 85) / 100));
|
|
19
|
+
const thresholdTokens = Math.max(1, Math.floor(input.usableContextTokens * triggerRatio));
|
|
20
|
+
return {
|
|
21
|
+
shouldCompact: input.projectedTokens >= thresholdTokens,
|
|
22
|
+
projectedTokens: input.projectedTokens,
|
|
23
|
+
thresholdTokens,
|
|
24
|
+
usableContextTokens: input.usableContextTokens,
|
|
25
|
+
maxContextTokens: input.maxContextTokens,
|
|
26
|
+
tokenSource: "heuristic"
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async function runAgentCompaction(host) {
|
|
30
|
+
await host.started();
|
|
31
|
+
try {
|
|
32
|
+
return await host.compact();
|
|
33
|
+
} catch (error) {
|
|
34
|
+
await host.failed(error);
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async function runAgentCompactionProgram(input) {
|
|
39
|
+
const projectionEvents = input.host.projectEvents(input.events);
|
|
40
|
+
const selection = input.host.selectEvents(projectionEvents, input.maxContextTokens);
|
|
41
|
+
const { summaryEvents, preservedEvents, preservedEventIds } = selection;
|
|
42
|
+
if (summaryEvents.length === 0) {
|
|
43
|
+
throw new Error("There is not enough prior context to compact.");
|
|
44
|
+
}
|
|
45
|
+
const summaryRecords = input.host.normalizeRecords(summaryEvents);
|
|
46
|
+
const fileLedger = input.host.buildFileLedger(input.host.normalizeRecords(projectionEvents));
|
|
47
|
+
const serialized = input.host.serializeRecords(summaryRecords, input.host.inputCharBudget(input.maxContextTokens));
|
|
48
|
+
if (!serialized.text.trim()) {
|
|
49
|
+
throw new Error("There is not enough prior context to compact.");
|
|
50
|
+
}
|
|
51
|
+
const messages = input.host.buildSummaryMessages({
|
|
52
|
+
serializedHistory: serialized.text,
|
|
53
|
+
fileLedger
|
|
54
|
+
});
|
|
55
|
+
const startedAtMs = Date.now();
|
|
56
|
+
const summary = (await input.host.streamSummary({
|
|
57
|
+
model: input.model,
|
|
58
|
+
messages,
|
|
59
|
+
signal: input.signal
|
|
60
|
+
})).trim();
|
|
61
|
+
const durationMs = Date.now() - startedAtMs;
|
|
62
|
+
if (!summary)
|
|
63
|
+
throw new Error("Compaction summary was empty.");
|
|
64
|
+
const projection = input.host.estimateProjection({
|
|
65
|
+
events: projectionEvents,
|
|
66
|
+
preservedEvents,
|
|
67
|
+
summary
|
|
68
|
+
});
|
|
69
|
+
const metrics = input.host.createMetrics({
|
|
70
|
+
sourceEvents: projectionEvents.length,
|
|
71
|
+
summarizedEvents: summaryEvents.length,
|
|
72
|
+
preservedEvents: preservedEvents.length,
|
|
73
|
+
summaryInputChars: serialized.inputChars,
|
|
74
|
+
retainedTailTokens: selection.retainedTailTokens,
|
|
75
|
+
retainedTailBudgetTokens: selection.retainedTailBudgetTokens,
|
|
76
|
+
finalProviderContextTokens: projection.inputTokensAfter,
|
|
77
|
+
durationMs,
|
|
78
|
+
fileLedgerEntries: fileLedger.length,
|
|
79
|
+
splitTurnId: selection.splitTurnId
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
summary,
|
|
83
|
+
model: input.model,
|
|
84
|
+
compactedThroughEventId: projectionEvents[projectionEvents.length - 1]?.id ?? null,
|
|
85
|
+
compactedThroughTurnId: input.host.lastTurnId(projectionEvents),
|
|
86
|
+
preservedFromEventId: preservedEvents[0]?.id ?? null,
|
|
87
|
+
preservedEventIds,
|
|
88
|
+
preservedResourceRefs: input.host.durableResourceRefs(input.events),
|
|
89
|
+
sourceEventCount: summaryEvents.length,
|
|
90
|
+
preservedEventCount: preservedEvents.length,
|
|
91
|
+
fileLedger,
|
|
92
|
+
inputTokensBefore: projection.inputTokensBefore,
|
|
93
|
+
inputTokensAfter: projection.inputTokensAfter,
|
|
94
|
+
maxContextTokens: input.maxContextTokens,
|
|
95
|
+
tokenSource: "heuristic",
|
|
96
|
+
metrics
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// ../../packages/agent-runtime/dist/canonical.js
|
|
101
|
+
import { createHash } from "node:crypto";
|
|
102
|
+
function canonicalJson(value) {
|
|
103
|
+
if (value === null || typeof value === "boolean" || typeof value === "string") {
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
if (typeof value === "number") {
|
|
107
|
+
if (!Number.isFinite(value))
|
|
108
|
+
throw new Error("Canonical JSON cannot encode a non-finite number.");
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
if (Array.isArray(value))
|
|
112
|
+
return value.map(canonicalJson);
|
|
113
|
+
if (typeof value === "object") {
|
|
114
|
+
const output = {};
|
|
115
|
+
for (const key of Object.keys(value).sort()) {
|
|
116
|
+
const member = value[key];
|
|
117
|
+
if (member !== void 0)
|
|
118
|
+
output[key] = canonicalJson(member);
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
throw new Error(`Canonical JSON cannot encode ${typeof value}.`);
|
|
123
|
+
}
|
|
124
|
+
function canonicalHash(value) {
|
|
125
|
+
return createHash("sha256").update(JSON.stringify(canonicalJson(value)), "utf8").digest("hex");
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// ../../packages/agent-runtime/dist/events.js
|
|
129
|
+
var AgentEventNameSchema = external_exports.enum([
|
|
130
|
+
"thread.started",
|
|
131
|
+
"thread.resumed",
|
|
132
|
+
"turn.started",
|
|
133
|
+
"turn.steered",
|
|
134
|
+
"turn.interrupted",
|
|
135
|
+
"turn.completed",
|
|
136
|
+
"turn.failed",
|
|
137
|
+
"item.started",
|
|
138
|
+
"item.delta",
|
|
139
|
+
"item.completed",
|
|
140
|
+
"assistant.reasoning.delta",
|
|
141
|
+
"assistant.delta",
|
|
142
|
+
"tool.started",
|
|
143
|
+
"tool.completed",
|
|
144
|
+
"approval.requested",
|
|
145
|
+
"approval.resolved",
|
|
146
|
+
"user_input.requested",
|
|
147
|
+
"user_input.resolved",
|
|
148
|
+
"compaction.started",
|
|
149
|
+
"compaction.completed",
|
|
150
|
+
"harness.admitted",
|
|
151
|
+
"harness.refiner.queued",
|
|
152
|
+
"harness.refiner.started",
|
|
153
|
+
"harness.refiner.completed",
|
|
154
|
+
"harness.refiner.failed",
|
|
155
|
+
"diagnostic"
|
|
156
|
+
]);
|
|
157
|
+
var CanonicalAgentEventSchema = external_exports.object({
|
|
158
|
+
sequence: external_exports.number().int().nonnegative(),
|
|
159
|
+
name: AgentEventNameSchema,
|
|
160
|
+
source: external_exports.enum(["runtime", "provider", "tool", "host", "refiner"]),
|
|
161
|
+
status: external_exports.string().trim().min(1).nullable().default(null),
|
|
162
|
+
threadId: external_exports.string().trim().min(1),
|
|
163
|
+
turnId: external_exports.string().trim().min(1).nullable().default(null),
|
|
164
|
+
callId: external_exports.string().trim().min(1).nullable().default(null),
|
|
165
|
+
output: external_exports.string().nullable().default(null),
|
|
166
|
+
error: external_exports.string().nullable().default(null),
|
|
167
|
+
data: external_exports.record(external_exports.string(), external_exports.unknown()).default({})
|
|
168
|
+
}).strict();
|
|
169
|
+
function canonicalEventHash(event) {
|
|
170
|
+
return canonicalHash(CanonicalAgentEventSchema.parse(event));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// ../../packages/agent-runtime/dist/protocol.js
|
|
174
|
+
var AGENT_PROTOCOL_VERSION = "2026-08-06";
|
|
175
|
+
var AGENT_RPC_METHODS = [
|
|
176
|
+
"initialize",
|
|
177
|
+
"initialized",
|
|
178
|
+
"runtime/capabilities",
|
|
179
|
+
"thread/start",
|
|
180
|
+
"thread/resume",
|
|
181
|
+
"thread/read",
|
|
182
|
+
"turn/start",
|
|
183
|
+
"turn/steer",
|
|
184
|
+
"turn/interrupt",
|
|
185
|
+
"approval/resolve",
|
|
186
|
+
"userInput/resolve",
|
|
187
|
+
"harness/inspect",
|
|
188
|
+
"harness/validate"
|
|
189
|
+
];
|
|
190
|
+
var JsonRpcRequestSchema = external_exports.object({
|
|
191
|
+
jsonrpc: external_exports.literal("2.0"),
|
|
192
|
+
id: external_exports.union([external_exports.string(), external_exports.number()]),
|
|
193
|
+
method: external_exports.string().trim().min(1),
|
|
194
|
+
params: external_exports.unknown().optional()
|
|
195
|
+
}).strict();
|
|
196
|
+
var JsonRpcNotificationSchema = external_exports.object({
|
|
197
|
+
jsonrpc: external_exports.literal("2.0"),
|
|
198
|
+
method: external_exports.string().trim().min(1),
|
|
199
|
+
params: external_exports.unknown().optional()
|
|
200
|
+
}).strict();
|
|
201
|
+
var JsonRpcSuccessSchema = external_exports.object({
|
|
202
|
+
jsonrpc: external_exports.literal("2.0"),
|
|
203
|
+
id: external_exports.union([external_exports.string(), external_exports.number()]),
|
|
204
|
+
result: external_exports.unknown()
|
|
205
|
+
}).strict();
|
|
206
|
+
var JsonRpcErrorSchema = external_exports.object({
|
|
207
|
+
jsonrpc: external_exports.literal("2.0"),
|
|
208
|
+
id: external_exports.union([external_exports.string(), external_exports.number(), external_exports.null()]),
|
|
209
|
+
error: external_exports.object({
|
|
210
|
+
code: external_exports.number().int(),
|
|
211
|
+
message: external_exports.string(),
|
|
212
|
+
data: external_exports.unknown().optional()
|
|
213
|
+
}).strict()
|
|
214
|
+
}).strict();
|
|
215
|
+
var AgentProtocolEnvelopeSchema = external_exports.union([
|
|
216
|
+
JsonRpcRequestSchema,
|
|
217
|
+
JsonRpcNotificationSchema,
|
|
218
|
+
JsonRpcSuccessSchema,
|
|
219
|
+
JsonRpcErrorSchema
|
|
220
|
+
]);
|
|
221
|
+
var InitializeParamsSchema = external_exports.object({
|
|
222
|
+
protocolVersion: external_exports.string().trim().min(1),
|
|
223
|
+
client: external_exports.object({
|
|
224
|
+
name: external_exports.string().trim().min(1),
|
|
225
|
+
version: external_exports.string().trim().min(1)
|
|
226
|
+
}).strict(),
|
|
227
|
+
capabilities: external_exports.record(external_exports.string(), external_exports.unknown()).default({})
|
|
228
|
+
}).strict();
|
|
229
|
+
var AgentJsonRpcDispatcher = class {
|
|
230
|
+
#host;
|
|
231
|
+
#initializeParams = null;
|
|
232
|
+
#initialized = false;
|
|
233
|
+
constructor(host) {
|
|
234
|
+
this.#host = host;
|
|
235
|
+
}
|
|
236
|
+
get initialized() {
|
|
237
|
+
return this.#initialized;
|
|
238
|
+
}
|
|
239
|
+
async handle(value) {
|
|
240
|
+
const notification = JsonRpcNotificationSchema.safeParse(value);
|
|
241
|
+
if (notification.success && !("id" in value)) {
|
|
242
|
+
if (notification.data.method === "initialized") {
|
|
243
|
+
if (!this.#initializeParams)
|
|
244
|
+
throw new JsonRpcDispatchError(-32002, "initialize must be called first");
|
|
245
|
+
this.#initialized = true;
|
|
246
|
+
}
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
const parsed = JsonRpcRequestSchema.safeParse(value);
|
|
250
|
+
if (!parsed.success)
|
|
251
|
+
return jsonRpcError(null, -32600, "Invalid Request", parsed.error.flatten());
|
|
252
|
+
const request = parsed.data;
|
|
253
|
+
try {
|
|
254
|
+
const result = await this.#dispatch(request.method, request.params);
|
|
255
|
+
return { jsonrpc: "2.0", id: request.id, result };
|
|
256
|
+
} catch (error) {
|
|
257
|
+
const dispatchError = error instanceof JsonRpcDispatchError ? error : new JsonRpcDispatchError(-32603, error instanceof Error ? error.message : String(error));
|
|
258
|
+
return jsonRpcError(request.id, dispatchError.code, dispatchError.message, dispatchError.data);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
async #dispatch(method, params) {
|
|
262
|
+
if (method === "initialize") {
|
|
263
|
+
const input = InitializeParamsSchema.parse(params);
|
|
264
|
+
if (input.protocolVersion !== AGENT_PROTOCOL_VERSION) {
|
|
265
|
+
throw new JsonRpcDispatchError(-32001, "Incompatible agent protocol version", {
|
|
266
|
+
requested: input.protocolVersion,
|
|
267
|
+
supported: AGENT_PROTOCOL_VERSION
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
this.#initializeParams = input;
|
|
271
|
+
return {
|
|
272
|
+
protocolVersion: AGENT_PROTOCOL_VERSION,
|
|
273
|
+
server: { name: "openpond-app-server", version: "1" },
|
|
274
|
+
capabilities: await this.#host.capabilities()
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
if (!this.#initialized)
|
|
278
|
+
throw new JsonRpcDispatchError(-32002, "initialized notification is required");
|
|
279
|
+
switch (method) {
|
|
280
|
+
case "runtime/capabilities":
|
|
281
|
+
return this.#host.capabilities(params);
|
|
282
|
+
case "thread/start":
|
|
283
|
+
return this.#host.threadStart(params);
|
|
284
|
+
case "thread/resume":
|
|
285
|
+
return this.#host.threadResume(params);
|
|
286
|
+
case "thread/read":
|
|
287
|
+
return this.#host.threadRead(params);
|
|
288
|
+
case "turn/start":
|
|
289
|
+
return this.#host.turnStart(params);
|
|
290
|
+
case "turn/steer":
|
|
291
|
+
return this.#host.turnSteer(params);
|
|
292
|
+
case "turn/interrupt":
|
|
293
|
+
return this.#host.turnInterrupt(params);
|
|
294
|
+
case "approval/resolve":
|
|
295
|
+
return this.#host.approvalResolve(params);
|
|
296
|
+
case "userInput/resolve":
|
|
297
|
+
return this.#host.userInputResolve(params);
|
|
298
|
+
case "harness/inspect":
|
|
299
|
+
return this.#host.harnessInspect(params);
|
|
300
|
+
case "harness/validate":
|
|
301
|
+
return this.#host.harnessValidate(params);
|
|
302
|
+
default:
|
|
303
|
+
throw new JsonRpcDispatchError(-32601, `Method not found: ${method}`);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
var JsonRpcDispatchError = class extends Error {
|
|
308
|
+
code;
|
|
309
|
+
data;
|
|
310
|
+
constructor(code, message, data) {
|
|
311
|
+
super(message);
|
|
312
|
+
this.code = code;
|
|
313
|
+
this.data = data;
|
|
314
|
+
}
|
|
315
|
+
};
|
|
316
|
+
function jsonRpcError(id, code, message, data) {
|
|
317
|
+
return {
|
|
318
|
+
jsonrpc: "2.0",
|
|
319
|
+
id,
|
|
320
|
+
error: { code, message, ...data === void 0 ? {} : { data } }
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// ../../packages/agent-runtime/dist/jsonl.js
|
|
325
|
+
import { once } from "node:events";
|
|
326
|
+
import { createInterface } from "node:readline";
|
|
327
|
+
async function runAgentJsonlServer(input) {
|
|
328
|
+
const dispatcher = new AgentJsonRpcDispatcher(input.host);
|
|
329
|
+
let writeChain = Promise.resolve();
|
|
330
|
+
const pendingNotifications = [];
|
|
331
|
+
const write = (message) => {
|
|
332
|
+
writeChain = writeChain.then(async () => {
|
|
333
|
+
if (!input.writable.write(`${JSON.stringify(message)}
|
|
334
|
+
`))
|
|
335
|
+
await once(input.writable, "drain");
|
|
336
|
+
});
|
|
337
|
+
return writeChain;
|
|
338
|
+
};
|
|
339
|
+
const flushPendingNotifications = () => {
|
|
340
|
+
if (!dispatcher.initialized || pendingNotifications.length === 0)
|
|
341
|
+
return;
|
|
342
|
+
for (const notification of pendingNotifications.splice(0))
|
|
343
|
+
void write(notification);
|
|
344
|
+
};
|
|
345
|
+
const unsubscribe = input.host.subscribe?.((notification) => {
|
|
346
|
+
if (!dispatcher.initialized) {
|
|
347
|
+
pendingNotifications.push(notification);
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
350
|
+
void write(notification);
|
|
351
|
+
});
|
|
352
|
+
const inFlight = /* @__PURE__ */ new Set();
|
|
353
|
+
const lines = createInterface({ input: input.readable, crlfDelay: Infinity });
|
|
354
|
+
try {
|
|
355
|
+
for await (const line of lines) {
|
|
356
|
+
if (!line.trim())
|
|
357
|
+
continue;
|
|
358
|
+
let parsed;
|
|
359
|
+
try {
|
|
360
|
+
parsed = JSON.parse(line);
|
|
361
|
+
} catch {
|
|
362
|
+
await write({
|
|
363
|
+
jsonrpc: "2.0",
|
|
364
|
+
id: null,
|
|
365
|
+
error: { code: -32700, message: "Parse error" }
|
|
366
|
+
});
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
369
|
+
const operation = (async () => {
|
|
370
|
+
const response = await dispatcher.handle(parsed);
|
|
371
|
+
if (response)
|
|
372
|
+
await write(response);
|
|
373
|
+
flushPendingNotifications();
|
|
374
|
+
})();
|
|
375
|
+
const method = parsed && typeof parsed === "object" && "method" in parsed ? parsed.method : null;
|
|
376
|
+
if (method === "initialize" || method === "initialized") {
|
|
377
|
+
await operation;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
inFlight.add(operation);
|
|
381
|
+
void operation.finally(() => inFlight.delete(operation));
|
|
382
|
+
}
|
|
383
|
+
await Promise.all(inFlight);
|
|
384
|
+
await writeChain;
|
|
385
|
+
} finally {
|
|
386
|
+
unsubscribe?.();
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// ../../packages/agent-runtime/dist/provider-loop.js
|
|
391
|
+
async function* providerRoundSequence(input) {
|
|
392
|
+
if (!Number.isInteger(input.maxRounds) || input.maxRounds < 1) {
|
|
393
|
+
throw new Error("Provider maxRounds must be a positive integer.");
|
|
394
|
+
}
|
|
395
|
+
for (let index = 0; index < input.maxRounds; index += 1) {
|
|
396
|
+
if (input.signal.aborted)
|
|
397
|
+
throw input.signal.reason ?? new Error("Provider loop interrupted.");
|
|
398
|
+
yield {
|
|
399
|
+
index,
|
|
400
|
+
requestId: `${input.turnId}:model:${index}`,
|
|
401
|
+
signal: input.signal
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
async function runProviderRoundLoop(input) {
|
|
406
|
+
for await (const round of providerRoundSequence(input)) {
|
|
407
|
+
const decision = await input.runRound(round);
|
|
408
|
+
if (decision.type === "complete")
|
|
409
|
+
return decision.result;
|
|
410
|
+
}
|
|
411
|
+
return input.onExhausted();
|
|
412
|
+
}
|
|
413
|
+
async function runProviderRound(input) {
|
|
414
|
+
let text = "";
|
|
415
|
+
let reasoningText = "";
|
|
416
|
+
let usage;
|
|
417
|
+
let continuation = null;
|
|
418
|
+
let finishReason;
|
|
419
|
+
const toolCallBatches = [];
|
|
420
|
+
try {
|
|
421
|
+
for await (const delta of input.stream) {
|
|
422
|
+
input.onDelta?.(delta);
|
|
423
|
+
if (input.signal.aborted) {
|
|
424
|
+
throw input.signal.reason ?? new Error("Provider round interrupted.");
|
|
425
|
+
}
|
|
426
|
+
if (delta.text)
|
|
427
|
+
text += delta.text;
|
|
428
|
+
if (delta.reasoningText)
|
|
429
|
+
reasoningText += delta.reasoningText;
|
|
430
|
+
if (delta.usage !== void 0)
|
|
431
|
+
usage = delta.usage;
|
|
432
|
+
if (delta.continuation !== void 0)
|
|
433
|
+
continuation = delta.continuation;
|
|
434
|
+
if (delta.toolCalls)
|
|
435
|
+
toolCallBatches.push([...delta.toolCalls]);
|
|
436
|
+
if (delta.finishReason !== void 0)
|
|
437
|
+
finishReason = delta.finishReason;
|
|
438
|
+
}
|
|
439
|
+
const result = {
|
|
440
|
+
text,
|
|
441
|
+
reasoningText,
|
|
442
|
+
usage,
|
|
443
|
+
continuation,
|
|
444
|
+
toolCallBatches,
|
|
445
|
+
finishReason
|
|
446
|
+
};
|
|
447
|
+
await input.onCompleted?.(result);
|
|
448
|
+
return result;
|
|
449
|
+
} catch (error) {
|
|
450
|
+
await input.onFailed?.(error);
|
|
451
|
+
throw error;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
// ../../packages/agent-runtime/dist/service.js
|
|
456
|
+
var ThreadIdParamsSchema = external_exports.object({ threadId: external_exports.string().trim().min(1) }).passthrough();
|
|
457
|
+
var ThreadStartParamsSchema = external_exports.object({ session: external_exports.unknown() }).strict();
|
|
458
|
+
var TurnParamsSchema = ThreadIdParamsSchema.extend({ input: external_exports.unknown() });
|
|
459
|
+
var InterruptParamsSchema = ThreadIdParamsSchema.extend({ reason: external_exports.string().trim().min(1).optional() });
|
|
460
|
+
var ApprovalParamsSchema = external_exports.object({ approvalId: external_exports.string().trim().min(1), input: external_exports.unknown() }).strict();
|
|
461
|
+
function createAgentRuntimeService(ports) {
|
|
462
|
+
const run = async (method, threadId, operation) => {
|
|
463
|
+
const startedAt = performance.now();
|
|
464
|
+
ports.telemetry?.({ method, phase: "started", threadId, durationMs: null, errorClass: null });
|
|
465
|
+
try {
|
|
466
|
+
const result = await operation();
|
|
467
|
+
ports.telemetry?.({
|
|
468
|
+
method,
|
|
469
|
+
phase: "completed",
|
|
470
|
+
threadId,
|
|
471
|
+
durationMs: performance.now() - startedAt,
|
|
472
|
+
errorClass: null
|
|
473
|
+
});
|
|
474
|
+
return result;
|
|
475
|
+
} catch (error) {
|
|
476
|
+
ports.telemetry?.({
|
|
477
|
+
method,
|
|
478
|
+
phase: "failed",
|
|
479
|
+
threadId,
|
|
480
|
+
durationMs: performance.now() - startedAt,
|
|
481
|
+
errorClass: error instanceof Error ? error.name : "UnknownError"
|
|
482
|
+
});
|
|
483
|
+
throw error;
|
|
484
|
+
}
|
|
485
|
+
};
|
|
486
|
+
const threadRead = async (params, method = "thread/read") => {
|
|
487
|
+
const { threadId } = ThreadIdParamsSchema.parse(params);
|
|
488
|
+
return run(method, threadId, async () => {
|
|
489
|
+
const [thread, turns, events] = await Promise.all([
|
|
490
|
+
ports.readThread(threadId),
|
|
491
|
+
ports.listTurns(threadId),
|
|
492
|
+
ports.listEvents(threadId)
|
|
493
|
+
]);
|
|
494
|
+
return { thread, turns, events };
|
|
495
|
+
});
|
|
496
|
+
};
|
|
497
|
+
return {
|
|
498
|
+
capabilities: (params) => run("runtime/capabilities", null, () => ports.capabilities(params)),
|
|
499
|
+
threadStart: async (params) => run("thread/start", null, async () => ({
|
|
500
|
+
thread: await ports.createThread(ThreadStartParamsSchema.parse(params).session)
|
|
501
|
+
})),
|
|
502
|
+
threadResume: (params) => threadRead(params, "thread/resume"),
|
|
503
|
+
threadRead,
|
|
504
|
+
turnStart: async (params) => {
|
|
505
|
+
const input = TurnParamsSchema.parse(params);
|
|
506
|
+
return run("turn/start", input.threadId, async () => ({
|
|
507
|
+
turn: await ports.startTurn(input.threadId, input.input)
|
|
508
|
+
}));
|
|
509
|
+
},
|
|
510
|
+
turnSteer: async (params) => {
|
|
511
|
+
const input = TurnParamsSchema.parse(params);
|
|
512
|
+
return run("turn/steer", input.threadId, async () => {
|
|
513
|
+
if (ports.isTurnActive(input.threadId)) {
|
|
514
|
+
await ports.waitForTurnSettlement(input.threadId);
|
|
515
|
+
}
|
|
516
|
+
return { turn: await ports.startTurn(input.threadId, input.input) };
|
|
517
|
+
});
|
|
518
|
+
},
|
|
519
|
+
turnInterrupt: async (params) => {
|
|
520
|
+
const input = InterruptParamsSchema.parse(params);
|
|
521
|
+
return run("turn/interrupt", input.threadId, async () => ({
|
|
522
|
+
turn: await ports.interruptTurn(input.threadId, input.reason)
|
|
523
|
+
}));
|
|
524
|
+
},
|
|
525
|
+
approvalResolve: async (params) => {
|
|
526
|
+
const input = ApprovalParamsSchema.parse(params);
|
|
527
|
+
return run("approval/resolve", null, async () => ({
|
|
528
|
+
approval: await ports.resolveApproval(input.approvalId, input.input)
|
|
529
|
+
}));
|
|
530
|
+
},
|
|
531
|
+
userInputResolve: async (params) => {
|
|
532
|
+
const input = TurnParamsSchema.parse(params);
|
|
533
|
+
return run("userInput/resolve", input.threadId, async () => {
|
|
534
|
+
if (ports.isTurnActive(input.threadId)) {
|
|
535
|
+
await ports.waitForTurnSettlement(input.threadId);
|
|
536
|
+
}
|
|
537
|
+
return { turn: await ports.startTurn(input.threadId, input.input) };
|
|
538
|
+
});
|
|
539
|
+
},
|
|
540
|
+
harnessInspect: () => run("harness/inspect", null, () => ports.inspectHarness()),
|
|
541
|
+
harnessValidate: () => run("harness/validate", null, () => ports.validateHarness()),
|
|
542
|
+
subscribe: ports.subscribeEvents && ports.eventNotification ? (listener) => ports.subscribeEvents((event) => listener(ports.eventNotification(event))) : void 0
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
// ../../packages/agent-runtime/dist/snapshots.js
|
|
547
|
+
var HashSchema = external_exports.string().regex(/^[a-f0-9]{64}$/);
|
|
548
|
+
var AgentEffectiveSurfaceSchema = external_exports.object({
|
|
549
|
+
harnessReleaseHash: HashSchema,
|
|
550
|
+
instructionsHash: HashSchema,
|
|
551
|
+
skillHashes: external_exports.record(external_exports.string(), HashSchema),
|
|
552
|
+
agentAssetHashes: external_exports.record(external_exports.string(), HashSchema),
|
|
553
|
+
toolCatalogHash: HashSchema,
|
|
554
|
+
memoryRevision: external_exports.number().int().nonnegative().nullable()
|
|
555
|
+
}).strict();
|
|
556
|
+
var AgentCheckpointSchema = external_exports.object({
|
|
557
|
+
protocolVersion: external_exports.string().trim().min(1),
|
|
558
|
+
threadId: external_exports.string().trim().min(1),
|
|
559
|
+
turnId: external_exports.string().trim().min(1),
|
|
560
|
+
harnessReleaseHash: HashSchema,
|
|
561
|
+
toolCatalogHash: HashSchema,
|
|
562
|
+
context: external_exports.record(external_exports.string(), external_exports.unknown()),
|
|
563
|
+
pendingInteraction: external_exports.record(external_exports.string(), external_exports.unknown()).nullable(),
|
|
564
|
+
usage: external_exports.record(external_exports.string(), external_exports.unknown())
|
|
565
|
+
}).strict();
|
|
566
|
+
function checkpointHash(checkpoint) {
|
|
567
|
+
return canonicalHash(AgentCheckpointSchema.parse(checkpoint));
|
|
568
|
+
}
|
|
569
|
+
function materializeAgentPrompt(input) {
|
|
570
|
+
return [
|
|
571
|
+
input.system,
|
|
572
|
+
...input.harnessInstructions,
|
|
573
|
+
...input.skillInstructions,
|
|
574
|
+
...input.hostInstructions ?? []
|
|
575
|
+
].map((part) => part.trim()).filter(Boolean).join("\n\n");
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
// ../../packages/agent-runtime/dist/tools.js
|
|
579
|
+
function createAgentToolCatalogProjection(definitions) {
|
|
580
|
+
const names = /* @__PURE__ */ new Set();
|
|
581
|
+
const tools = [...definitions].map((definition) => {
|
|
582
|
+
const name = definition.name.trim();
|
|
583
|
+
if (!name)
|
|
584
|
+
throw new Error("Agent tool names cannot be empty.");
|
|
585
|
+
if (names.has(name))
|
|
586
|
+
throw new Error(`Duplicate agent tool: ${name}.`);
|
|
587
|
+
names.add(name);
|
|
588
|
+
if (!definition.unavailableReason && !definition.executorAvailable) {
|
|
589
|
+
throw new Error(`Agent tool ${name} is declared as available without an executor.`);
|
|
590
|
+
}
|
|
591
|
+
return { ...definition, name };
|
|
592
|
+
}).sort((left, right) => left.name.localeCompare(right.name));
|
|
593
|
+
const modelTools = tools.filter((tool) => !tool.unavailableReason).map((tool) => ({
|
|
594
|
+
name: tool.name,
|
|
595
|
+
description: tool.description,
|
|
596
|
+
inputSchema: tool.inputSchema
|
|
597
|
+
}));
|
|
598
|
+
const capabilities = tools.map((tool) => ({
|
|
599
|
+
name: tool.name,
|
|
600
|
+
displayLabel: tool.displayLabel ?? tool.name,
|
|
601
|
+
placement: tool.placement,
|
|
602
|
+
available: !tool.unavailableReason,
|
|
603
|
+
unavailableReason: tool.unavailableReason ?? null
|
|
604
|
+
}));
|
|
605
|
+
return {
|
|
606
|
+
byName: new Map(tools.map((tool) => [tool.name, tool])),
|
|
607
|
+
tools,
|
|
608
|
+
modelTools,
|
|
609
|
+
capabilities,
|
|
610
|
+
hash: canonicalHash({ modelTools, capabilities })
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
async function executeProjectedAgentTool(catalog, input) {
|
|
614
|
+
const definition = catalog.byName.get(input.name);
|
|
615
|
+
if (!definition)
|
|
616
|
+
throw new Error(`Unknown agent tool: ${input.name}.`);
|
|
617
|
+
if (definition.unavailableReason) {
|
|
618
|
+
throw new Error(`Agent tool ${input.name} is unavailable: ${definition.unavailableReason}`);
|
|
619
|
+
}
|
|
620
|
+
if (!definition.execute)
|
|
621
|
+
throw new Error(`Agent tool ${input.name} has no executor.`);
|
|
622
|
+
const validated = definition.validateArguments ? definition.validateArguments(input.arguments) : input.arguments;
|
|
623
|
+
return definition.execute(validated, input.context);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
// ../../packages/app-server/dist/index.js
|
|
627
|
+
function createAppServer(input) {
|
|
628
|
+
return attachAppServer({
|
|
629
|
+
runtime: createAgentRuntimeService(input.ports),
|
|
630
|
+
close: input.close
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
function attachAppServer(input) {
|
|
634
|
+
let closed = false;
|
|
635
|
+
return {
|
|
636
|
+
runtime: input.runtime,
|
|
637
|
+
close: async () => {
|
|
638
|
+
if (closed)
|
|
639
|
+
return;
|
|
640
|
+
closed = true;
|
|
641
|
+
await input.close?.();
|
|
642
|
+
}
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
async function runAppServerJsonl(input) {
|
|
646
|
+
try {
|
|
647
|
+
await runAgentJsonlServer({
|
|
648
|
+
host: input.appServer.runtime,
|
|
649
|
+
readable: input.readable,
|
|
650
|
+
writable: input.writable
|
|
651
|
+
});
|
|
652
|
+
} finally {
|
|
653
|
+
await input.appServer.close();
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
export {
|
|
658
|
+
canonicalHash,
|
|
659
|
+
agentCompactionDecision,
|
|
660
|
+
runAgentCompaction,
|
|
661
|
+
runAgentCompactionProgram,
|
|
662
|
+
CanonicalAgentEventSchema,
|
|
663
|
+
canonicalEventHash,
|
|
664
|
+
AGENT_PROTOCOL_VERSION,
|
|
665
|
+
AGENT_RPC_METHODS,
|
|
666
|
+
runProviderRoundLoop,
|
|
667
|
+
runProviderRound,
|
|
668
|
+
AgentCheckpointSchema,
|
|
669
|
+
checkpointHash,
|
|
670
|
+
materializeAgentPrompt,
|
|
671
|
+
createAgentToolCatalogProjection,
|
|
672
|
+
executeProjectedAgentTool,
|
|
673
|
+
createAppServer,
|
|
674
|
+
runAppServerJsonl
|
|
675
|
+
};
|