openpond 0.0.30 → 0.0.32
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-FIGCNZJX.js → app-layer-CUQQUVJS.js} +20 -3
- package/dist/chunks/{apps-4RMNCKXS.js → apps-TAYMUCWX.js} +3 -3
- package/dist/chunks/{chunk-57P2GCW5.js → chunk-3UOLQG6N.js} +1 -1
- package/dist/chunks/{chunk-MFS3SYUH.js → chunk-3ZJIEA5F.js} +1 -1
- package/dist/chunks/{chunk-4S3XGFGL.js → chunk-4HQURM3N.js} +1 -1
- package/dist/chunks/{chunk-BNVHGSI7.js → chunk-4M4WAORL.js} +874 -798
- package/dist/chunks/{chunk-DANRS43D.js → chunk-5RHZKQRK.js} +14 -76
- package/dist/chunks/{chunk-BNPFMGZD.js → chunk-D264OHTR.js} +4 -5
- package/dist/chunks/{chunk-BBEVMP6O.js → chunk-DCNAXREU.js} +179 -160
- package/dist/chunks/chunk-E5RVRUJB.js +1222 -0
- package/dist/chunks/{chunk-RJXX6TJA.js → chunk-EONKWOLU.js} +2 -2
- package/dist/chunks/{chunk-VQX33YAG.js → chunk-FQW3AQVJ.js} +689 -121
- package/dist/chunks/{chunk-GGKA4HLQ.js → chunk-GYZYZGKS.js} +238 -69
- package/dist/chunks/{chunk-KMSMK7PI.js → chunk-OXQG773T.js} +33 -33
- package/dist/chunks/{chunk-BX4XSB2J.js → chunk-PJXJ2HRT.js} +1816 -1113
- package/dist/chunks/chunk-Q5MZCRJA.js +70 -0
- package/dist/chunks/{chunk-OV3KAFWB.js → chunk-W2DJR3FA.js} +1 -1
- package/dist/chunks/{chunk-KEDXE4BA.js → chunk-XADW35CL.js} +3 -3
- package/dist/chunks/{chunk-IUTUUNAX.js → chunk-Y4F4XD5V.js} +1 -1
- package/dist/chunks/{cli-2L4NB7HD.js → cli-WW5BVN5Z.js} +4 -3
- package/dist/chunks/{cli-5RL7B2Z3.js → cli-ZOCP7X5M.js} +6 -6
- package/dist/chunks/{core-commands-AZJZGTZS.js → core-commands-SYGK7K57.js} +4 -4
- package/dist/chunks/{extend-6IWYZI37.js → extend-Q5HZ7TMA.js} +11 -11
- package/dist/chunks/fileFromPath-DHCRY3BD.js +2151 -0
- package/dist/chunks/{harness-SSNXDSKM.js → harness-ZPBPQVAS.js} +3 -3
- package/dist/chunks/{help-MUJJMI3Q.js → help-3V3TRQNX.js} +1 -1
- package/dist/chunks/{opchat-RW4CFAQB.js → opchat-OUPMEFE5.js} +5 -5
- package/dist/chunks/{organizations-V7DTNLSI.js → organizations-5CSLBDAW.js} +4 -4
- package/dist/chunks/{profile-WDBKJ7YW.js → profile-OQYSXHOG.js} +206 -166
- package/dist/chunks/{project-agent-3TZ3BPYN.js → project-agent-TBTWOUJF.js} +6 -7
- package/dist/chunks/{sandbox-command-HOYHF4NC.js → sandbox-command-HCHPY7KW.js} +4 -4
- package/dist/chunks/{sandbox-template-IYGB4CZU.js → sandbox-template-PNTOZ6W3.js} +5 -6
- package/dist/chunks/{src-CBPRIWG5.js → src-C6MXLDYQ.js} +22 -6
- package/dist/chunks/{src-ZRQKSQTD.js → src-GZT4UX6I.js} +80887 -52945
- package/dist/chunks/{teams-bot-UWGCFL6C.js → teams-bot-CQ76XI6T.js} +3 -3
- package/dist/chunks/workspaces-DHVVOTVR.js +93 -0
- package/dist/cli.js +10 -10
- package/dist/config.d.ts +0 -2
- package/dist/index.js +273 -69
- package/dist/profile/local-profile-types.d.ts +8 -2
- package/dist/profile/local-profile.d.ts +3 -1
- package/dist/sandbox/types/org-project-agent.d.ts +1 -2
- package/dist/web/assets/{AppsView-Bu-Nc3Ew.js → AppsView-CF2g-7FH.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-CCguQ-DR.js → BrowserSidebar-lUsLUl20.js} +1 -1
- package/dist/web/assets/CloudWorkView-BnfGW4OV.js +1 -0
- package/dist/web/assets/{CommandMenu-CnodJFHD.js → CommandMenu-BsS4Bgb6.js} +1 -1
- package/dist/web/assets/{CommunityView-CIbjNUZr.js → CommunityView-C8qVOwlp.js} +1 -1
- package/dist/web/assets/ComposerCreateImproveStrip-C_LIpfSq.js +1 -0
- package/dist/web/assets/GetStartedView-Du533wOh.js +1 -0
- package/dist/web/assets/LabsRoute-CgKtVYTP.css +1 -0
- package/dist/web/assets/LabsRoute-yk8lNMQc.js +3 -0
- package/dist/web/assets/{NewProjectDialog-CaKiCoVS.js → NewProjectDialog-DH7wA1z9.js} +1 -1
- package/dist/web/assets/ProfileSettingsSection-CqnfjiCl.css +1 -0
- package/dist/web/assets/ProfileSettingsSection-D7JvMZdW.js +1 -0
- package/dist/web/assets/SettingsView-C9TgCaWG.js +63 -0
- package/dist/web/assets/TeamChatView-D_CE7br9.js +3 -0
- package/dist/web/assets/{TerminalOverlay-C1iP4OS1.js → TerminalOverlay-CC-VDSlp.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-NFCoaBUI.js +1 -0
- package/dist/web/assets/TrainingDraftPanel-BWEmVFjM.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-SlLlGZM1.js +14 -0
- package/dist/web/assets/{WorkspaceEnvironmentMenu-B8JJbwIz.js → WorkspaceEnvironmentMenu-BAoMBTVD.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-B4sp9BGn.js → WorkspaceGitDialogs-CVIFrzyl.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BBqimG5X.js → WorkspaceMonacoEditor-0trp0-TI.js} +3 -3
- package/dist/web/assets/{boxes-DAaDUabq.js → boxes-CFihgX2z.js} +1 -1
- package/dist/web/assets/create-pipeline-request-AJWLMTyw.js +4 -0
- package/dist/web/assets/{cssMode-CBF1mieJ.js → cssMode-HvqfCFyP.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CAickXpN.js → git-commit-horizontal-C5mUmACv.js} +1 -1
- package/dist/web/assets/{htmlMode-2u8OHtWO.js → htmlMode-C8btgUt-.js} +1 -1
- package/dist/web/assets/index-8H-GDlM5.css +1 -0
- package/dist/web/assets/index-D7Vr3zcV.js +192 -0
- package/dist/web/assets/index-DUqAiF57.js +1 -0
- package/dist/web/assets/{info-CQNTh78o.js → info-D0xuy5IB.js} +1 -1
- package/dist/web/assets/{jsonMode-C4CWXViX.js → jsonMode-5zVz9G0X.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-CBs_BOlB.js → lspLanguageFeatures-DxlSSL7c.js} +1 -1
- package/dist/web/assets/{monaco.contribution-lOXpG2xQ.js → monaco.contribution-B1pWWwqT.js} +2 -2
- package/dist/web/assets/{monaco.contribution-sd3cFkcN.js → monaco.contribution-BKpVvKK9.js} +2 -2
- package/dist/web/assets/{monaco.contribution-C1LUxAKf.js → monaco.contribution-BXdXsSWI.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Cpf6dWsh.js → monaco.contribution-CIjjzpUR.js} +2 -2
- package/dist/web/assets/{monitor-DsIswrMV.js → monitor-B4-9Shtp.js} +1 -1
- package/dist/web/assets/{play-CeRw21NV.js → play-BJdhBqQE.js} +1 -1
- package/dist/web/assets/{python-CXYq3BUl.js → python-CEK8J4w_.js} +1 -1
- package/dist/web/assets/{refresh-cw-N5b_6AP5.js → refresh-cw-DE0u_nmZ.js} +1 -1
- package/dist/web/assets/{reply-BSKjZrJg.js → reply-2MfLJ93n.js} +1 -1
- package/dist/web/assets/{save-D0oHH1a3.js → save-CBIVKaf8.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-DRjlcwes.js → toggleHighContrast-CC73mtvA.js} +1 -1
- package/dist/web/assets/training-BY8siNUK.css +1 -0
- package/dist/web/assets/training-model-data-BXUCzS0p.js +1 -0
- package/dist/web/assets/{tsMode-x-1A7ZcB.js → tsMode-Bhn9wr_1.js} +1 -1
- package/dist/web/assets/{wifi-off-Dt52ofzh.js → wifi-off-BKTqnqj0.js} +1 -1
- package/dist/web/assets/{workers-Ciff6Dzi.js → workers-C_adgrEg.js} +1 -1
- package/dist/web/assets/{yaml-CB67Kxnz.js → yaml-DDRAcADU.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunks/chunk-OG75GMVO.js +0 -1
- package/dist/web/assets/CloudWorkView-Dr3xqLE5.js +0 -1
- package/dist/web/assets/GetStartedView-C8nyH_PT.js +0 -1
- package/dist/web/assets/LabsExtensions-GtJzxDnK.js +0 -1
- package/dist/web/assets/LabsProfile-DG7rWYur.js +0 -1
- package/dist/web/assets/LabsRoute-D6MDHBzq.js +0 -2
- package/dist/web/assets/LabsRoute-TEt9j1vB.css +0 -1
- package/dist/web/assets/LabsSignals-BfsDN86w.js +0 -1
- package/dist/web/assets/LabsSignals-D6iA6Ryl.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-DTQS2DVL.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-DxEzoF3K.js +0 -1
- package/dist/web/assets/ProfileView-CEscW7Ru.js +0 -1
- package/dist/web/assets/SettingsView-JIRR_FO4.js +0 -63
- package/dist/web/assets/TeamChatView-B5M1ThhJ.js +0 -3
- package/dist/web/assets/TrainingSettingsSection-BDYvI2te.js +0 -1
- package/dist/web/assets/TrainingView-CoCFK6W3.js +0 -5
- package/dist/web/assets/WorkspaceDiffPanel-CMxKQeo7.js +0 -14
- package/dist/web/assets/index-BdY6A-YN.css +0 -1
- package/dist/web/assets/index-CU2qhUYV.js +0 -195
- package/dist/web/assets/index-Dz2B3-4C.js +0 -1
- package/dist/web/assets/settings-lists-BEg6LMcy.css +0 -1
- package/dist/web/assets/training-model-data-BPrc68VG.js +0 -1
package/dist/index.js
CHANGED
|
@@ -2046,8 +2046,6 @@ function sanitizeLocalOpenPondProfile(value) {
|
|
|
2046
2046
|
...typeof push.sourceRef === "string" || push.sourceRef === null ? { sourceRef: push.sourceRef } : {},
|
|
2047
2047
|
...push.promotionStatus === "uploaded" || push.promotionStatus === "hosted_source_materialized" || push.promotionStatus === "hosted_source_materialize_failed" || push.promotionStatus === "hosted_source_check_pending" || push.promotionStatus === "hosted_source_check_failed" || push.promotionStatus === "hosted_source_published" || push.promotionStatus === "hosted_source_publish_failed" || push.promotionStatus === "hosted_run_pending" || push.promotionStatus === "hosted_run_passed" || push.promotionStatus === "hosted_run_failed" || push.promotionStatus === null ? { promotionStatus: push.promotionStatus } : {},
|
|
2048
2048
|
...push.hostedRunStatus === "not_started" || push.hostedRunStatus === "running" || push.hostedRunStatus === "passed" || push.hostedRunStatus === "failed" || push.hostedRunStatus === null ? { hostedRunStatus: push.hostedRunStatus } : {},
|
|
2049
|
-
...typeof push.localGoalId === "string" || push.localGoalId === null ? { localGoalId: push.localGoalId } : {},
|
|
2050
|
-
...typeof push.hostedGoalId === "string" || push.hostedGoalId === null ? { hostedGoalId: push.hostedGoalId } : {},
|
|
2051
2049
|
...typeof push.hostedRunAgentId === "string" || push.hostedRunAgentId === null ? { hostedRunAgentId: push.hostedRunAgentId } : {},
|
|
2052
2050
|
...typeof push.hostedRunId === "string" || push.hostedRunId === null ? { hostedRunId: push.hostedRunId } : {},
|
|
2053
2051
|
...typeof push.hostedRunAt === "string" || push.hostedRunAt === null ? { hostedRunAt: push.hostedRunAt } : {},
|
|
@@ -23476,8 +23474,14 @@ function slug(value) {
|
|
|
23476
23474
|
import { createRequire } from "node:module";
|
|
23477
23475
|
import { spawn as spawn2 } from "node:child_process";
|
|
23478
23476
|
import { existsSync as existsSync4 } from "node:fs";
|
|
23479
|
-
import {
|
|
23480
|
-
|
|
23477
|
+
import {
|
|
23478
|
+
cp,
|
|
23479
|
+
mkdir,
|
|
23480
|
+
readFile as readFile5,
|
|
23481
|
+
readdir as readdir2,
|
|
23482
|
+
symlink,
|
|
23483
|
+
writeFile as writeFile2
|
|
23484
|
+
} from "node:fs/promises";
|
|
23481
23485
|
import path9 from "node:path";
|
|
23482
23486
|
|
|
23483
23487
|
// ../../packages/cloud/src/profile/local-profile-types.ts
|
|
@@ -24625,7 +24629,7 @@ function mergeActiveLocalProfileConfig(existing, repoPath, profile) {
|
|
|
24625
24629
|
}
|
|
24626
24630
|
var require2 = createRequire(import.meta.url);
|
|
24627
24631
|
function defaultLocalProfileRepoPath() {
|
|
24628
|
-
return path9.join(
|
|
24632
|
+
return path9.join(openPondConfigDirectory(), "profiles", "default-repo");
|
|
24629
24633
|
}
|
|
24630
24634
|
function emptyProfileState(error51 = null) {
|
|
24631
24635
|
return {
|
|
@@ -24636,6 +24640,7 @@ function emptyProfileState(error51 = null) {
|
|
|
24636
24640
|
manifestPath: null,
|
|
24637
24641
|
agents: [],
|
|
24638
24642
|
skills: [],
|
|
24643
|
+
evals: [],
|
|
24639
24644
|
git: null,
|
|
24640
24645
|
catalog: emptyProfileCatalogState(error51),
|
|
24641
24646
|
skillCatalog: emptyProfileSkillCatalogState(error51),
|
|
@@ -24650,22 +24655,37 @@ function emptyProfileState(error51 = null) {
|
|
|
24650
24655
|
};
|
|
24651
24656
|
}
|
|
24652
24657
|
async function initLocalProfileRepo(input = {}) {
|
|
24653
|
-
const repoPath = path9.resolve(
|
|
24658
|
+
const repoPath = path9.resolve(
|
|
24659
|
+
input.repoPath ?? defaultLocalProfileRepoPath()
|
|
24660
|
+
);
|
|
24654
24661
|
const profile = normalizeProfileName(input.profile);
|
|
24655
24662
|
const profilePath = path9.join("profiles", profile);
|
|
24656
24663
|
const profileSourcePath2 = path9.join(repoPath, profilePath);
|
|
24657
24664
|
await mkdir(repoPath, { recursive: true });
|
|
24658
|
-
const manifest = await readProfileManifest(repoPath).catch(
|
|
24665
|
+
const manifest = await readProfileManifest(repoPath).catch(
|
|
24666
|
+
() => defaultProfileManifest(profile, profilePath)
|
|
24667
|
+
);
|
|
24659
24668
|
manifest.defaultProfile = manifest.defaultProfile || profile;
|
|
24660
|
-
manifest.profiles[profile] = mergeProfileRepoManifestEntry(
|
|
24661
|
-
|
|
24669
|
+
manifest.profiles[profile] = mergeProfileRepoManifestEntry(
|
|
24670
|
+
manifest.profiles[profile],
|
|
24671
|
+
profilePath
|
|
24672
|
+
);
|
|
24673
|
+
await ensureProfileSource(
|
|
24674
|
+
profileSourcePath2,
|
|
24675
|
+
input.template ?? "blank-agent",
|
|
24676
|
+
Boolean(input.force)
|
|
24677
|
+
);
|
|
24662
24678
|
await ensureProfileDependencies(profileSourcePath2);
|
|
24663
24679
|
await ensureProfileScaffoldFiles(repoPath, profileSourcePath2, profile);
|
|
24664
24680
|
await writeProfileManifest(repoPath, manifest);
|
|
24665
24681
|
await ensureProfileGitRepo(repoPath);
|
|
24666
24682
|
const currentConfig = (await loadGlobalConfig()).openpondProfile;
|
|
24667
24683
|
await saveGlobalConfig({
|
|
24668
|
-
openpondProfile: mergeActiveLocalProfileConfig(
|
|
24684
|
+
openpondProfile: mergeActiveLocalProfileConfig(
|
|
24685
|
+
currentConfig,
|
|
24686
|
+
repoPath,
|
|
24687
|
+
profile
|
|
24688
|
+
)
|
|
24669
24689
|
});
|
|
24670
24690
|
return loadOpenPondProfileState();
|
|
24671
24691
|
}
|
|
@@ -24676,29 +24696,64 @@ async function loadLocalProfileRepo(repoPathInput, profileInput) {
|
|
|
24676
24696
|
profileSourcePath(manifest, repoPath, profile);
|
|
24677
24697
|
const currentConfig = (await loadGlobalConfig()).openpondProfile;
|
|
24678
24698
|
await saveGlobalConfig({
|
|
24679
|
-
openpondProfile: mergeActiveLocalProfileConfig(
|
|
24699
|
+
openpondProfile: mergeActiveLocalProfileConfig(
|
|
24700
|
+
currentConfig,
|
|
24701
|
+
repoPath,
|
|
24702
|
+
profile
|
|
24703
|
+
)
|
|
24680
24704
|
});
|
|
24681
24705
|
return loadOpenPondProfileState();
|
|
24682
24706
|
}
|
|
24707
|
+
async function renameActiveProfileAgent(agentIdInput, nameInput) {
|
|
24708
|
+
const agentId = agentIdInput.trim();
|
|
24709
|
+
const name = normalizeAgentDisplayName(nameInput);
|
|
24710
|
+
if (!agentId) throw new Error("Agent ID is required.");
|
|
24711
|
+
const config2 = await loadGlobalConfig();
|
|
24712
|
+
const active = config2.openpondProfile;
|
|
24713
|
+
if (!active) throw new Error("No active local Profile.");
|
|
24714
|
+
const manifest = await readProfileManifest(active.repoPath);
|
|
24715
|
+
const profileConfig = manifest.profiles[active.profile];
|
|
24716
|
+
if (!profileConfig) {
|
|
24717
|
+
throw new Error(`Profile "${active.profile}" was not found.`);
|
|
24718
|
+
}
|
|
24719
|
+
const defaultAgent = profileConfig.defaultAgent ?? DEFAULT_PROFILE_AGENT;
|
|
24720
|
+
const enabledAgents = profileConfig.enabledAgents ?? [defaultAgent];
|
|
24721
|
+
if (!enabledAgents.includes(agentId)) {
|
|
24722
|
+
throw new Error(
|
|
24723
|
+
`Agent "${agentId}" was not found in Profile "${active.profile}".`
|
|
24724
|
+
);
|
|
24725
|
+
}
|
|
24726
|
+
const agentNames = { ...profileConfig.agentNames ?? {} };
|
|
24727
|
+
if (name === agentId) delete agentNames[agentId];
|
|
24728
|
+
else agentNames[agentId] = name;
|
|
24729
|
+
if (Object.keys(agentNames).length) profileConfig.agentNames = agentNames;
|
|
24730
|
+
else delete profileConfig.agentNames;
|
|
24731
|
+
await writeProfileManifest(active.repoPath, manifest);
|
|
24732
|
+
return loadOpenPondProfileState();
|
|
24733
|
+
}
|
|
24683
24734
|
async function loadOpenPondProfileState() {
|
|
24684
24735
|
const config2 = await loadGlobalConfig();
|
|
24685
24736
|
const active = config2.openpondProfile;
|
|
24686
24737
|
if (!active) return emptyProfileState();
|
|
24687
24738
|
try {
|
|
24688
24739
|
const manifest = await readProfileManifest(active.repoPath);
|
|
24689
|
-
const sourcePath = profileSourcePath(
|
|
24740
|
+
const sourcePath = profileSourcePath(
|
|
24741
|
+
manifest,
|
|
24742
|
+
active.repoPath,
|
|
24743
|
+
active.profile
|
|
24744
|
+
);
|
|
24690
24745
|
const agents = await listProfileAgents(manifest, active.profile);
|
|
24691
|
-
const
|
|
24746
|
+
const catalogSources = profileCatalogSources({
|
|
24747
|
+
manifest,
|
|
24748
|
+
profile: active.profile,
|
|
24749
|
+
profileSourcePath: sourcePath,
|
|
24750
|
+
agents
|
|
24751
|
+
});
|
|
24752
|
+
const [git, catalogResult, skillResult, evals] = await Promise.all([
|
|
24692
24753
|
loadProfileGitState(active.repoPath),
|
|
24693
|
-
loadProfileActionCatalogForSources(
|
|
24694
|
-
|
|
24695
|
-
|
|
24696
|
-
profile: active.profile,
|
|
24697
|
-
profileSourcePath: sourcePath,
|
|
24698
|
-
agents
|
|
24699
|
-
})
|
|
24700
|
-
),
|
|
24701
|
-
loadProfileSkills(sourcePath)
|
|
24754
|
+
loadProfileActionCatalogForSources(catalogSources),
|
|
24755
|
+
loadProfileSkills(sourcePath),
|
|
24756
|
+
loadProfileEvals(sourcePath, catalogSources)
|
|
24702
24757
|
]);
|
|
24703
24758
|
const hosted = hostedBindingFromConfig(active);
|
|
24704
24759
|
const diff = summarizeProfileDiff(git, active.profile);
|
|
@@ -24724,6 +24779,7 @@ async function loadOpenPondProfileState() {
|
|
|
24724
24779
|
manifestPath: path9.join(active.repoPath, PROFILE_REPO_MANIFEST),
|
|
24725
24780
|
agents,
|
|
24726
24781
|
skills: skillResult.skills,
|
|
24782
|
+
evals,
|
|
24727
24783
|
git,
|
|
24728
24784
|
catalog: catalogResult.catalog,
|
|
24729
24785
|
skillCatalog: skillResult.skillCatalog,
|
|
@@ -24747,6 +24803,7 @@ async function loadOpenPondProfileState() {
|
|
|
24747
24803
|
manifestPath: path9.join(active.repoPath, PROFILE_REPO_MANIFEST),
|
|
24748
24804
|
agents: [],
|
|
24749
24805
|
skills: [],
|
|
24806
|
+
evals: [],
|
|
24750
24807
|
git,
|
|
24751
24808
|
catalog: emptyProfileCatalogState(errorMessage),
|
|
24752
24809
|
skillCatalog: emptyProfileSkillCatalogState(errorMessage),
|
|
@@ -24764,21 +24821,30 @@ async function loadOpenPondProfileState() {
|
|
|
24764
24821
|
async function requireActiveLocalProfile() {
|
|
24765
24822
|
const config2 = (await loadGlobalConfig()).openpondProfile;
|
|
24766
24823
|
if (!config2) {
|
|
24767
|
-
throw new Error(
|
|
24824
|
+
throw new Error(
|
|
24825
|
+
"No active OpenPond profile. Run `openpond init` or `openpond profile load --path <dir>`."
|
|
24826
|
+
);
|
|
24768
24827
|
}
|
|
24769
24828
|
const state = await loadOpenPondProfileState();
|
|
24770
24829
|
if (state.error) throw new Error(state.error);
|
|
24771
|
-
if (!state.sourcePath)
|
|
24830
|
+
if (!state.sourcePath)
|
|
24831
|
+
throw new Error("Active OpenPond profile has no source path.");
|
|
24772
24832
|
return { config: config2, state };
|
|
24773
24833
|
}
|
|
24774
24834
|
async function runProfileSdkCommand(input) {
|
|
24775
24835
|
const active = await requireActiveLocalProfile();
|
|
24776
24836
|
const requestedRunArgs = input.command === "run" ? input.args ?? [] : [];
|
|
24777
|
-
const selectedAction = input.command === "run" ? active.state.actionCatalog.find(
|
|
24837
|
+
const selectedAction = input.command === "run" ? active.state.actionCatalog.find(
|
|
24838
|
+
(action) => action.id === requestedRunArgs[0]
|
|
24839
|
+
) : null;
|
|
24778
24840
|
const cwd = path9.resolve(
|
|
24779
24841
|
input.cwd ?? selectedAction?.sourcePath ?? active.state.sourcePath
|
|
24780
24842
|
);
|
|
24781
|
-
const runArgs = input.command === "run" ? runCommandArgs(
|
|
24843
|
+
const runArgs = input.command === "run" ? runCommandArgs(
|
|
24844
|
+
cwd,
|
|
24845
|
+
input.args ?? [],
|
|
24846
|
+
selectedAction?.sourceActionId ?? null
|
|
24847
|
+
) : null;
|
|
24782
24848
|
if (input.command === "run" && runArgs) {
|
|
24783
24849
|
const actionId = runArgs[0];
|
|
24784
24850
|
const catalog = path9.resolve(active.state.sourcePath) === cwd ? {
|
|
@@ -24804,7 +24870,9 @@ async function runProfileSdkCommand(input) {
|
|
|
24804
24870
|
await saveProfileCheckStatus(input.command, result.code);
|
|
24805
24871
|
if (result.code !== 0) {
|
|
24806
24872
|
const detail = result.stderr.trim() || result.stdout.trim();
|
|
24807
|
-
throw new Error(
|
|
24873
|
+
throw new Error(
|
|
24874
|
+
detail || `${input.command} failed with exit code ${result.code ?? "unknown"}`
|
|
24875
|
+
);
|
|
24808
24876
|
}
|
|
24809
24877
|
return result;
|
|
24810
24878
|
}
|
|
@@ -24820,7 +24888,9 @@ async function runAgentSdkProjectCommand(input) {
|
|
|
24820
24888
|
});
|
|
24821
24889
|
if (input.throwOnFailure !== false && result.code !== 0) {
|
|
24822
24890
|
const detail = commandFailureDetail(result, input.command);
|
|
24823
|
-
throw new Error(
|
|
24891
|
+
throw new Error(
|
|
24892
|
+
detail || `${input.command} failed with exit code ${result.code ?? "unknown"}`
|
|
24893
|
+
);
|
|
24824
24894
|
}
|
|
24825
24895
|
return result;
|
|
24826
24896
|
}
|
|
@@ -24843,7 +24913,9 @@ async function runProfileCheck(kind) {
|
|
|
24843
24913
|
});
|
|
24844
24914
|
for (const command of checks) {
|
|
24845
24915
|
if (command !== "inspect" && command !== "build" && command !== "validate" && command !== "eval") {
|
|
24846
|
-
throw new Error(
|
|
24916
|
+
throw new Error(
|
|
24917
|
+
"check kind must be one of inspect, build, validate, eval, all"
|
|
24918
|
+
);
|
|
24847
24919
|
}
|
|
24848
24920
|
for (const source of sources) {
|
|
24849
24921
|
await runProfileCheckForSource({
|
|
@@ -24859,8 +24931,10 @@ async function runProfileCheckForSource(input) {
|
|
|
24859
24931
|
const args = input.command === "inspect" || input.command === "validate" || input.command === "eval" ? ["--json"] : [];
|
|
24860
24932
|
if (input.sourceCount > 1) {
|
|
24861
24933
|
const label = path9.relative(input.profileSourcePath, input.source.sourcePath) || ".";
|
|
24862
|
-
console.log(
|
|
24863
|
-
|
|
24934
|
+
console.log(
|
|
24935
|
+
`
|
|
24936
|
+
[profile:${input.source.agentId}] ${input.command} ${label}`
|
|
24937
|
+
);
|
|
24864
24938
|
}
|
|
24865
24939
|
const result = await runAgentSdkProjectCommand({
|
|
24866
24940
|
command: input.command,
|
|
@@ -24943,7 +25017,17 @@ async function ensureProfileSource(profileSourcePath2, template, force) {
|
|
|
24943
25017
|
}
|
|
24944
25018
|
async function ensureProfileScaffoldFiles(repoPath, profileSourcePath2, profile) {
|
|
24945
25019
|
await mkdir(path9.join(repoPath, "profiles"), { recursive: true });
|
|
24946
|
-
for (const dir of [
|
|
25020
|
+
for (const dir of [
|
|
25021
|
+
"agents",
|
|
25022
|
+
"skills",
|
|
25023
|
+
"actions",
|
|
25024
|
+
"extensions",
|
|
25025
|
+
"prompts",
|
|
25026
|
+
"goals",
|
|
25027
|
+
"evals",
|
|
25028
|
+
"settings",
|
|
25029
|
+
"traces"
|
|
25030
|
+
]) {
|
|
24947
25031
|
await mkdir(path9.join(profileSourcePath2, dir), { recursive: true });
|
|
24948
25032
|
}
|
|
24949
25033
|
const profileManifestPath = path9.join(profileSourcePath2, PROFILE_MANIFEST);
|
|
@@ -24964,7 +25048,11 @@ async function ensureProfileScaffoldFiles(repoPath, profileSourcePath2, profile)
|
|
|
24964
25048
|
}
|
|
24965
25049
|
const lockPath = path9.join(profileSourcePath2, "openpond.lock");
|
|
24966
25050
|
if (!existsSync4(lockPath)) {
|
|
24967
|
-
await writeFile2(
|
|
25051
|
+
await writeFile2(
|
|
25052
|
+
lockPath,
|
|
25053
|
+
"# OpenPond profile lockfile placeholder\n",
|
|
25054
|
+
"utf8"
|
|
25055
|
+
);
|
|
24968
25056
|
}
|
|
24969
25057
|
}
|
|
24970
25058
|
async function rewriteTemplateSdkDependency(profileSourcePath2, sdkRoot) {
|
|
@@ -24975,8 +25063,12 @@ async function rewriteTemplateSdkDependency(profileSourcePath2, sdkRoot) {
|
|
|
24975
25063
|
...packageJson.dependencies ?? {},
|
|
24976
25064
|
"openpond-agent-sdk": `file:${sdkRoot}`
|
|
24977
25065
|
};
|
|
24978
|
-
await writeFile2(
|
|
24979
|
-
|
|
25066
|
+
await writeFile2(
|
|
25067
|
+
packageJsonPath,
|
|
25068
|
+
`${JSON.stringify(packageJson, null, 2)}
|
|
25069
|
+
`,
|
|
25070
|
+
"utf8"
|
|
25071
|
+
);
|
|
24980
25072
|
}
|
|
24981
25073
|
async function ensureProfileDependencies(profileSourcePath2) {
|
|
24982
25074
|
if (!existsSync4(path9.join(profileSourcePath2, "package.json"))) return;
|
|
@@ -24995,7 +25087,9 @@ async function ensureAgentSdkBuilt(sdkRoot) {
|
|
|
24995
25087
|
}
|
|
24996
25088
|
const buildScript = path9.join(sdkRoot, "scripts", "build.ts");
|
|
24997
25089
|
if (!existsSync4(buildScript)) {
|
|
24998
|
-
throw new Error(
|
|
25090
|
+
throw new Error(
|
|
25091
|
+
`Resolved openpond-agent-sdk at ${sdkRoot}, but built SDK files are missing.`
|
|
25092
|
+
);
|
|
24999
25093
|
}
|
|
25000
25094
|
const result = await spawnCommand(
|
|
25001
25095
|
process.execPath,
|
|
@@ -25004,7 +25098,9 @@ async function ensureAgentSdkBuilt(sdkRoot) {
|
|
|
25004
25098
|
);
|
|
25005
25099
|
if (result.code !== 0) {
|
|
25006
25100
|
const detail = result.stderr.trim() || result.stdout.trim();
|
|
25007
|
-
throw new Error(
|
|
25101
|
+
throw new Error(
|
|
25102
|
+
detail || `openpond-agent-sdk build failed with exit code ${result.code ?? "unknown"}`
|
|
25103
|
+
);
|
|
25008
25104
|
}
|
|
25009
25105
|
}
|
|
25010
25106
|
async function listProfileAgents(manifest, profile) {
|
|
@@ -25014,25 +25110,72 @@ async function listProfileAgents(manifest, profile) {
|
|
|
25014
25110
|
const enabled = new Set(profileConfig.enabledAgents ?? [defaultAgent]);
|
|
25015
25111
|
return Array.from(enabled).map((id) => ({
|
|
25016
25112
|
id,
|
|
25017
|
-
name: id,
|
|
25113
|
+
name: profileConfig.agentNames?.[id]?.trim() || id,
|
|
25018
25114
|
path: id === DEFAULT_PROFILE_AGENT ? "agent/agent.ts" : `agents/${id}`,
|
|
25019
25115
|
enabled: true
|
|
25020
25116
|
}));
|
|
25021
25117
|
}
|
|
25022
25118
|
function profileCatalogSources(input) {
|
|
25023
25119
|
const defaultAgent = input.manifest.profiles[input.profile]?.defaultAgent ?? DEFAULT_PROFILE_AGENT;
|
|
25024
|
-
const agents = input.agents.length > 0 ? input.agents : [
|
|
25025
|
-
|
|
25026
|
-
|
|
25027
|
-
|
|
25028
|
-
|
|
25029
|
-
|
|
25120
|
+
const agents = input.agents.length > 0 ? input.agents : [
|
|
25121
|
+
{
|
|
25122
|
+
id: DEFAULT_PROFILE_AGENT,
|
|
25123
|
+
name: DEFAULT_PROFILE_AGENT,
|
|
25124
|
+
path: "agent/agent.ts",
|
|
25125
|
+
enabled: true
|
|
25126
|
+
}
|
|
25127
|
+
];
|
|
25030
25128
|
return agents.map((agent) => ({
|
|
25031
25129
|
agentId: agent.id,
|
|
25032
25130
|
sourcePath: agent.id === DEFAULT_PROFILE_AGENT ? input.profileSourcePath : path9.join(input.profileSourcePath, "agents", agent.id),
|
|
25033
25131
|
preferred: agent.id === defaultAgent
|
|
25034
25132
|
}));
|
|
25035
25133
|
}
|
|
25134
|
+
async function loadProfileEvals(profileSourcePath2, sources) {
|
|
25135
|
+
const evals = /* @__PURE__ */ new Map();
|
|
25136
|
+
const roots = [
|
|
25137
|
+
{
|
|
25138
|
+
root: path9.join(profileSourcePath2, "evals"),
|
|
25139
|
+
agentId: null
|
|
25140
|
+
},
|
|
25141
|
+
...sources.flatMap((source) => [
|
|
25142
|
+
{
|
|
25143
|
+
root: path9.join(source.sourcePath, "agent", "evals"),
|
|
25144
|
+
agentId: source.agentId
|
|
25145
|
+
},
|
|
25146
|
+
{ root: path9.join(source.sourcePath, "evals"), agentId: source.agentId }
|
|
25147
|
+
])
|
|
25148
|
+
];
|
|
25149
|
+
for (const entry of roots) {
|
|
25150
|
+
for (const sourcePath of await listEvalSourceFiles(entry.root)) {
|
|
25151
|
+
const relativePath = path9.relative(profileSourcePath2, sourcePath).split(path9.sep).join("/");
|
|
25152
|
+
if (evals.has(relativePath)) continue;
|
|
25153
|
+
evals.set(relativePath, {
|
|
25154
|
+
id: relativePath,
|
|
25155
|
+
name: path9.basename(sourcePath).replace(/\.eval\.[^.]+$/i, "").replace(/\.[^.]+$/i, ""),
|
|
25156
|
+
path: relativePath,
|
|
25157
|
+
agentId: entry.agentId,
|
|
25158
|
+
sourcePath
|
|
25159
|
+
});
|
|
25160
|
+
}
|
|
25161
|
+
}
|
|
25162
|
+
return [...evals.values()].sort(
|
|
25163
|
+
(left, right) => left.name.localeCompare(right.name) || left.path.localeCompare(right.path)
|
|
25164
|
+
);
|
|
25165
|
+
}
|
|
25166
|
+
async function listEvalSourceFiles(root) {
|
|
25167
|
+
if (!existsSync4(root)) return [];
|
|
25168
|
+
const files = [];
|
|
25169
|
+
for (const entry of await readdir2(root, { withFileTypes: true })) {
|
|
25170
|
+
const sourcePath = path9.join(root, entry.name);
|
|
25171
|
+
if (entry.isDirectory()) {
|
|
25172
|
+
files.push(...await listEvalSourceFiles(sourcePath));
|
|
25173
|
+
} else if (entry.isFile() && /\.eval\.(?:[cm]?[jt]sx?)$/i.test(entry.name)) {
|
|
25174
|
+
files.push(sourcePath);
|
|
25175
|
+
}
|
|
25176
|
+
}
|
|
25177
|
+
return files;
|
|
25178
|
+
}
|
|
25036
25179
|
function hostedBindingFromConfig(config2) {
|
|
25037
25180
|
const push = config2.lastPush;
|
|
25038
25181
|
if (!push) return null;
|
|
@@ -25046,8 +25189,6 @@ function hostedBindingFromConfig(config2) {
|
|
|
25046
25189
|
lastPushedHostedHead: push.hostedHead ?? null,
|
|
25047
25190
|
promotionStatus: push.promotionStatus ?? null,
|
|
25048
25191
|
hostedRunStatus: push.hostedRunStatus ?? null,
|
|
25049
|
-
localGoalId: push.localGoalId ?? null,
|
|
25050
|
-
hostedGoalId: push.hostedGoalId ?? null,
|
|
25051
25192
|
hostedRunAgentId: push.hostedRunAgentId ?? null,
|
|
25052
25193
|
hostedRunId: push.hostedRunId ?? null,
|
|
25053
25194
|
hostedRunAt: push.hostedRunAt ?? null,
|
|
@@ -25133,10 +25274,13 @@ function summarizeProfileState(input) {
|
|
|
25133
25274
|
}
|
|
25134
25275
|
function profileCheckStaleReason(input) {
|
|
25135
25276
|
if (input.catalog.error) return `Catalog error: ${input.catalog.error}`;
|
|
25136
|
-
if (input.catalog.stale)
|
|
25277
|
+
if (input.catalog.stale)
|
|
25278
|
+
return "Action catalog artifacts are missing or stale.";
|
|
25137
25279
|
if (!input.lastCheck) return "Profile checks have not run.";
|
|
25138
|
-
if (input.lastCheck.status !== "passed")
|
|
25139
|
-
|
|
25280
|
+
if (input.lastCheck.status !== "passed")
|
|
25281
|
+
return `Last ${input.lastCheck.command} check failed.`;
|
|
25282
|
+
if (!input.lastCheck.sourceHead)
|
|
25283
|
+
return "Last check did not record a source head.";
|
|
25140
25284
|
if (input.git.head && input.lastCheck.sourceHead !== input.git.head) {
|
|
25141
25285
|
return "Profile source changed since the last check.";
|
|
25142
25286
|
}
|
|
@@ -25145,14 +25289,24 @@ function profileCheckStaleReason(input) {
|
|
|
25145
25289
|
}
|
|
25146
25290
|
function profileDirtyMessage(diff) {
|
|
25147
25291
|
const parts = [];
|
|
25148
|
-
if (diff.changedAgents.length > 0)
|
|
25149
|
-
|
|
25150
|
-
if (diff.
|
|
25151
|
-
|
|
25152
|
-
if (diff.
|
|
25153
|
-
|
|
25154
|
-
if (diff.
|
|
25155
|
-
|
|
25292
|
+
if (diff.changedAgents.length > 0)
|
|
25293
|
+
parts.push(`${diff.changedAgents.length} changed agent(s)`);
|
|
25294
|
+
if (diff.newAgents.length > 0)
|
|
25295
|
+
parts.push(`${diff.newAgents.length} new agent(s)`);
|
|
25296
|
+
if (diff.deletedAgents.length > 0)
|
|
25297
|
+
parts.push(`${diff.deletedAgents.length} deleted agent(s)`);
|
|
25298
|
+
if (diff.changedSkills.length > 0)
|
|
25299
|
+
parts.push(`${diff.changedSkills.length} changed skill(s)`);
|
|
25300
|
+
if (diff.changedActions.length > 0)
|
|
25301
|
+
parts.push(`${diff.changedActions.length} changed action(s)`);
|
|
25302
|
+
if (diff.changedExtensions.length > 0)
|
|
25303
|
+
parts.push(`${diff.changedExtensions.length} changed extension(s)`);
|
|
25304
|
+
if (diff.setupChanges.length > 0)
|
|
25305
|
+
parts.push(`${diff.setupChanges.length} setup change(s)`);
|
|
25306
|
+
if (diff.envRequirementChanges.length > 0)
|
|
25307
|
+
parts.push(
|
|
25308
|
+
`${diff.envRequirementChanges.length} env requirement change(s)`
|
|
25309
|
+
);
|
|
25156
25310
|
return parts.length > 0 ? `Profile has ${parts.join(", ")}.` : "Profile has uncommitted source changes.";
|
|
25157
25311
|
}
|
|
25158
25312
|
function summarizeProfileDiff(git, profile) {
|
|
@@ -25183,7 +25337,10 @@ function classifyProfileFileChange(diff, file2, relativePath) {
|
|
|
25183
25337
|
} else if (firstSegment === "actions") {
|
|
25184
25338
|
addUnique(diff.changedActions, relativePath.split("/")[1] ?? relativePath);
|
|
25185
25339
|
} else if (firstSegment === "extensions") {
|
|
25186
|
-
addUnique(
|
|
25340
|
+
addUnique(
|
|
25341
|
+
diff.changedExtensions,
|
|
25342
|
+
relativePath.split("/")[1] ?? relativePath
|
|
25343
|
+
);
|
|
25187
25344
|
} else if (firstSegment === "settings" || relativePath === "package.json" || relativePath === "openpond.yaml" || relativePath === "openpond.lock") {
|
|
25188
25345
|
addUnique(diff.setupChanges, relativePath);
|
|
25189
25346
|
}
|
|
@@ -25213,10 +25370,22 @@ function normalizeProfileName(value) {
|
|
|
25213
25370
|
const trimmed = value?.trim();
|
|
25214
25371
|
if (!trimmed) return DEFAULT_LOCAL_PROFILE;
|
|
25215
25372
|
if (!/^[a-zA-Z0-9._-]+$/.test(trimmed)) {
|
|
25216
|
-
throw new Error(
|
|
25373
|
+
throw new Error(
|
|
25374
|
+
"profile name may only contain letters, numbers, dots, underscores, and hyphens"
|
|
25375
|
+
);
|
|
25217
25376
|
}
|
|
25218
25377
|
return trimmed;
|
|
25219
25378
|
}
|
|
25379
|
+
function normalizeAgentDisplayName(value) {
|
|
25380
|
+
const name = value.trim().replace(/\s+/g, " ");
|
|
25381
|
+
if (!name) throw new Error("Agent name is required.");
|
|
25382
|
+
if (name.length > 80)
|
|
25383
|
+
throw new Error("Agent name must be 80 characters or fewer.");
|
|
25384
|
+
if (/[\u0000-\u001f\u007f]/.test(name)) {
|
|
25385
|
+
throw new Error("Agent name cannot contain control characters.");
|
|
25386
|
+
}
|
|
25387
|
+
return name;
|
|
25388
|
+
}
|
|
25220
25389
|
function defaultProfileManifest(profile, profilePath) {
|
|
25221
25390
|
return {
|
|
25222
25391
|
schema: "openpond.profileRepo.v1",
|
|
@@ -25235,18 +25404,29 @@ async function readProfileManifest(repoPath) {
|
|
|
25235
25404
|
const raw = await readFile5(manifestPath, "utf8");
|
|
25236
25405
|
const parsed = JSON.parse(raw);
|
|
25237
25406
|
if (parsed.schema !== "openpond.profileRepo.v1" || !parsed.profiles || typeof parsed.profiles !== "object") {
|
|
25238
|
-
throw new Error(
|
|
25407
|
+
throw new Error(
|
|
25408
|
+
`${manifestPath} is not an OpenPond profile repo manifest.`
|
|
25409
|
+
);
|
|
25239
25410
|
}
|
|
25240
25411
|
return parsed;
|
|
25241
25412
|
}
|
|
25242
25413
|
async function writeProfileManifest(repoPath, manifest) {
|
|
25243
|
-
await writeFile2(
|
|
25244
|
-
|
|
25414
|
+
await writeFile2(
|
|
25415
|
+
path9.join(repoPath, PROFILE_REPO_MANIFEST),
|
|
25416
|
+
`${JSON.stringify(manifest, null, 2)}
|
|
25417
|
+
`,
|
|
25418
|
+
"utf8"
|
|
25419
|
+
);
|
|
25245
25420
|
}
|
|
25246
25421
|
function profileSourcePath(manifest, repoPath, profile) {
|
|
25247
25422
|
const profileConfig = manifest.profiles[profile];
|
|
25248
25423
|
if (!profileConfig) {
|
|
25249
|
-
throw new Error(
|
|
25424
|
+
throw new Error(
|
|
25425
|
+
`Profile "${profile}" was not found in ${path9.join(
|
|
25426
|
+
repoPath,
|
|
25427
|
+
PROFILE_REPO_MANIFEST
|
|
25428
|
+
)}.`
|
|
25429
|
+
);
|
|
25250
25430
|
}
|
|
25251
25431
|
const sourcePath = path9.resolve(repoPath, profileConfig.path);
|
|
25252
25432
|
if (!existsSync4(sourcePath)) {
|
|
@@ -25261,15 +25441,21 @@ function resolveAgentSdkRoot() {
|
|
|
25261
25441
|
function resolveAgentSdkCliLaunch() {
|
|
25262
25442
|
const sdkRoot = resolveAgentSdkRoot();
|
|
25263
25443
|
const distCli = path9.join(sdkRoot, "dist", "cli.js");
|
|
25264
|
-
if (existsSync4(distCli))
|
|
25444
|
+
if (existsSync4(distCli))
|
|
25445
|
+
return { command: process.execPath, args: [distCli] };
|
|
25265
25446
|
const sourceCli = path9.join(sdkRoot, "src", "cli.ts");
|
|
25266
25447
|
if (existsSync4(sourceCli)) {
|
|
25267
|
-
return {
|
|
25448
|
+
return {
|
|
25449
|
+
command: process.execPath,
|
|
25450
|
+
args: [resolveTsxCli(sdkRoot), sourceCli]
|
|
25451
|
+
};
|
|
25268
25452
|
}
|
|
25269
25453
|
throw new Error(`openpond-agent CLI was not found under ${sdkRoot}`);
|
|
25270
25454
|
}
|
|
25271
25455
|
function resolveTsxCli(packageRoot) {
|
|
25272
|
-
return createRequire(path9.join(packageRoot, "package.json")).resolve(
|
|
25456
|
+
return createRequire(path9.join(packageRoot, "package.json")).resolve(
|
|
25457
|
+
"tsx/cli"
|
|
25458
|
+
);
|
|
25273
25459
|
}
|
|
25274
25460
|
async function spawnCommand(command, args, options = {}) {
|
|
25275
25461
|
return new Promise((resolve, reject) => {
|
|
@@ -25293,12 +25479,22 @@ async function spawnCommand(command, args, options = {}) {
|
|
|
25293
25479
|
}, timeoutMs + 5e3) : null;
|
|
25294
25480
|
if (!options.inherit) {
|
|
25295
25481
|
proc.stdout?.on("data", (chunk) => {
|
|
25296
|
-
const next = appendBoundedOutput(
|
|
25482
|
+
const next = appendBoundedOutput(
|
|
25483
|
+
stdout,
|
|
25484
|
+
String(chunk),
|
|
25485
|
+
maxOutputBytes,
|
|
25486
|
+
stdoutTruncated
|
|
25487
|
+
);
|
|
25297
25488
|
stdout = next.text;
|
|
25298
25489
|
stdoutTruncated = next.truncated;
|
|
25299
25490
|
});
|
|
25300
25491
|
proc.stderr?.on("data", (chunk) => {
|
|
25301
|
-
const next = appendBoundedOutput(
|
|
25492
|
+
const next = appendBoundedOutput(
|
|
25493
|
+
stderr,
|
|
25494
|
+
String(chunk),
|
|
25495
|
+
maxOutputBytes,
|
|
25496
|
+
stderrTruncated
|
|
25497
|
+
);
|
|
25302
25498
|
stderr = next.text;
|
|
25303
25499
|
stderrTruncated = next.truncated;
|
|
25304
25500
|
});
|
|
@@ -25313,7 +25509,14 @@ async function spawnCommand(command, args, options = {}) {
|
|
|
25313
25509
|
});
|
|
25314
25510
|
proc.on("close", (code) => {
|
|
25315
25511
|
clearTimers();
|
|
25316
|
-
resolve({
|
|
25512
|
+
resolve({
|
|
25513
|
+
code,
|
|
25514
|
+
stdout,
|
|
25515
|
+
stderr,
|
|
25516
|
+
timedOut,
|
|
25517
|
+
stdoutTruncated,
|
|
25518
|
+
stderrTruncated
|
|
25519
|
+
});
|
|
25317
25520
|
});
|
|
25318
25521
|
});
|
|
25319
25522
|
}
|
|
@@ -25441,6 +25644,7 @@ export {
|
|
|
25441
25644
|
parseSandboxTemplateYaml,
|
|
25442
25645
|
postAgentDigest,
|
|
25443
25646
|
promotePreviewToProduction,
|
|
25647
|
+
renameActiveProfileAgent,
|
|
25444
25648
|
requireActiveLocalProfile,
|
|
25445
25649
|
resolveHostedChatApiBaseUrl,
|
|
25446
25650
|
resolveOpChatApiBaseUrl,
|
|
@@ -17,6 +17,13 @@ export type OpenPondProfileSkill = {
|
|
|
17
17
|
validationStatus: "valid" | "warning" | "error";
|
|
18
18
|
validationMessages: string[];
|
|
19
19
|
};
|
|
20
|
+
export type OpenPondProfileEval = {
|
|
21
|
+
id: string;
|
|
22
|
+
name: string;
|
|
23
|
+
path: string;
|
|
24
|
+
agentId: string | null;
|
|
25
|
+
sourcePath: string;
|
|
26
|
+
};
|
|
20
27
|
export type OpenPondProfileGitFileChange = {
|
|
21
28
|
path: string;
|
|
22
29
|
originalPath?: string | null;
|
|
@@ -112,8 +119,6 @@ export type OpenPondProfileHostedBinding = {
|
|
|
112
119
|
lastPushedHostedHead: string | null;
|
|
113
120
|
promotionStatus: string | null;
|
|
114
121
|
hostedRunStatus: string | null;
|
|
115
|
-
localGoalId: string | null;
|
|
116
|
-
hostedGoalId: string | null;
|
|
117
122
|
hostedRunAgentId: string | null;
|
|
118
123
|
hostedRunId: string | null;
|
|
119
124
|
hostedRunAt: string | null;
|
|
@@ -141,6 +146,7 @@ export type OpenPondProfileState = {
|
|
|
141
146
|
manifestPath: string | null;
|
|
142
147
|
agents: OpenPondProfileAgent[];
|
|
143
148
|
skills: OpenPondProfileSkill[];
|
|
149
|
+
evals: OpenPondProfileEval[];
|
|
144
150
|
git: OpenPondProfileGitState | null;
|
|
145
151
|
catalog: OpenPondProfileCatalogState;
|
|
146
152
|
skillCatalog: OpenPondProfileSkillCatalogState;
|
|
@@ -11,9 +11,10 @@ export type ProfileRepoManifest = {
|
|
|
11
11
|
path: string;
|
|
12
12
|
defaultAgent?: string;
|
|
13
13
|
enabledAgents?: string[];
|
|
14
|
+
agentNames?: Record<string, string>;
|
|
14
15
|
}>;
|
|
15
16
|
};
|
|
16
|
-
export type { OpenPondProfileActionCatalogEntry, OpenPondProfileAgent, OpenPondProfileCatalogState, OpenPondProfileDiffSummary, OpenPondProfileGitFileChange, OpenPondProfileGitState, OpenPondProfileHostedBinding, OpenPondProfileSetupGate, OpenPondProfileSetupRequirement, OpenPondProfileSkill, OpenPondProfileSkillCatalogState, OpenPondProfileState, OpenPondProfileSummary, } from "./local-profile-types.js";
|
|
17
|
+
export type { OpenPondProfileActionCatalogEntry, OpenPondProfileAgent, OpenPondProfileCatalogState, OpenPondProfileDiffSummary, OpenPondProfileEval, OpenPondProfileGitFileChange, OpenPondProfileGitState, OpenPondProfileHostedBinding, OpenPondProfileSetupGate, OpenPondProfileSetupRequirement, OpenPondProfileSkill, OpenPondProfileSkillCatalogState, OpenPondProfileState, OpenPondProfileSummary, } from "./local-profile-types.js";
|
|
17
18
|
export { OpenPondProfileSetupRequiredError, assertOpenPondProfileActionReady, buildOpenPondProfileSetupGate, formatOpenPondProfileSetupRequirement, } from "./profile-setup-gate.js";
|
|
18
19
|
export type { LocalOpenPondProfileCheckStatus, LocalOpenPondProfilePushStatus, } from "../config.js";
|
|
19
20
|
export { collectProfileSourceUploadEntries, type OpenPondProfileSourceUpload, type OpenPondProfileSourceUploadEntry, } from "./profile-source-upload.js";
|
|
@@ -38,6 +39,7 @@ export declare function defaultLocalProfileRepoPath(): string;
|
|
|
38
39
|
export declare function emptyProfileState(error?: string | null): OpenPondProfileState;
|
|
39
40
|
export declare function initLocalProfileRepo(input?: InitLocalProfileInput): Promise<OpenPondProfileState>;
|
|
40
41
|
export declare function loadLocalProfileRepo(repoPathInput: string, profileInput?: string): Promise<OpenPondProfileState>;
|
|
42
|
+
export declare function renameActiveProfileAgent(agentIdInput: string, nameInput: string): Promise<OpenPondProfileState>;
|
|
41
43
|
export declare function loadOpenPondProfileState(): Promise<OpenPondProfileState>;
|
|
42
44
|
export declare function requireActiveLocalProfile(): Promise<{
|
|
43
45
|
config: LocalOpenPondProfileConfig;
|
|
@@ -330,8 +330,7 @@ export type SandboxAgentEditWorkItemOpenInput = {
|
|
|
330
330
|
initialMessage?: string | null;
|
|
331
331
|
sourceRef?: string | null;
|
|
332
332
|
baseSha?: string | null;
|
|
333
|
-
|
|
334
|
-
createPipeline?: Record<string, unknown> | null;
|
|
333
|
+
createImproveRun?: Record<string, unknown> | null;
|
|
335
334
|
};
|
|
336
335
|
export type SandboxAgentEditWorkItemOpenResult = {
|
|
337
336
|
workItem: SandboxCodingWorkItem;
|