clay-server 5.5.0-beta.2 → 5.5.0-beta.3
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/lib/clay-product-control-input.js +2 -2
- package/lib/clay-product-control-tools.js +1 -1
- package/lib/clay-product-control.js +4 -3
- package/lib/daemon-project-access.js +10 -2
- package/lib/daemon-projects.js +16 -4
- package/lib/daemon-worktree-controls.js +171 -0
- package/lib/daemon.js +14 -63
- package/lib/personal-provider-install.js +85 -0
- package/lib/personal-provider-settings.js +94 -0
- package/lib/project-logs-service.js +2 -2
- package/lib/project-pair-task-control.js +1 -1
- package/lib/project-pending-message-queue.js +6 -2
- package/lib/project-product-control.js +1 -0
- package/lib/project-session-actions.js +46 -3
- package/lib/project-session-pair.js +2 -0
- package/lib/project-sessions.js +11 -3
- package/lib/project-user-message.js +5 -1
- package/lib/project-vendor-login.js +95 -32
- package/lib/project-worker-auth.js +71 -0
- package/lib/project-worker-conversation.js +11 -2
- package/lib/project.js +9 -0
- package/lib/public/app.js +22 -0
- package/lib/public/css/icon-strip.css +5 -0
- package/lib/public/css/overlays.css +18 -0
- package/lib/public/css/settings-shell.css +14 -0
- package/lib/public/css/settings-ui.css +6 -0
- package/lib/public/css/split-view-layout.css +16 -11
- package/lib/public/modules/agent-message-bubbles.js +33 -4
- package/lib/public/modules/app-messages.js +7 -1
- package/lib/public/modules/app-projects.js +3 -4
- package/lib/public/modules/clay-control-copy.js +1 -0
- package/lib/public/modules/clay-tool-presentation.js +1 -1
- package/lib/public/modules/generation-stop.js +4 -4
- package/lib/public/modules/pane-activation.js +2 -2
- package/lib/public/modules/pane-bridge.js +4 -2
- package/lib/public/modules/personal-provider-context.js +11 -0
- package/lib/public/modules/project-settings.js +1 -1
- package/lib/public/modules/settings-section-nav.js +58 -0
- package/lib/public/modules/settings-shell-registry.js +4 -2
- package/lib/public/modules/settings-shell.js +17 -6
- package/lib/public/modules/sidebar-projects.js +23 -9
- package/lib/public/modules/split-pane-force-stop.js +47 -0
- package/lib/public/modules/split-pane-header-state.js +11 -1
- package/lib/public/modules/split-pane-renderer.js +2 -2
- package/lib/public/modules/split-view-workers.js +32 -17
- package/lib/public/modules/stt-settings.js +21 -4
- package/lib/public/modules/user-settings-layout.js +11 -8
- package/lib/public/modules/user-settings-provider-install.js +42 -0
- package/lib/public/modules/user-settings-providers.js +102 -0
- package/lib/public/modules/user-settings-voice.js +50 -41
- package/lib/public/modules/vendor-login-browser.js +1 -1
- package/lib/public/modules/vendor-login.js +72 -12
- package/lib/public/modules/worker-activity-indicator.js +49 -0
- package/lib/public/modules/worker-message-previews.js +47 -11
- package/lib/public/modules/worker-stop-controls.js +36 -0
- package/lib/public/modules/worktree-controls.js +86 -0
- package/lib/public/pane-assets/{app-SEMVZ4AY.js → app-ANJS2LSK.js} +1 -1
- package/lib/public/pane-assets/{chunk-4YE4RU27.js → chunk-32YIYF7R.js} +1 -1
- package/lib/public/pane-assets/{chunk-BNNPJJVG.js → chunk-3EJ5IAHZ.js} +1 -1
- package/lib/public/pane-assets/{chunk-C6P7PICY.js → chunk-3TIVBAKM.js} +1 -1
- package/lib/public/pane-assets/{chunk-XYZGVYWW.js → chunk-4QFNLHW5.js} +1 -1
- package/lib/public/pane-assets/{chunk-FK3YLGAP.js → chunk-5XMZMIFG.js} +1 -1
- package/lib/public/pane-assets/chunk-6S2C7Q2N.js +1 -0
- package/lib/public/pane-assets/chunk-7B2GJI57.js +1 -0
- package/lib/public/pane-assets/{chunk-QBCM7QEA.js → chunk-BOFNCPTN.js} +1 -1
- package/lib/public/pane-assets/{chunk-CQNPEH2M.js → chunk-CXWAJEN5.js} +1 -1
- package/lib/public/pane-assets/{chunk-5UBN6GR7.js → chunk-EWTXBZJO.js} +1 -1
- package/lib/public/pane-assets/{chunk-YR5GH3GI.js → chunk-G35ZOJGP.js} +1 -1
- package/lib/public/pane-assets/chunk-HYT24UBT.js +1 -0
- package/lib/public/pane-assets/chunk-ISQEPZMY.js +1 -0
- package/lib/public/pane-assets/{chunk-E4VM2IDB.js → chunk-JM46WGDH.js} +1 -1
- package/lib/public/pane-assets/chunk-LBJG4MK2.js +174 -0
- package/lib/public/pane-assets/{chunk-K4PAN77B.js → chunk-P3AK4ORJ.js} +1 -1
- package/lib/public/pane-assets/chunk-QKPGE7DN.js +1 -0
- package/lib/public/pane-assets/chunk-TS5JUEVH.js +1 -0
- package/lib/public/pane-assets/{chunk-QWQB2YRF.js → chunk-UGH5MCNK.js} +1 -1
- package/lib/public/pane-assets/{chunk-YVVT3CTV.js → chunk-V5DLPSLT.js} +1 -1
- package/lib/public/pane-assets/chunk-VFKDU64W.js +1 -0
- package/lib/public/pane-assets/{chunk-U7EHYRJZ.js → chunk-XSSTR6GC.js} +1 -1
- package/lib/public/pane-assets/{chunk-M5CWIIIT.js → chunk-XVESKMU3.js} +1 -1
- package/lib/public/pane-assets/manifest.json +394 -386
- package/lib/public/pane-assets/style-VBVCWV44.css +1 -0
- package/lib/sdk-bridge.js +40 -6
- package/lib/sdk-force-stop.js +62 -0
- package/lib/sdk-message-processor.js +2 -1
- package/lib/server-worktree-controls.js +34 -0
- package/lib/server.js +11 -1
- package/lib/session-force-stop-support.js +15 -0
- package/lib/sessions.js +6 -1
- package/lib/terminal-manager.js +1 -1
- package/lib/terminal.js +13 -1
- package/lib/vendor-login-browser-flow.js +1 -1
- package/lib/worker-activity.js +26 -0
- package/lib/worker-message-previews.js +12 -7
- package/lib/worktree-branch.js +57 -0
- package/lib/worktree-identity.js +39 -0
- package/lib/worktree-preferences.js +25 -0
- package/lib/worktree-ref-transaction.js +36 -0
- package/lib/yoke/adapters/antigravity.js +3 -0
- package/lib/yoke/force-termination.js +26 -0
- package/lib/yoke/interface.js +14 -0
- package/lib/yoke/process-force-termination.js +24 -0
- package/lib/yoke/provider-install-recipes.js +20 -0
- package/lib/yoke/vendor-registry.js +20 -1
- package/package.json +1 -1
- package/lib/public/pane-assets/chunk-6AGSOAOD.js +0 -1
- package/lib/public/pane-assets/chunk-AATAIAXL.js +0 -1
- package/lib/public/pane-assets/chunk-D3CE5FZL.js +0 -1
- package/lib/public/pane-assets/chunk-GKSLBGVE.js +0 -168
- package/lib/public/pane-assets/chunk-J5PTSKJ6.js +0 -1
- package/lib/public/pane-assets/chunk-QPBO6ID4.js +0 -1
- package/lib/public/pane-assets/chunk-RA6VUJTY.js +0 -1
- package/lib/public/pane-assets/chunk-XOZUM5ET.js +0 -1
- package/lib/public/pane-assets/style-DZX6JAMF.css +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Fixed prepared Git ref transaction; validation runs while Git owns the ref locks.
|
|
2
|
+
var spawn = require('child_process').spawn;
|
|
3
|
+
var wrap = require('./os-users').wrapSpawnAsUser;
|
|
4
|
+
function remove(root, input, os, validate) {
|
|
5
|
+
return new Promise(function (resolve, reject) {
|
|
6
|
+
var env = Object.assign({}, process.env, { GIT_TERMINAL_PROMPT: '0' });
|
|
7
|
+
if (os && os.home) env.HOME = os.home;
|
|
8
|
+
if (os && os.user) { env.USER = os.user; env.LOGNAME = os.user; }
|
|
9
|
+
var options = { cwd: root, env: env, stdio: ['pipe', 'pipe', 'pipe'] };
|
|
10
|
+
if (os) { options.uid = os.uid; options.gid = os.gid; }
|
|
11
|
+
var wrapped = wrap('git', ['update-ref', '--stdin'], options);
|
|
12
|
+
var child = spawn(wrapped.command, wrapped.args, wrapped.options);
|
|
13
|
+
var output = '', detail = '', failure = null, prepared = false, committed = false;
|
|
14
|
+
var timer = setTimeout(function () { failure = new Error('Local branch transaction timed out; inspect the branch before recovery.'); child.kill('SIGTERM'); }, 15000);
|
|
15
|
+
child.on('error', function (error) { failure = error; });
|
|
16
|
+
child.stdin.on('error', function (error) { failure = failure || error; });
|
|
17
|
+
child.stderr.on('data', function (chunk) { detail = (detail + chunk).slice(-4096); });
|
|
18
|
+
child.stdout.on('data', function (chunk) {
|
|
19
|
+
output = (output + chunk).slice(-4096);
|
|
20
|
+
if (!prepared && output.indexOf('prepare: ok\n') >= 0) {
|
|
21
|
+
prepared = true;
|
|
22
|
+
if (failure) { child.stdin.end('abort\n'); return; }
|
|
23
|
+
try { validate(); child.stdin.end('commit\n'); }
|
|
24
|
+
catch (error) { failure = error; child.stdin.end('abort\n'); }
|
|
25
|
+
}
|
|
26
|
+
if (output.indexOf('commit: ok\n') >= 0) committed = true;
|
|
27
|
+
});
|
|
28
|
+
child.on('close', function (code) {
|
|
29
|
+
clearTimeout(timer);
|
|
30
|
+
if (failure || code !== 0 || !committed) reject(failure || new Error('Local branch transaction was not confirmed: ' + detail.trim()));
|
|
31
|
+
else resolve(true);
|
|
32
|
+
});
|
|
33
|
+
child.stdin.write(input);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
module.exports = { remove: remove };
|
|
@@ -379,6 +379,9 @@ function createAntigravityQueryHandle(binaryPath, queryOpts, onFinished) {
|
|
|
379
379
|
endEvents();
|
|
380
380
|
},
|
|
381
381
|
};
|
|
382
|
+
handle.forceStop = require('../process-force-termination').create(function () { return processHandle; }, function () { return processExited; }, function () {
|
|
383
|
+
inputEnded = true; messages = []; if (killTimer) clearTimeout(killTimer); endEvents();
|
|
384
|
+
}, queryOpts._forceTerminationOptions);
|
|
382
385
|
removeAbort = bindAbort(queryOpts.abortController, function () { handle.abort(); });
|
|
383
386
|
return handle;
|
|
384
387
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// A declaration and an actual exact-query method are both required.
|
|
2
|
+
var UNSUPPORTED = 'Force termination is not yet supported for this vendor';
|
|
3
|
+
function support(provider, handle) {
|
|
4
|
+
var declared = require('./provider-contract').resolve(provider).forceTermination === true;
|
|
5
|
+
if (!declared) return { supported: false, reason: UNSUPPORTED };
|
|
6
|
+
if (!handle || typeof handle.forceStop !== 'function') return { supported: false, reason: 'Force termination is unavailable for this session runtime' };
|
|
7
|
+
return { supported: true, scope: 'query-runtime', externalEffects: 'unconfirmed' };
|
|
8
|
+
}
|
|
9
|
+
function operation(provider, handle) {
|
|
10
|
+
var state = support(provider, handle);
|
|
11
|
+
if (!state.supported) throw new Error(state.reason);
|
|
12
|
+
var method = handle.forceStop;
|
|
13
|
+
return function () {
|
|
14
|
+
var timer, effect;
|
|
15
|
+
try { effect = method.call(handle); } catch (error) { effect = Promise.reject(error); }
|
|
16
|
+
return Promise.race([Promise.resolve(effect), new Promise(function (resolve) {
|
|
17
|
+
timer = setTimeout(function () { resolve(null); }, 6000);
|
|
18
|
+
})]).then(function (result) {
|
|
19
|
+
if (!result || result.status !== 'terminated' || result.scope !== 'query-runtime') {
|
|
20
|
+
return { status: 'unconfirmed', scope: 'query-runtime', externalEffects: 'unconfirmed' };
|
|
21
|
+
}
|
|
22
|
+
return { status: 'terminated', scope: 'query-runtime', externalEffects: 'unconfirmed' };
|
|
23
|
+
}).finally(function () { clearTimeout(timer); });
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
module.exports = { support: support, operation: operation, UNSUPPORTED: UNSUPPORTED };
|
package/lib/yoke/interface.js
CHANGED
|
@@ -78,6 +78,20 @@ var INITIALIZE_TIMEOUT_MS = 90000;
|
|
|
78
78
|
* .createToolServer(def): ToolServer (opaque)
|
|
79
79
|
* .createQuery(opts): QueryHandle
|
|
80
80
|
*
|
|
81
|
+
* Force termination (independent of ordinary abort/close):
|
|
82
|
+
* providerContract.forceTermination === true (or registry declaration), AND
|
|
83
|
+
* QueryHandle.forceStop(): Promise<{status: "terminated"|"unconfirmed",
|
|
84
|
+
* scope: "query-runtime", externalEffects: "unconfirmed"}>.
|
|
85
|
+
* Missing/unknown declarations or missing methods mean unsupported. Never infer
|
|
86
|
+
* support from abort, close, stopAndWait, kill delivery or iterator completion.
|
|
87
|
+
* forceStop must synchronously fence new query input/startup, terminate only the
|
|
88
|
+
* runtime owned by this query, preserve sibling/shared provider processes, and
|
|
89
|
+
* settle within a bounded deadline. "terminated" requires observed exact runtime
|
|
90
|
+
* exit (or proof it never started/already exited); acknowledgements are not proof.
|
|
91
|
+
* Detached commands, descendants and external requests remain unconfirmed.
|
|
92
|
+
* Host authorization, all-target preflight, generation fencing, queue pause and
|
|
93
|
+
* explicit resumption still apply. No uncertain work may replay automatically.
|
|
94
|
+
*
|
|
81
95
|
* Optional query orchestration contract (.queryContract):
|
|
82
96
|
* toolTransport: "sdk-mcp" | "dynamic" | "stdio-mcp" (absent: unsupported)
|
|
83
97
|
* catalogLifetime: "query" | "conversation"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Terminate only the child owned by this query; never a shared server or PID scan.
|
|
2
|
+
function create(getProcess, hasExited, stopInput, options) {
|
|
3
|
+
var pending = null;
|
|
4
|
+
return function forceStop() {
|
|
5
|
+
if (pending) return pending;
|
|
6
|
+
stopInput();
|
|
7
|
+
pending = new Promise(function (resolve) {
|
|
8
|
+
var child = getProcess(), timer;
|
|
9
|
+
function finish(terminated) {
|
|
10
|
+
clearTimeout(timer);
|
|
11
|
+
if (child) child.removeListener('exit', exited);
|
|
12
|
+
resolve({ status: terminated ? 'terminated' : 'unconfirmed', scope: 'query-runtime', externalEffects: 'unconfirmed' });
|
|
13
|
+
}
|
|
14
|
+
function exited() { finish(true); }
|
|
15
|
+
if (!child || hasExited()) { finish(true); return; }
|
|
16
|
+
child.once('exit', exited);
|
|
17
|
+
timer = setTimeout(function () { finish(false); }, options && options.timeoutMs || 5000);
|
|
18
|
+
try { if (child.kill('SIGKILL') === false) finish(false); }
|
|
19
|
+
catch (error) { finish(false); }
|
|
20
|
+
});
|
|
21
|
+
return pending;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
module.exports = { create: create };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Registry-owned installation contracts. Sources verified 2026-10-23.
|
|
2
|
+
// No caller-supplied executable, package, URL, flags or shell input is accepted.
|
|
3
|
+
var recipes = {
|
|
4
|
+
claude: Object.freeze({ revision: 'claude-native-1', source: 'https://code.claude.com/docs/en/setup',
|
|
5
|
+
command: 'curl -fsSL https://claude.ai/install.sh | bash',
|
|
6
|
+
effects: 'Downloads and runs the official native installer in your runtime account. Writes ~/.local/bin/claude and ~/.local/share/claude. Native installations auto-update.' }),
|
|
7
|
+
codex: Object.freeze({ revision: 'codex-npm-user-1', source: 'https://developers.openai.com/cookbook/examples/codex/using_goals_in_codex',
|
|
8
|
+
command: 'npm install --global --prefix "$HOME/.local" --cache "$HOME/.cache/clay-provider-npm" --userconfig /dev/null --globalconfig /dev/null --registry https://registry.npmjs.org @openai/codex@latest',
|
|
9
|
+
effects: 'Downloads the official npm package and runs its installation scripts as your runtime account. Requires Node.js and npm on the runtime PATH. Writes ~/.local and ~/.cache/clay-provider-npm; does not edit shell profiles. ~/.local/bin must be on the runtime PATH.',
|
|
10
|
+
configurationSource: 'https://docs.npmjs.com/cli/v11/using-npm/config/' })
|
|
11
|
+
};
|
|
12
|
+
function eligible(recipe, identity) {
|
|
13
|
+
var os = require('os');
|
|
14
|
+
if (!recipe || Object.keys(recipes).every(function (id) { return recipes[id] !== recipe; })) return 'No reviewed installation recipe is registered for this provider.';
|
|
15
|
+
if (['linux','darwin'].indexOf(process.platform) < 0 || ['x64','arm64'].indexOf(process.arch) < 0) return 'Reviewed installation supports only macOS or Linux on x64 or ARM64.';
|
|
16
|
+
if (process.platform === 'darwin' && Number(os.release().split('.')[0]) < 22) return 'Reviewed installation requires macOS 13 or later.';
|
|
17
|
+
if (!identity || !Number.isInteger(identity.uid) || identity.uid <= 0 || !Number.isInteger(identity.gid) || !identity.user || typeof identity.home !== 'string' || identity.home[0] !== '/' || identity.home === '/' || /[\r\n\0]/.test(identity.home)) return 'A non-root runtime OS account with an absolute HOME is required. Ask the server operator to complete setup.';
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
module.exports = { claude: recipes.claude, codex: recipes.codex, eligible: eligible };
|
|
@@ -10,6 +10,8 @@ var EFFORT_ORDER = ["minimal", "low", "medium", "high", "xhigh", "max", "ultra"]
|
|
|
10
10
|
// sessionBoundTools gates whether per-session MCP tool mounting reaches a vendor's process.
|
|
11
11
|
var VENDOR_REGISTRY = {
|
|
12
12
|
claude: {
|
|
13
|
+
setupUrl: "https://code.claude.com/docs/en/setup",
|
|
14
|
+
installRecipe: require("./provider-install-recipes").claude,
|
|
13
15
|
readSessionHistory: require("./cli-sessions").readCliSessionHistory,
|
|
14
16
|
terminalResumeCommand: "claude --resume",
|
|
15
17
|
planPathSegments: [".claude/plans/"],
|
|
@@ -47,6 +49,8 @@ var VENDOR_REGISTRY = {
|
|
|
47
49
|
rateLimitTracking: true,
|
|
48
50
|
},
|
|
49
51
|
codex: {
|
|
52
|
+
setupUrl: "https://learn.chatgpt.com/docs/codex/cli",
|
|
53
|
+
installRecipe: require("./provider-install-recipes").codex,
|
|
50
54
|
credentialDirectories: [".codex"],
|
|
51
55
|
preferredModelFamilies: ["astra", "sol", "gpt", "o"],
|
|
52
56
|
classifyError: require("./providers/codex-errors").classify,
|
|
@@ -78,6 +82,7 @@ var VENDOR_REGISTRY = {
|
|
|
78
82
|
rateLimitTracking: true,
|
|
79
83
|
},
|
|
80
84
|
muse: {
|
|
85
|
+
setupUrl: "https://dev.meta.ai/docs/overview",
|
|
81
86
|
displayName: "Muse Code",
|
|
82
87
|
loginCommand: "muse",
|
|
83
88
|
binaryName: "muse",
|
|
@@ -96,6 +101,8 @@ var VENDOR_REGISTRY = {
|
|
|
96
101
|
configuration: { auto: true, permissionModes: [{ value: "default", label: "Ask" }] },
|
|
97
102
|
},
|
|
98
103
|
antigravity: {
|
|
104
|
+
setupUrl: "https://www.antigravity.google/docs/getting-started?tab=cli",
|
|
105
|
+
forceTermination: true,
|
|
99
106
|
resolveExecutable: require("./providers/antigravity-executable").resolve,
|
|
100
107
|
mapQueryOptions: require("./options/antigravity").map,
|
|
101
108
|
displayName: "Antigravity CLI",
|
|
@@ -110,6 +117,7 @@ var VENDOR_REGISTRY = {
|
|
|
110
117
|
rateLimitTracking: false,
|
|
111
118
|
},
|
|
112
119
|
opencode: {
|
|
120
|
+
setupUrl: "https://opencode.ai/docs/",
|
|
113
121
|
resolveExecutable: require("./discovery").acpResolver("opencode"),
|
|
114
122
|
mapQueryOptions: require("./options/acp").map,
|
|
115
123
|
displayName: "OpenCode",
|
|
@@ -124,6 +132,7 @@ var VENDOR_REGISTRY = {
|
|
|
124
132
|
rateLimitTracking: false,
|
|
125
133
|
},
|
|
126
134
|
kimi: {
|
|
135
|
+
setupUrl: "https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html",
|
|
127
136
|
resolveExecutable: require("./discovery").acpResolver("kimi"),
|
|
128
137
|
mapQueryOptions: require("./options/acp").map,
|
|
129
138
|
displayName: "Kimi Code",
|
|
@@ -138,6 +147,7 @@ var VENDOR_REGISTRY = {
|
|
|
138
147
|
rateLimitTracking: false,
|
|
139
148
|
},
|
|
140
149
|
grok: {
|
|
150
|
+
setupUrl: "https://docs.x.ai/build/overview",
|
|
141
151
|
resolveExecutable: require("./discovery").acpResolver("grok"),
|
|
142
152
|
mapQueryOptions: require("./options/acp").map,
|
|
143
153
|
displayName: "Grok Build",
|
|
@@ -152,6 +162,7 @@ var VENDOR_REGISTRY = {
|
|
|
152
162
|
rateLimitTracking: false,
|
|
153
163
|
},
|
|
154
164
|
copilot: {
|
|
165
|
+
setupUrl: "https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli",
|
|
155
166
|
resolveExecutable: require("./discovery").acpResolver("copilot"),
|
|
156
167
|
mapQueryOptions: require("./options/acp").map,
|
|
157
168
|
displayName: "GitHub Copilot CLI",
|
|
@@ -166,6 +177,7 @@ var VENDOR_REGISTRY = {
|
|
|
166
177
|
rateLimitTracking: false,
|
|
167
178
|
},
|
|
168
179
|
qwen: {
|
|
180
|
+
setupUrl: "https://qwenlm.github.io/qwen-code-docs/en/users/quickstart/",
|
|
169
181
|
resolveExecutable: require("./discovery").acpResolver("qwen"),
|
|
170
182
|
mapQueryOptions: require("./options/acp").map,
|
|
171
183
|
displayName: "Qwen Code",
|
|
@@ -180,6 +192,7 @@ var VENDOR_REGISTRY = {
|
|
|
180
192
|
rateLimitTracking: false,
|
|
181
193
|
},
|
|
182
194
|
junie: {
|
|
195
|
+
setupUrl: "https://junie.jetbrains.com/docs/junie-cli.html",
|
|
183
196
|
resolveExecutable: require("./discovery").acpResolver("junie"),
|
|
184
197
|
mapQueryOptions: require("./options/acp").map,
|
|
185
198
|
displayName: "Junie CLI",
|
|
@@ -194,6 +207,7 @@ var VENDOR_REGISTRY = {
|
|
|
194
207
|
rateLimitTracking: false,
|
|
195
208
|
},
|
|
196
209
|
kiro: {
|
|
210
|
+
setupUrl: "https://kiro.dev/docs/cli/",
|
|
197
211
|
normalizeContext: require("./usage").tokenContext,
|
|
198
212
|
resolveExecutable: require("./discovery").bundledResolver(function() { return require("./kiro-acp-server").findKiroPath(); }, "kiro-cli"),
|
|
199
213
|
mapQueryOptions: require("./options/kiro").map,
|
|
@@ -210,6 +224,11 @@ var VENDOR_REGISTRY = {
|
|
|
210
224
|
},
|
|
211
225
|
};
|
|
212
226
|
|
|
227
|
+
// No other adapter currently confirms exact-query hard termination.
|
|
228
|
+
Object.keys(VENDOR_REGISTRY).forEach(function (vendor) {
|
|
229
|
+
if (VENDOR_REGISTRY[vendor].forceTermination !== true) VENDOR_REGISTRY[vendor].forceTermination = false;
|
|
230
|
+
});
|
|
231
|
+
|
|
213
232
|
function getVendorInfo(vendor) {
|
|
214
233
|
return VENDOR_REGISTRY[vendor] || null;
|
|
215
234
|
}
|
|
@@ -243,7 +262,7 @@ function publicInfo() {
|
|
|
243
262
|
var result = {};
|
|
244
263
|
Object.keys(VENDOR_REGISTRY).forEach(function(vendor) {
|
|
245
264
|
var info = VENDOR_REGISTRY[vendor], entry = {};
|
|
246
|
-
["displayName", "terminalResumeCommand", "planPathSegments", "loginCommand", "binaryName", "avatar", "sessionModes", "effortLevels", "osUserIsolation", "sessionBoundTools", "usageDashboard", "rateLimitTracking", "rateLimitScheduling", "acceptsUnstampedQuota", "configuration"].forEach(function(key) {
|
|
265
|
+
["forceTermination", "displayName", "terminalResumeCommand", "planPathSegments", "loginCommand", "binaryName", "avatar", "sessionModes", "effortLevels", "osUserIsolation", "sessionBoundTools", "usageDashboard", "rateLimitTracking", "rateLimitScheduling", "acceptsUnstampedQuota", "configuration"].forEach(function(key) {
|
|
247
266
|
if (info[key] !== undefined) entry[key] = info[key];
|
|
248
267
|
});
|
|
249
268
|
entry.browserLoginSupported = typeof info.browserLoginCommand === "string" && Array.isArray(info.oauthHosts) && info.oauthHosts.length > 0;
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as a,m as b,n as c,o as d}from"./chunk-GKSLBGVE.js";import"./chunk-4YE4RU27.js";import"./chunk-JIV7O5GN.js";import"./chunk-YVVT3CTV.js";import"./chunk-BNNPJJVG.js";import"./chunk-K4PAN77B.js";import"./chunk-R7QVVFUG.js";import"./chunk-5UBN6GR7.js";import"./chunk-VZ2OKDAO.js";export{a as closeLinear,c as handleLinearResult,d as initLinearPanel,b as openLinear};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as c,y as a,z as b}from"./chunk-GKSLBGVE.js";import"./chunk-4YE4RU27.js";import"./chunk-JIV7O5GN.js";import"./chunk-YVVT3CTV.js";import"./chunk-BNNPJJVG.js";import"./chunk-K4PAN77B.js";import"./chunk-R7QVVFUG.js";import"./chunk-5UBN6GR7.js";import"./chunk-VZ2OKDAO.js";export{a as closeLoginBrowser,c as handleLoginBrowserMessage,b as openLoginBrowser};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{hc as a,ic as b,jc as c,kc as d}from"./chunk-GKSLBGVE.js";import"./chunk-4YE4RU27.js";import"./chunk-JIV7O5GN.js";import"./chunk-YVVT3CTV.js";import"./chunk-BNNPJJVG.js";import"./chunk-K4PAN77B.js";import"./chunk-R7QVVFUG.js";import"./chunk-5UBN6GR7.js";import"./chunk-VZ2OKDAO.js";export{c as closeDebatesWorkbench,a as handleDebatesWorkbenchState,d as initDebatesWorkbench,b as openDebatesWorkbench};
|