openpond 0.0.35 → 0.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{app-layer-GUF2CKYH.js → app-layer-4AA4YYGK.js} +3 -3
- package/dist/chunks/{apps-DIVHAUOV.js → apps-V2JTB5MD.js} +3 -3
- package/dist/chunks/{chunk-FRPL5XPX.js → chunk-3DOOLZZM.js} +1 -1
- package/dist/chunks/{chunk-CRFB72X2.js → chunk-3JJBNVNX.js} +3 -3
- package/dist/chunks/{chunk-GUGFYXFS.js → chunk-65BVQIHR.js} +4 -4
- package/dist/chunks/{chunk-NTRTK6C6.js → chunk-6L5WJF7T.js} +2 -2
- package/dist/chunks/{chunk-SECNDLPQ.js → chunk-7IPF4X3K.js} +67 -1
- package/dist/chunks/{chunk-ZZOTKXRD.js → chunk-CJSD5ADV.js} +2 -2
- package/dist/chunks/{chunk-TXJ4TIDO.js → chunk-G6WW2656.js} +1 -1
- package/dist/chunks/{chunk-II2ERA2H.js → chunk-GALAW74P.js} +2 -2
- package/dist/chunks/{chunk-4Y25BACE.js → chunk-JAS6QZ2W.js} +1 -1
- package/dist/chunks/{chunk-EY52SLOQ.js → chunk-MJT7EW5Q.js} +1 -1
- package/dist/chunks/{chunk-2GV3QBBZ.js → chunk-MSX2J653.js} +1 -1
- package/dist/chunks/{chunk-YPK2W34Z.js → chunk-NVTC3XOA.js} +1 -1
- package/dist/chunks/{chunk-XIF53VR3.js → chunk-NWQTF6O4.js} +1 -1
- package/dist/chunks/{chunk-RLQGMSW7.js → chunk-NWVIUBJ3.js} +2 -2
- package/dist/chunks/{chunk-S3VA47DG.js → chunk-TYYR7KWY.js} +3 -3
- package/dist/chunks/{chunk-LUA5QGQP.js → chunk-YLULZMWE.js} +33 -33
- package/dist/chunks/{chunk-2I5TZW66.js → chunk-YRFQKUZD.js} +40 -1
- package/dist/chunks/{cli-3AEIYSMD.js → cli-4JA3SIDE.js} +6 -6
- package/dist/chunks/{cli-HUVI6ELM.js → cli-RJHEE4FA.js} +4 -4
- package/dist/chunks/{core-commands-2HUTKFHQ.js → core-commands-CQSPCVC4.js} +4 -4
- package/dist/chunks/{extend-PAJMXYKV.js → extend-4MZ75SHV.js} +9 -9
- package/dist/chunks/{harness-UWAS2VAN.js → harness-YVZU42S7.js} +3 -3
- package/dist/chunks/{help-M7D2XAOX.js → help-6SULYXVS.js} +1 -1
- package/dist/chunks/{opchat-FQ2CJVM6.js → opchat-XGS4AXHA.js} +5 -5
- package/dist/chunks/{organizations-L5N6LJ7O.js → organizations-4GFQ3NT2.js} +4 -4
- package/dist/chunks/{profile-KH5IKVNY.js → profile-VWMBIHIE.js} +7 -7
- package/dist/chunks/{project-agent-F4NHVRGY.js → project-agent-SQ6ODALG.js} +6 -6
- package/dist/chunks/{sandbox-command-DDXRQNB6.js → sandbox-command-34S2V7BN.js} +4 -4
- package/dist/chunks/{sandbox-template-5EEEQKR5.js → sandbox-template-VP5HMGQI.js} +5 -5
- package/dist/chunks/{src-34FV42HE.js → src-X3R3XIJT.js} +403 -28
- package/dist/chunks/{src-LHZWUSD7.js → src-YHUMH6W6.js} +2 -2
- package/dist/chunks/{teams-bot-HFWO5GOV.js → teams-bot-EIVRNO5S.js} +3 -3
- package/dist/chunks/{workspaces-LO44JAC2.js → workspaces-2N52V3BI.js} +2 -2
- package/dist/cli.js +10 -10
- package/dist/web/assets/{AppDialog-T3j6O3yg.js → AppDialog-j4N-gIi3.js} +1 -1
- package/dist/web/assets/{AppsView-70Qqf9eJ.js → AppsView-YiK3pqNb.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-CdBLHdNW.js → BrowserSidebar-BWFLEQ8j.js} +1 -1
- package/dist/web/assets/{CloudWorkView-C5-jvlOo.js → CloudWorkView-3sS_1bhN.js} +1 -1
- package/dist/web/assets/CommandMenu-B11OrTCq.js +1 -0
- package/dist/web/assets/{CommunityView-BHUJ9Hun.js → CommunityView-DXyXTWhP.js} +1 -1
- package/dist/web/assets/ComposerCreateImproveStrip-3NoRiJJq.js +1 -0
- package/dist/web/assets/{GetStartedView-CIXScviw.js → GetStartedView-CPV5lgVH.js} +1 -1
- package/dist/web/assets/LabsRoute-B_nsEZXy.js +3 -0
- package/dist/web/assets/LabsRoute-dNN-odU0.css +1 -0
- package/dist/web/assets/MainChatThread-Dg7p3R2O.js +2 -0
- package/dist/web/assets/{MakeAgentTutorialLearningPanel-r7jyZVc0.js → MakeAgentTutorialLearningPanel-C6F-kJQd.js} +2 -2
- package/dist/web/assets/{MarkdownText-E35C404I.js → MarkdownText-CkVkr3P1.js} +3 -3
- package/dist/web/assets/Messages-C7uHGoFw.js +10 -0
- package/dist/web/assets/{NativeSkillSidebar-Qgccncuc.js → NativeSkillSidebar-BPpoHjEW.js} +1 -1
- package/dist/web/assets/{NewProjectDialog-BowacUmA.js → NewProjectDialog-DBMhkTvD.js} +1 -1
- package/dist/web/assets/{PostTrainingLearningPanel-oJu5qaHK.js → PostTrainingLearningPanel-B1Rp7iIL.js} +2 -2
- package/dist/web/assets/{PostTrainingStatusPill-B9Eoc4s0.js → PostTrainingStatusPill-BGZ9h5eW.js} +1 -1
- package/dist/web/assets/{ProfileSettingsSection-Dnh92gDH.js → ProfileSettingsSection-2NOHEz2b.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-CLK7_zKe.js +1 -0
- package/dist/web/assets/{SettingsView-Bjehxwt1.js → SettingsView-BAqea_KX.js} +4 -4
- package/dist/web/assets/{TeamChatView-Tn4X5cuY.js → TeamChatView-qVscSedQ.js} +2 -2
- package/dist/web/assets/{TerminalOverlay-DoX5LYzK.js → TerminalOverlay-Bkw7XqMy.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-COg1wvw8.js +1 -0
- package/dist/web/assets/{TrainingDraftPanel-Da6uGu9y.js → TrainingDraftPanel-BNK2znmI.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-DKky0p47.js → UsageSettingsSection-CUxBaohC.js} +1 -1
- package/dist/web/assets/WorkspaceDiffPanel-qfFj8IRq.js +14 -0
- package/dist/web/assets/{WorkspaceEnvironmentMenu-Ba4M8z1N.js → WorkspaceEnvironmentMenu-C0-mH7oF.js} +3 -3
- package/dist/web/assets/{WorkspaceGitDialogs-CSepNOb8.js → WorkspaceGitDialogs-VvC2px0X.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-LhFdzCRs.js → WorkspaceMonacoEditor-CUIwoHv1.js} +3 -3
- package/dist/web/assets/{activity-bW02ZsBD.js → activity-BhqHgkfJ.js} +1 -1
- package/dist/web/assets/{boxes-B1dRA1pi.js → boxes-BpqUKFIm.js} +1 -1
- package/dist/web/assets/{chevron-up-CySy6WNq.js → chevron-up-BTn9DVRP.js} +1 -1
- package/dist/web/assets/{circle-x-DY8vKAKi.js → circle-x-B9Qa8o5a.js} +1 -1
- package/dist/web/assets/{copy-DuHI1UZ_.js → copy-BsYs6wBI.js} +1 -1
- package/dist/web/assets/{create-pipeline-request-CGBcdK9r.js → create-pipeline-request-vxgKoAvv.js} +3 -3
- package/dist/web/assets/{credit-card-Bot0OuTl.js → credit-card-BCePAwMI.js} +1 -1
- package/dist/web/assets/{cssMode-BIjAothW.js → cssMode-mw8RI2fR.js} +1 -1
- package/dist/web/assets/{git-branch-Cm02aNWq.js → git-branch-C7qQYFIs.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-FYILXW0v.js → git-commit-horizontal-CbX4pTOA.js} +1 -1
- package/dist/web/assets/{htmlMode-zO2xLLgL.js → htmlMode-Cc4Czh_M.js} +1 -1
- package/dist/web/assets/index-9tbdqUau.css +1 -0
- package/dist/web/assets/index-B_3z_lxq.js +1 -0
- package/dist/web/assets/index-Cr_RZ7GD.js +177 -0
- package/dist/web/assets/{info-DeuEU_RO.js → info-BNGbwgtq.js} +1 -1
- package/dist/web/assets/{jsonMode-D2A3mj4n.js → jsonMode-CbqbqGVz.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-aPSqvscU.js → lspLanguageFeatures-DKiKr5tH.js} +1 -1
- package/dist/web/assets/make-agent-tutorial-KKauJpB9.js +2 -0
- package/dist/web/assets/{monaco.contribution-KqCt1n9-.js → monaco.contribution-CNgwz_pw.js} +2 -2
- package/dist/web/assets/{monaco.contribution-DAq6Jihl.js → monaco.contribution-CdUAX47Q.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Do3Jjslo.js → monaco.contribution-D_-wu578.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CHVe9CQ9.js → monaco.contribution-Dxc4IxFM.js} +2 -2
- package/dist/web/assets/{monitor-DXvHWFeW.js → monitor-CNdx_GTg.js} +1 -1
- package/dist/web/assets/{play-BIHyH-Yu.js → play-BLRANWaV.js} +1 -1
- package/dist/web/assets/{python-g3mtmU2J.js → python-DYgDMu2R.js} +1 -1
- package/dist/web/assets/{refresh-cw-Daz0oqwK.js → refresh-cw-BFjjwYNf.js} +1 -1
- package/dist/web/assets/{reply-wu9DIBuK.js → reply-D012cuZl.js} +1 -1
- package/dist/web/assets/{rotate-cw-D7q9GgNc.js → rotate-cw-CTfjlR4G.js} +1 -1
- package/dist/web/assets/{save-BVFY6VTI.js → save-B1zYlRyN.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-D9C_WUDu.js → toggleHighContrast-D9XFH7EA.js} +1 -1
- package/dist/web/assets/{training-1du5QD-P.css → training-BN8CALIc.css} +1 -1
- package/dist/web/assets/{tsMode-B4lEUN5X.js → tsMode-BU-tuKsY.js} +1 -1
- package/dist/web/assets/{upload-DNbYB4Rl.js → upload-DU_81jvL.js} +1 -1
- package/dist/web/assets/{wifi-off-C5QLifIJ.js → wifi-off-TPsBnbGW.js} +1 -1
- package/dist/web/assets/{workers-CV4BZb_x.js → workers-NhWySRdT.js} +1 -1
- package/dist/web/assets/{yaml-3ah8oX43.js → yaml-DWXa_3ZL.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/CommandMenu-B3Y4MvmT.js +0 -1
- package/dist/web/assets/ComposerCreateImproveStrip-DeRI5XEO.js +0 -1
- package/dist/web/assets/LabsRoute-CgKtVYTP.css +0 -1
- package/dist/web/assets/LabsRoute-Cs_R1fuu.js +0 -3
- package/dist/web/assets/MainChatThread-h7VSA_Rc.js +0 -2
- package/dist/web/assets/Messages-BANZuAnA.js +0 -10
- package/dist/web/assets/RightChatPanelStack-pGwbt6Wy.js +0 -1
- package/dist/web/assets/TrainingCreationPanel-BLSf1Bnp.js +0 -1
- package/dist/web/assets/WorkspaceDiffPanel-DTRtW9n8.js +0 -14
- package/dist/web/assets/circle-alert-DMHz5tj_.js +0 -1
- package/dist/web/assets/index-B5AN29EO.js +0 -177
- package/dist/web/assets/index-BnwYyUgT.js +0 -1
- package/dist/web/assets/index-COGlKIJ4.css +0 -1
- package/dist/web/assets/make-agent-tutorial-A2W9Ajwv.js +0 -2
|
@@ -28,10 +28,10 @@ import {
|
|
|
28
28
|
truncatePatch,
|
|
29
29
|
uniqueSortedPaths,
|
|
30
30
|
workspaceImageContentType
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-NWQTF6O4.js";
|
|
32
32
|
import {
|
|
33
33
|
runOpenPondServerCli
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-6L5WJF7T.js";
|
|
35
35
|
import {
|
|
36
36
|
APP_PREFERENCES_CACHE_KEY,
|
|
37
37
|
APP_PREFERENCES_CACHE_TYPE,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
isCliEntrypoint,
|
|
45
45
|
now,
|
|
46
46
|
textFromUnknown
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-MJT7EW5Q.js";
|
|
48
48
|
import {
|
|
49
49
|
createOpenPondRepoApp,
|
|
50
50
|
getBundledRuntimeVersion,
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
streamOpenPondHostedChatTurn,
|
|
57
57
|
switchOpenPondAccount,
|
|
58
58
|
updateOpenPondAccountConfig
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-MSX2J653.js";
|
|
60
60
|
import {
|
|
61
61
|
AccountStateSchema,
|
|
62
62
|
AppPreferencesSchema,
|
|
@@ -178,6 +178,7 @@ import {
|
|
|
178
178
|
PatchLocalAgentScheduleRequestSchema,
|
|
179
179
|
PatchSessionRequestSchema,
|
|
180
180
|
PatchSidebarAppPreferenceRequestSchema,
|
|
181
|
+
PatchSidebarFileBookmarkRequestSchema,
|
|
181
182
|
PatchTaskCandidateRequestSchema,
|
|
182
183
|
PersonalizationSettingsSchema,
|
|
183
184
|
PreviewLocalProjectCloudSourceRequestSchema,
|
|
@@ -317,6 +318,7 @@ import {
|
|
|
317
318
|
nextCreateImproveRunRevision,
|
|
318
319
|
normalizeOpenPondGoalStatus,
|
|
319
320
|
normalizeSandboxApiUrl,
|
|
321
|
+
normalizeSidebarFilePath,
|
|
320
322
|
readProfileSkill,
|
|
321
323
|
readSourceUploadCache,
|
|
322
324
|
renameActiveProfileAgent,
|
|
@@ -328,9 +330,10 @@ import {
|
|
|
328
330
|
saveGlobalConfig,
|
|
329
331
|
saveProfilePushStatus,
|
|
330
332
|
selectPreferredRftSignalReport,
|
|
333
|
+
sidebarFileBookmarkId,
|
|
331
334
|
workspacePathFromLocalPathWorkspaceId,
|
|
332
335
|
writeSourceUploadCache
|
|
333
|
-
} from "./chunk-
|
|
336
|
+
} from "./chunk-7IPF4X3K.js";
|
|
334
337
|
import {
|
|
335
338
|
CONNECTED_APP_PROVIDER_TOOL_NAMES,
|
|
336
339
|
CONNECTED_APP_TOOL_CALL_ENDPOINT,
|
|
@@ -29420,7 +29423,7 @@ import { promises as fs6 } from "node:fs";
|
|
|
29420
29423
|
import path8 from "node:path";
|
|
29421
29424
|
|
|
29422
29425
|
// ../server/src/store/store-schema.ts
|
|
29423
|
-
var CURRENT_SQLITE_SCHEMA_VERSION =
|
|
29426
|
+
var CURRENT_SQLITE_SCHEMA_VERSION = 28;
|
|
29424
29427
|
var SQLITE_CREATE_SCHEMA_SQL = `
|
|
29425
29428
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
29426
29429
|
id TEXT PRIMARY KEY,
|
|
@@ -29531,6 +29534,23 @@ var SQLITE_CREATE_SCHEMA_SQL = `
|
|
|
29531
29534
|
|
|
29532
29535
|
CREATE INDEX IF NOT EXISTS sidebar_app_preferences_scope_idx ON sidebar_app_preferences(scope);
|
|
29533
29536
|
|
|
29537
|
+
CREATE TABLE IF NOT EXISTS sidebar_file_bookmarks (
|
|
29538
|
+
scope TEXT NOT NULL,
|
|
29539
|
+
workspace_kind TEXT NOT NULL,
|
|
29540
|
+
workspace_id TEXT NOT NULL,
|
|
29541
|
+
workspace_name TEXT NOT NULL,
|
|
29542
|
+
file_path TEXT NOT NULL,
|
|
29543
|
+
status TEXT NOT NULL,
|
|
29544
|
+
sort_order INTEGER,
|
|
29545
|
+
source_session_id TEXT,
|
|
29546
|
+
created_at TEXT NOT NULL,
|
|
29547
|
+
updated_at TEXT NOT NULL,
|
|
29548
|
+
PRIMARY KEY (scope, workspace_kind, workspace_id, file_path)
|
|
29549
|
+
);
|
|
29550
|
+
|
|
29551
|
+
CREATE INDEX IF NOT EXISTS sidebar_file_bookmarks_scope_status_order_idx
|
|
29552
|
+
ON sidebar_file_bookmarks(scope, status, sort_order, updated_at);
|
|
29553
|
+
|
|
29534
29554
|
CREATE TABLE IF NOT EXISTS insight_items (
|
|
29535
29555
|
id TEXT PRIMARY KEY,
|
|
29536
29556
|
scope_type TEXT NOT NULL,
|
|
@@ -30328,6 +30348,28 @@ async function createDatasetImportTables(input) {
|
|
|
30328
30348
|
`);
|
|
30329
30349
|
}
|
|
30330
30350
|
|
|
30351
|
+
// ../server/src/store/store-sidebar-file-bookmark-schema.ts
|
|
30352
|
+
async function createSidebarFileBookmarkTables(exec) {
|
|
30353
|
+
await exec(`
|
|
30354
|
+
CREATE TABLE IF NOT EXISTS sidebar_file_bookmarks (
|
|
30355
|
+
scope TEXT NOT NULL,
|
|
30356
|
+
workspace_kind TEXT NOT NULL,
|
|
30357
|
+
workspace_id TEXT NOT NULL,
|
|
30358
|
+
workspace_name TEXT NOT NULL,
|
|
30359
|
+
file_path TEXT NOT NULL,
|
|
30360
|
+
status TEXT NOT NULL,
|
|
30361
|
+
sort_order INTEGER,
|
|
30362
|
+
source_session_id TEXT,
|
|
30363
|
+
created_at TEXT NOT NULL,
|
|
30364
|
+
updated_at TEXT NOT NULL,
|
|
30365
|
+
PRIMARY KEY (scope, workspace_kind, workspace_id, file_path)
|
|
30366
|
+
);
|
|
30367
|
+
|
|
30368
|
+
CREATE INDEX IF NOT EXISTS sidebar_file_bookmarks_scope_status_order_idx
|
|
30369
|
+
ON sidebar_file_bookmarks(scope, status, sort_order, updated_at);
|
|
30370
|
+
`);
|
|
30371
|
+
}
|
|
30372
|
+
|
|
30331
30373
|
// ../server/src/store/sqlite/sqlite-health.ts
|
|
30332
30374
|
var SQLITE_HEALTH_RETRY_DELAYS_MS = [50, 100, 200, 400, 800];
|
|
30333
30375
|
var SqliteIntegrityError = class extends Error {
|
|
@@ -30398,7 +30440,8 @@ var SQLITE_MIGRATIONS = [
|
|
|
30398
30440
|
{ version: 24, run: (store) => store.resetLegacySubagentTransportState() },
|
|
30399
30441
|
{ version: 25, run: (store) => store.resetLegacySubagentRuntimeEvents() },
|
|
30400
30442
|
{ version: 26, run: (store) => store.createDatasetImportTables() },
|
|
30401
|
-
{ version: 27, run: (store) => store.createTasksetBaselineRunTables() }
|
|
30443
|
+
{ version: 27, run: (store) => store.createTasksetBaselineRunTables() },
|
|
30444
|
+
{ version: 28, run: (store) => store.createSidebarFileBookmarkTables() }
|
|
30402
30445
|
];
|
|
30403
30446
|
|
|
30404
30447
|
// ../server/src/store/store-subagent-migrations.ts
|
|
@@ -30605,6 +30648,9 @@ var SqliteStoreCore = class {
|
|
|
30605
30648
|
async createSchema() {
|
|
30606
30649
|
await this.exec(SQLITE_CREATE_SCHEMA_SQL);
|
|
30607
30650
|
}
|
|
30651
|
+
async createSidebarFileBookmarkTables() {
|
|
30652
|
+
await createSidebarFileBookmarkTables((sql) => this.exec(sql));
|
|
30653
|
+
}
|
|
30608
30654
|
async createHotQueryIndexes() {
|
|
30609
30655
|
await this.addColumnIfMissing("turns", "provider_turn_id", "TEXT");
|
|
30610
30656
|
await this.addColumnIfMissing("turns", "status", "TEXT");
|
|
@@ -32640,13 +32686,111 @@ function isTerminalCreateImproveRunState(state) {
|
|
|
32640
32686
|
return state === "released" || state === "rejected" || state === "ready" || state === "ready_local" || state === "published_hosted" || state === "blocked" || state === "failed" || state === "cancelled";
|
|
32641
32687
|
}
|
|
32642
32688
|
|
|
32689
|
+
// ../server/src/store/store-sidebar-file-bookmarks.ts
|
|
32690
|
+
var SqliteSidebarFileBookmarkStore = class extends SqliteCreateImproveStore {
|
|
32691
|
+
async listSidebarFileBookmarks(scope) {
|
|
32692
|
+
await this.ready;
|
|
32693
|
+
await this.writeQueue;
|
|
32694
|
+
const rows = await this.all(
|
|
32695
|
+
`SELECT workspace_kind, workspace_id, workspace_name, file_path, status, sort_order,
|
|
32696
|
+
source_session_id, created_at, updated_at
|
|
32697
|
+
FROM sidebar_file_bookmarks
|
|
32698
|
+
WHERE scope = ?
|
|
32699
|
+
ORDER BY CASE WHEN sort_order IS NULL THEN 1 ELSE 0 END, sort_order, updated_at DESC`,
|
|
32700
|
+
[scope]
|
|
32701
|
+
);
|
|
32702
|
+
return rows.map((row) => {
|
|
32703
|
+
const workspaceKind = row.workspace_kind === "sandbox" ? "sandbox" : "local";
|
|
32704
|
+
const status = row.status === "saved_for_later" ? "saved_for_later" : "pinned";
|
|
32705
|
+
return {
|
|
32706
|
+
id: sidebarFileBookmarkId({ workspaceKind, workspaceId: row.workspace_id, path: row.file_path }),
|
|
32707
|
+
workspaceKind,
|
|
32708
|
+
workspaceId: row.workspace_id,
|
|
32709
|
+
workspaceName: row.workspace_name,
|
|
32710
|
+
path: row.file_path,
|
|
32711
|
+
status,
|
|
32712
|
+
order: row.sort_order,
|
|
32713
|
+
sourceSessionId: row.source_session_id,
|
|
32714
|
+
available: true,
|
|
32715
|
+
createdAt: row.created_at,
|
|
32716
|
+
updatedAt: row.updated_at
|
|
32717
|
+
};
|
|
32718
|
+
});
|
|
32719
|
+
}
|
|
32720
|
+
async patchSidebarFileBookmark(scope, input) {
|
|
32721
|
+
await this.ready;
|
|
32722
|
+
if (input.status === "none") {
|
|
32723
|
+
const write3 = this.writeQueue.then(() => this.run(
|
|
32724
|
+
`DELETE FROM sidebar_file_bookmarks
|
|
32725
|
+
WHERE scope = ? AND workspace_kind = ? AND workspace_id = ? AND file_path = ?`,
|
|
32726
|
+
[scope, input.workspaceKind, input.workspaceId, input.path]
|
|
32727
|
+
));
|
|
32728
|
+
this.writeQueue = write3.then(() => void 0, () => void 0);
|
|
32729
|
+
await write3;
|
|
32730
|
+
return null;
|
|
32731
|
+
}
|
|
32732
|
+
const status = input.status;
|
|
32733
|
+
let bookmark = null;
|
|
32734
|
+
const write2 = this.writeQueue.then(async () => {
|
|
32735
|
+
const timestamp2 = now();
|
|
32736
|
+
const existing = await this.get(
|
|
32737
|
+
`SELECT created_at FROM sidebar_file_bookmarks
|
|
32738
|
+
WHERE scope = ? AND workspace_kind = ? AND workspace_id = ? AND file_path = ?`,
|
|
32739
|
+
[scope, input.workspaceKind, input.workspaceId, input.path]
|
|
32740
|
+
);
|
|
32741
|
+
const createdAt = existing?.created_at ?? timestamp2;
|
|
32742
|
+
await this.run(
|
|
32743
|
+
`INSERT INTO sidebar_file_bookmarks (
|
|
32744
|
+
scope, workspace_kind, workspace_id, workspace_name, file_path, status,
|
|
32745
|
+
sort_order, source_session_id, created_at, updated_at
|
|
32746
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
32747
|
+
ON CONFLICT(scope, workspace_kind, workspace_id, file_path)
|
|
32748
|
+
DO UPDATE SET
|
|
32749
|
+
workspace_name = excluded.workspace_name,
|
|
32750
|
+
status = excluded.status,
|
|
32751
|
+
sort_order = excluded.sort_order,
|
|
32752
|
+
source_session_id = COALESCE(excluded.source_session_id, sidebar_file_bookmarks.source_session_id),
|
|
32753
|
+
updated_at = excluded.updated_at`,
|
|
32754
|
+
[
|
|
32755
|
+
scope,
|
|
32756
|
+
input.workspaceKind,
|
|
32757
|
+
input.workspaceId,
|
|
32758
|
+
input.workspaceName,
|
|
32759
|
+
input.path,
|
|
32760
|
+
status,
|
|
32761
|
+
input.order ?? null,
|
|
32762
|
+
input.sourceSessionId ?? null,
|
|
32763
|
+
createdAt,
|
|
32764
|
+
timestamp2
|
|
32765
|
+
]
|
|
32766
|
+
);
|
|
32767
|
+
bookmark = {
|
|
32768
|
+
id: sidebarFileBookmarkId(input),
|
|
32769
|
+
workspaceKind: input.workspaceKind,
|
|
32770
|
+
workspaceId: input.workspaceId,
|
|
32771
|
+
workspaceName: input.workspaceName,
|
|
32772
|
+
path: input.path,
|
|
32773
|
+
status,
|
|
32774
|
+
order: input.order ?? null,
|
|
32775
|
+
sourceSessionId: input.sourceSessionId ?? null,
|
|
32776
|
+
available: true,
|
|
32777
|
+
createdAt,
|
|
32778
|
+
updatedAt: timestamp2
|
|
32779
|
+
};
|
|
32780
|
+
});
|
|
32781
|
+
this.writeQueue = write2.catch(() => void 0);
|
|
32782
|
+
await write2;
|
|
32783
|
+
return bookmark;
|
|
32784
|
+
}
|
|
32785
|
+
};
|
|
32786
|
+
|
|
32643
32787
|
// ../server/src/store/store.ts
|
|
32644
32788
|
var NON_TERMINAL_SUBAGENT_STATUSES = [
|
|
32645
32789
|
"queued",
|
|
32646
32790
|
"running",
|
|
32647
32791
|
"needs_resume"
|
|
32648
32792
|
];
|
|
32649
|
-
var SqliteStore = class extends
|
|
32793
|
+
var SqliteStore = class extends SqliteSidebarFileBookmarkStore {
|
|
32650
32794
|
async snapshot() {
|
|
32651
32795
|
await this.ready;
|
|
32652
32796
|
await this.writeQueue;
|
|
@@ -36719,6 +36863,7 @@ async function loadCodexHistoryThreads(options = {}) {
|
|
|
36719
36863
|
updatedAt: latestIso([tailStatus.latestMessageAt, updatedAt]),
|
|
36720
36864
|
status: tailStatus.status,
|
|
36721
36865
|
pinned: false,
|
|
36866
|
+
savedForLater: false,
|
|
36722
36867
|
archived: file.archived,
|
|
36723
36868
|
order
|
|
36724
36869
|
}
|
|
@@ -37903,6 +38048,7 @@ function applyCodexHistorySidebarPreference(session, preferences) {
|
|
|
37903
38048
|
return {
|
|
37904
38049
|
...session,
|
|
37905
38050
|
...typeof preference.pinned === "boolean" ? { pinned: preference.pinned } : {},
|
|
38051
|
+
...typeof preference.savedForLater === "boolean" ? { savedForLater: preference.savedForLater } : {},
|
|
37906
38052
|
...typeof preference.archived === "boolean" ? { archived: preference.archived } : {},
|
|
37907
38053
|
...typeof preference.order === "number" ? { order: preference.order } : {},
|
|
37908
38054
|
...preference.title ? { title: preference.title } : {}
|
|
@@ -37911,11 +38057,20 @@ function applyCodexHistorySidebarPreference(session, preferences) {
|
|
|
37911
38057
|
function mergePreferencePatch(existing, input) {
|
|
37912
38058
|
const next2 = { ...existing };
|
|
37913
38059
|
if (typeof input.pinned === "boolean") next2.pinned = input.pinned;
|
|
38060
|
+
if (typeof input.savedForLater === "boolean") next2.savedForLater = input.savedForLater;
|
|
37914
38061
|
if (typeof input.archived === "boolean") next2.archived = input.archived;
|
|
37915
38062
|
if (typeof input.order === "number") next2.order = input.order;
|
|
37916
38063
|
if (typeof input.title === "string") next2.title = input.title;
|
|
37917
|
-
if (input.
|
|
37918
|
-
|
|
38064
|
+
if (input.archived === true) {
|
|
38065
|
+
next2.pinned = false;
|
|
38066
|
+
next2.savedForLater = false;
|
|
38067
|
+
} else if (input.savedForLater === true) {
|
|
38068
|
+
next2.pinned = false;
|
|
38069
|
+
next2.archived = false;
|
|
38070
|
+
} else if (input.pinned === true) {
|
|
38071
|
+
next2.savedForLater = false;
|
|
38072
|
+
next2.archived = false;
|
|
38073
|
+
}
|
|
37919
38074
|
return next2;
|
|
37920
38075
|
}
|
|
37921
38076
|
function normalizePreference(value) {
|
|
@@ -37923,7 +38078,8 @@ function normalizePreference(value) {
|
|
|
37923
38078
|
const input = value;
|
|
37924
38079
|
const preference = {};
|
|
37925
38080
|
if (typeof input.pinned === "boolean") preference.pinned = input.pinned;
|
|
37926
|
-
if (typeof input.
|
|
38081
|
+
if (typeof input.savedForLater === "boolean") preference.savedForLater = input.savedForLater;
|
|
38082
|
+
if (typeof input.archived === "boolean") preference.archived = input.archived;
|
|
37927
38083
|
if (typeof input.order === "number" && Number.isFinite(input.order)) preference.order = input.order;
|
|
37928
38084
|
if (typeof input.title === "string") {
|
|
37929
38085
|
const title = input.title.trim();
|
|
@@ -37932,7 +38088,14 @@ function normalizePreference(value) {
|
|
|
37932
38088
|
if (typeof input.updatedAt === "string" && Number.isFinite(Date.parse(input.updatedAt))) {
|
|
37933
38089
|
preference.updatedAt = input.updatedAt;
|
|
37934
38090
|
}
|
|
37935
|
-
if (preference.archived === true)
|
|
38091
|
+
if (preference.archived === true) {
|
|
38092
|
+
preference.pinned = false;
|
|
38093
|
+
preference.savedForLater = false;
|
|
38094
|
+
} else if (preference.savedForLater === true) {
|
|
38095
|
+
preference.pinned = false;
|
|
38096
|
+
} else if (preference.pinned === true) {
|
|
38097
|
+
preference.savedForLater = false;
|
|
38098
|
+
}
|
|
37936
38099
|
return preference;
|
|
37937
38100
|
}
|
|
37938
38101
|
|
|
@@ -45921,7 +46084,10 @@ function createServerPayloads(deps) {
|
|
|
45921
46084
|
]);
|
|
45922
46085
|
const linkedLocalProjects = await inferLocalProjectOpenPondLinks(localProjects, openPond.apps);
|
|
45923
46086
|
const scope = openPondCacheScope(openPond.account);
|
|
45924
|
-
const sidebarAppPreferences = await
|
|
46087
|
+
const [sidebarAppPreferences, sidebarFileBookmarks] = await Promise.all([
|
|
46088
|
+
store.getSidebarAppPreferences(scope),
|
|
46089
|
+
listSidebarFileBookmarksForScope(scope)
|
|
46090
|
+
]);
|
|
45925
46091
|
const payload = {
|
|
45926
46092
|
server: {
|
|
45927
46093
|
id: serverId,
|
|
@@ -45947,6 +46113,7 @@ function createServerPayloads(deps) {
|
|
|
45947
46113
|
)
|
|
45948
46114
|
),
|
|
45949
46115
|
sidebarAppPreferences,
|
|
46116
|
+
sidebarFileBookmarks,
|
|
45950
46117
|
appsError: openPond.appsError,
|
|
45951
46118
|
appsMeta: openPond.appsMeta,
|
|
45952
46119
|
accountMeta: openPond.accountMeta,
|
|
@@ -46645,6 +46812,42 @@ Uploaded from OpenPond Desktop.
|
|
|
46645
46812
|
const context = await loadOpenPondAccountContext();
|
|
46646
46813
|
return openPondCacheScope(context.accountState);
|
|
46647
46814
|
}
|
|
46815
|
+
async function resolveSidebarFileAvailability(item2) {
|
|
46816
|
+
try {
|
|
46817
|
+
if (item2.workspaceKind === "local") {
|
|
46818
|
+
await workspacePayloads.workspaceFilePayload(item2.workspaceId, item2.path);
|
|
46819
|
+
} else {
|
|
46820
|
+
await sandboxRequestPayload({
|
|
46821
|
+
type: "stat_file",
|
|
46822
|
+
sandboxId: item2.workspaceId,
|
|
46823
|
+
payload: { path: item2.path }
|
|
46824
|
+
});
|
|
46825
|
+
}
|
|
46826
|
+
return true;
|
|
46827
|
+
} catch {
|
|
46828
|
+
return false;
|
|
46829
|
+
}
|
|
46830
|
+
}
|
|
46831
|
+
async function listSidebarFileBookmarksForScope(scope) {
|
|
46832
|
+
const items = await store.listSidebarFileBookmarks(scope);
|
|
46833
|
+
return Promise.all(items.map(async (item2) => ({
|
|
46834
|
+
...item2,
|
|
46835
|
+
available: await resolveSidebarFileAvailability(item2)
|
|
46836
|
+
})));
|
|
46837
|
+
}
|
|
46838
|
+
async function listSidebarFileBookmarksPayload() {
|
|
46839
|
+
return { items: await listSidebarFileBookmarksForScope(await currentSidebarScope()) };
|
|
46840
|
+
}
|
|
46841
|
+
async function patchSidebarFileBookmarkPayload(payload) {
|
|
46842
|
+
const parsed = PatchSidebarFileBookmarkRequestSchema.parse(payload);
|
|
46843
|
+
const input = {
|
|
46844
|
+
...parsed,
|
|
46845
|
+
path: normalizeSidebarFilePath(parsed.path)
|
|
46846
|
+
};
|
|
46847
|
+
const scope = await currentSidebarScope();
|
|
46848
|
+
await store.patchSidebarFileBookmark(scope, input);
|
|
46849
|
+
return { items: await listSidebarFileBookmarksForScope(scope) };
|
|
46850
|
+
}
|
|
46648
46851
|
async function patchSidebarAppPreference(appId, payload) {
|
|
46649
46852
|
const input = PatchSidebarAppPreferenceRequestSchema.parse(payload);
|
|
46650
46853
|
return store.patchSidebarAppPreference(await currentSidebarScope(), appId, input);
|
|
@@ -46786,6 +46989,8 @@ Uploaded from OpenPond Desktop.
|
|
|
46786
46989
|
openCloudWorkItemPayload,
|
|
46787
46990
|
applyCloudWorkItemLocalPatchPayload,
|
|
46788
46991
|
patchSidebarAppPreference,
|
|
46992
|
+
listSidebarFileBookmarksPayload,
|
|
46993
|
+
patchSidebarFileBookmarkPayload,
|
|
46789
46994
|
reorderSidebarApps,
|
|
46790
46995
|
refreshOpenPondPayload,
|
|
46791
46996
|
loadMoreOpenPondAppsPayload,
|
|
@@ -48338,6 +48543,7 @@ function createSessionStore(deps) {
|
|
|
48338
48543
|
updatedAt: createdAt,
|
|
48339
48544
|
status: "idle",
|
|
48340
48545
|
pinned: false,
|
|
48546
|
+
savedForLater: false,
|
|
48341
48547
|
archived: false,
|
|
48342
48548
|
order: sessionCount
|
|
48343
48549
|
};
|
|
@@ -48357,11 +48563,14 @@ function createSessionStore(deps) {
|
|
|
48357
48563
|
const input = PatchSessionRequestSchema.parse(payload);
|
|
48358
48564
|
const updated = await store.updateSession(
|
|
48359
48565
|
sessionId,
|
|
48360
|
-
(session) =>
|
|
48361
|
-
|
|
48362
|
-
|
|
48363
|
-
|
|
48364
|
-
|
|
48566
|
+
(session) => normalizeSession(
|
|
48567
|
+
{
|
|
48568
|
+
...session,
|
|
48569
|
+
...input,
|
|
48570
|
+
updatedAt: session.updatedAt
|
|
48571
|
+
},
|
|
48572
|
+
input
|
|
48573
|
+
)
|
|
48365
48574
|
);
|
|
48366
48575
|
if (!updated) throw new Error("Session not found");
|
|
48367
48576
|
return updated;
|
|
@@ -48369,12 +48578,12 @@ function createSessionStore(deps) {
|
|
|
48369
48578
|
async function getSession(sessionId) {
|
|
48370
48579
|
const session = await store.getSession(sessionId);
|
|
48371
48580
|
if (!session) throw new Error("Session not found");
|
|
48372
|
-
return
|
|
48581
|
+
return normalizeSession(session);
|
|
48373
48582
|
}
|
|
48374
48583
|
async function updateSession(sessionId, patch) {
|
|
48375
48584
|
const updated = await store.updateSession(
|
|
48376
48585
|
sessionId,
|
|
48377
|
-
(session) =>
|
|
48586
|
+
(session) => normalizeSession({
|
|
48378
48587
|
...session,
|
|
48379
48588
|
...patch,
|
|
48380
48589
|
updatedAt: now()
|
|
@@ -48456,13 +48665,37 @@ function createSessionStore(deps) {
|
|
|
48456
48665
|
interruptTurn
|
|
48457
48666
|
};
|
|
48458
48667
|
}
|
|
48459
|
-
function
|
|
48668
|
+
function normalizeSession(session, sidebarPatch) {
|
|
48460
48669
|
const parsed = OpenPondCommandAccessModeSchema.safeParse(
|
|
48461
48670
|
session.openPondCommandAccessMode
|
|
48462
48671
|
);
|
|
48672
|
+
let pinned = Boolean(session.pinned);
|
|
48673
|
+
let savedForLater = Boolean(session.savedForLater);
|
|
48674
|
+
let archived = Boolean(session.archived);
|
|
48675
|
+
if (sidebarPatch?.archived === true) {
|
|
48676
|
+
pinned = false;
|
|
48677
|
+
savedForLater = false;
|
|
48678
|
+
archived = true;
|
|
48679
|
+
} else if (sidebarPatch?.savedForLater === true) {
|
|
48680
|
+
pinned = false;
|
|
48681
|
+
savedForLater = true;
|
|
48682
|
+
archived = false;
|
|
48683
|
+
} else if (sidebarPatch?.pinned === true) {
|
|
48684
|
+
pinned = true;
|
|
48685
|
+
savedForLater = false;
|
|
48686
|
+
archived = false;
|
|
48687
|
+
} else if (archived) {
|
|
48688
|
+
pinned = false;
|
|
48689
|
+
savedForLater = false;
|
|
48690
|
+
} else if (savedForLater) {
|
|
48691
|
+
pinned = false;
|
|
48692
|
+
}
|
|
48463
48693
|
return {
|
|
48464
48694
|
...session,
|
|
48465
|
-
openPondCommandAccessMode: parsed.success ? parsed.data : DEFAULT_OPENPOND_COMMAND_ACCESS_MODE
|
|
48695
|
+
openPondCommandAccessMode: parsed.success ? parsed.data : DEFAULT_OPENPOND_COMMAND_ACCESS_MODE,
|
|
48696
|
+
pinned,
|
|
48697
|
+
savedForLater,
|
|
48698
|
+
archived
|
|
48466
48699
|
};
|
|
48467
48700
|
}
|
|
48468
48701
|
|
|
@@ -52072,6 +52305,8 @@ async function handleWorkspaceRoutes({ deps, request, requestUrl, response }) {
|
|
|
52072
52305
|
restartWorkspaceLspPayload,
|
|
52073
52306
|
reorderSidebarApps,
|
|
52074
52307
|
patchSidebarAppPreference,
|
|
52308
|
+
listSidebarFileBookmarksPayload,
|
|
52309
|
+
patchSidebarFileBookmarkPayload,
|
|
52075
52310
|
workspaceStatePayload,
|
|
52076
52311
|
createWorkspaceBranchPayload,
|
|
52077
52312
|
checkoutWorkspaceBranchPayload,
|
|
@@ -52098,6 +52333,14 @@ async function handleWorkspaceRoutes({ deps, request, requestUrl, response }) {
|
|
|
52098
52333
|
sendJson(response, 200, await reorderSidebarApps(await readJson(request)));
|
|
52099
52334
|
return true;
|
|
52100
52335
|
}
|
|
52336
|
+
if (request.method === "GET" && requestUrl.pathname === "/v1/sidebar/files") {
|
|
52337
|
+
sendJson(response, 200, await listSidebarFileBookmarksPayload());
|
|
52338
|
+
return true;
|
|
52339
|
+
}
|
|
52340
|
+
if (request.method === "PATCH" && requestUrl.pathname === "/v1/sidebar/files") {
|
|
52341
|
+
sendJson(response, 200, await patchSidebarFileBookmarkPayload(await readJson(request)));
|
|
52342
|
+
return true;
|
|
52343
|
+
}
|
|
52101
52344
|
const sidebarAppPatchMatch = /^\/v1\/sidebar\/apps\/([^/]+)$/.exec(requestUrl.pathname);
|
|
52102
52345
|
if (request.method === "PATCH" && sidebarAppPatchMatch) {
|
|
52103
52346
|
sendJson(
|
|
@@ -59757,6 +60000,34 @@ function createOpenPondCapabilityModelToolDefinitions(deps) {
|
|
|
59757
60000
|
}
|
|
59758
60001
|
}
|
|
59759
60002
|
];
|
|
60003
|
+
if (deps.manageSidebarFile) {
|
|
60004
|
+
definitions.push({
|
|
60005
|
+
name: "manage_sidebar_file",
|
|
60006
|
+
description: "Pin, save for later, remove, or list workspace files in the user's sidebar. Use only when the user explicitly asks to manage a file in the sidebar.",
|
|
60007
|
+
parameters: {
|
|
60008
|
+
type: "object",
|
|
60009
|
+
additionalProperties: false,
|
|
60010
|
+
properties: {
|
|
60011
|
+
action: {
|
|
60012
|
+
type: "string",
|
|
60013
|
+
enum: ["pin", "save_for_later", "remove", "list"],
|
|
60014
|
+
description: "The sidebar file action to perform."
|
|
60015
|
+
},
|
|
60016
|
+
path: {
|
|
60017
|
+
type: "string",
|
|
60018
|
+
minLength: 1,
|
|
60019
|
+
description: "Workspace-relative file path. Required unless action is list."
|
|
60020
|
+
}
|
|
60021
|
+
},
|
|
60022
|
+
required: ["action"]
|
|
60023
|
+
},
|
|
60024
|
+
execute: async (context) => {
|
|
60025
|
+
const input = manageSidebarFileToolInput(context.args);
|
|
60026
|
+
const result = await deps.manageSidebarFile(context, input);
|
|
60027
|
+
return manageSidebarFileToolResult(context.callId, result);
|
|
60028
|
+
}
|
|
60029
|
+
});
|
|
60030
|
+
}
|
|
59760
60031
|
if (deps.startSubagent) {
|
|
59761
60032
|
definitions.push({
|
|
59762
60033
|
name: "openpond_subagent_start",
|
|
@@ -60012,6 +60283,33 @@ function goalControlToolInput(args) {
|
|
|
60012
60283
|
reason: stringArg3(args, "reason")
|
|
60013
60284
|
};
|
|
60014
60285
|
}
|
|
60286
|
+
function manageSidebarFileToolInput(args) {
|
|
60287
|
+
const action = args.action;
|
|
60288
|
+
if (action !== "pin" && action !== "save_for_later" && action !== "remove" && action !== "list") {
|
|
60289
|
+
throw new Error("action must be pin, save_for_later, remove, or list");
|
|
60290
|
+
}
|
|
60291
|
+
const path76 = optionalStringArg(args, "path");
|
|
60292
|
+
if (action !== "list" && !path76) throw new Error("path is required for this action");
|
|
60293
|
+
return { action, ...path76 ? { path: path76 } : {} };
|
|
60294
|
+
}
|
|
60295
|
+
function manageSidebarFileToolResult(callId, result) {
|
|
60296
|
+
return {
|
|
60297
|
+
toolCallId: callId,
|
|
60298
|
+
name: "manage_sidebar_file",
|
|
60299
|
+
ok: true,
|
|
60300
|
+
contentText: JSON.stringify(
|
|
60301
|
+
{
|
|
60302
|
+
ok: true,
|
|
60303
|
+
action: "manage_sidebar_file",
|
|
60304
|
+
output: result.nextStep,
|
|
60305
|
+
data: result
|
|
60306
|
+
},
|
|
60307
|
+
null,
|
|
60308
|
+
2
|
|
60309
|
+
),
|
|
60310
|
+
data: result
|
|
60311
|
+
};
|
|
60312
|
+
}
|
|
60015
60313
|
function goalControlToolResult(callId, result) {
|
|
60016
60314
|
return {
|
|
60017
60315
|
toolCallId: callId,
|
|
@@ -60250,6 +60548,7 @@ function createCapabilityCatalogRuntime(deps) {
|
|
|
60250
60548
|
const handlers = {
|
|
60251
60549
|
startCreateImprove: deps.handlers.startCreateImprove,
|
|
60252
60550
|
startGoalControl: deps.handlers.startGoalControl,
|
|
60551
|
+
...deps.handlers.manageSidebarFile ? { manageSidebarFile: deps.handlers.manageSidebarFile } : {},
|
|
60253
60552
|
...deps.handlers.startProfileSkillGoal ? { startProfileSkillGoal: deps.handlers.startProfileSkillGoal } : {},
|
|
60254
60553
|
...deps.subagentToolsAvailable() && options.subagentToolsEnabled !== false ? {
|
|
60255
60554
|
startSubagent: deps.handlers.startSubagent,
|
|
@@ -64919,7 +65218,7 @@ function uniqueEvidence(run, evidence) {
|
|
|
64919
65218
|
}
|
|
64920
65219
|
async function verifyAppliedProfileCommit(input) {
|
|
64921
65220
|
const command = input.command ?? (async (name, args, cwd, env) => {
|
|
64922
|
-
const { runWorkspaceCommand } = await import("./workspaces-
|
|
65221
|
+
const { runWorkspaceCommand } = await import("./workspaces-2N52V3BI.js");
|
|
64923
65222
|
return runWorkspaceCommand(name, args, cwd, env);
|
|
64924
65223
|
});
|
|
64925
65224
|
const result = await command("git", ["rev-parse", "HEAD"], input.repoPath);
|
|
@@ -70038,6 +70337,7 @@ function createTurnRunner(deps) {
|
|
|
70038
70337
|
executeWebSearch,
|
|
70039
70338
|
executeConnectedAppTool,
|
|
70040
70339
|
browserToolExecutor,
|
|
70340
|
+
manageSidebarFile,
|
|
70041
70341
|
listIntegrationConnections,
|
|
70042
70342
|
loadPersonalizationSoul,
|
|
70043
70343
|
loadAppPreferences = async () => AppPreferencesSchema.parse({}),
|
|
@@ -70452,7 +70752,14 @@ function createTurnRunner(deps) {
|
|
|
70452
70752
|
joinSubagent: joinSubagentFromModelTool,
|
|
70453
70753
|
cancelSubagent: cancelSubagentFromModelTool,
|
|
70454
70754
|
followupSubagent: followupSubagentFromModelTool,
|
|
70455
|
-
sendSubagentMessage: sendSubagentMessageFromModelTool
|
|
70755
|
+
sendSubagentMessage: sendSubagentMessageFromModelTool,
|
|
70756
|
+
...manageSidebarFile ? {
|
|
70757
|
+
manageSidebarFile: (context, input) => manageSidebarFile({
|
|
70758
|
+
session: context.session,
|
|
70759
|
+
action: input.action,
|
|
70760
|
+
path: input.path
|
|
70761
|
+
})
|
|
70762
|
+
} : {}
|
|
70456
70763
|
},
|
|
70457
70764
|
subagentToolsAvailable,
|
|
70458
70765
|
hostedToolFlags,
|
|
@@ -82612,8 +82919,9 @@ function createTaskCreatorService(deps) {
|
|
|
82612
82919
|
for (const snapshot of snapshots) {
|
|
82613
82920
|
if (!["planning", "materializing", "validating"].includes(snapshot.state)) continue;
|
|
82614
82921
|
if ((snapshot.state === "materializing" || snapshot.state === "validating") && snapshot.proposal) {
|
|
82615
|
-
const tasksetId =
|
|
82616
|
-
|
|
82922
|
+
const tasksetId = materializedTasksetId(snapshot, snapshot.proposal);
|
|
82923
|
+
const taskset = await deps.store.getTaskset(tasksetId);
|
|
82924
|
+
if (taskset?.metadata.creationSnapshotId === snapshot.id) {
|
|
82617
82925
|
await persist({
|
|
82618
82926
|
...snapshot,
|
|
82619
82927
|
state: "ready",
|
|
@@ -82690,6 +82998,17 @@ function createTaskCreatorService(deps) {
|
|
|
82690
82998
|
return estimates;
|
|
82691
82999
|
}
|
|
82692
83000
|
async function start(input) {
|
|
83001
|
+
if (input.resourceIntent === "dataset" && input.targetIntent?.operation === "improve") {
|
|
83002
|
+
const targetId = input.targetIntent.id;
|
|
83003
|
+
if (!targetId) {
|
|
83004
|
+
throw new Error("Editing a Dataset requires its existing Dataset ID.");
|
|
83005
|
+
}
|
|
83006
|
+
const target = await deps.store.getTaskset(targetId);
|
|
83007
|
+
if (!target) throw new Error(`Dataset ${targetId} was not found.`);
|
|
83008
|
+
if (target.profileId !== input.profileId) {
|
|
83009
|
+
throw new Error("Dataset profile does not match the active Profile.");
|
|
83010
|
+
}
|
|
83011
|
+
}
|
|
82693
83012
|
const sources = await requireSources(input.profileId, input.sourceIds);
|
|
82694
83013
|
assertSourcesEligible(sources);
|
|
82695
83014
|
const timestamp2 = now();
|
|
@@ -82916,10 +83235,15 @@ function createTaskCreatorService(deps) {
|
|
|
82916
83235
|
const tasks = taskRecords(proposal, sources);
|
|
82917
83236
|
const agentTarget = snapshot.request.targetIntent.kind === "agent";
|
|
82918
83237
|
const timestamp2 = now();
|
|
82919
|
-
const tasksetId =
|
|
83238
|
+
const tasksetId = materializedTasksetId(snapshot, proposal);
|
|
83239
|
+
const existingTaskset = snapshot.request.resourceIntent === "dataset" && snapshot.request.targetIntent.operation === "improve" ? await deps.store.getTaskset(tasksetId) : null;
|
|
83240
|
+
if (snapshot.request.resourceIntent === "dataset" && snapshot.request.targetIntent.operation === "improve" && !existingTaskset) {
|
|
83241
|
+
throw new Error(`Dataset ${tasksetId} was not found.`);
|
|
83242
|
+
}
|
|
82920
83243
|
const draft = {
|
|
82921
83244
|
schemaVersion: "openpond.taskset.v1",
|
|
82922
83245
|
id: tasksetId,
|
|
83246
|
+
revision: existingTaskset ? existingTaskset.revision + 1 : 1,
|
|
82923
83247
|
profileId: snapshot.request.profileId,
|
|
82924
83248
|
createImproveRunId: snapshot.request.createImproveRunId,
|
|
82925
83249
|
name: proposal.name,
|
|
@@ -82988,10 +83312,14 @@ function createTaskCreatorService(deps) {
|
|
|
82988
83312
|
authoringProvenance: { schemaVersion: "openpond.taskAuthoringProvenance.v1", model: snapshot.request.analysisModel, modelConfig: snapshot.request.analysisReasoningEffort ? { reasoningEffort: snapshot.request.analysisReasoningEffort } : {}, skillHash: deps.authoringSkillHash, promptTemplateVersion: "task-authoring.v2", evidenceHashes: sources.map((source) => source.sourceHash), tasksetSdkVersion: "0.0.1", sourceCommit: profile.git?.head ?? null, repairHistory: snapshot.repairHistory, createdAt: timestamp2 },
|
|
82989
83313
|
readiness: null,
|
|
82990
83314
|
contentHash: "",
|
|
82991
|
-
createdAt: timestamp2,
|
|
83315
|
+
createdAt: existingTaskset?.createdAt ?? timestamp2,
|
|
82992
83316
|
updatedAt: timestamp2,
|
|
82993
83317
|
metadata: {
|
|
82994
83318
|
creationSnapshotId: snapshot.id,
|
|
83319
|
+
...existingTaskset ? {
|
|
83320
|
+
previousRevision: existingTaskset.revision,
|
|
83321
|
+
previousContentHash: existingTaskset.contentHash
|
|
83322
|
+
} : {},
|
|
82995
83323
|
resourceIntent: snapshot.request.resourceIntent,
|
|
82996
83324
|
targetIntent: snapshot.request.targetIntent,
|
|
82997
83325
|
privateMaterialManaged: true,
|
|
@@ -83297,6 +83625,15 @@ function conciseName(objective) {
|
|
|
83297
83625
|
"Training Taskset"
|
|
83298
83626
|
);
|
|
83299
83627
|
}
|
|
83628
|
+
function materializedTasksetId(snapshot, proposal) {
|
|
83629
|
+
if (snapshot.request.resourceIntent === "dataset" && snapshot.request.targetIntent.operation === "improve") {
|
|
83630
|
+
if (!snapshot.request.targetIntent.id) {
|
|
83631
|
+
throw new Error("Editing a Dataset requires its existing Dataset ID.");
|
|
83632
|
+
}
|
|
83633
|
+
return snapshot.request.targetIntent.id;
|
|
83634
|
+
}
|
|
83635
|
+
return safeTasksetId(proposal.name, snapshot.id);
|
|
83636
|
+
}
|
|
83300
83637
|
function safeTasksetId(name, snapshotId) {
|
|
83301
83638
|
const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 48) || "taskset";
|
|
83302
83639
|
return `${slug}-${contentHash(snapshotId).slice(0, 8)}`;
|
|
@@ -103375,6 +103712,8 @@ async function createOpenPondServer(options = {}) {
|
|
|
103375
103712
|
openCloudWorkItemPayload,
|
|
103376
103713
|
applyCloudWorkItemLocalPatchPayload,
|
|
103377
103714
|
patchSidebarAppPreference,
|
|
103715
|
+
listSidebarFileBookmarksPayload,
|
|
103716
|
+
patchSidebarFileBookmarkPayload,
|
|
103378
103717
|
reorderSidebarApps,
|
|
103379
103718
|
refreshOpenPondPayload,
|
|
103380
103719
|
loadMoreOpenPondAppsPayload,
|
|
@@ -103896,6 +104235,40 @@ ${grader.rubric}`
|
|
|
103896
104235
|
executeWebSearch: executeWebSearch ?? void 0,
|
|
103897
104236
|
executeConnectedAppTool,
|
|
103898
104237
|
browserToolExecutor: browserControlQueue.executor,
|
|
104238
|
+
manageSidebarFile: async ({ session, action, path: requestedPath }) => {
|
|
104239
|
+
if (action === "list") {
|
|
104240
|
+
const response2 = await listSidebarFileBookmarksPayload();
|
|
104241
|
+
return {
|
|
104242
|
+
...response2,
|
|
104243
|
+
changed: null,
|
|
104244
|
+
nextStep: response2.items.length === 0 ? "There are no pinned or saved files." : `Listed ${response2.items.length} sidebar file${response2.items.length === 1 ? "" : "s"}.`
|
|
104245
|
+
};
|
|
104246
|
+
}
|
|
104247
|
+
const path76 = normalizeSidebarFilePath(requestedPath ?? "");
|
|
104248
|
+
const workspaceId = session.workspaceId ?? session.localProjectId ?? session.appId;
|
|
104249
|
+
if (!workspaceId) {
|
|
104250
|
+
throw new Error("This chat is not attached to a workspace, so it cannot manage a workspace file.");
|
|
104251
|
+
}
|
|
104252
|
+
const workspaceKind = session.workspaceKind === "local_project" ? "local" : "sandbox";
|
|
104253
|
+
const workspaceName = session.workspaceName ?? session.appName ?? session.title ?? workspaceId;
|
|
104254
|
+
const response = await patchSidebarFileBookmarkPayload({
|
|
104255
|
+
workspaceKind,
|
|
104256
|
+
workspaceId,
|
|
104257
|
+
workspaceName,
|
|
104258
|
+
path: path76,
|
|
104259
|
+
status: action === "pin" ? "pinned" : action === "save_for_later" ? "saved_for_later" : "none",
|
|
104260
|
+
sourceSessionId: session.id
|
|
104261
|
+
});
|
|
104262
|
+
const changed = response.items.find(
|
|
104263
|
+
(item2) => item2.workspaceKind === workspaceKind && item2.workspaceId === workspaceId && item2.path === path76
|
|
104264
|
+
) ?? null;
|
|
104265
|
+
const verb = action === "pin" ? "Pinned" : action === "save_for_later" ? "Saved" : "Removed";
|
|
104266
|
+
return {
|
|
104267
|
+
...response,
|
|
104268
|
+
changed,
|
|
104269
|
+
nextStep: `${verb} ${path76}${action === "save_for_later" ? " for later" : ""}.`
|
|
104270
|
+
};
|
|
104271
|
+
},
|
|
103899
104272
|
listIntegrationConnections: listSandboxIntegrationConnections,
|
|
103900
104273
|
loadPersonalizationSoul: async () => (await loadPersonalizationSettings(store, storeDir)).soul,
|
|
103901
104274
|
loadAppPreferences,
|
|
@@ -104512,6 +104885,8 @@ ${grader.rubric}`
|
|
|
104512
104885
|
updatePersonalizationPayload,
|
|
104513
104886
|
reorderSidebarApps,
|
|
104514
104887
|
patchSidebarAppPreference,
|
|
104888
|
+
listSidebarFileBookmarksPayload,
|
|
104889
|
+
patchSidebarFileBookmarkPayload,
|
|
104515
104890
|
workspaceStatePayload,
|
|
104516
104891
|
createWorkspaceBranchPayload,
|
|
104517
104892
|
checkoutWorkspaceBranchPayload,
|