openpond 0.0.61 → 0.0.63
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/chunks/{actions-command-QVYIPEN5.js → actions-command-DZ6D7JTO.js} +2 -2
- package/dist/chunks/{app-layer-GCNXR4F3.js → app-layer-TUAFALOE.js} +5 -5
- package/dist/chunks/{app-server-runtime-737DBOSH.js → app-server-runtime-O26LVUYH.js} +7 -7
- package/dist/chunks/{apps-JB3POF6Z.js → apps-KSZRA7Y2.js} +5 -5
- package/dist/chunks/{chunk-NPEWMLRH.js → chunk-66KQLYSH.js} +1 -1
- package/dist/chunks/{chunk-ZJPLJP2Q.js → chunk-6FKBOGA4.js} +2 -2
- package/dist/chunks/{chunk-6RMGHEFF.js → chunk-7IFPXSSJ.js} +1 -1
- package/dist/chunks/{chunk-5HMXXGWZ.js → chunk-7UVEB2AZ.js} +2 -2
- package/dist/chunks/{chunk-32R4GQD3.js → chunk-IXA5PMXC.js} +2 -2
- package/dist/chunks/{chunk-XIUCBUUQ.js → chunk-J2REM7LE.js} +1 -1
- package/dist/chunks/{chunk-XSHMPOQV.js → chunk-JGOP4GCK.js} +6 -0
- package/dist/chunks/{chunk-TOMMZN6V.js → chunk-JTFDOA2P.js} +41 -16
- package/dist/chunks/{chunk-IZ3XGRAG.js → chunk-K4JEWEJQ.js} +1 -1
- package/dist/chunks/{chunk-L5JTI6LQ.js → chunk-KGU437HZ.js} +4 -2
- package/dist/chunks/{chunk-ZAX7MLQJ.js → chunk-LEL5AQJU.js} +1 -1
- package/dist/chunks/{chunk-B3WVCPXG.js → chunk-PLDCQVNW.js} +71 -6
- package/dist/chunks/{chunk-YSVY4O42.js → chunk-T55IL3GI.js} +1 -1
- package/dist/chunks/{chunk-BQQS5RRI.js → chunk-V2CTXKS2.js} +156 -61
- package/dist/chunks/{chunk-LBIVEX6V.js → chunk-YDH34BGG.js} +35 -33
- package/dist/chunks/{cli-MFFCFH3P.js → cli-LPFU4ULD.js} +6 -6
- package/dist/chunks/{core-commands-KCFU7U5Y.js → core-commands-OEOBYFIW.js} +6 -6
- package/dist/chunks/{desktop-test-FEQVX4N4.js → desktop-test-BRLZF3O7.js} +5 -5
- package/dist/chunks/{extension-M4DH25KH.js → extension-5BUCIDKG.js} +1 -1
- package/dist/chunks/{help-ZUIE4EPY.js → help-MT6VPW4X.js} +1 -1
- package/dist/chunks/{opchat-7KRZIFFD.js → opchat-O4DVKNFW.js} +5 -5
- package/dist/chunks/{organizations-ZWPFNM6K.js → organizations-ACNOJ57Q.js} +7 -7
- package/dist/chunks/{profile-GF57OWI6.js → profile-7LLWXAJE.js} +12 -7
- package/dist/chunks/{project-agent-65MXZHGM.js → project-agent-RVYQYTU2.js} +27 -7
- package/dist/chunks/{sandbox-command-WH2OQRHP.js → sandbox-command-QST23BX5.js} +6 -6
- package/dist/chunks/{sandbox-template-W5HU24TF.js → sandbox-template-N7UG3P6V.js} +7 -7
- package/dist/chunks/{src-YUIJKNIC.js → src-CPM5Q7T5.js} +4 -4
- package/dist/chunks/{src-O5QXOQ5H.js → src-M37V6NVU.js} +60 -13
- package/dist/chunks/{teams-bot-5ATLXSHC.js → teams-bot-ITTI47XS.js} +5 -5
- package/dist/chunks/{workspaces-4XJ3GXL4.js → workspaces-CYBR37US.js} +2 -2
- package/dist/cli.js +13 -13
- package/dist/index.js +6 -0
- package/dist/sandbox/client-handles.d.ts +2 -1
- package/dist/sandbox/client.d.ts +3 -1
- package/dist/sandbox/types/org-project-agent.d.ts +13 -0
- package/dist/web/assets/{AppDialog-BvdkukM_.js → AppDialog-wIb8mGQ0.js} +1 -1
- package/dist/web/assets/{AppsView-9h3-BQbk.js → AppsView-D097dPIV.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-C6WJ5wIu.js → BrowserSidebar-DrD-o_yB.js} +1 -1
- package/dist/web/assets/{CommandMenu-C7en9zgQ.js → CommandMenu-L5LelA2h.js} +1 -1
- package/dist/web/assets/{CommunityView-CoqI6Dks.js → CommunityView-DUJ8NryS.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-DMq6A2Ba.js → ComposerCreateImproveStrip-BP-7DmQG.js} +1 -1
- package/dist/web/assets/{GetStartedView-B-zgx1jI.js → GetStartedView-B7gB6Hii.js} +1 -1
- package/dist/web/assets/{LabModelVersionDetailPage-CkNOBygO.js → LabModelVersionDetailPage-CNDz2a6I.js} +1 -1
- package/dist/web/assets/{LabSkillSidebar-CmRHuu78.js → LabSkillSidebar-BImOQcjk.js} +1 -1
- package/dist/web/assets/{LabsRoute-DLPZqEev.js → LabsRoute-BauSK1is.js} +3 -3
- package/dist/web/assets/{MainChatThread-CFGsODmc.js → MainChatThread-BZvAqQO6.js} +2 -2
- package/dist/web/assets/MainPane-CuhwxMxg.js +6 -0
- package/dist/web/assets/{MarkdownText-C4Ixpl-i.js → MarkdownText-gwAue4u5.js} +1 -1
- package/dist/web/assets/{Messages-DmEk_BWS.js → Messages-DijmQL-z.js} +8 -8
- package/dist/web/assets/{NativeSkillSidebar-Cn824hrX.js → NativeSkillSidebar-aCkrdGa0.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BFEDv4Ga.js → NewProjectDialog-D98WIQzr.js} +1 -1
- package/dist/web/assets/{OutputsPage-hfQyqQzx.js → OutputsPage-BA0c6cfy.js} +1 -1
- package/dist/web/assets/{RightChatPanelStack-CiPKX3Ea.js → RightChatPanelStack-DKDEmrEH.js} +1 -1
- package/dist/web/assets/{ScheduledWorkPage-CyoZsUCe.js → ScheduledWorkPage-DeHi99mv.js} +1 -1
- package/dist/web/assets/SettingsView--fL3Ecuy.js +6 -0
- package/dist/web/assets/SettingsView-BS5m5vdt.css +1 -0
- package/dist/web/assets/TeamChatView-D2mCoLZ3.js +3 -0
- package/dist/web/assets/{TerminalOverlay-CpsPuPIM.js → TerminalOverlay-BHMsVp4L.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-DMLpUVbJ.js → TrainingCreationPanel-CPnMWgkt.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-gAhpwkYs.js → TrainingDraftPanel-0scEtzSW.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-WBtxLhBx.js → UsageSettingsSection-COoCLLg6.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-CUpwqvzZ.js → WorkspaceDiffPanel-BFTwZ_dB.js} +5 -5
- package/dist/web/assets/{WorkspaceEnvironmentMenu-LIbOBT4f.js → WorkspaceEnvironmentMenu-DFlkdd9T.js} +3 -3
- package/dist/web/assets/{WorkspaceGitDialogs-8y7rRSou.js → WorkspaceGitDialogs-Dt3LO27Z.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BpHmWrCD.js → WorkspaceMonacoEditor-3g05teoR.js} +3 -3
- package/dist/web/assets/{arrow-up-right-3TbyK1ec.js → arrow-up-right-DYGSWA2J.js} +1 -1
- package/dist/web/assets/{chevron-up-C4tTuxXs.js → chevron-up-4qfvI9iW.js} +1 -1
- package/dist/web/assets/{cloud-upload-ZGHLWEn3.js → cloud-upload-COReKxOy.js} +1 -1
- package/dist/web/assets/{cssMode-kfZCOm_r.js → cssMode-BbH67BYF.js} +1 -1
- package/dist/web/assets/{folder-open-C4WG_lDr.js → folder-open-9OjGqNgP.js} +1 -1
- package/dist/web/assets/{folder-plus-CKRaDeR3.js → folder-plus-DF5E6zr3.js} +1 -1
- package/dist/web/assets/{git-branch-yLi5tff8.js → git-branch-eCwyZXMl.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-BPyGYak3.js → git-commit-horizontal-cPm51DqY.js} +1 -1
- package/dist/web/assets/{htmlMode-DT--Et9k.js → htmlMode-DD6Oge4x.js} +1 -1
- package/dist/web/assets/{index--lwjVZXT.js → index-BO2W2U23.js} +66 -66
- package/dist/web/assets/index-BRLugX1S.js +1 -0
- package/dist/web/assets/{index-B_HvNtwl.css → index-Y7IoiSlQ.css} +1 -1
- package/dist/web/assets/{info-CzzHwSUb.js → info-p1mFpqBI.js} +1 -1
- package/dist/web/assets/{jsonMode-CKg1GzqC.js → jsonMode-C2Xd56A_.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-B76Yo6xo.js → lspLanguageFeatures-BjYEk4gJ.js} +1 -1
- package/dist/web/assets/{monaco.contribution-BRuQU-2A.js → monaco.contribution-Bo-5m7yy.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CLpGfCSS.js → monaco.contribution-C7WMqwmc.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CS3H8RrD.js → monaco.contribution-DzWlEgU1.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DqeexNAI.js → monaco.contribution-quEPEMQZ.js} +2 -2
- package/dist/web/assets/{play-EDFh3BPS.js → play-Ctx-iMqd.js} +1 -1
- package/dist/web/assets/{python-De_Vr_hD.js → python-Cm64qCpk.js} +1 -1
- package/dist/web/assets/{refresh-cw-DRJJ-X1U.js → refresh-cw-Bn28jIl0.js} +1 -1
- package/dist/web/assets/{save-BSxqIWP6.js → save-BM5IQX65.js} +1 -1
- package/dist/web/assets/{square-BV-Vgh5a.js → square-DAGpFfSr.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-1Suz4cxo.js → toggleHighContrast-DLW8Fnck.js} +1 -1
- package/dist/web/assets/{tsMode-DMyzpvFI.js → tsMode-BleUN_8S.js} +1 -1
- package/dist/web/assets/{upload-jVxCW0dO.js → upload-vaAKFfxi.js} +1 -1
- package/dist/web/assets/{useLocalAgentSchedules-DNpnOBA8.js → useLocalAgentSchedules-Ccenbqf6.js} +1 -1
- package/dist/web/assets/{wifi-off-IzGGiOX_.js → wifi-off-DJA9KReb.js} +1 -1
- package/dist/web/assets/{workers-Crdnk6Zy.js → workers-CFG-afha.js} +1 -1
- package/dist/web/assets/{yaml-CF3tmjgW.js → yaml-Cs8iZKVC.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +2 -0
- package/package.json +1 -1
- package/dist/web/assets/MainPane-B2kcZpM0.js +0 -6
- package/dist/web/assets/SettingsView-BZkrIOc0.css +0 -1
- package/dist/web/assets/SettingsView-DWWs9gel.js +0 -6
- package/dist/web/assets/TeamChatView-C4RWAO8c.js +0 -3
- package/dist/web/assets/index-C9-OtZl8.js +0 -1
|
@@ -6,8 +6,8 @@ import {
|
|
|
6
6
|
} from "./chunk-QETF6ILG.js";
|
|
7
7
|
import {
|
|
8
8
|
createOpenPondClient
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-K4JEWEJQ.js";
|
|
10
|
+
import "./chunk-JGOP4GCK.js";
|
|
11
11
|
import {
|
|
12
12
|
parseBooleanOption
|
|
13
13
|
} from "./chunk-MUMPWI4O.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
runProcessCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-J2REM7LE.js";
|
|
5
5
|
import {
|
|
6
6
|
CliUsageError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LEL5AQJU.js";
|
|
8
8
|
import "./chunk-SMNFI2FU.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-YDH34BGG.js";
|
|
10
|
+
import "./chunk-K4JEWEJQ.js";
|
|
11
|
+
import "./chunk-JGOP4GCK.js";
|
|
12
12
|
import "./chunk-DBHSOTYZ.js";
|
|
13
13
|
import "./chunk-KSRWKXRB.js";
|
|
14
14
|
import "./chunk-MUMPWI4O.js";
|
|
@@ -2,16 +2,16 @@ import { createRequire as __openpondCreateRequire } from "node:module"; var requ
|
|
|
2
2
|
import {
|
|
3
3
|
APP_SERVER_COMPOSITION,
|
|
4
4
|
createOpenPondAppServer
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-V2CTXKS2.js";
|
|
6
|
+
import "./chunk-66KQLYSH.js";
|
|
7
7
|
import "./chunk-OYWTQABY.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-7IFPXSSJ.js";
|
|
9
|
+
import "./chunk-IXA5PMXC.js";
|
|
10
|
+
import "./chunk-KGU437HZ.js";
|
|
11
11
|
import "./chunk-QETF6ILG.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-JTFDOA2P.js";
|
|
13
13
|
import "./chunk-WYDVQOBL.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-JGOP4GCK.js";
|
|
15
15
|
import "./chunk-UACZUFIA.js";
|
|
16
16
|
export {
|
|
17
17
|
APP_SERVER_COMPOSITION,
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
normalizeRepoName,
|
|
11
11
|
pollDeploymentLogs,
|
|
12
12
|
resolveAppTarget
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-J2REM7LE.js";
|
|
14
|
+
import "./chunk-LEL5AQJU.js";
|
|
15
15
|
import {
|
|
16
16
|
resolveBaseUrl,
|
|
17
17
|
resolvePublicApiBaseUrl
|
|
18
18
|
} from "./chunk-SMNFI2FU.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-YDH34BGG.js";
|
|
20
|
+
import "./chunk-K4JEWEJQ.js";
|
|
21
|
+
import "./chunk-JGOP4GCK.js";
|
|
22
22
|
import {
|
|
23
23
|
createAgentFromPrompt,
|
|
24
24
|
deployApp,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
now
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7IFPXSSJ.js";
|
|
5
5
|
|
|
6
6
|
// ../server/src/workspace/workspace-command.ts
|
|
7
7
|
import { spawn, spawnSync } from "node:child_process";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
resolveRepoUrl,
|
|
16
16
|
runCommand,
|
|
17
17
|
warnOnRepoHostMismatch
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-J2REM7LE.js";
|
|
19
19
|
import {
|
|
20
20
|
normalizeTemplateRepoUrl,
|
|
21
21
|
resolveApiBaseUrlOption,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
compareSemver,
|
|
29
29
|
fetchLatestNpmVersion,
|
|
30
30
|
getInstalledCliVersion
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-YDH34BGG.js";
|
|
32
32
|
import {
|
|
33
33
|
checkOpenPondApiHealth,
|
|
34
34
|
createHeadlessApps,
|
|
@@ -3,7 +3,7 @@ import { createRequire as __openpondCreateRequire } from "node:module"; var requ
|
|
|
3
3
|
// ../server/src/constants.ts
|
|
4
4
|
var DEFAULT_HOST = "127.0.0.1";
|
|
5
5
|
var DEFAULT_PORT = 17874;
|
|
6
|
-
var VERSION = "0.0.
|
|
6
|
+
var VERSION = "0.0.63";
|
|
7
7
|
var HOSTED_CHAT_SYSTEM_PROMPT = "You are OpenPond Chat. Respond in the user's language. If the user's latest message is language-neutral, ambiguous, or only a short test, respond in English. Be concise and directly answer the latest request. Do not use emojis. Use Markdown when it improves scanability. If you emit reasoning or thinking content, keep it sparse and user-readable: at most one short sentence for major progress, decisions, or blockers. Omit reasoning for routine searches, reads, tool calls, and obvious next steps. Do not restate the user request, narrate every action, or include code blocks, code excerpts, diffs, raw tool payloads, or markdown examples in reasoning. Put necessary code or exact snippets only in the final assistant answer. When the user asks to show or preview an image that is available as a workspace path or signed image URL, use Markdown image syntax like  instead of a bare path or raw HTML. For workspace-backed answers, use a Codex-style shape: brief outcome first, then Changed Files if files changed, then Verification if checks ran. End with a concise final answer that summarizes the result and verification when relevant. Do not mention raw tool JSON, internal repo paths, or origin/remote URLs unless the user explicitly asks for them or they are necessary to explain a git/deploy failure.";
|
|
8
8
|
var APP_PREFERENCES_CACHE_TYPE = "app_preferences";
|
|
9
9
|
var APP_PREFERENCES_CACHE_KEY = "global";
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
DEFAULT_HOST,
|
|
7
7
|
DEFAULT_PORT,
|
|
8
8
|
parseListen
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7IFPXSSJ.js";
|
|
10
10
|
import {
|
|
11
11
|
getBundledRuntimeVersion,
|
|
12
12
|
openUrlWithSystemBrowser
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-IXA5PMXC.js";
|
|
14
14
|
|
|
15
15
|
// ../server/src/cli.ts
|
|
16
16
|
import { existsSync } from "node:fs";
|
|
@@ -12,12 +12,12 @@ import {
|
|
|
12
12
|
saveConfig,
|
|
13
13
|
saveProfileApiKey,
|
|
14
14
|
setActiveProfile
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-KGU437HZ.js";
|
|
16
16
|
import {
|
|
17
17
|
DEFAULT_OPENPOND_API_BASE_URL,
|
|
18
18
|
DEFAULT_OPENPOND_WEB_BASE_URL,
|
|
19
19
|
withVercelProtectionBypass
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JGOP4GCK.js";
|
|
21
21
|
|
|
22
22
|
// ../../packages/runtime/dist/chat.js
|
|
23
23
|
import { randomUUID } from "node:crypto";
|
|
@@ -265,6 +265,7 @@ function createSandboxAgentNamespace(client) {
|
|
|
265
265
|
sourceDeployPlan: (agentId, input) => client.getAgentSourceDeployPlan(agentId, input),
|
|
266
266
|
manifestSnapshots: (agentId, input) => client.listAgentManifestSnapshots(agentId, input),
|
|
267
267
|
requestSourceChecks: (agentId, input) => client.requestAgentSourceChecks(agentId, input),
|
|
268
|
+
configureSourceSetup: (agentId, input) => client.configureAgentSourceSetup(agentId, input),
|
|
268
269
|
publishSource: (agentId, input) => client.publishAgentSource(agentId, input)
|
|
269
270
|
};
|
|
270
271
|
}
|
|
@@ -1310,6 +1311,11 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
|
|
|
1310
1311
|
timeoutMs: 15 * 60 * 1e3
|
|
1311
1312
|
});
|
|
1312
1313
|
}
|
|
1314
|
+
configureAgentSourceSetup(agentId, input) {
|
|
1315
|
+
const query = new URLSearchParams({ teamId: input.teamId });
|
|
1316
|
+
const { teamId: _teamId, ...body } = input;
|
|
1317
|
+
return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/source/setup?${query.toString()}`, { method: "POST", body: JSON.stringify(body) });
|
|
1318
|
+
}
|
|
1313
1319
|
publishAgentSource(agentId, input) {
|
|
1314
1320
|
const query = new URLSearchParams({ teamId: input.teamId });
|
|
1315
1321
|
const { teamId: _teamId, ...body } = input;
|
|
@@ -2869,10 +2869,22 @@ var HarnessRefinerCapabilitiesSchema = external_exports.object({
|
|
|
2869
2869
|
agent: external_exports.boolean()
|
|
2870
2870
|
}).strict();
|
|
2871
2871
|
var SourceKindSchema = external_exports.enum(["memory", "instruction", "skill", "agent"]);
|
|
2872
|
+
var RefinerSourceFileSchema = external_exports.object({
|
|
2873
|
+
path: external_exports.string().trim().min(1).max(2e3),
|
|
2874
|
+
kind: SourceKindSchema,
|
|
2875
|
+
content: external_exports.string().max(6e4),
|
|
2876
|
+
loaded: external_exports.boolean()
|
|
2877
|
+
}).strict();
|
|
2878
|
+
var RefinerSourceCatalogEntrySchema = external_exports.object({
|
|
2879
|
+
path: external_exports.string().trim().min(1).max(2e3),
|
|
2880
|
+
kind: SourceKindSchema,
|
|
2881
|
+
loaded: external_exports.boolean()
|
|
2882
|
+
}).strict();
|
|
2872
2883
|
var LocalHarnessRefinerEvidenceSchema = external_exports.object({
|
|
2873
2884
|
capabilities: HarnessRefinerCapabilitiesSchema,
|
|
2874
2885
|
trigger: external_exports.record(external_exports.string(), external_exports.unknown()),
|
|
2875
2886
|
observations: external_exports.array(external_exports.record(external_exports.string(), external_exports.unknown())).max(20),
|
|
2887
|
+
admissibleEvidenceIds: external_exports.array(external_exports.string().trim().min(1).max(2e3)).max(1e4),
|
|
2876
2888
|
reviewPacket: external_exports.object({
|
|
2877
2889
|
currentTurn: external_exports.object({
|
|
2878
2890
|
id: external_exports.string().trim().min(1).max(2e3),
|
|
@@ -2908,17 +2920,15 @@ var LocalHarnessRefinerEvidenceSchema = external_exports.object({
|
|
|
2908
2920
|
timelineTruncated: external_exports.boolean()
|
|
2909
2921
|
}).strict()
|
|
2910
2922
|
}).strict(),
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
loaded: external_exports.boolean()
|
|
2921
|
-
}).strict()).max(1e3),
|
|
2923
|
+
runtimeActivation: external_exports.object({
|
|
2924
|
+
admittedRelease: ImmutableReleaseRefSchema,
|
|
2925
|
+
currentRelease: ImmutableReleaseRefSchema,
|
|
2926
|
+
rebasedOntoCurrent: external_exports.boolean(),
|
|
2927
|
+
admittedSourceFiles: external_exports.array(RefinerSourceFileSchema).max(100),
|
|
2928
|
+
admittedSourceCatalog: external_exports.array(RefinerSourceCatalogEntrySchema).max(1e3)
|
|
2929
|
+
}).strict(),
|
|
2930
|
+
sourceFiles: external_exports.array(RefinerSourceFileSchema).max(100),
|
|
2931
|
+
sourceCatalog: external_exports.array(RefinerSourceCatalogEntrySchema).max(1e3),
|
|
2922
2932
|
additionalEvidence: external_exports.unknown().nullable().optional()
|
|
2923
2933
|
}).strict();
|
|
2924
2934
|
var DEFAULT_REFINER_TIMEOUT_MS = 6e4;
|
|
@@ -2934,8 +2944,9 @@ async function authorLocalHarnessRefinementWithModel(input) {
|
|
|
2934
2944
|
stream: input.stream,
|
|
2935
2945
|
signal: timeout.signal
|
|
2936
2946
|
});
|
|
2937
|
-
if (draft.decision === "no_action")
|
|
2947
|
+
if (draft.decision === "no_action" && !requiresNoActionChallenge(evidence2)) {
|
|
2938
2948
|
return draft;
|
|
2949
|
+
}
|
|
2939
2950
|
const draftAdmissionIssues = decisionAdmissionIssues(draft, evidence2);
|
|
2940
2951
|
const reviewed = await requestRefinerDecision({
|
|
2941
2952
|
messages: [
|
|
@@ -2944,13 +2955,17 @@ async function authorLocalHarnessRefinementWithModel(input) {
|
|
|
2944
2955
|
{
|
|
2945
2956
|
role: "user",
|
|
2946
2957
|
content: [
|
|
2947
|
-
"Perform a mandatory independent critique before any Harness mutation.",
|
|
2958
|
+
draft.decision === "no_action" ? "Perform an independent challenge of the proposed no_action decision." : "Perform a mandatory independent critique before any Harness mutation.",
|
|
2948
2959
|
"Re-read the chronological packet and verify the declared evidence basis, failure mechanism, ownership, target layer, exact edit, and expected future effect.",
|
|
2960
|
+
"A completed user outcome and successful recovery do not erase a concrete, avoidable internal execution error. When a recovered failure exposes a specific prevention rule that would avoid future tool calls, retries, or token burn, prefer the smallest validated Harness correction.",
|
|
2961
|
+
"Do not treat a generic instruction to recover and continue as proof that no narrower prevention guidance is useful. Treat repeated failures in the same turn as reinforcing evidence when they share a mechanism.",
|
|
2962
|
+
"If the model violated a loaded instruction and only later recovered, do not use the instruction's presence as a reason for no_action. Test whether a small, non-duplicative operationalization of that instruction would improve first-attempt compliance; no_action is defensible only when the existing rule was followed or no such improvement is supported by the supplied evidence.",
|
|
2949
2963
|
"Reject invented recurrence, unsupported evidence references, material counterevidence, unavailable capability layers, task-specific or benchmark content, inferred memory, broad instructions, and workarounds for runtime, product, taskset, or grader defects.",
|
|
2950
2964
|
"Do not reject a concise correction merely because the deterministic failure appeared once when the mechanism and reusable prevention are clear.",
|
|
2951
2965
|
"For adaptation cohorts, reject drafts that add work instead of removing the repeated foreground-token cost while preserving quality.",
|
|
2966
|
+
`Copy supportingEvidenceIds only from this exact list: ${JSON.stringify(evidence2.admissibleEvidenceIds)}.`,
|
|
2952
2967
|
...draftAdmissionIssues.length ? [`The draft also failed deterministic admission: ${draftAdmissionIssues.join("; ")}. Correct it or return no_action.`] : [],
|
|
2953
|
-
"Return the complete final JSON decision. Use no_action or route when the proposed Harness edit does not survive this critique."
|
|
2968
|
+
draft.decision === "no_action" ? "Return no_action only if you can identify no concrete reusable prevention rule in the supplied recovery evidence. Otherwise return the smallest valid route or proposal." : "Return the complete final JSON decision. Use no_action or route when the proposed Harness edit does not survive this critique."
|
|
2954
2969
|
].join("\n")
|
|
2955
2970
|
}
|
|
2956
2971
|
],
|
|
@@ -2967,6 +2982,9 @@ async function authorLocalHarnessRefinementWithModel(input) {
|
|
|
2967
2982
|
timeout.cleanup();
|
|
2968
2983
|
}
|
|
2969
2984
|
}
|
|
2985
|
+
function requiresNoActionChallenge(evidence2) {
|
|
2986
|
+
return evidence2.observations.some((observation) => observation.kind === "recovery" || observation.kind === "tool_failure");
|
|
2987
|
+
}
|
|
2970
2988
|
async function requestRefinerDecision(input) {
|
|
2971
2989
|
const first = await collect(input.stream({
|
|
2972
2990
|
messages: input.messages,
|
|
@@ -3016,9 +3034,13 @@ function refinerMessages(evidence2) {
|
|
|
3016
3034
|
"A taskset_grade diagnostic is authoritative evaluation evidence. A failed grade is not cancelled by polished output or successful tools; identify whether its root cause belongs in the Harness or an external owner.",
|
|
3017
3035
|
"A taskset grade proves only the measured outcome. It does not prove that the root owner is the Harness rather than runtime, product, fixture, grader, taskset, or model behavior.",
|
|
3018
3036
|
"Optimize future work, not the completed turn. A repeated avoidable strategy is strong evidence, but one high-confidence deterministic failure may justify a small validated correction when the failure mechanism and reusable prevention are both clear. Recurrence strengthens confidence; it is not universally required.",
|
|
3037
|
+
"Recovered internal mistakes are not automatically ordinary successful work. A concrete API mismatch, incompatible dependency or format, or repeated command construction error can justify a narrow preventive skill or prompt correction when the trace shows how to avoid it next time.",
|
|
3038
|
+
"runtimeActivation is authoritative about activation timing. admittedSourceFiles describe the exact released source available to the reviewed turn. sourceFiles and sourceCatalog describe the current editable release. When rebasedOntoCurrent is true, do not claim a current-only instruction was loaded by the reviewed turn.",
|
|
3039
|
+
"When the supplied trace shows that the model violated an already-loaded Harness instruction before recovering, the instruction's existence is not counterevidence. Treat that as evidence that its current wording, placement, or operational form was ineffective. Evaluate the smallest non-duplicative change that makes the rule actionable at the decision point, such as a concise preflight or checklist. Do not merely restate the existing rule.",
|
|
3040
|
+
"For command, API, or structured-output construction failures, prefer an observable invariant over a vague reminder: name the forbidden combination precisely, state where it is forbidden, remove ambiguous qualifiers, and include one valid alternative when the evidence proves it. A post-activation recurrence should strengthen the operational form rather than duplicate the same wording in another file.",
|
|
3019
3041
|
crossRunCandidate ? "This is a bounded cross-Work candidate continuation. Verify the supplied candidate, review, authorization, admitted release, independent occurrences, and counterevidence. Use recurrent_independent only; do not reinterpret unrelated wording as recurrence." : "This is an immediate completed-turn review, not an unbounded cross-Work archive review. Use only supplied observations and priorIncidents. Defer ambiguous recurrence to recurring-pattern review.",
|
|
3020
3042
|
"Every route or proposal must declare evidenceBasis. Use single_deterministic only when a supplied incident exposes an observed deterministic mechanism and reusable prevention rule with no material counterevidence. Use recurrent_independent only for at least two materially independent supplied incidents; similar wording, topic, tool name, or artifact family is not independence.",
|
|
3021
|
-
"supportingEvidenceIds must
|
|
3043
|
+
"supportingEvidenceIds must copy exact values from admissibleEvidenceIds. Do not synthesize labels from timeline sequences, event names, tools, or descriptions. List material counterevidence explicitly. Never invent recurrence or omit contradictory supplied evidence.",
|
|
3022
3044
|
"Use no_action for ordinary successful work, conversation-specific facts, or insufficient evidence. High token use alone is not a reason to edit the Harness.",
|
|
3023
3045
|
"Use route whenever a runtime, product, taskset, or training defect materially prevented the requested outcome. Routing records ownership; it does not blame the agent and does not require recurrence. A good fallback, transparent disclosure, or likely transient outage does not erase the external defect.",
|
|
3024
3046
|
"For a Harness proposal, encode only the reusable root behavior. Do not copy subject matter, named entities, business facts, requested artifact content, benchmark wording, secrets, raw user data, or transient paths.",
|
|
@@ -3089,7 +3111,10 @@ function decisionAdmissionIssues(decision2, evidence2) {
|
|
|
3089
3111
|
return issues;
|
|
3090
3112
|
}
|
|
3091
3113
|
function suppliedEvidenceIds(evidence2) {
|
|
3092
|
-
const ids = /* @__PURE__ */ new Set([
|
|
3114
|
+
const ids = /* @__PURE__ */ new Set([
|
|
3115
|
+
evidence2.reviewPacket.currentTurn.id,
|
|
3116
|
+
...evidence2.admissibleEvidenceIds
|
|
3117
|
+
]);
|
|
3093
3118
|
for (const item of evidence2.observations)
|
|
3094
3119
|
addRecordId(ids, item);
|
|
3095
3120
|
for (const item of evidence2.reviewPacket.priorIncidents)
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
ToolDeclarationSchema,
|
|
16
16
|
createHarnessAdvanceReceipt,
|
|
17
17
|
validateConnectedAppToolCallRequest
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-JTFDOA2P.js";
|
|
19
19
|
import {
|
|
20
20
|
external_exports,
|
|
21
21
|
yaml
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
DEFAULT_OPENPOND_API_BASE_URL,
|
|
25
25
|
DEFAULT_OPENPOND_WEB_BASE_URL,
|
|
26
26
|
apiFetch
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-JGOP4GCK.js";
|
|
28
28
|
|
|
29
29
|
// ../../packages/cloud/dist/profile/profile-skills.js
|
|
30
30
|
import { createHash } from "node:crypto";
|
|
@@ -4977,6 +4977,7 @@ function normalizeSubagentRoleSettings(roles) {
|
|
|
4977
4977
|
// ../../packages/contracts/dist/settings.js
|
|
4978
4978
|
var DEFAULT_CODEX_CHAT_MODEL = "gpt-5.6-sol";
|
|
4979
4979
|
var DEFAULT_OPENPOND_CHAT_MODEL = "openpond-chat";
|
|
4980
|
+
var DEFAULT_HARNESS_REFINER_MODEL = "accounts/fireworks/models/deepseek-v4-flash";
|
|
4980
4981
|
var DEFAULT_CHAT_PROVIDER = "openpond";
|
|
4981
4982
|
var DEFAULT_CHAT_MODEL = DEFAULT_OPENPOND_CHAT_MODEL;
|
|
4982
4983
|
var DEFAULT_CODEX_PERMISSION_MODE = "default";
|
|
@@ -12807,6 +12808,7 @@ export {
|
|
|
12807
12808
|
AccountStateSchema,
|
|
12808
12809
|
DEFAULT_CODEX_CHAT_MODEL,
|
|
12809
12810
|
DEFAULT_OPENPOND_CHAT_MODEL,
|
|
12811
|
+
DEFAULT_HARNESS_REFINER_MODEL,
|
|
12810
12812
|
DEFAULT_CHAT_PROVIDER,
|
|
12811
12813
|
DEFAULT_CODEX_REASONING_EFFORT,
|
|
12812
12814
|
DEFAULT_OPENPOND_COMMAND_ACCESS_MODE,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
parseSandboxRuntimePromotionPolicyOption,
|
|
16
16
|
parseSandboxWorkflowModeOption,
|
|
17
17
|
runProcessCommand
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-J2REM7LE.js";
|
|
19
19
|
import {
|
|
20
20
|
optionString,
|
|
21
21
|
optionalJsonObject,
|
|
@@ -158,7 +158,10 @@ async function buildAgentSdkMaterializedDependency(projectPath, packageJson) {
|
|
|
158
158
|
if (!sdkSource) return null;
|
|
159
159
|
const tempDir = await fs.mkdtemp(path3.join(tmpdir(), "openpond-agent-sdk-pack-"));
|
|
160
160
|
try {
|
|
161
|
-
const sdkContents = sdkSource.kind === "package_root" ? await packOpenPondAgentSdkPackageRoot(sdkSource.packageRoot, tempDir) : sdkSource.
|
|
161
|
+
const sdkContents = sdkSource.kind === "package_root" ? await packOpenPondAgentSdkPackageRoot(sdkSource.packageRoot, tempDir) : sdkSource.kind === "registry" ? await packOpenPondAgentSdkRegistryPackage(
|
|
162
|
+
sdkSource.versionSpec,
|
|
163
|
+
tempDir
|
|
164
|
+
) : sdkSource.tarballContents;
|
|
162
165
|
const sdkDependencyTarballs = await packAgentSdkRuntimeDependencyTarballs({
|
|
163
166
|
sdkPackageJson: sdkSource.packageJson,
|
|
164
167
|
dependencyBaseDir: sdkSource.dependencyBaseDir,
|
|
@@ -238,7 +241,11 @@ async function packAgentSdkRuntimeDependencyTarballs(params) {
|
|
|
238
241
|
const projectDependencies = recordStringMap(
|
|
239
242
|
params.projectPackageJson.dependencies
|
|
240
243
|
);
|
|
244
|
+
const projectDevDependencies = recordStringMap(
|
|
245
|
+
params.projectPackageJson.devDependencies
|
|
246
|
+
);
|
|
241
247
|
delete projectDependencies["openpond-agent-sdk"];
|
|
248
|
+
delete projectDevDependencies["openpond-agent-sdk"];
|
|
242
249
|
const pending = [
|
|
243
250
|
...Object.entries(sdkDependencies).map(([packageName, versionSpec]) => ({
|
|
244
251
|
packageName,
|
|
@@ -249,7 +256,14 @@ async function packAgentSdkRuntimeDependencyTarballs(params) {
|
|
|
249
256
|
packageName,
|
|
250
257
|
versionSpec,
|
|
251
258
|
dependencyBaseDir: params.projectPath
|
|
252
|
-
}))
|
|
259
|
+
})),
|
|
260
|
+
...Object.entries(projectDevDependencies).map(
|
|
261
|
+
([packageName, versionSpec]) => ({
|
|
262
|
+
packageName,
|
|
263
|
+
versionSpec,
|
|
264
|
+
dependencyBaseDir: params.projectPath
|
|
265
|
+
})
|
|
266
|
+
)
|
|
253
267
|
].sort((left, right) => left.packageName.localeCompare(right.packageName));
|
|
254
268
|
const seen = /* @__PURE__ */ new Set();
|
|
255
269
|
const tarballs = [];
|
|
@@ -281,7 +295,14 @@ ${details}` : ""}`
|
|
|
281
295
|
);
|
|
282
296
|
}
|
|
283
297
|
const contents = await fs.readFile(path3.join(params.tempDir, tarballName));
|
|
284
|
-
|
|
298
|
+
let packedPackageJson;
|
|
299
|
+
try {
|
|
300
|
+
packedPackageJson = readPackageJsonFromNpmTarball(contents);
|
|
301
|
+
} catch (error) {
|
|
302
|
+
throw new Error(
|
|
303
|
+
`failed to inspect packed dependency ${packageName}: ${error instanceof Error ? error.message : String(error)}`
|
|
304
|
+
);
|
|
305
|
+
}
|
|
285
306
|
tarballs.push({
|
|
286
307
|
packageName,
|
|
287
308
|
source: "npm_dependency_tarball",
|
|
@@ -334,6 +355,33 @@ function npmPackTargetForDependency(params) {
|
|
|
334
355
|
function sanitizeNpmPackageNameForVendor(packageName) {
|
|
335
356
|
return packageName.replace(/^@/, "").replace(/[\/\\]/g, "__").replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
336
357
|
}
|
|
358
|
+
async function packOpenPondAgentSdkRegistryPackage(versionSpec, tempDir) {
|
|
359
|
+
const pack = await runCommand(
|
|
360
|
+
"npm",
|
|
361
|
+
[
|
|
362
|
+
"pack",
|
|
363
|
+
"--silent",
|
|
364
|
+
"--pack-destination",
|
|
365
|
+
tempDir,
|
|
366
|
+
`openpond-agent-sdk@${versionSpec}`
|
|
367
|
+
],
|
|
368
|
+
{ cwd: tempDir }
|
|
369
|
+
);
|
|
370
|
+
if (pack.code !== 0) {
|
|
371
|
+
const details = [pack.stderr.trim(), pack.stdout.trim()].filter(Boolean).join("\n");
|
|
372
|
+
throw new Error(
|
|
373
|
+
`failed to pack openpond-agent-sdk for source upload${details ? `:
|
|
374
|
+
${details}` : ""}`
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
const tarballName = pack.stdout.trim().split(/\r?\n/).filter(Boolean).pop();
|
|
378
|
+
if (!tarballName) {
|
|
379
|
+
throw new Error(
|
|
380
|
+
"failed to pack openpond-agent-sdk for source upload: npm pack did not return a tarball name"
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
return fs.readFile(path3.join(tempDir, tarballName));
|
|
384
|
+
}
|
|
337
385
|
function resolveLocalOpenPondAgentSdkMaterializationSource(projectPath, packageJson) {
|
|
338
386
|
const versionSpec = readOpenPondAgentSdkVersionSpec(packageJson);
|
|
339
387
|
if (versionSpec?.startsWith("file:")) {
|
|
@@ -375,6 +423,23 @@ function resolveLocalOpenPondAgentSdkMaterializationSource(projectPath, packageJ
|
|
|
375
423
|
};
|
|
376
424
|
}
|
|
377
425
|
}
|
|
426
|
+
const installedPackageRoot = path3.join(
|
|
427
|
+
projectPath,
|
|
428
|
+
"node_modules",
|
|
429
|
+
"openpond-agent-sdk"
|
|
430
|
+
);
|
|
431
|
+
if (isOpenPondAgentSdkPackageRoot(installedPackageRoot)) {
|
|
432
|
+
const installedPackageJson = JSON.parse(
|
|
433
|
+
readFileSyncUtf8(path3.join(installedPackageRoot, "package.json"))
|
|
434
|
+
);
|
|
435
|
+
const installedVersion = text(installedPackageJson.version);
|
|
436
|
+
return {
|
|
437
|
+
kind: "registry",
|
|
438
|
+
versionSpec: installedVersion ?? versionSpec ?? "latest",
|
|
439
|
+
dependencyBaseDir: installedPackageRoot,
|
|
440
|
+
packageJson: installedPackageJson
|
|
441
|
+
};
|
|
442
|
+
}
|
|
378
443
|
return null;
|
|
379
444
|
}
|
|
380
445
|
function findOpenPondAgentSdkPackageRootInAncestors(projectPath) {
|
|
@@ -420,14 +485,14 @@ function readPackageJsonFromNpmTarball(tarballContents) {
|
|
|
420
485
|
}
|
|
421
486
|
const dataStart = offset + 512;
|
|
422
487
|
const dataEnd = dataStart + size;
|
|
423
|
-
if (entryPath === "package/package.json") {
|
|
488
|
+
if (entryPath === "package/package.json" || entryPath.endsWith("/package.json")) {
|
|
424
489
|
return JSON.parse(
|
|
425
490
|
tarContents.subarray(dataStart, dataEnd).toString("utf8")
|
|
426
491
|
);
|
|
427
492
|
}
|
|
428
493
|
offset = dataStart + Math.ceil(size / 512) * 512;
|
|
429
494
|
}
|
|
430
|
-
throw new Error("failed to read
|
|
495
|
+
throw new Error("failed to read npm package tarball: missing package.json");
|
|
431
496
|
}
|
|
432
497
|
function readTarString(header, start, length) {
|
|
433
498
|
const field = header.subarray(start, start + length);
|