openpond 0.0.62 → 0.0.64

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 (100) hide show
  1. package/dist/chunks/{app-layer-MSLVVYLM.js → app-layer-NCSTDSNQ.js} +2 -2
  2. package/dist/chunks/{app-server-runtime-BRG7A5VD.js → app-server-runtime-XWIG4OWY.js} +6 -6
  3. package/dist/chunks/{apps-6PAXKTB5.js → apps-HEG7FEEV.js} +2 -2
  4. package/dist/chunks/{chunk-MBF44RYK.js → chunk-57XKCMOZ.js} +1 -1
  5. package/dist/chunks/{chunk-IY2AW5F3.js → chunk-6FZNXLVN.js} +46 -18
  6. package/dist/chunks/{chunk-BFAL2CV3.js → chunk-BRLUAT6S.js} +1 -1
  7. package/dist/chunks/{chunk-FYB6ELFM.js → chunk-C7TOCBGY.js} +1 -1
  8. package/dist/chunks/{chunk-KMBJLBQH.js → chunk-EWP6VGHP.js} +1 -1
  9. package/dist/chunks/{chunk-4NHAH3MT.js → chunk-HM6Z3PEC.js} +83 -57
  10. package/dist/chunks/{chunk-T4FMK5GN.js → chunk-JMHOO2IG.js} +2 -2
  11. package/dist/chunks/{chunk-6JT34APP.js → chunk-THYIAXOB.js} +2 -2
  12. package/dist/chunks/{chunk-64LYEFLR.js → chunk-U345JN44.js} +1 -1
  13. package/dist/chunks/{chunk-GMX47RLP.js → chunk-WT3THPTX.js} +32 -32
  14. package/dist/chunks/{cli-L25X2EZL.js → cli-3BI2QBI2.js} +5 -5
  15. package/dist/chunks/{core-commands-STKFZZVR.js → core-commands-Y4ZMQXO4.js} +3 -3
  16. package/dist/chunks/{desktop-test-ACKJN4UV.js → desktop-test-YRFKONLO.js} +2 -2
  17. package/dist/chunks/{extension-MVWXKSAD.js → extension-4MFKIC6Q.js} +2 -2
  18. package/dist/chunks/{help-4MQ4EOIS.js → help-STXVR4NO.js} +1 -1
  19. package/dist/chunks/{opchat-DUIZT4G6.js → opchat-CCVKI5GH.js} +2 -2
  20. package/dist/chunks/{organizations-ATM4CZII.js → organizations-AS76SGLP.js} +4 -4
  21. package/dist/chunks/{profile-5H3GF252.js → profile-QNWDNZY3.js} +2 -2
  22. package/dist/chunks/{project-agent-RSKSO5GT.js → project-agent-GPZL7KAL.js} +2 -2
  23. package/dist/chunks/{sandbox-command-MTYSZR6P.js → sandbox-command-LC63MMAA.js} +2 -2
  24. package/dist/chunks/{sandbox-template-RZ5AJ4KB.js → sandbox-template-FPQLZ4IP.js} +3 -3
  25. package/dist/chunks/{src-PW337SIJ.js → src-6NIBZPH2.js} +3 -3
  26. package/dist/chunks/{src-WKH7EP7W.js → src-DQFVZZUR.js} +7 -7
  27. package/dist/chunks/{teams-bot-FF3LDAYL.js → teams-bot-YTX7IC2J.js} +2 -2
  28. package/dist/chunks/{workspaces-QKADU2A6.js → workspaces-IXF7MIQV.js} +2 -2
  29. package/dist/cli.js +13 -13
  30. package/dist/web/assets/{AppDialog-1RkKL2v6.js → AppDialog-DacC7BcY.js} +1 -1
  31. package/dist/web/assets/{AppsView-B6hDEt-h.js → AppsView-mkeAkrvr.js} +1 -1
  32. package/dist/web/assets/{BrowserSidebar-CkAMOgiq.js → BrowserSidebar-1aEC6gsF.js} +1 -1
  33. package/dist/web/assets/{CommandMenu-9oAkS4X3.js → CommandMenu-BN6J3ecV.js} +1 -1
  34. package/dist/web/assets/{CommunityView-Dyuq5N28.js → CommunityView-B2v9Q4cw.js} +1 -1
  35. package/dist/web/assets/{ComposerCreateImproveStrip-D91cw5AT.js → ComposerCreateImproveStrip-BH8Ath1h.js} +1 -1
  36. package/dist/web/assets/{GetStartedView-BZpcZgjB.js → GetStartedView-B-R-KSva.js} +1 -1
  37. package/dist/web/assets/{LabModelVersionDetailPage-C0jNkciw.js → LabModelVersionDetailPage-Bhfa7T00.js} +1 -1
  38. package/dist/web/assets/{LabSkillSidebar-JGCPqTB1.js → LabSkillSidebar-CbYdG0RN.js} +1 -1
  39. package/dist/web/assets/{LabsRoute-Dpv5Haqy.js → LabsRoute-DFV5vV6Z.js} +3 -3
  40. package/dist/web/assets/{MainChatThread-B4_iIn3g.js → MainChatThread-COiXI7ri.js} +2 -2
  41. package/dist/web/assets/MainPane-CQCLhV5C.js +6 -0
  42. package/dist/web/assets/MarkdownText-R3MC5S30.js +9 -0
  43. package/dist/web/assets/{Messages-DjMa9H1T.js → Messages-DpZ8mIz8.js} +1 -1
  44. package/dist/web/assets/{NativeSkillSidebar-Q3fwLOiO.js → NativeSkillSidebar-BfcMqLHA.js} +1 -1
  45. package/dist/web/assets/{NewProjectDialog-CUb0umRT.js → NewProjectDialog-DqTX1Eeo.js} +1 -1
  46. package/dist/web/assets/{OutputsPage-DD_1STRQ.js → OutputsPage-DfZYswx2.js} +1 -1
  47. package/dist/web/assets/{RightChatPanelStack-2dFyjK7Z.js → RightChatPanelStack-DH8QjiDY.js} +1 -1
  48. package/dist/web/assets/{ScheduledWorkPage-DPjweWpP.js → ScheduledWorkPage-DkaVUnwj.js} +1 -1
  49. package/dist/web/assets/SettingsView-BRPrJuP5.css +1 -0
  50. package/dist/web/assets/SettingsView-StVFsSJ6.js +6 -0
  51. package/dist/web/assets/TeamChatView-CqZOnQh2.js +3 -0
  52. package/dist/web/assets/{TerminalOverlay-CpjrArXn.js → TerminalOverlay-CnFv6FZT.js} +1 -1
  53. package/dist/web/assets/{TrainingCreationPanel-Tbj3qk8-.js → TrainingCreationPanel-CWzyzmyT.js} +1 -1
  54. package/dist/web/assets/{TrainingDraftPanel-BhggD-hn.js → TrainingDraftPanel-BVHx0HZ0.js} +1 -1
  55. package/dist/web/assets/{UsageSettingsSection-CXM6LKim.js → UsageSettingsSection-Bdvm66WK.js} +1 -1
  56. package/dist/web/assets/{WorkspaceDiffPanel-CoMkI8dY.js → WorkspaceDiffPanel-DUCjD1GA.js} +5 -5
  57. package/dist/web/assets/{WorkspaceEnvironmentMenu-CZyjk82C.js → WorkspaceEnvironmentMenu-DHGrt_ie.js} +1 -1
  58. package/dist/web/assets/{WorkspaceGitDialogs-DTj3DOsf.js → WorkspaceGitDialogs-hI57yjPL.js} +1 -1
  59. package/dist/web/assets/{WorkspaceMonacoEditor-DaNMLEnU.js → WorkspaceMonacoEditor-DPv-1uO6.js} +3 -3
  60. package/dist/web/assets/{arrow-up-right-wvL_rSwe.js → arrow-up-right-BDcNd1rt.js} +1 -1
  61. package/dist/web/assets/{chevron-up-BbyiUcq_.js → chevron-up-XTMMnfnf.js} +1 -1
  62. package/dist/web/assets/{cloud-upload-Bgv1fA6E.js → cloud-upload-D6bS8rS2.js} +1 -1
  63. package/dist/web/assets/{cssMode-BG9jdNNX.js → cssMode-CvN9o8bP.js} +1 -1
  64. package/dist/web/assets/{folder-open-CRAYp6pW.js → folder-open-8C5l7A93.js} +1 -1
  65. package/dist/web/assets/{folder-plus-BgsuJVU0.js → folder-plus-B9Wqb9yd.js} +1 -1
  66. package/dist/web/assets/{git-branch-CicxCU5U.js → git-branch-C45ve7zh.js} +1 -1
  67. package/dist/web/assets/{git-commit-horizontal-BRkwl6bp.js → git-commit-horizontal-CGoLIyKK.js} +1 -1
  68. package/dist/web/assets/{htmlMode-B69EEM3s.js → htmlMode-DxLP6j5r.js} +1 -1
  69. package/dist/web/assets/index-BYgrO3wt.js +1 -0
  70. package/dist/web/assets/index-CHqMtVfF.css +1 -0
  71. package/dist/web/assets/index-LrGasYyx.js +178 -0
  72. package/dist/web/assets/{info-BxhCcEsF.js → info-DTObFlHw.js} +1 -1
  73. package/dist/web/assets/{jsonMode-D0tzZkp2.js → jsonMode-C3_fOSJu.js} +1 -1
  74. package/dist/web/assets/{lspLanguageFeatures-DFpYfxMH.js → lspLanguageFeatures-0c-UKStE.js} +1 -1
  75. package/dist/web/assets/{monaco.contribution-BFP-1c-A.js → monaco.contribution-CF1DgPPC.js} +2 -2
  76. package/dist/web/assets/{monaco.contribution-lS_l56Q7.js → monaco.contribution-CFLEc9Ly.js} +2 -2
  77. package/dist/web/assets/{monaco.contribution-K53jgqut.js → monaco.contribution-Cb7KlQ6G.js} +2 -2
  78. package/dist/web/assets/{monaco.contribution-BzGRrg8l.js → monaco.contribution-Dsug_FPj.js} +2 -2
  79. package/dist/web/assets/{play-B8en8HVG.js → play-Cbsyrwkw.js} +1 -1
  80. package/dist/web/assets/{python-DPtRb2z3.js → python-DVcVB2lF.js} +1 -1
  81. package/dist/web/assets/{refresh-cw-CRZeaNu7.js → refresh-cw-ChUK_QfF.js} +1 -1
  82. package/dist/web/assets/{save-oO8erge1.js → save-Doep-KC7.js} +1 -1
  83. package/dist/web/assets/{square-CSULphDY.js → square-B5q2aneb.js} +1 -1
  84. package/dist/web/assets/{toggleHighContrast-CmDdOtfT.js → toggleHighContrast-CTZp7RE7.js} +1 -1
  85. package/dist/web/assets/{tsMode-B0TCT940.js → tsMode-GfNadOOB.js} +1 -1
  86. package/dist/web/assets/{upload-dz-oCLFE.js → upload-DcewuCTa.js} +1 -1
  87. package/dist/web/assets/{useLocalAgentSchedules-DPga1Kwi.js → useLocalAgentSchedules-BwltnId8.js} +1 -1
  88. package/dist/web/assets/{wifi-off-BZpON33U.js → wifi-off-cXPyKIzd.js} +1 -1
  89. package/dist/web/assets/{workers-DXVEq1Aw.js → workers-CP6kCS63.js} +1 -1
  90. package/dist/web/assets/{yaml-B8TBCEpi.js → yaml-w0GP6yKf.js} +1 -1
  91. package/dist/web/index.html +2 -2
  92. package/package.json +1 -1
  93. package/dist/web/assets/MainPane-o4HIxmNz.js +0 -6
  94. package/dist/web/assets/MarkdownText-DgS9KdyT.js +0 -9
  95. package/dist/web/assets/SettingsView-BS5m5vdt.css +0 -1
  96. package/dist/web/assets/SettingsView-DJGgGPL0.js +0 -6
  97. package/dist/web/assets/TeamChatView-CZmbzRk7.js +0 -3
  98. package/dist/web/assets/index-BGdmnwp7.js +0 -1
  99. package/dist/web/assets/index-Bt9mPk1q.css +0 -1
  100. package/dist/web/assets/index-Dcpm2LlR.js +0 -178
@@ -4,9 +4,9 @@ import {
4
4
  } from "./chunk-J2REM7LE.js";
5
5
  import {
6
6
  CliUsageError
7
- } from "./chunk-64LYEFLR.js";
7
+ } from "./chunk-U345JN44.js";
8
8
  import "./chunk-SMNFI2FU.js";
9
- import "./chunk-GMX47RLP.js";
9
+ import "./chunk-WT3THPTX.js";
10
10
  import "./chunk-K4JEWEJQ.js";
11
11
  import "./chunk-JGOP4GCK.js";
12
12
  import "./chunk-DBHSOTYZ.js";
@@ -2,14 +2,14 @@ import { createRequire as __openpondCreateRequire } from "node:module"; var requ
2
2
  import {
3
3
  APP_SERVER_COMPOSITION,
4
4
  createOpenPondAppServer
5
- } from "./chunk-4NHAH3MT.js";
6
- import "./chunk-MBF44RYK.js";
5
+ } from "./chunk-HM6Z3PEC.js";
6
+ import "./chunk-57XKCMOZ.js";
7
7
  import "./chunk-OYWTQABY.js";
8
- import "./chunk-FYB6ELFM.js";
9
- import "./chunk-BFAL2CV3.js";
10
- import "./chunk-T4FMK5GN.js";
8
+ import "./chunk-C7TOCBGY.js";
9
+ import "./chunk-BRLUAT6S.js";
10
+ import "./chunk-JMHOO2IG.js";
11
11
  import "./chunk-QETF6ILG.js";
12
- import "./chunk-IY2AW5F3.js";
12
+ import "./chunk-6FZNXLVN.js";
13
13
  import "./chunk-WYDVQOBL.js";
14
14
  import "./chunk-JGOP4GCK.js";
15
15
  import "./chunk-UACZUFIA.js";
@@ -11,12 +11,12 @@ import {
11
11
  pollDeploymentLogs,
12
12
  resolveAppTarget
13
13
  } from "./chunk-J2REM7LE.js";
14
- import "./chunk-64LYEFLR.js";
14
+ import "./chunk-U345JN44.js";
15
15
  import {
16
16
  resolveBaseUrl,
17
17
  resolvePublicApiBaseUrl
18
18
  } from "./chunk-SMNFI2FU.js";
19
- import "./chunk-GMX47RLP.js";
19
+ import "./chunk-WT3THPTX.js";
20
20
  import "./chunk-K4JEWEJQ.js";
21
21
  import "./chunk-JGOP4GCK.js";
22
22
  import {
@@ -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-FYB6ELFM.js";
4
+ } from "./chunk-C7TOCBGY.js";
5
5
 
6
6
  // ../server/src/workspace/workspace-command.ts
7
7
  import { spawn, spawnSync } from "node:child_process";
@@ -1878,6 +1878,7 @@ var HarnessReviewClaimSchema = external_exports.object({
1878
1878
  fingerprint: ReleaseHashSchema,
1879
1879
  recurrenceFamily: external_exports.string().trim().min(1).max(1e3),
1880
1880
  statement: BoundedTextSchema2,
1881
+ candidateDisposition: external_exports.enum(["observe", "confirm"]).optional(),
1881
1882
  independentOccurrences: external_exports.number().int().positive().max(1e6),
1882
1883
  unresolvedOccurrences: external_exports.number().int().positive().max(1e6)
1883
1884
  }).strict().refine((claim2) => claim2.unresolvedOccurrences <= claim2.independentOccurrences, "unresolved occurrences cannot exceed independent occurrences");
@@ -2000,7 +2001,7 @@ var HarnessEvaluationReviewModelEvidenceSchema = external_exports.object({
2000
2001
  payload: external_exports.record(external_exports.string(), external_exports.unknown())
2001
2002
  }).strict();
2002
2003
  var HarnessEvaluationReviewModelNoActionSchema = external_exports.object({
2003
- schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v1"),
2004
+ schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v2"),
2004
2005
  decision: external_exports.literal("no_action"),
2005
2006
  reason: BoundedTextSchema2,
2006
2007
  ignoredEvidence: external_exports.array(external_exports.object({
@@ -2009,7 +2010,7 @@ var HarnessEvaluationReviewModelNoActionSchema = external_exports.object({
2009
2010
  }).strict()).max(1e3)
2010
2011
  }).strict();
2011
2012
  var HarnessEvaluationReviewModelActionSchema = external_exports.object({
2012
- schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v1"),
2013
+ schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v2"),
2013
2014
  decision: external_exports.literal("review"),
2014
2015
  classification: external_exports.enum([
2015
2016
  "harness_maintenance",
@@ -2028,10 +2029,20 @@ var HarnessEvaluationReviewModelActionSchema = external_exports.object({
2028
2029
  expectedOutcome: BoundedTextSchema2,
2029
2030
  counterevidence: external_exports.string().trim().max(1e4),
2030
2031
  confidence: external_exports.number().min(0).max(1),
2032
+ candidateDisposition: external_exports.enum(["observe", "confirm"]).nullable(),
2031
2033
  reason: BoundedTextSchema2
2032
- }).strict();
2034
+ }).strict().superRefine((decision2, context) => {
2035
+ const requiresDisposition = decision2.classification === "harness_maintenance";
2036
+ if (requiresDisposition !== (decision2.candidateDisposition !== null)) {
2037
+ context.addIssue({
2038
+ code: "custom",
2039
+ message: "Harness maintenance requires a candidate disposition; external routes require null",
2040
+ path: ["candidateDisposition"]
2041
+ });
2042
+ }
2043
+ });
2033
2044
  var HarnessEvaluationReviewModelResolutionSchema = external_exports.object({
2034
- schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v1"),
2045
+ schemaVersion: external_exports.literal("openpond.harnessEvaluationReviewModelDecision.v2"),
2035
2046
  decision: external_exports.literal("resolve_candidate"),
2036
2047
  candidateId: ReleaseIdSchema,
2037
2048
  candidateFingerprint: ReleaseHashSchema,
@@ -2087,7 +2098,7 @@ async function authorHarnessEvaluationReviewWithModel(input) {
2087
2098
  { role: "assistant", content: first.slice(0, 2e4) },
2088
2099
  {
2089
2100
  role: "user",
2090
- content: "Return one corrected openpond.harnessEvaluationReviewModelDecision.v1 JSON object using only supplied evidence IDs."
2101
+ content: "Return one corrected openpond.harnessEvaluationReviewModelDecision.v2 JSON object using only supplied evidence IDs."
2091
2102
  }
2092
2103
  ]
2093
2104
  }));
@@ -2208,6 +2219,7 @@ function evaluationReviewMessages(input) {
2208
2219
  "Verify each deep packet's owner/workspace, source policy, source turn, admitted Harness, Refiner outcome, and content-hash binding before relying on it. Weigh later outcomes, applications, advancements, and rollbacks as possible confirmation or contradiction.",
2209
2220
  "Use semantic judgment: differently worded errors, tools, or tasks may share a cause, while repeated identical strings may still be unrelated.",
2210
2221
  "Do not require an arbitrary occurrence count. Weigh independence, severity, recovery, counterevidence, prior changes, and later outcomes.",
2222
+ "For harness_maintenance, set candidateDisposition to confirm only when the supplied evidence is actionable now: either one directly observed reusable failure mechanism with no material counterevidence, or a semantically coherent pattern across independent work. Set it to observe when the concern is plausible but needs more evidence. Occurrence count is evidence, not the decision rule. For every external classification, candidateDisposition must be null.",
2211
2223
  "A successful recovery can still expose a reusable first-attempt defect. A prior applied fix is evidence to test, not automatic proof of resolution.",
2212
2224
  "Choose resolve_candidate only when a listed candidate has an applied change on the current Harness release and new independent outcome evidence shows the expected behavior now succeeds. Bind the exact candidate ID, fingerprint, and supplied evidence IDs. An applied edit alone is not later-success evidence.",
2213
2225
  "Compare each request with its actual user-visible answer and artifacts. A completed status, successful tool calls, gathered sources, or hidden metadata do not prove that the requested outcome was delivered.",
@@ -2869,10 +2881,22 @@ var HarnessRefinerCapabilitiesSchema = external_exports.object({
2869
2881
  agent: external_exports.boolean()
2870
2882
  }).strict();
2871
2883
  var SourceKindSchema = external_exports.enum(["memory", "instruction", "skill", "agent"]);
2884
+ var RefinerSourceFileSchema = external_exports.object({
2885
+ path: external_exports.string().trim().min(1).max(2e3),
2886
+ kind: SourceKindSchema,
2887
+ content: external_exports.string().max(6e4),
2888
+ loaded: external_exports.boolean()
2889
+ }).strict();
2890
+ var RefinerSourceCatalogEntrySchema = external_exports.object({
2891
+ path: external_exports.string().trim().min(1).max(2e3),
2892
+ kind: SourceKindSchema,
2893
+ loaded: external_exports.boolean()
2894
+ }).strict();
2872
2895
  var LocalHarnessRefinerEvidenceSchema = external_exports.object({
2873
2896
  capabilities: HarnessRefinerCapabilitiesSchema,
2874
2897
  trigger: external_exports.record(external_exports.string(), external_exports.unknown()),
2875
2898
  observations: external_exports.array(external_exports.record(external_exports.string(), external_exports.unknown())).max(20),
2899
+ admissibleEvidenceIds: external_exports.array(external_exports.string().trim().min(1).max(2e3)).max(1e4),
2876
2900
  reviewPacket: external_exports.object({
2877
2901
  currentTurn: external_exports.object({
2878
2902
  id: external_exports.string().trim().min(1).max(2e3),
@@ -2908,17 +2932,15 @@ var LocalHarnessRefinerEvidenceSchema = external_exports.object({
2908
2932
  timelineTruncated: external_exports.boolean()
2909
2933
  }).strict()
2910
2934
  }).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),
2935
+ runtimeActivation: external_exports.object({
2936
+ admittedRelease: ImmutableReleaseRefSchema,
2937
+ currentRelease: ImmutableReleaseRefSchema,
2938
+ rebasedOntoCurrent: external_exports.boolean(),
2939
+ admittedSourceFiles: external_exports.array(RefinerSourceFileSchema).max(100),
2940
+ admittedSourceCatalog: external_exports.array(RefinerSourceCatalogEntrySchema).max(1e3)
2941
+ }).strict(),
2942
+ sourceFiles: external_exports.array(RefinerSourceFileSchema).max(100),
2943
+ sourceCatalog: external_exports.array(RefinerSourceCatalogEntrySchema).max(1e3),
2922
2944
  additionalEvidence: external_exports.unknown().nullable().optional()
2923
2945
  }).strict();
2924
2946
  var DEFAULT_REFINER_TIMEOUT_MS = 6e4;
@@ -2953,6 +2975,7 @@ async function authorLocalHarnessRefinementWithModel(input) {
2953
2975
  "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.",
2954
2976
  "Do not reject a concise correction merely because the deterministic failure appeared once when the mechanism and reusable prevention are clear.",
2955
2977
  "For adaptation cohorts, reject drafts that add work instead of removing the repeated foreground-token cost while preserving quality.",
2978
+ `Copy supportingEvidenceIds only from this exact list: ${JSON.stringify(evidence2.admissibleEvidenceIds)}.`,
2956
2979
  ...draftAdmissionIssues.length ? [`The draft also failed deterministic admission: ${draftAdmissionIssues.join("; ")}. Correct it or return no_action.`] : [],
2957
2980
  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."
2958
2981
  ].join("\n")
@@ -3024,10 +3047,12 @@ function refinerMessages(evidence2) {
3024
3047
  "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.",
3025
3048
  "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.",
3026
3049
  "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.",
3050
+ "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.",
3027
3051
  "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.",
3052
+ "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.",
3028
3053
  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.",
3029
3054
  "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.",
3030
- "supportingEvidenceIds must name actual supplied observation or prior-incident IDs. List material counterevidence explicitly. Never invent recurrence or omit contradictory supplied evidence.",
3055
+ "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.",
3031
3056
  "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.",
3032
3057
  "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.",
3033
3058
  "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.",
@@ -3098,7 +3123,10 @@ function decisionAdmissionIssues(decision2, evidence2) {
3098
3123
  return issues;
3099
3124
  }
3100
3125
  function suppliedEvidenceIds(evidence2) {
3101
- const ids = /* @__PURE__ */ new Set([evidence2.reviewPacket.currentTurn.id]);
3126
+ const ids = /* @__PURE__ */ new Set([
3127
+ evidence2.reviewPacket.currentTurn.id,
3128
+ ...evidence2.admissibleEvidenceIds
3129
+ ]);
3102
3130
  for (const item of evidence2.observations)
3103
3131
  addRecordId(ids, item);
3104
3132
  for (const item of evidence2.reviewPacket.priorIncidents)
@@ -12,7 +12,7 @@ import {
12
12
  saveConfig,
13
13
  saveProfileApiKey,
14
14
  setActiveProfile
15
- } from "./chunk-T4FMK5GN.js";
15
+ } from "./chunk-JMHOO2IG.js";
16
16
  import {
17
17
  DEFAULT_OPENPOND_API_BASE_URL,
18
18
  DEFAULT_OPENPOND_WEB_BASE_URL,
@@ -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.62";
6
+ var VERSION = "0.0.64";
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";
@@ -28,7 +28,7 @@ import {
28
28
  compareSemver,
29
29
  fetchLatestNpmVersion,
30
30
  getInstalledCliVersion
31
- } from "./chunk-GMX47RLP.js";
31
+ } from "./chunk-WT3THPTX.js";
32
32
  import {
33
33
  checkOpenPondApiHealth,
34
34
  createHeadlessApps,
@@ -11,7 +11,7 @@ import {
11
11
  truncatePatch,
12
12
  uniqueSortedPaths,
13
13
  workspaceImageContentType
14
- } from "./chunk-MBF44RYK.js";
14
+ } from "./chunk-57XKCMOZ.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-FYB6ELFM.js";
38
+ } from "./chunk-C7TOCBGY.js";
39
39
  import {
40
40
  getBundledRuntimeVersion,
41
41
  loadOpenPondAccountContext,
42
42
  loadOpenPondHostedModels,
43
43
  streamOpenPondHostedChatTurn
44
- } from "./chunk-BFAL2CV3.js";
44
+ } from "./chunk-BRLUAT6S.js";
45
45
  import {
46
46
  AppPreferencesSchema,
47
47
  ApplyCreateImproveRunActionRequestSchema,
@@ -162,7 +162,7 @@ import {
162
162
  runProfileSkillCommand,
163
163
  sidebarFileBookmarkId,
164
164
  workOutputMediaTypesCompatible
165
- } from "./chunk-T4FMK5GN.js";
165
+ } from "./chunk-JMHOO2IG.js";
166
166
  import {
167
167
  PROJECT_ACTION_CONFIG_PATH,
168
168
  createLocalActionRunner,
@@ -271,7 +271,7 @@ import {
271
271
  uniqueEventRefs,
272
272
  validateConnectedAppProviderOperationRequest,
273
273
  verifyRequiredOutputs
274
- } from "./chunk-IY2AW5F3.js";
274
+ } from "./chunk-6FZNXLVN.js";
275
275
  import {
276
276
  external_exports
277
277
  } from "./chunk-WYDVQOBL.js";
@@ -5500,10 +5500,10 @@ var SqliteHarnessMemoryStore = class extends SqliteSidebarFileBookmarkStore {
5500
5500
 
5501
5501
  // ../server/src/store/store-harness-evaluation-review-settings.ts
5502
5502
  var DEFAULT_SETTINGS = {
5503
- enabled: true,
5504
- activityEnabled: true,
5503
+ enabled: false,
5504
+ activityEnabled: false,
5505
5505
  activityBatchSize: 10,
5506
- cadence: "daily",
5506
+ cadence: "manual",
5507
5507
  maxEstimatedCostUsd: 0.1,
5508
5508
  nextRunAt: null,
5509
5509
  lastRunAt: null,
@@ -5554,7 +5554,7 @@ var SqliteHarnessEvaluationReviewSettingsStore = class extends SqliteHarnessMemo
5554
5554
  FROM harness_evaluation_review_settings WHERE workspace_id = ?`,
5555
5555
  [workspaceId]
5556
5556
  );
5557
- if (!row) return { ...DEFAULT_SETTINGS, nextRunAt: (/* @__PURE__ */ new Date()).toISOString() };
5557
+ if (!row) return { ...DEFAULT_SETTINGS };
5558
5558
  const lastResult = row.last_review_id && row.last_review_hash && row.last_classification ? {
5559
5559
  id: row.last_review_id,
5560
5560
  contentHash: row.last_review_hash,
@@ -7915,7 +7915,6 @@ async function loadLocalHarnessRuntimeFromRelease(input) {
7915
7915
  }))
7916
7916
  );
7917
7917
  const skills = [];
7918
- const skillContexts = [];
7919
7918
  const readers = /* @__PURE__ */ new Map();
7920
7919
  for (const asset3 of release.agentSnapshot.skills) {
7921
7920
  const markdown = await readVerifiedAsset(sourceRoot, asset3.path, asset3.contentHash);
@@ -7942,11 +7941,6 @@ async function loadLocalHarnessRuntimeFromRelease(input) {
7942
7941
  resourceFiles
7943
7942
  };
7944
7943
  skills.push(skill);
7945
- skillContexts.push([
7946
- `Harness Skill (${asset3.path}, ${parsed.name}):`,
7947
- parsed.description,
7948
- parsed.body.trim()
7949
- ].filter(Boolean).join("\n"));
7950
7944
  readers.set(skill.name, async () => {
7951
7945
  const currentMarkdown = await readVerifiedAsset(sourceRoot, asset3.path, asset3.contentHash);
7952
7946
  const current = parseProfileSkillMarkdown(currentMarkdown);
@@ -7975,20 +7969,10 @@ async function loadLocalHarnessRuntimeFromRelease(input) {
7975
7969
  return read();
7976
7970
  } : null
7977
7971
  };
7978
- const agents = await Promise.all(
7979
- release.agentSnapshot.agents.map(async (asset3) => ({
7980
- path: asset3.path,
7981
- content: await readVerifiedAsset(sourceRoot, asset3.path, asset3.contentHash)
7982
- }))
7983
- );
7984
7972
  const instructionSections = instructions.sort((left, right) => left.path.localeCompare(right.path)).map(({ path: instructionPath, content }) => [
7985
- `Harness instruction (${instructionPath}):`,
7973
+ `Active Harness instruction (${instructionPath}):`,
7986
7974
  content.trim()
7987
7975
  ].join("\n")).filter((content) => content.trim().length > 0);
7988
- const agentSections = agents.sort((left, right) => left.path.localeCompare(right.path)).map(({ path: agentPath, content }) => [
7989
- `Harness Agent (${agentPath}):`,
7990
- content.trim()
7991
- ].join("\n"));
7992
7976
  const capabilityReceipt = [
7993
7977
  "Harness capability receipt:",
7994
7978
  JSON.stringify({
@@ -8011,11 +7995,14 @@ async function loadLocalHarnessRuntimeFromRelease(input) {
8011
7995
  })
8012
7996
  ].join("\n");
8013
7997
  const instructionContext = [
8014
- ...instructionSections,
8015
- ...skillContexts.sort(),
8016
- ...agentSections,
8017
- capabilityReceipt
8018
- ].filter((content) => content.trim().length > 0).join("\n\n");
7998
+ capabilityReceipt,
7999
+ instructionSections.length > 0 ? [
8000
+ "Active Harness preflight:",
8001
+ "Apply the following released instructions when planning work and immediately before every tool call.",
8002
+ "Preflight each call: (1) identify any active instruction that matches the planned operation, (2) inspect the exact tool arguments for a forbidden pattern, and (3) rewrite the call before sending it when a pattern matches. Compliance is required even when the prohibited call might still succeed.",
8003
+ ...instructionSections
8004
+ ].join("\n\n") : null
8005
+ ].filter((content) => Boolean(content?.trim())).join("\n\n");
8019
8006
  return { workspace, release, instructionContext, skillRuntime };
8020
8007
  }
8021
8008
  async function readVerifiedAsset(sourceRoot, relativePath, expectedHash) {
@@ -8676,8 +8663,10 @@ async function loadExactObservations(store, workspaceId, trigger) {
8676
8663
  return observation;
8677
8664
  });
8678
8665
  }
8679
- async function readBoundedRefinerSource(bundlePath, trigger) {
8666
+ async function readBoundedRefinerSource(bundlePath, trigger, options = {}) {
8680
8667
  const loadedSkillNames = loadedSkillNamesFromTrigger(trigger);
8668
+ const sourceWasAdmitted = options.forceUnloaded !== true;
8669
+ const wasLoaded = (kind, filePath) => sourceWasAdmitted && (kind === "instruction" || kind === "skill" && loadedSkillNames.has(skillNameFromPath(filePath)));
8681
8670
  const sourceRoot = path7.resolve(bundlePath, "source");
8682
8671
  const manifest = HarnessSourceManifestSchema.parse(
8683
8672
  JSON.parse(await fs6.readFile(path7.join(sourceRoot, "harness.json"), "utf8"))
@@ -8689,11 +8678,11 @@ async function readBoundedRefinerSource(bundlePath, trigger) {
8689
8678
  ).map((file) => ({
8690
8679
  path: file.path,
8691
8680
  kind: file.kind,
8692
- loaded: file.kind === "skill" && loadedSkillNames.has(skillNameFromPath(file.path))
8681
+ loaded: wasLoaded(file.kind, file.path)
8693
8682
  }));
8694
8683
  const rankedFiles = manifest.files.slice().sort((left, right) => {
8695
- const leftLoaded = left.kind === "skill" && loadedSkillNames.has(skillNameFromPath(left.path));
8696
- const rightLoaded = right.kind === "skill" && loadedSkillNames.has(skillNameFromPath(right.path));
8684
+ const leftLoaded = ["instruction", "skill", "agent"].includes(left.kind) && wasLoaded(left.kind, left.path);
8685
+ const rightLoaded = ["instruction", "skill", "agent"].includes(right.kind) && wasLoaded(right.kind, right.path);
8697
8686
  if (leftLoaded !== rightLoaded) return leftLoaded ? -1 : 1;
8698
8687
  const rank = (kind) => kind === "instruction" ? 0 : kind === "skill" ? 1 : 2;
8699
8688
  return rank(left.kind) - rank(right.kind) || left.path.localeCompare(right.path);
@@ -8711,7 +8700,7 @@ async function readBoundedRefinerSource(bundlePath, trigger) {
8711
8700
  path: file.path,
8712
8701
  kind: file.kind,
8713
8702
  content: bytes.toString("utf8"),
8714
- loaded: file.kind === "skill" && loadedSkillNames.has(skillNameFromPath(file.path))
8703
+ loaded: wasLoaded(file.kind, file.path)
8715
8704
  });
8716
8705
  remaining -= bytes.byteLength;
8717
8706
  }
@@ -9172,7 +9161,7 @@ function reauthorizeOrExpireCandidate(input) {
9172
9161
  ]);
9173
9162
  const expired = Date.parse(input.candidate.expiresAt) <= Date.parse(input.now);
9174
9163
  const rejected = occurrences.length === 0;
9175
- const status = rejected ? "rejected" : expired ? "expired" : new Set(occurrences.map((item) => item.sourceRef)).size >= 2 ? "confirmed" : "unresolved";
9164
+ const status = rejected ? "rejected" : expired ? "expired" : removed.length > 0 ? "unresolved" : input.candidate.status;
9176
9165
  const decision = rejected ? "rejected" : expired ? "expired" : "merged";
9177
9166
  const changed = removed.length > 0 || input.candidate.lastReviewedAt !== input.now || input.candidate.sourceReviews.length !== sourceReviews.length;
9178
9167
  if (!changed && !expired) return null;
@@ -9223,8 +9212,7 @@ function upsertCandidateFromReview(input) {
9223
9212
  ...authorizedOccurrences,
9224
9213
  ...input.review.selectedEvidence
9225
9214
  ]);
9226
- const independentOccurrences = new Set(occurrences.map((item) => item.sourceRef)).size;
9227
- const status = independentOccurrences >= 2 ? "confirmed" : "unresolved";
9215
+ const status = claim.candidateDisposition === "confirm" ? "confirmed" : "unresolved";
9228
9216
  const firstSeenAt = occurrences.map((item) => item.occurredAt).sort()[0];
9229
9217
  const lastSeenAt = occurrences.map((item) => item.occurredAt).sort().at(-1);
9230
9218
  const candidate = createHarnessRefinementCandidate({
@@ -9312,6 +9300,33 @@ function withoutHash(candidate) {
9312
9300
  return content;
9313
9301
  }
9314
9302
 
9303
+ // ../server/src/harness/local-harness-refiner-release-context.ts
9304
+ async function loadRefinerReleaseContext(input) {
9305
+ const effectiveReleaseRef = input.rebasedOntoCurrent ? input.workspace.currentChannel.release : input.overlay.baseHarnessRelease;
9306
+ if (!effectiveReleaseRef) {
9307
+ throw new Error("Queued Refiner trigger references a Harness workspace without a current release.");
9308
+ }
9309
+ const release = await input.store.getHarnessReleaseRecord(
9310
+ effectiveReleaseRef.contentHash
9311
+ );
9312
+ if (!release || release.harnessRelease.id !== effectiveReleaseRef.id || release.workspaceId !== input.workspace.id) {
9313
+ throw new Error("Queued Refiner trigger references an unavailable effective Harness release.");
9314
+ }
9315
+ const source = await readBoundedRefinerSource(
9316
+ release.bundlePath,
9317
+ input.trigger,
9318
+ { forceUnloaded: input.rebasedOntoCurrent }
9319
+ );
9320
+ const admittedRelease = input.rebasedOntoCurrent ? await input.store.getHarnessReleaseRecord(
9321
+ input.overlay.baseHarnessRelease.contentHash
9322
+ ) : release;
9323
+ if (!admittedRelease || admittedRelease.harnessRelease.id !== input.overlay.baseHarnessRelease.id || admittedRelease.workspaceId !== input.workspace.id) {
9324
+ throw new Error("Queued Refiner trigger references an unavailable admitted Harness release.");
9325
+ }
9326
+ const admittedSource = input.rebasedOntoCurrent ? await readBoundedRefinerSource(admittedRelease.bundlePath, input.trigger) : source;
9327
+ return { admittedSource, effectiveReleaseRef, release, source };
9328
+ }
9329
+
9315
9330
  // ../server/src/harness/local-harness-refiner-worker-support.ts
9316
9331
  async function findRefinerOutcome(store, workspaceId, trigger) {
9317
9332
  const outcomes = await store.listHarnessImprovementArtifacts(
@@ -9429,20 +9444,13 @@ async function executeLocalHarnessRefinerWorker(input) {
9429
9444
  now: input.now
9430
9445
  });
9431
9446
  }
9432
- const effectiveReleaseRef = rebasedOntoCurrent ? workspace.currentChannel.release : overlay.baseHarnessRelease;
9433
- if (!effectiveReleaseRef) {
9434
- throw new Error("Queued Refiner trigger references a Harness workspace without a current release.");
9435
- }
9436
- const release = await input.store.getHarnessReleaseRecord(
9437
- effectiveReleaseRef.contentHash
9438
- );
9439
- if (!release || release.harnessRelease.id !== effectiveReleaseRef.id || release.workspaceId !== workspace.id) {
9440
- throw new Error("Queued Refiner trigger references an unavailable effective Harness release.");
9441
- }
9442
- const source = await readBoundedRefinerSource(
9443
- release.bundlePath,
9444
- trigger
9445
- );
9447
+ const { admittedSource, effectiveReleaseRef, release, source } = await loadRefinerReleaseContext({
9448
+ store: input.store,
9449
+ workspace,
9450
+ overlay,
9451
+ trigger,
9452
+ rebasedOntoCurrent
9453
+ });
9446
9454
  const memorySource = (await input.store.listHarnessMemories(workspace.id)).slice(0, 100).map((entry) => ({
9447
9455
  path: `memory/${entry.key}`,
9448
9456
  kind: "memory",
@@ -9464,11 +9472,25 @@ async function executeLocalHarnessRefinerWorker(input) {
9464
9472
  skill: true,
9465
9473
  agent: false
9466
9474
  };
9475
+ const admissibleEvidenceIds = [
9476
+ ...observations.map((observation) => observation.id),
9477
+ ...boundedContext.reviewPacket.priorIncidents.flatMap(
9478
+ (incident) => typeof incident.id === "string" && incident.id.trim() ? [incident.id.trim()] : []
9479
+ )
9480
+ ];
9467
9481
  const refinerEvidence = {
9468
9482
  capabilities,
9469
9483
  trigger: boundedTriggerEvidence(trigger),
9470
9484
  observations: observations.map(boundedObservationEvidence),
9485
+ admissibleEvidenceIds,
9471
9486
  reviewPacket: boundedContext.reviewPacket,
9487
+ runtimeActivation: {
9488
+ admittedRelease: overlay.baseHarnessRelease,
9489
+ currentRelease: effectiveReleaseRef,
9490
+ rebasedOntoCurrent,
9491
+ admittedSourceFiles: admittedSource.files,
9492
+ admittedSourceCatalog: admittedSource.catalog
9493
+ },
9472
9494
  sourceFiles: source.files,
9473
9495
  sourceCatalog: source.catalog,
9474
9496
  additionalEvidence: input.additionalEvidence ?? null
@@ -10535,7 +10557,7 @@ async function runSelectedLocalHarnessEvaluation(input) {
10535
10557
  candidates.push(candidate);
10536
10558
  }
10537
10559
  let modelDecision = {
10538
- schemaVersion: "openpond.harnessEvaluationReviewModelDecision.v1",
10560
+ schemaVersion: "openpond.harnessEvaluationReviewModelDecision.v2",
10539
10561
  decision: "no_action",
10540
10562
  reason: "No authorized unresolved evidence qualified for model review.",
10541
10563
  ignoredEvidence: []
@@ -10551,7 +10573,7 @@ async function runSelectedLocalHarnessEvaluation(input) {
10551
10573
  });
10552
10574
  }
10553
10575
  modelDecision = {
10554
- schemaVersion: "openpond.harnessEvaluationReviewModelDecision.v1",
10576
+ schemaVersion: "openpond.harnessEvaluationReviewModelDecision.v2",
10555
10577
  decision: "no_action",
10556
10578
  reason: "Continuous review is disabled by a zero model-cost ceiling.",
10557
10579
  ignoredEvidence: candidates.map((candidate) => ({
@@ -10660,6 +10682,7 @@ async function runSelectedLocalHarnessEvaluation(input) {
10660
10682
  }),
10661
10683
  recurrenceFamily: modelDecision.recurrenceFamily,
10662
10684
  statement: modelDecision.statement,
10685
+ ...modelDecision.classification === "harness_maintenance" ? { candidateDisposition: modelDecision.candidateDisposition } : {},
10663
10686
  independentOccurrences: new Set(selectedCandidates.map((item) => item.sourceRef)).size,
10664
10687
  unresolvedOccurrences: new Set(selectedCandidates.map((item) => item.sourceRef)).size
10665
10688
  } : null,
@@ -12262,7 +12285,10 @@ function buildResponsesBody(input) {
12262
12285
  store: false
12263
12286
  };
12264
12287
  if (projected.instructions) body.instructions = projected.instructions;
12265
- if (input.reasoningEffort) body.reasoning = { effort: input.reasoningEffort, summary: "auto" };
12288
+ body.reasoning = {
12289
+ ...input.reasoningEffort ? { effort: input.reasoningEffort } : {},
12290
+ summary: "auto"
12291
+ };
12266
12292
  if (input.maxOutputTokens != null) body.max_output_tokens = input.maxOutputTokens;
12267
12293
  if (input.temperature != null) body.temperature = input.temperature;
12268
12294
  if (input.topP != null) body.top_p = input.topP;
@@ -45294,7 +45320,7 @@ function uniqueEvidence2(run, evidence) {
45294
45320
  }
45295
45321
  async function verifyAppliedProfileCommit(input) {
45296
45322
  const command = input.command ?? (async (name, args, cwd, env) => {
45297
- const { runWorkspaceCommand } = await import("./workspaces-QKADU2A6.js");
45323
+ const { runWorkspaceCommand } = await import("./workspaces-IXF7MIQV.js");
45298
45324
  return runWorkspaceCommand(name, args, cwd, env);
45299
45325
  });
45300
45326
  const result = await command("git", ["rev-parse", "HEAD"], input.repoPath);
@@ -15,7 +15,7 @@ import {
15
15
  ToolDeclarationSchema,
16
16
  createHarnessAdvanceReceipt,
17
17
  validateConnectedAppToolCallRequest
18
- } from "./chunk-IY2AW5F3.js";
18
+ } from "./chunk-6FZNXLVN.js";
19
19
  import {
20
20
  external_exports,
21
21
  yaml
@@ -5919,7 +5919,7 @@ var UsageRequestAttributionSchema = external_exports.object({
5919
5919
  commandName: external_exports.string().trim().min(1).max(160).nullable().optional(),
5920
5920
  commandSource: UsageCommandSourceSchema.nullable().optional()
5921
5921
  }).strict();
5922
- var UsageProviderSchema = external_exports.union([ChatProviderSchema, external_exports.literal("unknown")]);
5922
+ var UsageProviderSchema = external_exports.string().trim().min(1).max(160);
5923
5923
  var ModelUsageRecordSchema = external_exports.object({
5924
5924
  id: external_exports.string().trim().min(1),
5925
5925
  requestId: external_exports.string().trim().min(1),
@@ -6,11 +6,11 @@ import {
6
6
  DEFAULT_HOST,
7
7
  DEFAULT_PORT,
8
8
  parseListen
9
- } from "./chunk-FYB6ELFM.js";
9
+ } from "./chunk-C7TOCBGY.js";
10
10
  import {
11
11
  getBundledRuntimeVersion,
12
12
  openUrlWithSystemBrowser
13
- } from "./chunk-BFAL2CV3.js";
13
+ } from "./chunk-BRLUAT6S.js";
14
14
 
15
15
  // ../server/src/cli.ts
16
16
  import { existsSync } from "node:fs";
@@ -4,7 +4,7 @@ import {
4
4
  getAnyCliOptionKind,
5
5
  getCliCommandDefinition,
6
6
  getCliOptionKind
7
- } from "./chunk-GMX47RLP.js";
7
+ } from "./chunk-WT3THPTX.js";
8
8
  import {
9
9
  parseJsonOption
10
10
  } from "./chunk-MUMPWI4O.js";