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.
Files changed (108) hide show
  1. package/dist/chunks/{actions-command-QVYIPEN5.js → actions-command-DZ6D7JTO.js} +2 -2
  2. package/dist/chunks/{app-layer-GCNXR4F3.js → app-layer-TUAFALOE.js} +5 -5
  3. package/dist/chunks/{app-server-runtime-737DBOSH.js → app-server-runtime-O26LVUYH.js} +7 -7
  4. package/dist/chunks/{apps-JB3POF6Z.js → apps-KSZRA7Y2.js} +5 -5
  5. package/dist/chunks/{chunk-NPEWMLRH.js → chunk-66KQLYSH.js} +1 -1
  6. package/dist/chunks/{chunk-ZJPLJP2Q.js → chunk-6FKBOGA4.js} +2 -2
  7. package/dist/chunks/{chunk-6RMGHEFF.js → chunk-7IFPXSSJ.js} +1 -1
  8. package/dist/chunks/{chunk-5HMXXGWZ.js → chunk-7UVEB2AZ.js} +2 -2
  9. package/dist/chunks/{chunk-32R4GQD3.js → chunk-IXA5PMXC.js} +2 -2
  10. package/dist/chunks/{chunk-XIUCBUUQ.js → chunk-J2REM7LE.js} +1 -1
  11. package/dist/chunks/{chunk-XSHMPOQV.js → chunk-JGOP4GCK.js} +6 -0
  12. package/dist/chunks/{chunk-TOMMZN6V.js → chunk-JTFDOA2P.js} +41 -16
  13. package/dist/chunks/{chunk-IZ3XGRAG.js → chunk-K4JEWEJQ.js} +1 -1
  14. package/dist/chunks/{chunk-L5JTI6LQ.js → chunk-KGU437HZ.js} +4 -2
  15. package/dist/chunks/{chunk-ZAX7MLQJ.js → chunk-LEL5AQJU.js} +1 -1
  16. package/dist/chunks/{chunk-B3WVCPXG.js → chunk-PLDCQVNW.js} +71 -6
  17. package/dist/chunks/{chunk-YSVY4O42.js → chunk-T55IL3GI.js} +1 -1
  18. package/dist/chunks/{chunk-BQQS5RRI.js → chunk-V2CTXKS2.js} +156 -61
  19. package/dist/chunks/{chunk-LBIVEX6V.js → chunk-YDH34BGG.js} +35 -33
  20. package/dist/chunks/{cli-MFFCFH3P.js → cli-LPFU4ULD.js} +6 -6
  21. package/dist/chunks/{core-commands-KCFU7U5Y.js → core-commands-OEOBYFIW.js} +6 -6
  22. package/dist/chunks/{desktop-test-FEQVX4N4.js → desktop-test-BRLZF3O7.js} +5 -5
  23. package/dist/chunks/{extension-M4DH25KH.js → extension-5BUCIDKG.js} +1 -1
  24. package/dist/chunks/{help-ZUIE4EPY.js → help-MT6VPW4X.js} +1 -1
  25. package/dist/chunks/{opchat-7KRZIFFD.js → opchat-O4DVKNFW.js} +5 -5
  26. package/dist/chunks/{organizations-ZWPFNM6K.js → organizations-ACNOJ57Q.js} +7 -7
  27. package/dist/chunks/{profile-GF57OWI6.js → profile-7LLWXAJE.js} +12 -7
  28. package/dist/chunks/{project-agent-65MXZHGM.js → project-agent-RVYQYTU2.js} +27 -7
  29. package/dist/chunks/{sandbox-command-WH2OQRHP.js → sandbox-command-QST23BX5.js} +6 -6
  30. package/dist/chunks/{sandbox-template-W5HU24TF.js → sandbox-template-N7UG3P6V.js} +7 -7
  31. package/dist/chunks/{src-YUIJKNIC.js → src-CPM5Q7T5.js} +4 -4
  32. package/dist/chunks/{src-O5QXOQ5H.js → src-M37V6NVU.js} +60 -13
  33. package/dist/chunks/{teams-bot-5ATLXSHC.js → teams-bot-ITTI47XS.js} +5 -5
  34. package/dist/chunks/{workspaces-4XJ3GXL4.js → workspaces-CYBR37US.js} +2 -2
  35. package/dist/cli.js +13 -13
  36. package/dist/index.js +6 -0
  37. package/dist/sandbox/client-handles.d.ts +2 -1
  38. package/dist/sandbox/client.d.ts +3 -1
  39. package/dist/sandbox/types/org-project-agent.d.ts +13 -0
  40. package/dist/web/assets/{AppDialog-BvdkukM_.js → AppDialog-wIb8mGQ0.js} +1 -1
  41. package/dist/web/assets/{AppsView-9h3-BQbk.js → AppsView-D097dPIV.js} +1 -1
  42. package/dist/web/assets/{BrowserSidebar-C6WJ5wIu.js → BrowserSidebar-DrD-o_yB.js} +1 -1
  43. package/dist/web/assets/{CommandMenu-C7en9zgQ.js → CommandMenu-L5LelA2h.js} +1 -1
  44. package/dist/web/assets/{CommunityView-CoqI6Dks.js → CommunityView-DUJ8NryS.js} +1 -1
  45. package/dist/web/assets/{ComposerCreateImproveStrip-DMq6A2Ba.js → ComposerCreateImproveStrip-BP-7DmQG.js} +1 -1
  46. package/dist/web/assets/{GetStartedView-B-zgx1jI.js → GetStartedView-B7gB6Hii.js} +1 -1
  47. package/dist/web/assets/{LabModelVersionDetailPage-CkNOBygO.js → LabModelVersionDetailPage-CNDz2a6I.js} +1 -1
  48. package/dist/web/assets/{LabSkillSidebar-CmRHuu78.js → LabSkillSidebar-BImOQcjk.js} +1 -1
  49. package/dist/web/assets/{LabsRoute-DLPZqEev.js → LabsRoute-BauSK1is.js} +3 -3
  50. package/dist/web/assets/{MainChatThread-CFGsODmc.js → MainChatThread-BZvAqQO6.js} +2 -2
  51. package/dist/web/assets/MainPane-CuhwxMxg.js +6 -0
  52. package/dist/web/assets/{MarkdownText-C4Ixpl-i.js → MarkdownText-gwAue4u5.js} +1 -1
  53. package/dist/web/assets/{Messages-DmEk_BWS.js → Messages-DijmQL-z.js} +8 -8
  54. package/dist/web/assets/{NativeSkillSidebar-Cn824hrX.js → NativeSkillSidebar-aCkrdGa0.js} +1 -1
  55. package/dist/web/assets/{NewProjectDialog-BFEDv4Ga.js → NewProjectDialog-D98WIQzr.js} +1 -1
  56. package/dist/web/assets/{OutputsPage-hfQyqQzx.js → OutputsPage-BA0c6cfy.js} +1 -1
  57. package/dist/web/assets/{RightChatPanelStack-CiPKX3Ea.js → RightChatPanelStack-DKDEmrEH.js} +1 -1
  58. package/dist/web/assets/{ScheduledWorkPage-CyoZsUCe.js → ScheduledWorkPage-DeHi99mv.js} +1 -1
  59. package/dist/web/assets/SettingsView--fL3Ecuy.js +6 -0
  60. package/dist/web/assets/SettingsView-BS5m5vdt.css +1 -0
  61. package/dist/web/assets/TeamChatView-D2mCoLZ3.js +3 -0
  62. package/dist/web/assets/{TerminalOverlay-CpsPuPIM.js → TerminalOverlay-BHMsVp4L.js} +1 -1
  63. package/dist/web/assets/{TrainingCreationPanel-DMLpUVbJ.js → TrainingCreationPanel-CPnMWgkt.js} +1 -1
  64. package/dist/web/assets/{TrainingDraftPanel-gAhpwkYs.js → TrainingDraftPanel-0scEtzSW.js} +1 -1
  65. package/dist/web/assets/{UsageSettingsSection-WBtxLhBx.js → UsageSettingsSection-COoCLLg6.js} +1 -1
  66. package/dist/web/assets/{WorkspaceDiffPanel-CUpwqvzZ.js → WorkspaceDiffPanel-BFTwZ_dB.js} +5 -5
  67. package/dist/web/assets/{WorkspaceEnvironmentMenu-LIbOBT4f.js → WorkspaceEnvironmentMenu-DFlkdd9T.js} +3 -3
  68. package/dist/web/assets/{WorkspaceGitDialogs-8y7rRSou.js → WorkspaceGitDialogs-Dt3LO27Z.js} +1 -1
  69. package/dist/web/assets/{WorkspaceMonacoEditor-BpHmWrCD.js → WorkspaceMonacoEditor-3g05teoR.js} +3 -3
  70. package/dist/web/assets/{arrow-up-right-3TbyK1ec.js → arrow-up-right-DYGSWA2J.js} +1 -1
  71. package/dist/web/assets/{chevron-up-C4tTuxXs.js → chevron-up-4qfvI9iW.js} +1 -1
  72. package/dist/web/assets/{cloud-upload-ZGHLWEn3.js → cloud-upload-COReKxOy.js} +1 -1
  73. package/dist/web/assets/{cssMode-kfZCOm_r.js → cssMode-BbH67BYF.js} +1 -1
  74. package/dist/web/assets/{folder-open-C4WG_lDr.js → folder-open-9OjGqNgP.js} +1 -1
  75. package/dist/web/assets/{folder-plus-CKRaDeR3.js → folder-plus-DF5E6zr3.js} +1 -1
  76. package/dist/web/assets/{git-branch-yLi5tff8.js → git-branch-eCwyZXMl.js} +1 -1
  77. package/dist/web/assets/{git-commit-horizontal-BPyGYak3.js → git-commit-horizontal-cPm51DqY.js} +1 -1
  78. package/dist/web/assets/{htmlMode-DT--Et9k.js → htmlMode-DD6Oge4x.js} +1 -1
  79. package/dist/web/assets/{index--lwjVZXT.js → index-BO2W2U23.js} +66 -66
  80. package/dist/web/assets/index-BRLugX1S.js +1 -0
  81. package/dist/web/assets/{index-B_HvNtwl.css → index-Y7IoiSlQ.css} +1 -1
  82. package/dist/web/assets/{info-CzzHwSUb.js → info-p1mFpqBI.js} +1 -1
  83. package/dist/web/assets/{jsonMode-CKg1GzqC.js → jsonMode-C2Xd56A_.js} +1 -1
  84. package/dist/web/assets/{lspLanguageFeatures-B76Yo6xo.js → lspLanguageFeatures-BjYEk4gJ.js} +1 -1
  85. package/dist/web/assets/{monaco.contribution-BRuQU-2A.js → monaco.contribution-Bo-5m7yy.js} +2 -2
  86. package/dist/web/assets/{monaco.contribution-CLpGfCSS.js → monaco.contribution-C7WMqwmc.js} +2 -2
  87. package/dist/web/assets/{monaco.contribution-CS3H8RrD.js → monaco.contribution-DzWlEgU1.js} +2 -2
  88. package/dist/web/assets/{monaco.contribution-DqeexNAI.js → monaco.contribution-quEPEMQZ.js} +2 -2
  89. package/dist/web/assets/{play-EDFh3BPS.js → play-Ctx-iMqd.js} +1 -1
  90. package/dist/web/assets/{python-De_Vr_hD.js → python-Cm64qCpk.js} +1 -1
  91. package/dist/web/assets/{refresh-cw-DRJJ-X1U.js → refresh-cw-Bn28jIl0.js} +1 -1
  92. package/dist/web/assets/{save-BSxqIWP6.js → save-BM5IQX65.js} +1 -1
  93. package/dist/web/assets/{square-BV-Vgh5a.js → square-DAGpFfSr.js} +1 -1
  94. package/dist/web/assets/{toggleHighContrast-1Suz4cxo.js → toggleHighContrast-DLW8Fnck.js} +1 -1
  95. package/dist/web/assets/{tsMode-DMyzpvFI.js → tsMode-BleUN_8S.js} +1 -1
  96. package/dist/web/assets/{upload-jVxCW0dO.js → upload-vaAKFfxi.js} +1 -1
  97. package/dist/web/assets/{useLocalAgentSchedules-DNpnOBA8.js → useLocalAgentSchedules-Ccenbqf6.js} +1 -1
  98. package/dist/web/assets/{wifi-off-IzGGiOX_.js → wifi-off-DJA9KReb.js} +1 -1
  99. package/dist/web/assets/{workers-Crdnk6Zy.js → workers-CFG-afha.js} +1 -1
  100. package/dist/web/assets/{yaml-CF3tmjgW.js → yaml-Cs8iZKVC.js} +1 -1
  101. package/dist/web/index.html +2 -2
  102. package/docs/command-reference.md +2 -0
  103. package/package.json +1 -1
  104. package/dist/web/assets/MainPane-B2kcZpM0.js +0 -6
  105. package/dist/web/assets/SettingsView-BZkrIOc0.css +0 -1
  106. package/dist/web/assets/SettingsView-DWWs9gel.js +0 -6
  107. package/dist/web/assets/TeamChatView-C4RWAO8c.js +0 -3
  108. 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-IZ3XGRAG.js";
10
- import "./chunk-XSHMPOQV.js";
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-XIUCBUUQ.js";
4
+ } from "./chunk-J2REM7LE.js";
5
5
  import {
6
6
  CliUsageError
7
- } from "./chunk-ZAX7MLQJ.js";
7
+ } from "./chunk-LEL5AQJU.js";
8
8
  import "./chunk-SMNFI2FU.js";
9
- import "./chunk-LBIVEX6V.js";
10
- import "./chunk-IZ3XGRAG.js";
11
- import "./chunk-XSHMPOQV.js";
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-BQQS5RRI.js";
6
- import "./chunk-NPEWMLRH.js";
5
+ } from "./chunk-V2CTXKS2.js";
6
+ import "./chunk-66KQLYSH.js";
7
7
  import "./chunk-OYWTQABY.js";
8
- import "./chunk-6RMGHEFF.js";
9
- import "./chunk-32R4GQD3.js";
10
- import "./chunk-L5JTI6LQ.js";
8
+ import "./chunk-7IFPXSSJ.js";
9
+ import "./chunk-IXA5PMXC.js";
10
+ import "./chunk-KGU437HZ.js";
11
11
  import "./chunk-QETF6ILG.js";
12
- import "./chunk-TOMMZN6V.js";
12
+ import "./chunk-JTFDOA2P.js";
13
13
  import "./chunk-WYDVQOBL.js";
14
- import "./chunk-XSHMPOQV.js";
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-XIUCBUUQ.js";
14
- import "./chunk-ZAX7MLQJ.js";
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-LBIVEX6V.js";
20
- import "./chunk-IZ3XGRAG.js";
21
- import "./chunk-XSHMPOQV.js";
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-6RMGHEFF.js";
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-XIUCBUUQ.js";
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-LBIVEX6V.js";
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.61";
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 ![description](path-or-url) 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-6RMGHEFF.js";
9
+ } from "./chunk-7IFPXSSJ.js";
10
10
  import {
11
11
  getBundledRuntimeVersion,
12
12
  openUrlWithSystemBrowser
13
- } from "./chunk-32R4GQD3.js";
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-L5JTI6LQ.js";
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-XSHMPOQV.js";
20
+ } from "./chunk-JGOP4GCK.js";
21
21
 
22
22
  // ../../packages/runtime/dist/chat.js
23
23
  import { randomUUID } from "node:crypto";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SMNFI2FU.js";
7
7
  import {
8
8
  createOpenPondSandboxClient
9
- } from "./chunk-XSHMPOQV.js";
9
+ } from "./chunk-JGOP4GCK.js";
10
10
  import {
11
11
  DEFAULT_CACHE_TTL_MS,
12
12
  SANDBOX_RUNTIME_PROFILE_IDS,
@@ -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
- sourceFiles: external_exports.array(external_exports.object({
2912
- path: external_exports.string().trim().min(1).max(2e3),
2913
- kind: SourceKindSchema,
2914
- content: external_exports.string().max(6e4),
2915
- loaded: external_exports.boolean()
2916
- }).strict()).max(100),
2917
- sourceCatalog: external_exports.array(external_exports.object({
2918
- path: external_exports.string().trim().min(1).max(2e3),
2919
- kind: SourceKindSchema,
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 name actual supplied observation or prior-incident IDs. List material counterevidence explicitly. Never invent recurrence or omit contradictory supplied evidence.",
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([evidence2.reviewPacket.currentTurn.id]);
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)
@@ -6,7 +6,7 @@ import {
6
6
  readApiJson,
7
7
  resolveOpChatApiBaseUrl,
8
8
  sendHostedChatTurn
9
- } from "./chunk-XSHMPOQV.js";
9
+ } from "./chunk-JGOP4GCK.js";
10
10
 
11
11
  // ../../packages/sdk/src/work.ts
12
12
  var DEFAULT_MODEL = "openpond-chat";
@@ -15,7 +15,7 @@ import {
15
15
  ToolDeclarationSchema,
16
16
  createHarnessAdvanceReceipt,
17
17
  validateConnectedAppToolCallRequest
18
- } from "./chunk-TOMMZN6V.js";
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-XSHMPOQV.js";
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,
@@ -4,7 +4,7 @@ import {
4
4
  getAnyCliOptionKind,
5
5
  getCliCommandDefinition,
6
6
  getCliOptionKind
7
- } from "./chunk-LBIVEX6V.js";
7
+ } from "./chunk-YDH34BGG.js";
8
8
  import {
9
9
  parseJsonOption
10
10
  } from "./chunk-MUMPWI4O.js";
@@ -15,7 +15,7 @@ import {
15
15
  parseSandboxRuntimePromotionPolicyOption,
16
16
  parseSandboxWorkflowModeOption,
17
17
  runProcessCommand
18
- } from "./chunk-XIUCBUUQ.js";
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.tarballContents;
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
- const packedPackageJson = readPackageJsonFromNpmTarball(contents);
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 openpond-agent-sdk tarball: missing package.json");
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);
@@ -4,7 +4,7 @@ import {
4
4
  parseSandboxRuntimeProfileIdOption,
5
5
  parseSandboxRuntimePromotionPolicyOption,
6
6
  parseSandboxWorkflowModeOption
7
- } from "./chunk-XIUCBUUQ.js";
7
+ } from "./chunk-J2REM7LE.js";
8
8
  import {
9
9
  parseBooleanOption,
10
10
  parseCsvOption,