@liberseek/boft-cli-win32-arm64 0.6.9 → 0.7.1
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 +1 -1
- package/THIRD_PARTY_NOTICES.txt +12 -4
- package/app/codexhost-distribution.json +1 -1
- package/app/desktop-controller.mjs +287 -170
- package/app/host-runtime.mjs +2450 -1044
- package/app/plugins/antigravity/plugin.mjs +167 -16
- package/app/plugins/claude-code/plugin.mjs +311 -58
- package/app/plugins/codebuddy/plugin.mjs +2355 -894
- package/app/plugins/cursor-cli/plugin.mjs +35973 -10933
- package/app/plugins/deepseek-harness/plugin.mjs +125 -7
- package/app/plugins/enabled.json +4 -1
- package/app/plugins/grok/plugin.mjs +261 -97
- package/app/plugins/hermes/plugin.mjs +2486 -99
- package/app/plugins/kiro-cli/plugin.mjs +120 -3
- package/app/plugins/muse/plugin.mjs +110 -0
- package/app/plugins/omp/plugin.mjs +145 -10
- package/app/plugins/opencode/plugin.mjs +162 -46
- package/app/plugins/pi/plugin.mjs +2891 -1678
- package/app/plugins/qoder/assets/icon.svg +1 -0
- package/app/plugins/qoder/manifest.json +12 -0
- package/app/plugins/qoder/plugin.mjs +52352 -0
- package/app/plugins/qoder-cn/assets/icon.svg +1 -0
- package/app/plugins/qoder-cn/manifest.json +12 -0
- package/app/plugins/qoder-cn/plugin.mjs +52350 -0
- package/app/plugins/workbuddy/assets/icon.svg +29 -0
- package/app/plugins/workbuddy/manifest.json +14 -0
- package/app/plugins/workbuddy/plugin.mjs +25007 -0
- package/app/renderer-extension.js +6043 -1442
- package/bin/boft.exe +0 -0
- package/libexec/boft-node-repl.exe +0 -0
- package/libexec/boft-shim.exe +0 -0
- package/libexec/boft-updater.exe +0 -0
- package/licenses/Qoder-Agent-SDK-LICENSE.txt +7 -0
- package/licenses/QoderCN-Agent-SDK-LICENSE.txt +7 -0
- package/licenses/{opencodex-LICENSE.txt → tailwindcss-LICENSE.txt} +1 -1
- package/package.json +1 -1
|
@@ -14523,9 +14523,104 @@ function date4(params) {
|
|
|
14523
14523
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
14524
14524
|
config(en_default());
|
|
14525
14525
|
|
|
14526
|
+
// ../../shared-contracts/dist/credential-imports.js
|
|
14527
|
+
var credentialSourceSchema = external_exports.object({
|
|
14528
|
+
id: external_exports.string().min(1).max(256),
|
|
14529
|
+
harnessId: external_exports.string().min(1),
|
|
14530
|
+
label: external_exports.string().min(1).max(512),
|
|
14531
|
+
provider: external_exports.enum(["openai-codex", "xai"])
|
|
14532
|
+
}).strict();
|
|
14533
|
+
var credentialImportNameSchema = external_exports.string().regex(/^[a-z][a-z0-9-]{0,47}$/);
|
|
14534
|
+
var credentialImportRecordSchema = external_exports.object({
|
|
14535
|
+
name: credentialImportNameSchema,
|
|
14536
|
+
source: credentialSourceSchema,
|
|
14537
|
+
importedAt: external_exports.string()
|
|
14538
|
+
}).strict();
|
|
14539
|
+
var credentialImportsRequestSchema = external_exports.discriminatedUnion("action", [
|
|
14540
|
+
external_exports.object({ action: external_exports.literal("list") }).strict(),
|
|
14541
|
+
external_exports.object({
|
|
14542
|
+
action: external_exports.literal("import"),
|
|
14543
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
14544
|
+
name: credentialImportNameSchema,
|
|
14545
|
+
confirmed: external_exports.literal(true)
|
|
14546
|
+
}).strict(),
|
|
14547
|
+
external_exports.object({
|
|
14548
|
+
action: external_exports.literal("reimport"),
|
|
14549
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
14550
|
+
name: credentialImportNameSchema,
|
|
14551
|
+
confirmed: external_exports.literal(true)
|
|
14552
|
+
}).strict(),
|
|
14553
|
+
external_exports.object({
|
|
14554
|
+
action: external_exports.literal("remove"),
|
|
14555
|
+
name: credentialImportNameSchema,
|
|
14556
|
+
confirmed: external_exports.literal(true)
|
|
14557
|
+
}).strict()
|
|
14558
|
+
]);
|
|
14559
|
+
var credentialOtherLoginSchema = external_exports.object({
|
|
14560
|
+
provider: external_exports.string().min(1).max(128),
|
|
14561
|
+
type: external_exports.enum(["oauth", "api_key", "unknown"]),
|
|
14562
|
+
/** Best-effort account label (e.g. the email in a Codex token), derived locally when present. */
|
|
14563
|
+
label: external_exports.string().min(1).max(512).optional(),
|
|
14564
|
+
/** Recognized credential vendor, derived from the OAuth token issuer. Absent when unknown. */
|
|
14565
|
+
vendor: external_exports.enum(["openai-codex", "xai"]).optional()
|
|
14566
|
+
}).strict();
|
|
14567
|
+
var credentialImportsResultSchema = external_exports.object({
|
|
14568
|
+
sources: external_exports.array(credentialSourceSchema),
|
|
14569
|
+
targets: external_exports.array(external_exports.object({
|
|
14570
|
+
harnessId: external_exports.string(),
|
|
14571
|
+
providers: external_exports.array(external_exports.enum(["openai-codex", "xai"])),
|
|
14572
|
+
imports: external_exports.array(credentialImportRecordSchema),
|
|
14573
|
+
others: external_exports.array(credentialOtherLoginSchema).default([])
|
|
14574
|
+
}).strict())
|
|
14575
|
+
}).strict();
|
|
14576
|
+
var credentialImportsParamsSchema = external_exports.object({
|
|
14577
|
+
targetHarnessId: external_exports.string().min(1).max(128).optional(),
|
|
14578
|
+
request: credentialImportsRequestSchema
|
|
14579
|
+
}).strict();
|
|
14580
|
+
|
|
14526
14581
|
// ../../shared-contracts/dist/version.js
|
|
14527
14582
|
var WORKSPACE_CONTRACT_VERSION = 1;
|
|
14528
14583
|
|
|
14584
|
+
// ../../shared-contracts/dist/idle-release.js
|
|
14585
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
|
|
14586
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
|
|
14587
|
+
var idleReleaseSettingsSchema = external_exports.strictObject({
|
|
14588
|
+
enabled: external_exports.boolean(),
|
|
14589
|
+
timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
|
|
14590
|
+
});
|
|
14591
|
+
var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
|
|
14592
|
+
enabled: false,
|
|
14593
|
+
timeoutMinutes: 30
|
|
14594
|
+
});
|
|
14595
|
+
|
|
14596
|
+
// ../../shared-contracts/dist/loaded-sessions.js
|
|
14597
|
+
var loadedSessionStateSchema = external_exports.enum([
|
|
14598
|
+
"idle",
|
|
14599
|
+
"running",
|
|
14600
|
+
"busy",
|
|
14601
|
+
"closing",
|
|
14602
|
+
"failed",
|
|
14603
|
+
"blocked"
|
|
14604
|
+
]);
|
|
14605
|
+
var loadedSessionReasonSchema = external_exports.enum([
|
|
14606
|
+
"none",
|
|
14607
|
+
"disabled",
|
|
14608
|
+
"timeout",
|
|
14609
|
+
"operation",
|
|
14610
|
+
"background",
|
|
14611
|
+
"identity",
|
|
14612
|
+
"persistence",
|
|
14613
|
+
"closeFailed"
|
|
14614
|
+
]);
|
|
14615
|
+
var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
|
|
14616
|
+
threadId: external_exports.string(),
|
|
14617
|
+
title: external_exports.string(),
|
|
14618
|
+
harnessId: external_exports.string(),
|
|
14619
|
+
state: loadedSessionStateSchema,
|
|
14620
|
+
reason: loadedSessionReasonSchema,
|
|
14621
|
+
inactiveMs: external_exports.number().nonnegative()
|
|
14622
|
+
}));
|
|
14623
|
+
|
|
14529
14624
|
// ../../shared-contracts/dist/ids.js
|
|
14530
14625
|
var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
|
|
14531
14626
|
message: "Identifier must not be empty or whitespace"
|
|
@@ -15032,6 +15127,8 @@ var pluginPresentationShape = {
|
|
|
15032
15127
|
id: harnessPluginIdSchema,
|
|
15033
15128
|
name: external_exports.string().trim().min(1).max(128),
|
|
15034
15129
|
version: external_exports.string().min(1).max(128),
|
|
15130
|
+
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
15131
|
+
launchCommand: external_exports.literal(true).optional(),
|
|
15035
15132
|
links: external_exports.object({
|
|
15036
15133
|
documentation: documentationUrlSchema.optional(),
|
|
15037
15134
|
installation: documentationUrlSchema.optional()
|
|
@@ -15069,6 +15166,19 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15069
15166
|
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15070
15167
|
}).strict();
|
|
15071
15168
|
|
|
15169
|
+
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
15170
|
+
var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
|
|
15171
|
+
var harnessLaunchSettingsGetSchema = external_exports.object({
|
|
15172
|
+
harnessId: harnessPluginIdSchema
|
|
15173
|
+
}).strict();
|
|
15174
|
+
var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
|
|
15175
|
+
path: harnessLaunchPathSchema.nullable()
|
|
15176
|
+
});
|
|
15177
|
+
var harnessLaunchSettingsSchema = external_exports.object({
|
|
15178
|
+
path: harnessLaunchPathSchema.nullable(),
|
|
15179
|
+
restartRequired: external_exports.boolean()
|
|
15180
|
+
}).strict();
|
|
15181
|
+
|
|
15072
15182
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
15073
15183
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
15074
15184
|
var nonBlankTextSchema3 = external_exports.string().trim().min(1);
|
|
@@ -21708,6 +21818,7 @@ var KiroTurnOutput = class {
|
|
|
21708
21818
|
const file2 = {
|
|
21709
21819
|
type: "fileChange",
|
|
21710
21820
|
itemId: hostItemIdSchema.parse(`file-${tool.item.itemId}`),
|
|
21821
|
+
sourceItemIds: [tool.item.itemId],
|
|
21711
21822
|
changes: changes ?? []
|
|
21712
21823
|
};
|
|
21713
21824
|
if (tool.file) {
|
|
@@ -22091,6 +22202,10 @@ async function readKiroSnapshot(location) {
|
|
|
22091
22202
|
const completedAtMs = Date.parse(end?.timestamp ?? "");
|
|
22092
22203
|
const hasTiming = Number.isFinite(startedAtMs) && Number.isFinite(completedAtMs) && startedAtMs >= 0 && completedAtMs >= startedAtMs;
|
|
22093
22204
|
const lastContent = turn.rows.findLast((row) => row.payload.type === "tool_call" || row.payload.type === "assistant" && kiroVisibleText(historyText(row.payload)).trim().length > 0 && !["Reasoning", "Summary"].includes(String(row.payload.operationType)));
|
|
22205
|
+
const toolSources = new Map(turn.rows.filter((row) => row.payload.type === "tool_call").map((row) => [
|
|
22206
|
+
row.payload.toolCallId,
|
|
22207
|
+
hostItemIdSchema.parse(`kiro-${nativeSessionId}-${row.id}`)
|
|
22208
|
+
]));
|
|
22094
22209
|
for (const row of turn.rows) {
|
|
22095
22210
|
const type = row.payload?.type;
|
|
22096
22211
|
const itemId = hostItemIdSchema.parse(`kiro-${nativeSessionId}-${row.id}`);
|
|
@@ -22141,10 +22256,12 @@ async function readKiroSnapshot(location) {
|
|
|
22141
22256
|
} else if (type === "tool_result") {
|
|
22142
22257
|
const changes = row.payload.success === true ? projectKiroFileChanges(row.payload.content, location.cwd) : null;
|
|
22143
22258
|
if (changes) {
|
|
22259
|
+
const sourceItemId = toolSources.get(row.payload.toolCallId);
|
|
22144
22260
|
items.push({
|
|
22145
22261
|
item: {
|
|
22146
22262
|
type: "fileChange",
|
|
22147
22263
|
itemId,
|
|
22264
|
+
sourceItemIds: sourceItemId ? [sourceItemId] : [],
|
|
22148
22265
|
changes
|
|
22149
22266
|
},
|
|
22150
22267
|
outcome: { status: "succeeded" }
|
|
@@ -23005,12 +23122,12 @@ var KiroSession = class {
|
|
|
23005
23122
|
return { ok: true, value: { accepted: true } };
|
|
23006
23123
|
}
|
|
23007
23124
|
async #selectModel(command) {
|
|
23008
|
-
if (this.#
|
|
23125
|
+
if (this.#configBusy) {
|
|
23009
23126
|
return {
|
|
23010
23127
|
ok: false,
|
|
23011
23128
|
error: {
|
|
23012
23129
|
code: "sessionBusy",
|
|
23013
|
-
message: "
|
|
23130
|
+
message: "Another configuration change is in progress",
|
|
23014
23131
|
retryable: false
|
|
23015
23132
|
}
|
|
23016
23133
|
};
|
|
@@ -23101,7 +23218,7 @@ var KiroSession = class {
|
|
|
23101
23218
|
});
|
|
23102
23219
|
}
|
|
23103
23220
|
async #selectThinking(command) {
|
|
23104
|
-
if (this.#
|
|
23221
|
+
if (this.#configBusy) {
|
|
23105
23222
|
return {
|
|
23106
23223
|
ok: false,
|
|
23107
23224
|
error: { code: "sessionBusy", message: "Session is busy", retryable: true }
|
|
@@ -14774,9 +14774,104 @@ function date4(params) {
|
|
|
14774
14774
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
14775
14775
|
config(en_default());
|
|
14776
14776
|
|
|
14777
|
+
// ../../shared-contracts/dist/credential-imports.js
|
|
14778
|
+
var credentialSourceSchema = external_exports.object({
|
|
14779
|
+
id: external_exports.string().min(1).max(256),
|
|
14780
|
+
harnessId: external_exports.string().min(1),
|
|
14781
|
+
label: external_exports.string().min(1).max(512),
|
|
14782
|
+
provider: external_exports.enum(["openai-codex", "xai"])
|
|
14783
|
+
}).strict();
|
|
14784
|
+
var credentialImportNameSchema = external_exports.string().regex(/^[a-z][a-z0-9-]{0,47}$/);
|
|
14785
|
+
var credentialImportRecordSchema = external_exports.object({
|
|
14786
|
+
name: credentialImportNameSchema,
|
|
14787
|
+
source: credentialSourceSchema,
|
|
14788
|
+
importedAt: external_exports.string()
|
|
14789
|
+
}).strict();
|
|
14790
|
+
var credentialImportsRequestSchema = external_exports.discriminatedUnion("action", [
|
|
14791
|
+
external_exports.object({ action: external_exports.literal("list") }).strict(),
|
|
14792
|
+
external_exports.object({
|
|
14793
|
+
action: external_exports.literal("import"),
|
|
14794
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
14795
|
+
name: credentialImportNameSchema,
|
|
14796
|
+
confirmed: external_exports.literal(true)
|
|
14797
|
+
}).strict(),
|
|
14798
|
+
external_exports.object({
|
|
14799
|
+
action: external_exports.literal("reimport"),
|
|
14800
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
14801
|
+
name: credentialImportNameSchema,
|
|
14802
|
+
confirmed: external_exports.literal(true)
|
|
14803
|
+
}).strict(),
|
|
14804
|
+
external_exports.object({
|
|
14805
|
+
action: external_exports.literal("remove"),
|
|
14806
|
+
name: credentialImportNameSchema,
|
|
14807
|
+
confirmed: external_exports.literal(true)
|
|
14808
|
+
}).strict()
|
|
14809
|
+
]);
|
|
14810
|
+
var credentialOtherLoginSchema = external_exports.object({
|
|
14811
|
+
provider: external_exports.string().min(1).max(128),
|
|
14812
|
+
type: external_exports.enum(["oauth", "api_key", "unknown"]),
|
|
14813
|
+
/** Best-effort account label (e.g. the email in a Codex token), derived locally when present. */
|
|
14814
|
+
label: external_exports.string().min(1).max(512).optional(),
|
|
14815
|
+
/** Recognized credential vendor, derived from the OAuth token issuer. Absent when unknown. */
|
|
14816
|
+
vendor: external_exports.enum(["openai-codex", "xai"]).optional()
|
|
14817
|
+
}).strict();
|
|
14818
|
+
var credentialImportsResultSchema = external_exports.object({
|
|
14819
|
+
sources: external_exports.array(credentialSourceSchema),
|
|
14820
|
+
targets: external_exports.array(external_exports.object({
|
|
14821
|
+
harnessId: external_exports.string(),
|
|
14822
|
+
providers: external_exports.array(external_exports.enum(["openai-codex", "xai"])),
|
|
14823
|
+
imports: external_exports.array(credentialImportRecordSchema),
|
|
14824
|
+
others: external_exports.array(credentialOtherLoginSchema).default([])
|
|
14825
|
+
}).strict())
|
|
14826
|
+
}).strict();
|
|
14827
|
+
var credentialImportsParamsSchema = external_exports.object({
|
|
14828
|
+
targetHarnessId: external_exports.string().min(1).max(128).optional(),
|
|
14829
|
+
request: credentialImportsRequestSchema
|
|
14830
|
+
}).strict();
|
|
14831
|
+
|
|
14777
14832
|
// ../../shared-contracts/dist/version.js
|
|
14778
14833
|
var WORKSPACE_CONTRACT_VERSION = 1;
|
|
14779
14834
|
|
|
14835
|
+
// ../../shared-contracts/dist/idle-release.js
|
|
14836
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
|
|
14837
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
|
|
14838
|
+
var idleReleaseSettingsSchema = external_exports.strictObject({
|
|
14839
|
+
enabled: external_exports.boolean(),
|
|
14840
|
+
timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
|
|
14841
|
+
});
|
|
14842
|
+
var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
|
|
14843
|
+
enabled: false,
|
|
14844
|
+
timeoutMinutes: 30
|
|
14845
|
+
});
|
|
14846
|
+
|
|
14847
|
+
// ../../shared-contracts/dist/loaded-sessions.js
|
|
14848
|
+
var loadedSessionStateSchema = external_exports.enum([
|
|
14849
|
+
"idle",
|
|
14850
|
+
"running",
|
|
14851
|
+
"busy",
|
|
14852
|
+
"closing",
|
|
14853
|
+
"failed",
|
|
14854
|
+
"blocked"
|
|
14855
|
+
]);
|
|
14856
|
+
var loadedSessionReasonSchema = external_exports.enum([
|
|
14857
|
+
"none",
|
|
14858
|
+
"disabled",
|
|
14859
|
+
"timeout",
|
|
14860
|
+
"operation",
|
|
14861
|
+
"background",
|
|
14862
|
+
"identity",
|
|
14863
|
+
"persistence",
|
|
14864
|
+
"closeFailed"
|
|
14865
|
+
]);
|
|
14866
|
+
var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
|
|
14867
|
+
threadId: external_exports.string(),
|
|
14868
|
+
title: external_exports.string(),
|
|
14869
|
+
harnessId: external_exports.string(),
|
|
14870
|
+
state: loadedSessionStateSchema,
|
|
14871
|
+
reason: loadedSessionReasonSchema,
|
|
14872
|
+
inactiveMs: external_exports.number().nonnegative()
|
|
14873
|
+
}));
|
|
14874
|
+
|
|
14780
14875
|
// ../../shared-contracts/dist/ids.js
|
|
14781
14876
|
var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
|
|
14782
14877
|
message: "Identifier must not be empty or whitespace"
|
|
@@ -15283,6 +15378,8 @@ var pluginPresentationShape = {
|
|
|
15283
15378
|
id: harnessPluginIdSchema,
|
|
15284
15379
|
name: external_exports.string().trim().min(1).max(128),
|
|
15285
15380
|
version: external_exports.string().min(1).max(128),
|
|
15381
|
+
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
15382
|
+
launchCommand: external_exports.literal(true).optional(),
|
|
15286
15383
|
links: external_exports.object({
|
|
15287
15384
|
documentation: documentationUrlSchema.optional(),
|
|
15288
15385
|
installation: documentationUrlSchema.optional()
|
|
@@ -15320,6 +15417,19 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15320
15417
|
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15321
15418
|
}).strict();
|
|
15322
15419
|
|
|
15420
|
+
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
15421
|
+
var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
|
|
15422
|
+
var harnessLaunchSettingsGetSchema = external_exports.object({
|
|
15423
|
+
harnessId: harnessPluginIdSchema
|
|
15424
|
+
}).strict();
|
|
15425
|
+
var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
|
|
15426
|
+
path: harnessLaunchPathSchema.nullable()
|
|
15427
|
+
});
|
|
15428
|
+
var harnessLaunchSettingsSchema = external_exports.object({
|
|
15429
|
+
path: harnessLaunchPathSchema.nullable(),
|
|
15430
|
+
restartRequired: external_exports.boolean()
|
|
15431
|
+
}).strict();
|
|
15432
|
+
|
|
15323
15433
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
15324
15434
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
15325
15435
|
var nonBlankTextSchema3 = external_exports.string().trim().min(1);
|
|
@@ -15043,9 +15043,104 @@ function date4(params) {
|
|
|
15043
15043
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
15044
15044
|
config(en_default());
|
|
15045
15045
|
|
|
15046
|
+
// ../../shared-contracts/dist/credential-imports.js
|
|
15047
|
+
var credentialSourceSchema = external_exports.object({
|
|
15048
|
+
id: external_exports.string().min(1).max(256),
|
|
15049
|
+
harnessId: external_exports.string().min(1),
|
|
15050
|
+
label: external_exports.string().min(1).max(512),
|
|
15051
|
+
provider: external_exports.enum(["openai-codex", "xai"])
|
|
15052
|
+
}).strict();
|
|
15053
|
+
var credentialImportNameSchema = external_exports.string().regex(/^[a-z][a-z0-9-]{0,47}$/);
|
|
15054
|
+
var credentialImportRecordSchema = external_exports.object({
|
|
15055
|
+
name: credentialImportNameSchema,
|
|
15056
|
+
source: credentialSourceSchema,
|
|
15057
|
+
importedAt: external_exports.string()
|
|
15058
|
+
}).strict();
|
|
15059
|
+
var credentialImportsRequestSchema = external_exports.discriminatedUnion("action", [
|
|
15060
|
+
external_exports.object({ action: external_exports.literal("list") }).strict(),
|
|
15061
|
+
external_exports.object({
|
|
15062
|
+
action: external_exports.literal("import"),
|
|
15063
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
15064
|
+
name: credentialImportNameSchema,
|
|
15065
|
+
confirmed: external_exports.literal(true)
|
|
15066
|
+
}).strict(),
|
|
15067
|
+
external_exports.object({
|
|
15068
|
+
action: external_exports.literal("reimport"),
|
|
15069
|
+
sourceId: external_exports.string().min(1).max(256),
|
|
15070
|
+
name: credentialImportNameSchema,
|
|
15071
|
+
confirmed: external_exports.literal(true)
|
|
15072
|
+
}).strict(),
|
|
15073
|
+
external_exports.object({
|
|
15074
|
+
action: external_exports.literal("remove"),
|
|
15075
|
+
name: credentialImportNameSchema,
|
|
15076
|
+
confirmed: external_exports.literal(true)
|
|
15077
|
+
}).strict()
|
|
15078
|
+
]);
|
|
15079
|
+
var credentialOtherLoginSchema = external_exports.object({
|
|
15080
|
+
provider: external_exports.string().min(1).max(128),
|
|
15081
|
+
type: external_exports.enum(["oauth", "api_key", "unknown"]),
|
|
15082
|
+
/** Best-effort account label (e.g. the email in a Codex token), derived locally when present. */
|
|
15083
|
+
label: external_exports.string().min(1).max(512).optional(),
|
|
15084
|
+
/** Recognized credential vendor, derived from the OAuth token issuer. Absent when unknown. */
|
|
15085
|
+
vendor: external_exports.enum(["openai-codex", "xai"]).optional()
|
|
15086
|
+
}).strict();
|
|
15087
|
+
var credentialImportsResultSchema = external_exports.object({
|
|
15088
|
+
sources: external_exports.array(credentialSourceSchema),
|
|
15089
|
+
targets: external_exports.array(external_exports.object({
|
|
15090
|
+
harnessId: external_exports.string(),
|
|
15091
|
+
providers: external_exports.array(external_exports.enum(["openai-codex", "xai"])),
|
|
15092
|
+
imports: external_exports.array(credentialImportRecordSchema),
|
|
15093
|
+
others: external_exports.array(credentialOtherLoginSchema).default([])
|
|
15094
|
+
}).strict())
|
|
15095
|
+
}).strict();
|
|
15096
|
+
var credentialImportsParamsSchema = external_exports.object({
|
|
15097
|
+
targetHarnessId: external_exports.string().min(1).max(128).optional(),
|
|
15098
|
+
request: credentialImportsRequestSchema
|
|
15099
|
+
}).strict();
|
|
15100
|
+
|
|
15046
15101
|
// ../../shared-contracts/dist/version.js
|
|
15047
15102
|
var WORKSPACE_CONTRACT_VERSION = 1;
|
|
15048
15103
|
|
|
15104
|
+
// ../../shared-contracts/dist/idle-release.js
|
|
15105
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MIN = 5;
|
|
15106
|
+
var IDLE_RELEASE_TIMEOUT_MINUTES_MAX = 1440;
|
|
15107
|
+
var idleReleaseSettingsSchema = external_exports.strictObject({
|
|
15108
|
+
enabled: external_exports.boolean(),
|
|
15109
|
+
timeoutMinutes: external_exports.number().int().min(IDLE_RELEASE_TIMEOUT_MINUTES_MIN).max(IDLE_RELEASE_TIMEOUT_MINUTES_MAX)
|
|
15110
|
+
});
|
|
15111
|
+
var DEFAULT_IDLE_RELEASE_SETTINGS = Object.freeze({
|
|
15112
|
+
enabled: false,
|
|
15113
|
+
timeoutMinutes: 30
|
|
15114
|
+
});
|
|
15115
|
+
|
|
15116
|
+
// ../../shared-contracts/dist/loaded-sessions.js
|
|
15117
|
+
var loadedSessionStateSchema = external_exports.enum([
|
|
15118
|
+
"idle",
|
|
15119
|
+
"running",
|
|
15120
|
+
"busy",
|
|
15121
|
+
"closing",
|
|
15122
|
+
"failed",
|
|
15123
|
+
"blocked"
|
|
15124
|
+
]);
|
|
15125
|
+
var loadedSessionReasonSchema = external_exports.enum([
|
|
15126
|
+
"none",
|
|
15127
|
+
"disabled",
|
|
15128
|
+
"timeout",
|
|
15129
|
+
"operation",
|
|
15130
|
+
"background",
|
|
15131
|
+
"identity",
|
|
15132
|
+
"persistence",
|
|
15133
|
+
"closeFailed"
|
|
15134
|
+
]);
|
|
15135
|
+
var loadedSessionsSchema = external_exports.array(external_exports.strictObject({
|
|
15136
|
+
threadId: external_exports.string(),
|
|
15137
|
+
title: external_exports.string(),
|
|
15138
|
+
harnessId: external_exports.string(),
|
|
15139
|
+
state: loadedSessionStateSchema,
|
|
15140
|
+
reason: loadedSessionReasonSchema,
|
|
15141
|
+
inactiveMs: external_exports.number().nonnegative()
|
|
15142
|
+
}));
|
|
15143
|
+
|
|
15049
15144
|
// ../../shared-contracts/dist/ids.js
|
|
15050
15145
|
var opaqueIdSchema = external_exports.string().refine((value) => value.trim().length > 0, {
|
|
15051
15146
|
message: "Identifier must not be empty or whitespace"
|
|
@@ -15552,6 +15647,8 @@ var pluginPresentationShape = {
|
|
|
15552
15647
|
id: harnessPluginIdSchema,
|
|
15553
15648
|
name: external_exports.string().trim().min(1).max(128),
|
|
15554
15649
|
version: external_exports.string().min(1).max(128),
|
|
15650
|
+
/** The factory accepts a persisted local entrypoint through its construction context. */
|
|
15651
|
+
launchCommand: external_exports.literal(true).optional(),
|
|
15555
15652
|
links: external_exports.object({
|
|
15556
15653
|
documentation: documentationUrlSchema.optional(),
|
|
15557
15654
|
installation: documentationUrlSchema.optional()
|
|
@@ -15589,6 +15686,19 @@ var harnessPluginRouteSchema = external_exports.object({
|
|
|
15589
15686
|
permissionModeId: harnessPermissionModeIdSchema.optional()
|
|
15590
15687
|
}).strict();
|
|
15591
15688
|
|
|
15689
|
+
// ../../shared-contracts/dist/harness-launch-settings.js
|
|
15690
|
+
var harnessLaunchPathSchema = external_exports.string().trim().min(1).max(4096).refine((value) => !/[\u0000\r\n]/u.test(value), "Invalid entrypoint path");
|
|
15691
|
+
var harnessLaunchSettingsGetSchema = external_exports.object({
|
|
15692
|
+
harnessId: harnessPluginIdSchema
|
|
15693
|
+
}).strict();
|
|
15694
|
+
var harnessLaunchSettingsSetSchema = harnessLaunchSettingsGetSchema.extend({
|
|
15695
|
+
path: harnessLaunchPathSchema.nullable()
|
|
15696
|
+
});
|
|
15697
|
+
var harnessLaunchSettingsSchema = external_exports.object({
|
|
15698
|
+
path: harnessLaunchPathSchema.nullable(),
|
|
15699
|
+
restartRequired: external_exports.boolean()
|
|
15700
|
+
}).strict();
|
|
15701
|
+
|
|
15592
15702
|
// ../../shared-contracts/dist/codex-accounts.js
|
|
15593
15703
|
var accountIdSchema = external_exports.string().min(1).max(256).regex(/^[A-Za-z0-9._~-]+$/u);
|
|
15594
15704
|
var nonBlankTextSchema3 = external_exports.string().trim().min(1);
|
|
@@ -16574,7 +16684,7 @@ function withNodeRuntimeOnPath(environment, runtimeExecutable = process.execPath
|
|
|
16574
16684
|
const directories = (environment[pathKey] ?? "").split(delimiter).filter(Boolean);
|
|
16575
16685
|
const equal = platform === "win32" ? (value) => value.toLowerCase() : (value) => value;
|
|
16576
16686
|
if (!directories.some((directory) => equal(directory) === equal(runtimeDirectory))) {
|
|
16577
|
-
directories.
|
|
16687
|
+
directories.push(runtimeDirectory);
|
|
16578
16688
|
}
|
|
16579
16689
|
return { ...environment, [pathKey]: directories.join(delimiter) };
|
|
16580
16690
|
}
|
|
@@ -17199,7 +17309,8 @@ function ompRpcProcessCommand(options, dependencies = {}) {
|
|
|
17199
17309
|
const permissionArguments = options.permissionMode ? ["--approval-mode", options.permissionMode] : [];
|
|
17200
17310
|
const arguments_ = [
|
|
17201
17311
|
"--mode",
|
|
17202
|
-
|
|
17312
|
+
// OMP only creates ask and connects its tool UI in rpc-ui mode.
|
|
17313
|
+
"rpc-ui",
|
|
17203
17314
|
...permissionArguments,
|
|
17204
17315
|
...modelArguments,
|
|
17205
17316
|
...sessionArguments
|
|
@@ -17547,7 +17658,12 @@ var OmpRpcSession = class {
|
|
|
17547
17658
|
if ("confirmed" in response && pending.request.method !== "confirm") {
|
|
17548
17659
|
throw new Error("Omp RPC confirmation does not match the request");
|
|
17549
17660
|
}
|
|
17550
|
-
const frame = "cancelled" in response ? {
|
|
17661
|
+
const frame = "cancelled" in response ? {
|
|
17662
|
+
type: "extension_ui_response",
|
|
17663
|
+
id: response.requestId,
|
|
17664
|
+
cancelled: true,
|
|
17665
|
+
...reason === "expired" ? { timedOut: true } : {}
|
|
17666
|
+
} : "confirmed" in response ? { type: "extension_ui_response", id: response.requestId, confirmed: response.confirmed } : { type: "extension_ui_response", id: response.requestId, value: response.value };
|
|
17551
17667
|
if (!active.interactions.delete(response.requestId)) {
|
|
17552
17668
|
throw new Error("Omp RPC interaction is not pending");
|
|
17553
17669
|
}
|
|
@@ -17857,11 +17973,19 @@ var OmpRpcSession = class {
|
|
|
17857
17973
|
if (!Array.isArray(value.options) || value.options.length === 0 || !value.options.every((option) => typeof option === "string" && option.length > 0)) {
|
|
17858
17974
|
throw new OmpRpcFaultError("protocolError", "Omp RPC select request has invalid options");
|
|
17859
17975
|
}
|
|
17976
|
+
let optionDetails;
|
|
17977
|
+
if (value.optionDetails !== void 0) {
|
|
17978
|
+
if (!Array.isArray(value.optionDetails) || value.optionDetails.length !== value.options.length || !value.optionDetails.every((detail) => typeof detail === "object" && detail !== null && !Array.isArray(detail) && (detail.description === void 0 || typeof detail.description === "string"))) {
|
|
17979
|
+
throw new OmpRpcFaultError("protocolError", "Omp RPC select option details are invalid");
|
|
17980
|
+
}
|
|
17981
|
+
optionDetails = value.optionDetails.map(({ description }) => description === void 0 ? {} : { description });
|
|
17982
|
+
}
|
|
17860
17983
|
request = {
|
|
17861
17984
|
requestId,
|
|
17862
17985
|
method,
|
|
17863
17986
|
title,
|
|
17864
17987
|
options: [...value.options],
|
|
17988
|
+
...optionDetails ? { optionDetails } : {},
|
|
17865
17989
|
...typeof timeoutMs === "number" ? { timeoutMs } : {}
|
|
17866
17990
|
};
|
|
17867
17991
|
} else if (method === "confirm") {
|
|
@@ -18609,7 +18733,8 @@ function synthesizeFileChange(kind, args, cwd) {
|
|
|
18609
18733
|
{
|
|
18610
18734
|
path: displayed.path,
|
|
18611
18735
|
kind: "add",
|
|
18612
|
-
unifiedDiff: createTwoFilesPatch(oldHeader2, newHeader2, "", content, "", "", { context: 3 })
|
|
18736
|
+
unifiedDiff: createTwoFilesPatch(oldHeader2, newHeader2, "", content, "", "", { context: 3 }),
|
|
18737
|
+
diffScope: "fragment"
|
|
18613
18738
|
}
|
|
18614
18739
|
];
|
|
18615
18740
|
}
|
|
@@ -18631,7 +18756,8 @@ function synthesizeFileChange(kind, args, cwd) {
|
|
|
18631
18756
|
kind: "update",
|
|
18632
18757
|
unifiedDiff: createTwoFilesPatch(oldHeader, newHeader, oldText, newText, "", "", {
|
|
18633
18758
|
context: 3
|
|
18634
|
-
})
|
|
18759
|
+
}),
|
|
18760
|
+
diffScope: "fragment"
|
|
18635
18761
|
}
|
|
18636
18762
|
];
|
|
18637
18763
|
}
|
|
@@ -19028,7 +19154,7 @@ var OmpHarnessSession = class {
|
|
|
19028
19154
|
return this.#closePromise;
|
|
19029
19155
|
}
|
|
19030
19156
|
async #selectModel(command) {
|
|
19031
|
-
if (this.#acceptingTurn || this.#
|
|
19157
|
+
if (this.#acceptingTurn || this.#configuring) {
|
|
19032
19158
|
return {
|
|
19033
19159
|
ok: false,
|
|
19034
19160
|
error: {
|
|
@@ -19100,7 +19226,7 @@ var OmpHarnessSession = class {
|
|
|
19100
19226
|
}
|
|
19101
19227
|
};
|
|
19102
19228
|
}
|
|
19103
|
-
if (this.#acceptingTurn || this.#
|
|
19229
|
+
if (this.#acceptingTurn || this.#configuring) {
|
|
19104
19230
|
return {
|
|
19105
19231
|
ok: false,
|
|
19106
19232
|
error: {
|
|
@@ -19663,7 +19789,11 @@ var OmpHarnessSession = class {
|
|
|
19663
19789
|
id: "answer",
|
|
19664
19790
|
type: "choice",
|
|
19665
19791
|
prompt: request.title,
|
|
19666
|
-
options: request.options.map((option) => ({
|
|
19792
|
+
options: request.options.map((option, index) => ({
|
|
19793
|
+
value: option,
|
|
19794
|
+
label: option,
|
|
19795
|
+
...request.optionDetails?.[index]?.description ? { description: request.optionDetails[index].description } : {}
|
|
19796
|
+
})),
|
|
19667
19797
|
multiple: false,
|
|
19668
19798
|
allowOther: false,
|
|
19669
19799
|
optional: false
|
|
@@ -19885,12 +20015,17 @@ var OmpHarnessSession = class {
|
|
|
19885
20015
|
try {
|
|
19886
20016
|
const kind = fileMutatingKind(event.toolName);
|
|
19887
20017
|
const args = tool.arguments;
|
|
19888
|
-
if (kind && synthesizeFileChange(kind, args, this.#cwd)) {
|
|
20018
|
+
if (kind && !patchFromResult(event.result) && synthesizeFileChange(kind, args, this.#cwd)) {
|
|
19889
20019
|
return;
|
|
19890
20020
|
}
|
|
19891
20021
|
const changes = reliableFileChange(event.toolName, args, event.result, this.#cwd);
|
|
19892
20022
|
if (changes) {
|
|
19893
|
-
const fileItem = {
|
|
20023
|
+
const fileItem = {
|
|
20024
|
+
type: "fileChange",
|
|
20025
|
+
itemId: this.#newItemId(),
|
|
20026
|
+
sourceItemIds: [tool.item.itemId],
|
|
20027
|
+
changes
|
|
20028
|
+
};
|
|
19894
20029
|
this.#event({ type: "item.started", turnId: active.command.turnId, item: fileItem });
|
|
19895
20030
|
this.#completeItem(active, fileItem, { status: "succeeded" });
|
|
19896
20031
|
}
|