openpond 0.0.36 → 0.0.38
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/README.md +4 -3
- package/dist/api/types.d.ts +0 -50
- package/dist/api.d.ts +2 -8
- package/dist/chunks/{app-layer-4AA4YYGK.js → app-layer-DPUJRNO2.js} +6 -3
- package/dist/chunks/{apps-V2JTB5MD.js → apps-AKBI6AS7.js} +16 -132
- package/dist/chunks/chunk-275WCETC.js +668 -0
- package/dist/chunks/{chunk-3DOOLZZM.js → chunk-43YI36NA.js} +1 -1
- package/dist/chunks/{chunk-NWQTF6O4.js → chunk-AHNFNWUN.js} +28 -3
- package/dist/chunks/{chunk-3JJBNVNX.js → chunk-AHPQTEIJ.js} +23 -19
- package/dist/chunks/chunk-FWLOFUPU.js +864 -0
- package/dist/chunks/{chunk-JAS6QZ2W.js → chunk-GB6VUZUA.js} +1 -1
- package/dist/chunks/{chunk-NVTC3XOA.js → chunk-GDZYDLEL.js} +8 -10
- package/dist/chunks/{chunk-G6WW2656.js → chunk-HLCTINEP.js} +1 -1
- package/dist/chunks/{chunk-MJT7EW5Q.js → chunk-HS2AGRDV.js} +1 -1
- package/dist/chunks/{chunk-CJSD5ADV.js → chunk-JWF37O5E.js} +2 -2
- package/dist/chunks/chunk-KSRWKXRB.js +12 -0
- package/dist/chunks/{chunk-7IPF4X3K.js → chunk-LZZM3IHS.js} +1004 -89
- package/dist/chunks/{chunk-TYYR7KWY.js → chunk-MPGSHXGF.js} +7 -5
- package/dist/chunks/chunk-MUMPWI4O.js +92 -0
- package/dist/chunks/{chunk-MSX2J653.js → chunk-QRM7XMAO.js} +5 -36
- package/dist/chunks/{chunk-65BVQIHR.js → chunk-SLMP353Q.js} +6 -6
- package/dist/chunks/chunk-T4QXKU5Y.js +1 -0
- package/dist/chunks/{chunk-GALAW74P.js → chunk-V35STJF4.js} +30 -11
- package/dist/chunks/{chunk-YLULZMWE.js → chunk-XCATKTK3.js} +51 -139
- package/dist/chunks/{chunk-LHYK6QO2.js → chunk-XEJ7XXUQ.js} +1 -0
- package/dist/chunks/{chunk-YRFQKUZD.js → chunk-XERQHYBO.js} +89 -27
- package/dist/chunks/{chunk-6L5WJF7T.js → chunk-YTJL6XPU.js} +2 -2
- package/dist/chunks/{chunk-NWVIUBJ3.js → chunk-ZI4GDAUB.js} +573 -1217
- package/dist/chunks/cli-2KBVNDRY.js +23 -0
- package/dist/chunks/{cli-RJHEE4FA.js → cli-7BKDWFNU.js} +5 -5
- package/dist/chunks/{core-commands-CQSPCVC4.js → core-commands-YN4RMWA3.js} +7 -4
- package/dist/chunks/{extend-4MZ75SHV.js → extend-REGNTBK3.js} +18 -13
- package/dist/chunks/extension-7K77DAVL.js +121 -0
- package/dist/chunks/{harness-YVZU42S7.js → harness-BHQRMXJR.js} +6 -3
- package/dist/chunks/{help-6SULYXVS.js → help-VREQNA4I.js} +2 -1
- package/dist/chunks/{opchat-XGS4AXHA.js → opchat-D63YTNSX.js} +12 -7
- package/dist/chunks/{organizations-4GFQ3NT2.js → organizations-I46KG7TC.js} +8 -5
- package/dist/chunks/{profile-VWMBIHIE.js → profile-WKZJHEPG.js} +11 -8
- package/dist/chunks/{project-agent-SQ6ODALG.js → project-agent-ZUC3YMCT.js} +10 -7
- package/dist/chunks/{sandbox-command-34S2V7BN.js → sandbox-command-AAOPFTI5.js} +7 -4
- package/dist/chunks/{sandbox-template-VP5HMGQI.js → sandbox-template-GKNVR4C5.js} +11 -7
- package/dist/chunks/{src-X3R3XIJT.js → src-MWDIK56B.js} +1997 -1247
- package/dist/chunks/{src-YHUMH6W6.js → src-RPW5TOPI.js} +3 -3
- package/dist/chunks/{teams-bot-EIVRNO5S.js → teams-bot-PSL3ZO6Z.js} +6 -3
- package/dist/chunks/{workspaces-2N52V3BI.js → workspaces-BPXC2DHT.js} +6 -2
- package/dist/cli.js +14 -11
- package/dist/client-types.d.ts +1 -9
- package/dist/client.d.ts +3 -3
- package/dist/index.js +27 -55
- package/dist/profile/local-profile-types.d.ts +1 -0
- package/dist/profile/profile-skills.d.ts +2 -0
- package/dist/web/assets/{AppDialog-j4N-gIi3.js → AppDialog-DrwJb_wG.js} +1 -1
- package/dist/web/assets/{AppsView-YiK3pqNb.js → AppsView-DPagLMsc.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-BWFLEQ8j.js → BrowserSidebar-DMn2V8RV.js} +1 -1
- package/dist/web/assets/{CloudWorkView-3sS_1bhN.js → CloudWorkView-Cl_7mM3c.js} +1 -1
- package/dist/web/assets/{CommandMenu-B11OrTCq.js → CommandMenu-CHMQLez_.js} +1 -1
- package/dist/web/assets/{CommunityView-DXyXTWhP.js → CommunityView-DcHVDUk0.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-3NoRiJJq.js → ComposerCreateImproveStrip-BZ3Dgzmo.js} +1 -1
- package/dist/web/assets/{GetStartedView-CPV5lgVH.js → GetStartedView-DTRotFqz.js} +1 -1
- package/dist/web/assets/LabSkillSidebar-CVxtS9pd.css +1 -0
- package/dist/web/assets/LabSkillSidebar-D-PqFe1T.js +1 -0
- package/dist/web/assets/LabsRoute-BrJkBNig.css +1 -0
- package/dist/web/assets/LabsRoute-Dew1BwK5.js +3 -0
- package/dist/web/assets/MainChatThread-BaPxxzrw.js +2 -0
- package/dist/web/assets/{MakeAgentTutorialLearningPanel-C6F-kJQd.js → MakeAgentTutorialLearningPanel-CBsfnONQ.js} +2 -2
- package/dist/web/assets/{MarkdownText-CkVkr3P1.js → MarkdownText-DGLfAM_Z.js} +4 -4
- package/dist/web/assets/Messages-CIX9uTjX.js +10 -0
- package/dist/web/assets/NativeSkillSidebar-AP_uHn6g.js +1 -0
- package/dist/web/assets/{NewProjectDialog-DBMhkTvD.js → NewProjectDialog-C6lHkafU.js} +1 -1
- package/dist/web/assets/{PostTrainingLearningPanel-B1Rp7iIL.js → PostTrainingLearningPanel-CZEgPc8O.js} +2 -2
- package/dist/web/assets/{PostTrainingStatusPill-BGZ9h5eW.js → PostTrainingStatusPill-CeEpwUDB.js} +1 -1
- package/dist/web/assets/{ProfileSettingsSection-2NOHEz2b.js → ProfileSettingsSection-EumMLlEp.js} +1 -1
- package/dist/web/assets/RightChatPanelStack-MXBcx3zO.js +1 -0
- package/dist/web/assets/{SettingsView-uHhQnazW.css → SettingsView-Caljbns2.css} +1 -1
- package/dist/web/assets/SettingsView-DyURG_Uh.js +6 -0
- package/dist/web/assets/{TeamChatView-qVscSedQ.js → TeamChatView-D3v6aqJ3.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-Bkw7XqMy.js → TerminalOverlay-BKl0p8pa.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-COg1wvw8.js → TrainingCreationPanel-CfZQTuT5.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-BNK2znmI.js → TrainingDraftPanel-DslRPSDW.js} +1 -1
- package/dist/web/assets/{UsageSettingsSection-CUxBaohC.js → UsageSettingsSection-zDAwzTGl.js} +1 -1
- package/dist/web/assets/WorkspaceDiffPanel-C_MZPPlL.js +14 -0
- package/dist/web/assets/{WorkspaceEnvironmentMenu-C0-mH7oF.js → WorkspaceEnvironmentMenu-BUAnn80j.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-VvC2px0X.js → WorkspaceGitDialogs-Drbf4ujA.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-CUIwoHv1.js → WorkspaceMonacoEditor-DPGcG8fy.js} +3 -3
- package/dist/web/assets/{activity-BhqHgkfJ.js → activity-Dnr3jqb3.js} +1 -1
- package/dist/web/assets/{boxes-BpqUKFIm.js → boxes-BinC8UPn.js} +1 -1
- package/dist/web/assets/{chevron-up-BTn9DVRP.js → chevron-up-Bjp_-_Cb.js} +1 -1
- package/dist/web/assets/{circle-x-B9Qa8o5a.js → circle-x-ubnvEYuE.js} +1 -1
- package/dist/web/assets/{copy-BsYs6wBI.js → copy-B_ZCCUMz.js} +1 -1
- package/dist/web/assets/{create-pipeline-request-vxgKoAvv.js → create-pipeline-request-D6uLUxe9.js} +3 -3
- package/dist/web/assets/{cssMode-mw8RI2fR.js → cssMode-CKN9CcfG.js} +1 -1
- package/dist/web/assets/file-8HAMlTmQ.js +1 -0
- package/dist/web/assets/{git-branch-C7qQYFIs.js → git-branch-l2Zih3Bv.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CbX4pTOA.js → git-commit-horizontal-Bxi8YPep.js} +1 -1
- package/dist/web/assets/{htmlMode-Cc4Czh_M.js → htmlMode-CeUcNhBZ.js} +1 -1
- package/dist/web/assets/index-BMFyOFRU.css +1 -0
- package/dist/web/assets/index-BzwcDzbT.js +1 -0
- package/dist/web/assets/index-KoQSSt_f.js +177 -0
- package/dist/web/assets/{info-BNGbwgtq.js → info-JTbDQxHx.js} +1 -1
- package/dist/web/assets/{jsonMode-CbqbqGVz.js → jsonMode-97z0Yz9u.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DKiKr5tH.js → lspLanguageFeatures-D4Tp-JmI.js} +1 -1
- package/dist/web/assets/{make-agent-tutorial-KKauJpB9.js → make-agent-tutorial-D6nBCgv-.js} +1 -1
- package/dist/web/assets/{monaco.contribution-Dxc4IxFM.js → monaco.contribution-B3j6oown.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CNgwz_pw.js → monaco.contribution-BXHxPPWL.js} +2 -2
- package/dist/web/assets/{monaco.contribution-D_-wu578.js → monaco.contribution-C2P5zIzh.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CdUAX47Q.js → monaco.contribution-C8c6OtGi.js} +2 -2
- package/dist/web/assets/{monitor-CNdx_GTg.js → monitor-kzHtxHnA.js} +1 -1
- package/dist/web/assets/{play-BLRANWaV.js → play-C-37dnR1.js} +1 -1
- package/dist/web/assets/{python-DYgDMu2R.js → python-CGpDXY7_.js} +1 -1
- package/dist/web/assets/{refresh-cw-BFjjwYNf.js → refresh-cw-BAaaPCXl.js} +1 -1
- package/dist/web/assets/{reply-D012cuZl.js → reply-9rehU13k.js} +1 -1
- package/dist/web/assets/{rotate-cw-CTfjlR4G.js → rotate-cw-C1Z_Xs23.js} +1 -1
- package/dist/web/assets/{save-B1zYlRyN.js → save-Cvxs3XyC.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-D9XFH7EA.js → toggleHighContrast-CD42jH4g.js} +1 -1
- package/dist/web/assets/{tsMode-BU-tuKsY.js → tsMode-ZROIxEjv.js} +1 -1
- package/dist/web/assets/{upload-DU_81jvL.js → upload-DvCSGERK.js} +1 -1
- package/dist/web/assets/{wifi-off-TPsBnbGW.js → wifi-off-BIb94PkS.js} +1 -1
- package/dist/web/assets/{workers-NhWySRdT.js → workers-oYqbrVYG.js} +1 -1
- package/dist/web/assets/{yaml-DWXa_3ZL.js → yaml-WqBjNgOO.js} +1 -1
- package/dist/web/index.html +2 -2
- package/docs/command-reference.md +16 -1
- package/package.json +1 -1
- package/dist/chunks/cli-4JA3SIDE.js +0 -19
- package/dist/web/assets/LabsRoute-B_nsEZXy.js +0 -3
- package/dist/web/assets/LabsRoute-dNN-odU0.css +0 -1
- package/dist/web/assets/MainChatThread-Dg7p3R2O.js +0 -2
- package/dist/web/assets/Messages-C7uHGoFw.js +0 -10
- package/dist/web/assets/NativeSkillSidebar-BPpoHjEW.js +0 -1
- package/dist/web/assets/RightChatPanelStack-CLK7_zKe.js +0 -1
- package/dist/web/assets/SettingsView-BAqea_KX.js +0 -6
- package/dist/web/assets/WorkspaceDiffPanel-qfFj8IRq.js +0 -14
- package/dist/web/assets/credit-card-BCePAwMI.js +0 -1
- package/dist/web/assets/index-9tbdqUau.css +0 -1
- package/dist/web/assets/index-B_3z_lxq.js +0 -1
- package/dist/web/assets/index-Cr_RZ7GD.js +0 -177
- package/dist/web/tokens/eth.svg +0 -1
- package/dist/web/tokens/usdc.svg +0 -1
|
@@ -2,7 +2,7 @@ import { createRequire as __openpondCreateRequire } from "node:module"; var requ
|
|
|
2
2
|
import {
|
|
3
3
|
resolveOpChatApiBaseUrl,
|
|
4
4
|
sendHostedChatTurn
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HLCTINEP.js";
|
|
6
6
|
import {
|
|
7
7
|
CreateImprovePlanSchema,
|
|
8
8
|
CreateImproveRunSchema,
|
|
@@ -10,16 +10,18 @@ import {
|
|
|
10
10
|
createImproveActionShapeFromMetadata,
|
|
11
11
|
inferCreateImproveActionShape,
|
|
12
12
|
nextCreateImproveRunRevision
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-XERQHYBO.js";
|
|
14
14
|
import {
|
|
15
15
|
external_exports
|
|
16
16
|
} from "./chunk-WYDVQOBL.js";
|
|
17
|
+
import {
|
|
18
|
+
runShellCommand
|
|
19
|
+
} from "./chunk-275WCETC.js";
|
|
17
20
|
import {
|
|
18
21
|
apiFetch,
|
|
19
22
|
loadGlobalConfig,
|
|
20
|
-
readApiJson
|
|
21
|
-
|
|
22
|
-
} from "./chunk-NWVIUBJ3.js";
|
|
23
|
+
readApiJson
|
|
24
|
+
} from "./chunk-ZI4GDAUB.js";
|
|
23
25
|
|
|
24
26
|
// src/goal/cli.ts
|
|
25
27
|
import { randomUUID as randomUUID9 } from "node:crypto";
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/cli/common/options.ts
|
|
4
|
+
function parseJsonOption(value, label) {
|
|
5
|
+
try {
|
|
6
|
+
return JSON.parse(value);
|
|
7
|
+
} catch {
|
|
8
|
+
throw new Error(`${label} must be valid JSON`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function parseJsonObjectOption(value, label) {
|
|
12
|
+
const parsed = parseJsonOption(value, label);
|
|
13
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
14
|
+
throw new Error(`${label} must be a JSON object`);
|
|
15
|
+
}
|
|
16
|
+
return parsed;
|
|
17
|
+
}
|
|
18
|
+
function optionString(options, key) {
|
|
19
|
+
const value = options[key];
|
|
20
|
+
return typeof value === "string" ? value.trim() : "";
|
|
21
|
+
}
|
|
22
|
+
function requiredTeamId(options, usage) {
|
|
23
|
+
const teamId = optionString(options, "teamId");
|
|
24
|
+
if (!teamId) {
|
|
25
|
+
throw new Error(`${usage} --team-id <id>`);
|
|
26
|
+
}
|
|
27
|
+
return teamId;
|
|
28
|
+
}
|
|
29
|
+
function optionalJsonObject(options, key, label) {
|
|
30
|
+
const value = optionString(options, key);
|
|
31
|
+
return value ? parseJsonObjectOption(value, label) : void 0;
|
|
32
|
+
}
|
|
33
|
+
function parseBooleanOption(value) {
|
|
34
|
+
if (value === true) return true;
|
|
35
|
+
if (typeof value === "string") {
|
|
36
|
+
return value.toLowerCase() === "true";
|
|
37
|
+
}
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
function parseNumberOption(value, label) {
|
|
41
|
+
if (typeof value !== "string") return void 0;
|
|
42
|
+
const parsed = Number(value);
|
|
43
|
+
if (!Number.isFinite(parsed)) {
|
|
44
|
+
throw new Error(`${label} must be a number`);
|
|
45
|
+
}
|
|
46
|
+
return parsed;
|
|
47
|
+
}
|
|
48
|
+
function parseIntegerOption(value, label) {
|
|
49
|
+
const parsed = parseNumberOption(value, label);
|
|
50
|
+
if (parsed === void 0) return void 0;
|
|
51
|
+
if (!Number.isInteger(parsed)) {
|
|
52
|
+
throw new Error(`${label} must be an integer`);
|
|
53
|
+
}
|
|
54
|
+
return parsed;
|
|
55
|
+
}
|
|
56
|
+
function parseCsvOption(value) {
|
|
57
|
+
if (typeof value !== "string") return [];
|
|
58
|
+
return value.split(",").map((item) => item.trim()).filter(Boolean);
|
|
59
|
+
}
|
|
60
|
+
function parseTimeOption(value, label) {
|
|
61
|
+
if (typeof value !== "string") return void 0;
|
|
62
|
+
const trimmed = value.trim();
|
|
63
|
+
if (!trimmed) return void 0;
|
|
64
|
+
if (/^\d+$/.test(trimmed)) return trimmed;
|
|
65
|
+
const parsed = Date.parse(trimmed);
|
|
66
|
+
if (!Number.isNaN(parsed)) {
|
|
67
|
+
return String(parsed);
|
|
68
|
+
}
|
|
69
|
+
throw new Error(`${label} must be a unix ms timestamp or ISO date`);
|
|
70
|
+
}
|
|
71
|
+
function resolveTemplateEnvironment(value) {
|
|
72
|
+
if (!value) return "production";
|
|
73
|
+
const normalized = value.toLowerCase();
|
|
74
|
+
if (normalized === "preview" || normalized === "production") {
|
|
75
|
+
return normalized;
|
|
76
|
+
}
|
|
77
|
+
throw new Error("env must be preview or production");
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
parseJsonOption,
|
|
82
|
+
parseJsonObjectOption,
|
|
83
|
+
optionString,
|
|
84
|
+
requiredTeamId,
|
|
85
|
+
optionalJsonObject,
|
|
86
|
+
parseBooleanOption,
|
|
87
|
+
parseNumberOption,
|
|
88
|
+
parseIntegerOption,
|
|
89
|
+
parseCsvOption,
|
|
90
|
+
parseTimeOption,
|
|
91
|
+
resolveTemplateEnvironment
|
|
92
|
+
};
|
|
@@ -9,14 +9,13 @@ import {
|
|
|
9
9
|
createRepo,
|
|
10
10
|
getAppEnvironment,
|
|
11
11
|
getOpenPondAccount,
|
|
12
|
-
getOpenPondAccountBalance,
|
|
13
12
|
listApps,
|
|
14
13
|
listConfiguredProfiles,
|
|
15
14
|
loadGlobalConfig,
|
|
16
15
|
saveConfig,
|
|
17
16
|
saveProfileApiKey,
|
|
18
17
|
setActiveProfile
|
|
19
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LZZM3IHS.js";
|
|
20
19
|
|
|
21
20
|
// ../../packages/runtime/dist/chat.js
|
|
22
21
|
import { randomUUID } from "node:crypto";
|
|
@@ -253,9 +252,7 @@ function normalizeProfile(response) {
|
|
|
253
252
|
isVerified: account.isVerified ?? null,
|
|
254
253
|
dailyAgentAppId: account.dailyAgentAppId ?? null,
|
|
255
254
|
dailyAgentDeploymentId: account.dailyAgentDeploymentId ?? null,
|
|
256
|
-
credits: account.credits ?? null
|
|
257
|
-
turnkeyWalletAddress: account.turnkeyWalletAddress ?? null,
|
|
258
|
-
turnkeyOperatingWalletAddress: account.turnkeyOperatingWalletAddress ?? null
|
|
255
|
+
credits: account.credits ?? null
|
|
259
256
|
};
|
|
260
257
|
}
|
|
261
258
|
function normalizeProducts(products) {
|
|
@@ -271,35 +268,13 @@ function normalizeProducts(products) {
|
|
|
271
268
|
credits: product.credits ?? null
|
|
272
269
|
}));
|
|
273
270
|
}
|
|
274
|
-
function normalizeBalance(response, error) {
|
|
275
|
-
if (!response)
|
|
276
|
-
return null;
|
|
277
|
-
return {
|
|
278
|
-
balanceKind: response.balanceKind,
|
|
279
|
-
balanceUsd: response.balanceUsd ?? null,
|
|
280
|
-
balanceUsdCents: response.balanceUsdCents ?? null,
|
|
281
|
-
currency: response.currency,
|
|
282
|
-
asOf: response.asOf,
|
|
283
|
-
stale: response.stale ?? Boolean(error),
|
|
284
|
-
error: error ?? null,
|
|
285
|
-
breakdown: (response.breakdown ?? []).map((item) => ({
|
|
286
|
-
wallet: item.wallet,
|
|
287
|
-
chain: item.chain,
|
|
288
|
-
chainId: item.chainId ?? null,
|
|
289
|
-
asset: item.asset,
|
|
290
|
-
amount: item.amount ?? null,
|
|
291
|
-
usdValue: item.usdValue ?? null
|
|
292
|
-
}))
|
|
293
|
-
};
|
|
294
|
-
}
|
|
295
271
|
function isEmptyDefaultProfile(profile) {
|
|
296
272
|
return profile.handle.trim().toLowerCase() === "default" && !normalizeBaseUrl(profile.baseUrl) && !profile.hasApiKey && !profile.hasSessionToken;
|
|
297
273
|
}
|
|
298
274
|
function toAccountState(input) {
|
|
299
|
-
const { config, profiles, account, token, apiBaseUrl, accountResponse,
|
|
275
|
+
const { config, profiles, account, token, apiBaseUrl, accountResponse, accountProfiles, health, authFailed, error } = input;
|
|
300
276
|
const chatApiBaseUrl = resolveHostedChatApiBaseUrl(account, config, apiBaseUrl);
|
|
301
277
|
const profile = normalizeProfile(accountResponse ?? null);
|
|
302
|
-
const balance = normalizeBalance(balanceResponse, balanceError);
|
|
303
278
|
const configActiveProfile = normalizeActiveProfile(config.activeProfile);
|
|
304
279
|
const accountSelector = account ? selectorFromAccount(account) : null;
|
|
305
280
|
const activeSelector = accountSelector ?? configActiveProfile;
|
|
@@ -335,8 +310,6 @@ function toAccountState(input) {
|
|
|
335
310
|
baseUrl,
|
|
336
311
|
apiBaseUrl,
|
|
337
312
|
chatApiBaseUrl,
|
|
338
|
-
balanceLabel: balanceResponse?.balanceLabel ?? "$0.00",
|
|
339
|
-
balance,
|
|
340
313
|
creditsLabel: profile?.credits ?? null,
|
|
341
314
|
profile,
|
|
342
315
|
products: normalizeProducts(accountResponse?.products),
|
|
@@ -890,10 +863,9 @@ async function loadOpenPondApps(options = {}) {
|
|
|
890
863
|
error: "No OpenPond API key or session token is configured."
|
|
891
864
|
};
|
|
892
865
|
}
|
|
893
|
-
const [healthResult, accountResult,
|
|
866
|
+
const [healthResult, accountResult, appsResult, accountProfilesResult] = await Promise.allSettled([
|
|
894
867
|
checkOpenPondApiHealth(context.apiBaseUrl, context.token),
|
|
895
868
|
getOpenPondAccount(context.apiBaseUrl, context.token),
|
|
896
|
-
getOpenPondAccountBalance(context.apiBaseUrl, context.token),
|
|
897
869
|
listApps(context.apiBaseUrl, context.token, {
|
|
898
870
|
handle: context.account?.handle,
|
|
899
871
|
limit: options.limit ?? 20,
|
|
@@ -904,7 +876,6 @@ async function loadOpenPondApps(options = {}) {
|
|
|
904
876
|
]);
|
|
905
877
|
const health = healthResult.status === "fulfilled" ? healthResult.value : null;
|
|
906
878
|
const accountResponse = accountResult.status === "fulfilled" ? accountResult.value : null;
|
|
907
|
-
const balanceResponse = balanceResult.status === "fulfilled" ? balanceResult.value : null;
|
|
908
879
|
const accountProfiles = accountProfilesResult.status === "fulfilled" ? accountProfilesResult.value : {};
|
|
909
880
|
if (accountResult.status === "fulfilled" && context.account) {
|
|
910
881
|
accountProfiles[profileKey(context.account.handle, context.account.baseUrl)] = {
|
|
@@ -924,12 +895,10 @@ async function loadOpenPondApps(options = {}) {
|
|
|
924
895
|
account: toAccountState({
|
|
925
896
|
...context,
|
|
926
897
|
accountResponse,
|
|
927
|
-
balanceResponse,
|
|
928
898
|
accountProfiles,
|
|
929
899
|
health: effectiveHealth,
|
|
930
900
|
authFailed: Boolean(authError),
|
|
931
|
-
error: authError ?? profileError
|
|
932
|
-
balanceError: balanceResult.status === "rejected" ? errorMessage(balanceResult.reason) : null
|
|
901
|
+
error: authError ?? profileError
|
|
933
902
|
}),
|
|
934
903
|
apps: appsResult.status === "fulfilled" ? appsResult.value.map(normalizeApp).filter((value) => Boolean(value)) : [],
|
|
935
904
|
error: appsError
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
materializeSourceUploadFile,
|
|
4
4
|
readSourceUploadCache,
|
|
5
5
|
writeSourceUploadCache
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
CreateImproveRunSchema
|
|
9
|
-
} from "./chunk-YRFQKUZD.js";
|
|
6
|
+
} from "./chunk-GB6VUZUA.js";
|
|
10
7
|
import {
|
|
11
8
|
formatSandboxTemplateDiagnostics,
|
|
12
9
|
validateSandboxTemplateYaml
|
|
13
10
|
} from "./chunk-BYAPLT37.js";
|
|
11
|
+
import {
|
|
12
|
+
CreateImproveRunSchema
|
|
13
|
+
} from "./chunk-XERQHYBO.js";
|
|
14
14
|
import {
|
|
15
15
|
yaml
|
|
16
16
|
} from "./chunk-WYDVQOBL.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
parseSandboxRuntimePromotionPolicyOption,
|
|
19
19
|
parseSandboxWorkflowModeOption,
|
|
20
20
|
runProcessCommand
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-275WCETC.js";
|
|
22
22
|
import {
|
|
23
23
|
optionString,
|
|
24
24
|
optionalJsonObject,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
parseCsvOption,
|
|
27
27
|
parseIntegerOption,
|
|
28
28
|
requiredTeamId
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-MUMPWI4O.js";
|
|
30
30
|
|
|
31
31
|
// ../../packages/cloud/src/profile/agent-sdk-command.ts
|
|
32
32
|
import { existsSync, readFileSync } from "node:fs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { createRequire as __openpondCreateRequire } from "node:module"; var require = __openpondCreateRequire(import.meta.url);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
materializeSourceUploadFile,
|
|
5
5
|
readSourceUploadCache,
|
|
6
6
|
writeSourceUploadCache
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GB6VUZUA.js";
|
|
8
8
|
import {
|
|
9
9
|
yaml
|
|
10
10
|
} from "./chunk-WYDVQOBL.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
loadGlobalConfig,
|
|
13
13
|
openPondConfigDirectory,
|
|
14
14
|
saveGlobalConfig
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-ZI4GDAUB.js";
|
|
16
16
|
|
|
17
17
|
// ../../packages/cloud/src/profile/profile-setup-gate.ts
|
|
18
18
|
var OpenPondProfileSetupRequiredError = class extends Error {
|
|
@@ -988,11 +988,8 @@ async function loadProfileSkillDirectory(profileSourcePath2, directoryName) {
|
|
|
988
988
|
const relativePath = path4.join(PROFILE_SKILLS_DIR, directoryName, PROFILE_SKILL_FILE).replace(/\\/g, "/");
|
|
989
989
|
const absolutePath = path4.join(profileSourcePath2, relativePath);
|
|
990
990
|
const messages = [];
|
|
991
|
-
const
|
|
992
|
-
|
|
993
|
-
if (entry.name === PROFILE_SKILL_FILE && entry.isFile()) continue;
|
|
994
|
-
messages.push(`Profile skills only support ${PROFILE_SKILL_FILE}; unsupported entry: ${entry.name}`);
|
|
995
|
-
}
|
|
991
|
+
const packageRoot = path4.join(profileSourcePath2, PROFILE_SKILLS_DIR, directoryName);
|
|
992
|
+
const packageFiles = await listPackageFiles(packageRoot);
|
|
996
993
|
let contents = "";
|
|
997
994
|
if (!existsSync3(absolutePath)) {
|
|
998
995
|
messages.push(`Missing ${PROFILE_SKILL_FILE}.`);
|
|
@@ -1022,9 +1019,26 @@ async function loadProfileSkillDirectory(profileSourcePath2, directoryName) {
|
|
|
1022
1019
|
charCount: contents.length,
|
|
1023
1020
|
sourceHash: sha256Hex(contents),
|
|
1024
1021
|
validationStatus: messages.length > 0 ? "error" : "valid",
|
|
1025
|
-
validationMessages: messages
|
|
1022
|
+
validationMessages: messages,
|
|
1023
|
+
resourceFiles: packageFiles.filter((file) => file !== PROFILE_SKILL_FILE)
|
|
1026
1024
|
};
|
|
1027
1025
|
}
|
|
1026
|
+
async function listPackageFiles(root) {
|
|
1027
|
+
const files = [];
|
|
1028
|
+
async function visit(directory, prefix) {
|
|
1029
|
+
const entries = await readdir(directory, { withFileTypes: true });
|
|
1030
|
+
await Promise.all(entries.map(async (entry) => {
|
|
1031
|
+
const relativePath = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
1032
|
+
if (entry.isDirectory()) {
|
|
1033
|
+
await visit(path4.join(directory, entry.name), relativePath);
|
|
1034
|
+
} else if (entry.isFile()) {
|
|
1035
|
+
files.push(relativePath);
|
|
1036
|
+
}
|
|
1037
|
+
}));
|
|
1038
|
+
}
|
|
1039
|
+
await visit(root, "");
|
|
1040
|
+
return files.sort();
|
|
1041
|
+
}
|
|
1028
1042
|
function markDuplicateSkillNames(skills) {
|
|
1029
1043
|
const counts = /* @__PURE__ */ new Map();
|
|
1030
1044
|
for (const skill of skills) {
|
|
@@ -1043,9 +1057,13 @@ function markDuplicateSkillNames(skills) {
|
|
|
1043
1057
|
async function latestSkillMtime(profileSourcePath2, skills) {
|
|
1044
1058
|
let latest = 0;
|
|
1045
1059
|
for (const skill of skills) {
|
|
1046
|
-
const
|
|
1047
|
-
|
|
1048
|
-
|
|
1060
|
+
const packageRoot = path4.dirname(path4.join(profileSourcePath2, skill.path));
|
|
1061
|
+
const packageFiles = [PROFILE_SKILL_FILE, ...skill.resourceFiles];
|
|
1062
|
+
for (const file of packageFiles) {
|
|
1063
|
+
const fileStat = await stat3(path4.join(packageRoot, file)).catch(() => null);
|
|
1064
|
+
if (!fileStat?.isFile()) continue;
|
|
1065
|
+
latest = Math.max(latest, fileStat.mtimeMs);
|
|
1066
|
+
}
|
|
1049
1067
|
}
|
|
1050
1068
|
return latest > 0 ? new Date(latest).toISOString() : null;
|
|
1051
1069
|
}
|
|
@@ -1996,6 +2014,7 @@ function stableJsonStringify(value) {
|
|
|
1996
2014
|
}
|
|
1997
2015
|
|
|
1998
2016
|
export {
|
|
2017
|
+
parseProfileSkillMarkdown,
|
|
1999
2018
|
formatOpenPondProfileSetupRequirement,
|
|
2000
2019
|
collectProfileSourceUploadEntries,
|
|
2001
2020
|
hostedSourceCheckStatusFromPayload,
|