openpond 0.0.61 → 0.0.62

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 (107) 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-MSLVVYLM.js} +5 -5
  3. package/dist/chunks/{app-server-runtime-737DBOSH.js → app-server-runtime-BRG7A5VD.js} +7 -7
  4. package/dist/chunks/{apps-JB3POF6Z.js → apps-6PAXKTB5.js} +5 -5
  5. package/dist/chunks/{chunk-BQQS5RRI.js → chunk-4NHAH3MT.js} +92 -20
  6. package/dist/chunks/{chunk-ZAX7MLQJ.js → chunk-64LYEFLR.js} +1 -1
  7. package/dist/chunks/{chunk-5HMXXGWZ.js → chunk-6JT34APP.js} +2 -2
  8. package/dist/chunks/{chunk-32R4GQD3.js → chunk-BFAL2CV3.js} +2 -2
  9. package/dist/chunks/{chunk-6RMGHEFF.js → chunk-FYB6ELFM.js} +1 -1
  10. package/dist/chunks/{chunk-LBIVEX6V.js → chunk-GMX47RLP.js} +35 -33
  11. package/dist/chunks/{chunk-TOMMZN6V.js → chunk-IY2AW5F3.js} +12 -3
  12. package/dist/chunks/{chunk-XIUCBUUQ.js → chunk-J2REM7LE.js} +1 -1
  13. package/dist/chunks/{chunk-XSHMPOQV.js → chunk-JGOP4GCK.js} +6 -0
  14. package/dist/chunks/{chunk-IZ3XGRAG.js → chunk-K4JEWEJQ.js} +1 -1
  15. package/dist/chunks/{chunk-ZJPLJP2Q.js → chunk-KMBJLBQH.js} +2 -2
  16. package/dist/chunks/{chunk-NPEWMLRH.js → chunk-MBF44RYK.js} +1 -1
  17. package/dist/chunks/{chunk-B3WVCPXG.js → chunk-PLDCQVNW.js} +71 -6
  18. package/dist/chunks/{chunk-L5JTI6LQ.js → chunk-T4FMK5GN.js} +4 -2
  19. package/dist/chunks/{chunk-YSVY4O42.js → chunk-T55IL3GI.js} +1 -1
  20. package/dist/chunks/{cli-MFFCFH3P.js → cli-L25X2EZL.js} +6 -6
  21. package/dist/chunks/{core-commands-KCFU7U5Y.js → core-commands-STKFZZVR.js} +6 -6
  22. package/dist/chunks/{desktop-test-FEQVX4N4.js → desktop-test-ACKJN4UV.js} +5 -5
  23. package/dist/chunks/{extension-M4DH25KH.js → extension-MVWXKSAD.js} +1 -1
  24. package/dist/chunks/{help-ZUIE4EPY.js → help-4MQ4EOIS.js} +1 -1
  25. package/dist/chunks/{opchat-7KRZIFFD.js → opchat-DUIZT4G6.js} +5 -5
  26. package/dist/chunks/{organizations-ZWPFNM6K.js → organizations-ATM4CZII.js} +7 -7
  27. package/dist/chunks/{profile-GF57OWI6.js → profile-5H3GF252.js} +12 -7
  28. package/dist/chunks/{project-agent-65MXZHGM.js → project-agent-RSKSO5GT.js} +27 -7
  29. package/dist/chunks/{sandbox-command-WH2OQRHP.js → sandbox-command-MTYSZR6P.js} +6 -6
  30. package/dist/chunks/{sandbox-template-W5HU24TF.js → sandbox-template-RZ5AJ4KB.js} +7 -7
  31. package/dist/chunks/{src-YUIJKNIC.js → src-PW337SIJ.js} +4 -4
  32. package/dist/chunks/{src-O5QXOQ5H.js → src-WKH7EP7W.js} +60 -13
  33. package/dist/chunks/{teams-bot-5ATLXSHC.js → teams-bot-FF3LDAYL.js} +5 -5
  34. package/dist/chunks/{workspaces-4XJ3GXL4.js → workspaces-QKADU2A6.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-1RkKL2v6.js} +1 -1
  41. package/dist/web/assets/{AppsView-9h3-BQbk.js → AppsView-B6hDEt-h.js} +1 -1
  42. package/dist/web/assets/{BrowserSidebar-C6WJ5wIu.js → BrowserSidebar-CkAMOgiq.js} +1 -1
  43. package/dist/web/assets/{CommandMenu-C7en9zgQ.js → CommandMenu-9oAkS4X3.js} +1 -1
  44. package/dist/web/assets/{CommunityView-CoqI6Dks.js → CommunityView-Dyuq5N28.js} +1 -1
  45. package/dist/web/assets/{ComposerCreateImproveStrip-DMq6A2Ba.js → ComposerCreateImproveStrip-D91cw5AT.js} +1 -1
  46. package/dist/web/assets/{GetStartedView-B-zgx1jI.js → GetStartedView-BZpcZgjB.js} +1 -1
  47. package/dist/web/assets/{LabModelVersionDetailPage-CkNOBygO.js → LabModelVersionDetailPage-C0jNkciw.js} +1 -1
  48. package/dist/web/assets/{LabSkillSidebar-CmRHuu78.js → LabSkillSidebar-JGCPqTB1.js} +1 -1
  49. package/dist/web/assets/{LabsRoute-DLPZqEev.js → LabsRoute-Dpv5Haqy.js} +3 -3
  50. package/dist/web/assets/{MainChatThread-CFGsODmc.js → MainChatThread-B4_iIn3g.js} +2 -2
  51. package/dist/web/assets/MainPane-o4HIxmNz.js +6 -0
  52. package/dist/web/assets/{MarkdownText-C4Ixpl-i.js → MarkdownText-DgS9KdyT.js} +1 -1
  53. package/dist/web/assets/{Messages-DmEk_BWS.js → Messages-DjMa9H1T.js} +8 -8
  54. package/dist/web/assets/{NativeSkillSidebar-Cn824hrX.js → NativeSkillSidebar-Q3fwLOiO.js} +1 -1
  55. package/dist/web/assets/{NewProjectDialog-BFEDv4Ga.js → NewProjectDialog-CUb0umRT.js} +1 -1
  56. package/dist/web/assets/{OutputsPage-hfQyqQzx.js → OutputsPage-DD_1STRQ.js} +1 -1
  57. package/dist/web/assets/{RightChatPanelStack-CiPKX3Ea.js → RightChatPanelStack-2dFyjK7Z.js} +1 -1
  58. package/dist/web/assets/{ScheduledWorkPage-CyoZsUCe.js → ScheduledWorkPage-DPjweWpP.js} +1 -1
  59. package/dist/web/assets/SettingsView-BS5m5vdt.css +1 -0
  60. package/dist/web/assets/SettingsView-DJGgGPL0.js +6 -0
  61. package/dist/web/assets/{TeamChatView-C4RWAO8c.js → TeamChatView-CZmbzRk7.js} +2 -2
  62. package/dist/web/assets/{TerminalOverlay-CpsPuPIM.js → TerminalOverlay-CpjrArXn.js} +1 -1
  63. package/dist/web/assets/{TrainingCreationPanel-DMLpUVbJ.js → TrainingCreationPanel-Tbj3qk8-.js} +1 -1
  64. package/dist/web/assets/{TrainingDraftPanel-gAhpwkYs.js → TrainingDraftPanel-BhggD-hn.js} +1 -1
  65. package/dist/web/assets/{UsageSettingsSection-WBtxLhBx.js → UsageSettingsSection-CXM6LKim.js} +1 -1
  66. package/dist/web/assets/{WorkspaceDiffPanel-CUpwqvzZ.js → WorkspaceDiffPanel-CoMkI8dY.js} +5 -5
  67. package/dist/web/assets/{WorkspaceEnvironmentMenu-LIbOBT4f.js → WorkspaceEnvironmentMenu-CZyjk82C.js} +3 -3
  68. package/dist/web/assets/{WorkspaceGitDialogs-8y7rRSou.js → WorkspaceGitDialogs-DTj3DOsf.js} +1 -1
  69. package/dist/web/assets/{WorkspaceMonacoEditor-BpHmWrCD.js → WorkspaceMonacoEditor-DaNMLEnU.js} +3 -3
  70. package/dist/web/assets/{arrow-up-right-3TbyK1ec.js → arrow-up-right-wvL_rSwe.js} +1 -1
  71. package/dist/web/assets/{chevron-up-C4tTuxXs.js → chevron-up-BbyiUcq_.js} +1 -1
  72. package/dist/web/assets/{cloud-upload-ZGHLWEn3.js → cloud-upload-Bgv1fA6E.js} +1 -1
  73. package/dist/web/assets/{cssMode-kfZCOm_r.js → cssMode-BG9jdNNX.js} +1 -1
  74. package/dist/web/assets/{folder-open-C4WG_lDr.js → folder-open-CRAYp6pW.js} +1 -1
  75. package/dist/web/assets/{folder-plus-CKRaDeR3.js → folder-plus-BgsuJVU0.js} +1 -1
  76. package/dist/web/assets/{git-branch-yLi5tff8.js → git-branch-CicxCU5U.js} +1 -1
  77. package/dist/web/assets/{git-commit-horizontal-BPyGYak3.js → git-commit-horizontal-BRkwl6bp.js} +1 -1
  78. package/dist/web/assets/{htmlMode-DT--Et9k.js → htmlMode-B69EEM3s.js} +1 -1
  79. package/dist/web/assets/index-BGdmnwp7.js +1 -0
  80. package/dist/web/assets/{index-B_HvNtwl.css → index-Bt9mPk1q.css} +1 -1
  81. package/dist/web/assets/{index--lwjVZXT.js → index-Dcpm2LlR.js} +71 -71
  82. package/dist/web/assets/{info-CzzHwSUb.js → info-BxhCcEsF.js} +1 -1
  83. package/dist/web/assets/{jsonMode-CKg1GzqC.js → jsonMode-D0tzZkp2.js} +1 -1
  84. package/dist/web/assets/{lspLanguageFeatures-B76Yo6xo.js → lspLanguageFeatures-DFpYfxMH.js} +1 -1
  85. package/dist/web/assets/{monaco.contribution-DqeexNAI.js → monaco.contribution-BFP-1c-A.js} +2 -2
  86. package/dist/web/assets/{monaco.contribution-CS3H8RrD.js → monaco.contribution-BzGRrg8l.js} +2 -2
  87. package/dist/web/assets/{monaco.contribution-BRuQU-2A.js → monaco.contribution-K53jgqut.js} +2 -2
  88. package/dist/web/assets/{monaco.contribution-CLpGfCSS.js → monaco.contribution-lS_l56Q7.js} +2 -2
  89. package/dist/web/assets/{play-EDFh3BPS.js → play-B8en8HVG.js} +1 -1
  90. package/dist/web/assets/{python-De_Vr_hD.js → python-DPtRb2z3.js} +1 -1
  91. package/dist/web/assets/{refresh-cw-DRJJ-X1U.js → refresh-cw-CRZeaNu7.js} +1 -1
  92. package/dist/web/assets/{save-BSxqIWP6.js → save-oO8erge1.js} +1 -1
  93. package/dist/web/assets/{square-BV-Vgh5a.js → square-CSULphDY.js} +1 -1
  94. package/dist/web/assets/{toggleHighContrast-1Suz4cxo.js → toggleHighContrast-CmDdOtfT.js} +1 -1
  95. package/dist/web/assets/{tsMode-DMyzpvFI.js → tsMode-B0TCT940.js} +1 -1
  96. package/dist/web/assets/{upload-jVxCW0dO.js → upload-dz-oCLFE.js} +1 -1
  97. package/dist/web/assets/{useLocalAgentSchedules-DNpnOBA8.js → useLocalAgentSchedules-DPga1Kwi.js} +1 -1
  98. package/dist/web/assets/{wifi-off-IzGGiOX_.js → wifi-off-BZpON33U.js} +1 -1
  99. package/dist/web/assets/{workers-Crdnk6Zy.js → workers-DXVEq1Aw.js} +1 -1
  100. package/dist/web/assets/{yaml-CF3tmjgW.js → yaml-B8TBCEpi.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/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-64LYEFLR.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-GMX47RLP.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-4NHAH3MT.js";
6
+ import "./chunk-MBF44RYK.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-FYB6ELFM.js";
9
+ import "./chunk-BFAL2CV3.js";
10
+ import "./chunk-T4FMK5GN.js";
11
11
  import "./chunk-QETF6ILG.js";
12
- import "./chunk-TOMMZN6V.js";
12
+ import "./chunk-IY2AW5F3.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-64LYEFLR.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-GMX47RLP.js";
20
+ import "./chunk-K4JEWEJQ.js";
21
+ import "./chunk-JGOP4GCK.js";
22
22
  import {
23
23
  createAgentFromPrompt,
24
24
  deployApp,
@@ -11,7 +11,7 @@ import {
11
11
  truncatePatch,
12
12
  uniqueSortedPaths,
13
13
  workspaceImageContentType
14
- } from "./chunk-NPEWMLRH.js";
14
+ } from "./chunk-MBF44RYK.js";
15
15
  import {
16
16
  AGENT_PROTOCOL_VERSION,
17
17
  AGENT_RPC_METHODS,
@@ -35,13 +35,13 @@ import {
35
35
  event,
36
36
  now,
37
37
  textFromUnknown
38
- } from "./chunk-6RMGHEFF.js";
38
+ } from "./chunk-FYB6ELFM.js";
39
39
  import {
40
40
  getBundledRuntimeVersion,
41
41
  loadOpenPondAccountContext,
42
42
  loadOpenPondHostedModels,
43
43
  streamOpenPondHostedChatTurn
44
- } from "./chunk-32R4GQD3.js";
44
+ } from "./chunk-BFAL2CV3.js";
45
45
  import {
46
46
  AppPreferencesSchema,
47
47
  ApplyCreateImproveRunActionRequestSchema,
@@ -76,6 +76,7 @@ import {
76
76
  CrossSystemWorldSpecSchema,
77
77
  DEFAULT_CODEX_CHAT_MODEL,
78
78
  DEFAULT_CODEX_REASONING_EFFORT,
79
+ DEFAULT_HARNESS_REFINER_MODEL,
79
80
  DEFAULT_OPENPOND_CHAT_MODEL,
80
81
  DEFAULT_OPENPOND_COMMAND_ACCESS_MODE,
81
82
  DEFAULT_PERSONALIZATION_TEMPLATE_ID,
@@ -161,7 +162,7 @@ import {
161
162
  runProfileSkillCommand,
162
163
  sidebarFileBookmarkId,
163
164
  workOutputMediaTypesCompatible
164
- } from "./chunk-L5JTI6LQ.js";
165
+ } from "./chunk-T4FMK5GN.js";
165
166
  import {
166
167
  PROJECT_ACTION_CONFIG_PATH,
167
168
  createLocalActionRunner,
@@ -270,7 +271,7 @@ import {
270
271
  uniqueEventRefs,
271
272
  validateConnectedAppProviderOperationRequest,
272
273
  verifyRequiredOutputs
273
- } from "./chunk-TOMMZN6V.js";
274
+ } from "./chunk-IY2AW5F3.js";
274
275
  import {
275
276
  external_exports
276
277
  } from "./chunk-WYDVQOBL.js";
@@ -281,7 +282,7 @@ import {
281
282
  normalizeSandboxApiUrl,
282
283
  readApiJson,
283
284
  withVercelProtectionBypass
284
- } from "./chunk-XSHMPOQV.js";
285
+ } from "./chunk-JGOP4GCK.js";
285
286
  import {
286
287
  __commonJS,
287
288
  __toESM
@@ -8165,12 +8166,24 @@ var MAX_REVIEW_TIMELINE_CHARS = 24e3;
8165
8166
  var MAX_PRIOR_CONVERSATION_TURNS = 3;
8166
8167
  var MAX_PRIOR_INCIDENTS = 3;
8167
8168
  var MAX_PRIOR_INCIDENT_TIMELINE_EVENTS = 6;
8169
+ var REFINER_CONTEXT_EVENT_NAMES = [
8170
+ "turn.started",
8171
+ "assistant.delta",
8172
+ "tool.started",
8173
+ "tool.completed",
8174
+ "skill.loaded",
8175
+ "workspace_action_result",
8176
+ "diagnostic",
8177
+ "turn.completed",
8178
+ "turn.failed",
8179
+ "turn.interrupted"
8180
+ ];
8168
8181
  var execFileAsync = promisify(execFile);
8169
8182
  async function loadBoundedRefinerContext(store, trigger, observations, workspaceId, options) {
8170
8183
  const [session, turn, events, turns, usageRecords] = await Promise.all([
8171
8184
  store.getSession(trigger.runRef),
8172
8185
  store.getTurn(trigger.turnId),
8173
- store.runtimeEventsForSession(trigger.runRef, { limit: 1e3 }),
8186
+ store.runtimeEventsForTurn(trigger.turnId, { names: REFINER_CONTEXT_EVENT_NAMES }),
8174
8187
  store.turnsForSession(trigger.runRef, 1e3),
8175
8188
  store.listModelUsageRecords({ turnId: trigger.turnId, limit: 1e4 })
8176
8189
  ]);
@@ -8179,6 +8192,18 @@ async function loadBoundedRefinerContext(store, trigger, observations, workspace
8179
8192
  );
8180
8193
  const turnIndex = orderedTurns.findIndex((candidate) => candidate.id === trigger.turnId);
8181
8194
  const previousTurn = turnIndex > 0 ? orderedTurns[turnIndex - 1] : null;
8195
+ const priorConversationTurns = orderedTurns.slice(
8196
+ Math.max(0, turnIndex - MAX_PRIOR_CONVERSATION_TURNS),
8197
+ Math.max(0, turnIndex)
8198
+ );
8199
+ const priorConversationEvents = new Map(
8200
+ await Promise.all(
8201
+ priorConversationTurns.map(async (candidate) => [
8202
+ candidate.id,
8203
+ await store.runtimeEventsForTurn(candidate.id, { names: ["assistant.delta"] })
8204
+ ])
8205
+ )
8206
+ );
8182
8207
  const eventRefs = new Map(
8183
8208
  observations.flatMap(
8184
8209
  (observation) => observation.eventRefs.map((reference) => [reference.id, reference])
@@ -8235,7 +8260,9 @@ async function loadBoundedRefinerContext(store, trigger, observations, workspace
8235
8260
  (runtimeEvent) => runtimeEvent.turnId === trigger.turnId && isRefinerReviewTimelineEvent(runtimeEvent) && (runtimeEvent.sequence === void 0 || runtimeEvent.sequence <= trigger.boundary.eventSequence)
8236
8261
  ).sort(compareRuntimeEvents);
8237
8262
  const timeline = boundedReviewTimeline(timelineCandidates);
8238
- const priorConversation = orderedTurns.slice(Math.max(0, turnIndex - MAX_PRIOR_CONVERSATION_TURNS), Math.max(0, turnIndex)).map((candidate) => conversationTurn(candidate, events));
8263
+ const priorConversation = priorConversationTurns.map(
8264
+ (candidate) => conversationTurn(candidate, priorConversationEvents.get(candidate.id) ?? [])
8265
+ );
8239
8266
  const priorIncidents = workspaceId ? await loadRelevantPriorIncidentPackets({
8240
8267
  store,
8241
8268
  workspaceId,
@@ -8247,7 +8274,10 @@ async function loadBoundedRefinerContext(store, trigger, observations, workspace
8247
8274
  prompt: turn?.prompt ? redactAndBoundRefinerText(turn.prompt, 8e3) : null,
8248
8275
  assistantOutput,
8249
8276
  assistantOutputLinkCount: countAbsoluteLinks(assistantOutput),
8250
- previousAssistantOutput: previousTurn ? assistantOutputForTurn(events, previousTurn.id) : null
8277
+ previousAssistantOutput: previousTurn ? assistantOutputForTurn(
8278
+ priorConversationEvents.get(previousTurn.id) ?? [],
8279
+ previousTurn.id
8280
+ ) : null
8251
8281
  },
8252
8282
  artifactDiagnostics,
8253
8283
  executionProfile,
@@ -8412,7 +8442,7 @@ async function loadRelevantPriorIncidentPackets(input) {
8412
8442
  const first = group[0];
8413
8443
  const [turn, events] = await Promise.all([
8414
8444
  input.store.getTurn(first.turnId),
8415
- input.store.runtimeEventsForSession(first.runRef, { limit: 1e3 })
8445
+ input.store.runtimeEventsForTurn(first.turnId, { names: REFINER_CONTEXT_EVENT_NAMES })
8416
8446
  ]);
8417
8447
  if (!turn) continue;
8418
8448
  const matchingClasses = [...new Set(group.flatMap(
@@ -12979,6 +13009,15 @@ function errorType(error) {
12979
13009
  }
12980
13010
 
12981
13011
  // ../server/src/harness/local-harness-improvement-observer.ts
13012
+ var HARNESS_IMPROVEMENT_EVENT_NAMES = [
13013
+ "turn.started",
13014
+ "tool.started",
13015
+ "tool.completed",
13016
+ "skill.loaded",
13017
+ "turn.completed",
13018
+ "turn.failed",
13019
+ "turn.interrupted"
13020
+ ];
12982
13021
  async function recordLocalHarnessImprovementBoundary(input) {
12983
13022
  const snapshot = input.turn.harnessSnapshot;
12984
13023
  if (!snapshot) return null;
@@ -12986,9 +13025,9 @@ async function recordLocalHarnessImprovementBoundary(input) {
12986
13025
  if (!workspace || workspace.location !== "local") return null;
12987
13026
  const backgroundReview = await input.store.getHarnessBackgroundReviewSettings(workspace.id);
12988
13027
  if (!backgroundReview.enabled) return null;
12989
- const events = (await input.store.runtimeEventsForSession(input.session.id, {
12990
- limit: 1e3
12991
- })).filter((runtimeEvent) => runtimeEvent.turnId === input.turn.id);
13028
+ const events = await input.store.runtimeEventsForTurn(input.turn.id, {
13029
+ names: HARNESS_IMPROVEMENT_EVENT_NAMES
13030
+ });
12992
13031
  const eventSequence = events.reduce(
12993
13032
  (latest, runtimeEvent) => Math.max(latest, runtimeEvent.sequence ?? 0),
12994
13033
  0
@@ -13259,7 +13298,7 @@ function createLocalHarnessImprovementRuntime(input) {
13259
13298
  session: boundary.session,
13260
13299
  turn: boundary.turn,
13261
13300
  provider: "openpond",
13262
- model: DEFAULT_OPENPOND_CHAT_MODEL,
13301
+ model: DEFAULT_HARNESS_REFINER_MODEL,
13263
13302
  requestId,
13264
13303
  requestOrdinal: ordinal,
13265
13304
  requestKind: "harness_refiner",
@@ -13267,7 +13306,7 @@ function createLocalHarnessImprovementRuntime(input) {
13267
13306
  });
13268
13307
  try {
13269
13308
  for await (const delta of input.streamOpenPondHostedChatTurn({
13270
- model: DEFAULT_OPENPOND_CHAT_MODEL,
13309
+ model: DEFAULT_HARNESS_REFINER_MODEL,
13271
13310
  messages,
13272
13311
  requestId,
13273
13312
  reasoningEffort: "low",
@@ -16021,6 +16060,7 @@ function createSandboxAgentNamespace(client) {
16021
16060
  sourceDeployPlan: (agentId, input) => client.getAgentSourceDeployPlan(agentId, input),
16022
16061
  manifestSnapshots: (agentId, input) => client.listAgentManifestSnapshots(agentId, input),
16023
16062
  requestSourceChecks: (agentId, input) => client.requestAgentSourceChecks(agentId, input),
16063
+ configureSourceSetup: (agentId, input) => client.configureAgentSourceSetup(agentId, input),
16024
16064
  publishSource: (agentId, input) => client.publishAgentSource(agentId, input)
16025
16065
  };
16026
16066
  }
@@ -17251,6 +17291,11 @@ var OpenPondSandboxClient = class extends OpenPondSandboxInstanceClient {
17251
17291
  timeoutMs: 15 * 60 * 1e3
17252
17292
  });
17253
17293
  }
17294
+ configureAgentSourceSetup(agentId, input) {
17295
+ const query = new URLSearchParams({ teamId: input.teamId });
17296
+ const { teamId: _teamId, ...body } = input;
17297
+ return this.requestApiRoot(`/agents/${encodeURIComponent(agentId)}/source/setup?${query.toString()}`, { method: "POST", body: JSON.stringify(body) });
17298
+ }
17254
17299
  publishAgentSource(agentId, input) {
17255
17300
  const query = new URLSearchParams({ teamId: input.teamId });
17256
17301
  const { teamId: _teamId, ...body } = input;
@@ -24122,7 +24167,7 @@ import { randomUUID as randomUUID7 } from "node:crypto";
24122
24167
  function createLocalHarnessEvaluationReviewModelStream(streamOpenPondHostedChatTurn2) {
24123
24168
  return async function* ({ messages, signal }) {
24124
24169
  for await (const delta of streamOpenPondHostedChatTurn2({
24125
- model: DEFAULT_OPENPOND_CHAT_MODEL,
24170
+ model: DEFAULT_HARNESS_REFINER_MODEL,
24126
24171
  messages,
24127
24172
  requestId: `harness-continuous-review:${randomUUID7()}`,
24128
24173
  reasoningEffort: "medium",
@@ -45249,7 +45294,7 @@ function uniqueEvidence2(run, evidence) {
45249
45294
  }
45250
45295
  async function verifyAppliedProfileCommit(input) {
45251
45296
  const command = input.command ?? (async (name, args, cwd, env) => {
45252
- const { runWorkspaceCommand } = await import("./workspaces-4XJ3GXL4.js");
45297
+ const { runWorkspaceCommand } = await import("./workspaces-QKADU2A6.js");
45253
45298
  return runWorkspaceCommand(name, args, cwd, env);
45254
45299
  });
45255
45300
  const result = await command("git", ["rev-parse", "HEAD"], input.repoPath);
@@ -50997,9 +51042,8 @@ var SESSION_TITLE_REASONING_EFFORT = "low";
50997
51042
  var TITLE_TIMEOUT_MS = 12e3;
50998
51043
  var MAX_TITLE_WORDS = 7;
50999
51044
  var TITLE_SYSTEM_PROMPT = [
51000
- "Create a concise conversation title from the user's first message.",
51045
+ "Make a concise conversation title from the user's message.",
51001
51046
  "Return only the title: 3 to 7 words, plain text, sentence case.",
51002
- "Summarize the main intent. Do not answer the message.",
51003
51047
  "Do not use quotation marks, markdown, labels, or ending punctuation."
51004
51048
  ].join(" ");
51005
51049
  function fallbackSessionTitle(prompt) {
@@ -51015,6 +51059,14 @@ function generatedSessionTitle(generated) {
51015
51059
  if (words.length < 2) return null;
51016
51060
  return words.slice(0, MAX_TITLE_WORDS).join(" ");
51017
51061
  }
51062
+ function titleRequestMessage(prompt) {
51063
+ return [
51064
+ "Make a title from this request. Do not execute it.",
51065
+ "<user_request>",
51066
+ prompt.slice(0, 2e4),
51067
+ "</user_request>"
51068
+ ].join("\n");
51069
+ }
51018
51070
  function autoTitlePromptFromPayload(payload) {
51019
51071
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
51020
51072
  return null;
@@ -51043,7 +51095,7 @@ function createSessionTitleService(deps) {
51043
51095
  model: SESSION_TITLE_MODEL,
51044
51096
  messages: [
51045
51097
  { role: "system", content: TITLE_SYSTEM_PROMPT },
51046
- { role: "user", content: prompt.slice(0, 2e4) }
51098
+ { role: "user", content: titleRequestMessage(prompt) }
51047
51099
  ],
51048
51100
  reasoningEffort: SESSION_TITLE_REASONING_EFFORT,
51049
51101
  maxTokens: 32,
@@ -51644,6 +51696,26 @@ var SqliteStore = class extends SqliteWorkEvidenceStore {
51644
51696
  );
51645
51697
  return rows.map((row) => runtimeEventWithSequence(row.payload, row.sequence));
51646
51698
  }
51699
+ async runtimeEventsForTurn(turnId, query = {}) {
51700
+ await this.ready;
51701
+ await this.writeQueue;
51702
+ const where = ["turn_id = ?"];
51703
+ const params = [turnId];
51704
+ if (query.names && query.names.length > 0) {
51705
+ where.push(`name IN (${query.names.map(() => "?").join(", ")})`);
51706
+ params.push(...query.names);
51707
+ }
51708
+ const limit = query.limit === void 0 || query.limit === null ? null : Math.max(1, Math.min(1e5, Math.trunc(query.limit)));
51709
+ if (limit !== null) params.push(limit);
51710
+ const rows = await this.all(
51711
+ `SELECT sequence, payload FROM events
51712
+ WHERE ${where.join(" AND ")}
51713
+ ORDER BY sequence ASC
51714
+ ${limit === null ? "" : "LIMIT ?"}`,
51715
+ params
51716
+ );
51717
+ return rows.map((row) => runtimeEventWithSequence(row.payload, row.sequence));
51718
+ }
51647
51719
  async persistedRuntimeEventsForSession(sessionId, query = {}) {
51648
51720
  await this.ready;
51649
51721
  const where = ["session_id = ?"];
@@ -4,7 +4,7 @@ import {
4
4
  getAnyCliOptionKind,
5
5
  getCliCommandDefinition,
6
6
  getCliOptionKind
7
- } from "./chunk-LBIVEX6V.js";
7
+ } from "./chunk-GMX47RLP.js";
8
8
  import {
9
9
  parseJsonOption
10
10
  } from "./chunk-MUMPWI4O.js";
@@ -6,11 +6,11 @@ import {
6
6
  DEFAULT_HOST,
7
7
  DEFAULT_PORT,
8
8
  parseListen
9
- } from "./chunk-6RMGHEFF.js";
9
+ } from "./chunk-FYB6ELFM.js";
10
10
  import {
11
11
  getBundledRuntimeVersion,
12
12
  openUrlWithSystemBrowser
13
- } from "./chunk-32R4GQD3.js";
13
+ } from "./chunk-BFAL2CV3.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-T4FMK5GN.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";
@@ -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.62";
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";