svamp-cli 0.2.263 → 0.2.264
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/{agentCommands-DWshkZ3Z.mjs → agentCommands-BZPDL-1B.mjs} +5 -5
- package/dist/{auth-rJ0N4qyZ.mjs → auth-Dv8z9Dg0.mjs} +1 -1
- package/dist/cli-CNorTj26.mjs +2460 -0
- package/dist/cli.mjs +3 -2438
- package/dist/{commands-f9G9DwC4.mjs → commands-BmpHRl5s.mjs} +1 -1
- package/dist/{commands-aGQUafx6.mjs → commands-CSNOKRVn.mjs} +2 -2
- package/dist/{commands-B_N0vONs.mjs → commands-DNyzbWPw.mjs} +6 -6
- package/dist/{commands-DfQA4ZX7.mjs → commands-D_YqjDY4.mjs} +4 -2
- package/dist/{commands-BrjfwC7G.mjs → commands-Dg_nTA2I.mjs} +2 -2
- package/dist/{commands-Dni5WrqV.mjs → commands-DuPRCS2G.mjs} +1 -1
- package/dist/{commands-BsQqZG9I.mjs → commands-Kk7AH5dR.mjs} +1 -1
- package/dist/{fleet-Bjg6QRMP.mjs → fleet-DkFOlkxS.mjs} +1 -1
- package/dist/{frpc-YKxUZoMA.mjs → frpc-DmaWRu0M.mjs} +1 -1
- package/dist/{headlessCli-DfKlYX0C.mjs → headlessCli-DFsJaJ2p.mjs} +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{package-Cl0NCpCL.mjs → package-Cz5Z0buw.mjs} +2 -2
- package/dist/{rpc-B4zSdme1.mjs → rpc-Db3BR76v.mjs} +1 -1
- package/dist/{rpc-DrA4F31T.mjs → rpc-DswYjrCh.mjs} +1 -1
- package/dist/{run-btCn5o6B.mjs → run-C3qTQEDV.mjs} +1 -1
- package/dist/{run-DAOLRpvC.mjs → run-kkeXP2d_.mjs} +101 -23
- package/dist/{scheduler-DfbBMHWm.mjs → scheduler-DhKDP3hC.mjs} +1 -1
- package/dist/{serveCommands-YmniTKX9.mjs → serveCommands-BVJR3K9P.mjs} +5 -5
- package/dist/{serveManager-DVDWrx2q.mjs → serveManager-a_dIQuK4.mjs} +2 -2
- package/dist/{sideband-DPLjT788.mjs → sideband-CIJUNKUA.mjs} +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import fs__default from 'fs';
|
|
3
3
|
import { resolve, join, relative } from 'path';
|
|
4
|
-
import {
|
|
4
|
+
import { P as parseFrontmatter, Q as getSkillsServer, T as getSkillsWorkspaceName, U as getSkillsCollectionName, V as fetchWithTimeout, W as searchSkills, X as SKILLS_DIR, Y as getSkillInfo, Z as downloadSkillFile, _ as listSkillFiles } from './run-kkeXP2d_.mjs';
|
|
5
5
|
import 'fs/promises';
|
|
6
6
|
import 'url';
|
|
7
7
|
import 'child_process';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-
|
|
3
|
+
import { connectAndGetMachine, resolveSessionId, createWorktree, connectAndResolveSession } from './commands-DuPRCS2G.mjs';
|
|
4
4
|
import { execSync } from 'node:child_process';
|
|
5
|
-
import { u as updateIssue,
|
|
5
|
+
import { u as updateIssue, o as addComment, q as addIssue, i as shortId } from './run-kkeXP2d_.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'os';
|
|
8
8
|
import 'fs/promises';
|
|
@@ -58,7 +58,7 @@ async function serviceExpose(args) {
|
|
|
58
58
|
process.exit(1);
|
|
59
59
|
}
|
|
60
60
|
if (foreground) {
|
|
61
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
61
|
+
const { runFrpcTunnel } = await import('./frpc-DmaWRu0M.mjs');
|
|
62
62
|
await runFrpcTunnel(name, ports, void 0, {
|
|
63
63
|
group,
|
|
64
64
|
groupKey,
|
|
@@ -68,7 +68,7 @@ async function serviceExpose(args) {
|
|
|
68
68
|
});
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
71
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
72
72
|
const { server, machine } = await connectAndGetMachine();
|
|
73
73
|
try {
|
|
74
74
|
const status = await machine.tunnelStart({
|
|
@@ -90,7 +90,7 @@ async function serviceExpose(args) {
|
|
|
90
90
|
console.log(` port ${port}: ${url}`);
|
|
91
91
|
}
|
|
92
92
|
if (process.env.SVAMP_SESSION_ID) {
|
|
93
|
-
const { autoAddSessionLink } = await import('./agentCommands-
|
|
93
|
+
const { autoAddSessionLink } = await import('./agentCommands-BZPDL-1B.mjs');
|
|
94
94
|
let added = 0;
|
|
95
95
|
for (const [port, url] of urlEntries) {
|
|
96
96
|
const label = urlEntries.length > 1 ? `${name}:${port}` : name;
|
|
@@ -138,7 +138,7 @@ async function serviceServe(args) {
|
|
|
138
138
|
server.once("error", reject);
|
|
139
139
|
server.listen(servePort, "127.0.0.1", () => resolve());
|
|
140
140
|
});
|
|
141
|
-
const { runFrpcTunnel } = await import('./frpc-
|
|
141
|
+
const { runFrpcTunnel } = await import('./frpc-DmaWRu0M.mjs');
|
|
142
142
|
void server;
|
|
143
143
|
await runFrpcTunnel(name, [servePort]);
|
|
144
144
|
} catch (err) {
|
|
@@ -148,7 +148,7 @@ async function serviceServe(args) {
|
|
|
148
148
|
}
|
|
149
149
|
async function serviceList(_args) {
|
|
150
150
|
try {
|
|
151
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
151
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
152
152
|
const { server, machine } = await connectAndGetMachine();
|
|
153
153
|
try {
|
|
154
154
|
const tunnels = await machine.tunnelList({});
|
|
@@ -188,7 +188,7 @@ async function serviceDelete(args) {
|
|
|
188
188
|
process.exit(1);
|
|
189
189
|
}
|
|
190
190
|
try {
|
|
191
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
191
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
192
192
|
const { server, machine } = await connectAndGetMachine();
|
|
193
193
|
try {
|
|
194
194
|
await machine.tunnelStop({ name });
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import {
|
|
4
|
+
import { f as flushAndExit } from './cli-CNorTj26.mjs';
|
|
5
|
+
import { l as resolveProjectRoot, v as searchIssues, t as listIssues, n as resumeIssue, p as pauseIssue, o as addComment, u as updateIssue, m as getIssue, w as isVisibleTo, J as summarize, q as addIssue } from './run-kkeXP2d_.mjs';
|
|
6
|
+
import './serviceManager-hlOVxkhW.mjs';
|
|
5
7
|
import 'os';
|
|
6
8
|
import 'fs/promises';
|
|
7
9
|
import 'fs';
|
|
@@ -366,7 +368,7 @@ the user explicitly reserved): re-run with \`--blocked "<the specific blocker>"\
|
|
|
366
368
|
const pending = listIssues(root).filter(inScope).filter((i) => i.status === "ready" || i.status === "in_progress");
|
|
367
369
|
if (json) console.log(JSON.stringify(pending));
|
|
368
370
|
else out(pending.length ? `${pending.length} pending: ${pending.map((i) => "#" + i.id).join(" ")}` : "No pending issues.");
|
|
369
|
-
|
|
371
|
+
await flushAndExit(pending.length ? 1 : 0);
|
|
370
372
|
break;
|
|
371
373
|
}
|
|
372
374
|
case "search": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync } from 'fs';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
|
-
import { connectAndGetMachine } from './commands-
|
|
3
|
+
import { connectAndGetMachine } from './commands-DuPRCS2G.mjs';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'node:child_process';
|
|
6
6
|
import 'node:path';
|
|
7
7
|
import 'node:os';
|
|
8
|
-
import './run-
|
|
8
|
+
import './run-kkeXP2d_.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -2,7 +2,7 @@ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
|
2
2
|
import { execSync } from 'node:child_process';
|
|
3
3
|
import { basename, resolve, join, isAbsolute } from 'node:path';
|
|
4
4
|
import os from 'node:os';
|
|
5
|
-
import { a2 as formatHandle, a3 as normalizeAllowedUser, a4 as loadSecurityContextConfig, a5 as resolveSecurityContext, a6 as buildSecurityContextFromFlags, a7 as mergeSecurityContexts, c as connectToHypha, a8 as buildSessionShareUrl, a9 as computeOutboundHop,
|
|
5
|
+
import { a2 as formatHandle, a3 as normalizeAllowedUser, a4 as loadSecurityContextConfig, a5 as resolveSecurityContext, a6 as buildSecurityContextFromFlags, a7 as mergeSecurityContexts, c as connectToHypha, a8 as buildSessionShareUrl, a9 as computeOutboundHop, i as shortId, aa as registerAwaitingReply, ab as buildMachineShareUrl, ac as parseHandle, ad as handleMatchesMetadata } from './run-kkeXP2d_.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
8
8
|
import 'fs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { spawnSync } from 'node:child_process';
|
|
2
|
-
import {
|
|
2
|
+
import { l as resolveProjectRoot, K as workflowSteps, B as setWorkflowEnabled, G as isWorkflowEnabled, C as removeWorkflow, z as getWorkflow, F as listWorkflows, D as saveWorkflow, E as rawWorkflow } from './run-kkeXP2d_.mjs';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|
|
5
5
|
import 'fs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import os from 'node:os';
|
|
4
|
-
import { c as connectToHypha } from './run-
|
|
4
|
+
import { c as connectToHypha } from './run-kkeXP2d_.mjs';
|
|
5
5
|
import { PINNED_CLAUDE_CODE_VERSION } from './pinnedClaudeCode-B9O-hKxm.mjs';
|
|
6
6
|
import 'os';
|
|
7
7
|
import 'fs/promises';
|
|
@@ -4,7 +4,7 @@ import { mkdirSync, chmodSync, writeFileSync, unlinkSync, existsSync, readFileSy
|
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { homedir, platform, arch } from 'os';
|
|
6
6
|
import { randomUUID, createHash } from 'crypto';
|
|
7
|
-
import {
|
|
7
|
+
import { e as getFrpsSubdomainHost, f as getFrpsServerPort, h as getFrpsServerAddr } from './run-kkeXP2d_.mjs';
|
|
8
8
|
import 'fs/promises';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-
|
|
1
|
+
import { $ as resolveModel, ae as describeMisconfiguration, af as buildMachineDeps } from './run-kkeXP2d_.mjs';
|
|
2
|
+
import { handleRealtimeEvent, initMachineVoiceSession } from './sideband-CIJUNKUA.mjs';
|
|
3
3
|
import { WebSocket } from 'ws';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import 'os';
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-
|
|
1
|
+
export { c as connectToHypha, a as createSessionStore, d as daemonStatus, g as getHyphaServerUrl, r as registerMachineService, s as startDaemon, b as stopDaemon } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "svamp-cli";
|
|
2
|
-
var version = "0.2.
|
|
2
|
+
var version = "0.2.264";
|
|
3
3
|
var description = "Svamp CLI — AI workspace daemon on Hypha Cloud";
|
|
4
4
|
var author = "Amun AI AB";
|
|
5
5
|
var license = "SEE LICENSE IN LICENSE";
|
|
@@ -19,7 +19,7 @@ var exports$1 = {
|
|
|
19
19
|
var scripts = {
|
|
20
20
|
build: "rm -rf dist bin/skills bin/commands && mkdir -p bin/skills && cp -r ../../skills/artifact bin/skills/artifact && cp -r ../../skills/crew bin/skills/crew && cp -r ../../commands bin/commands && tsc --noEmit && pkgroll",
|
|
21
21
|
typecheck: "tsc --noEmit",
|
|
22
|
-
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-btw-proxy-env.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-app-server.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox-store.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-issue-pause.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-cron.mjs && npx tsx test/test-workflow-runs.mjs && npx tsx test/test-workflow-idle.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-ws-upgrade.mjs && npx tsx test/test-serve-auth.mjs && npx tsx test/test-static-file-server.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-hotreload-seam.mjs && npx tsx test/test-hot-reload.mjs && npx tsx test/test-hot-reload-live.mjs && npx tsx test/test-session-core.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-outbox-reload.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-channel-upload.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs && npx tsx test/test-crew-standalone.mjs && npx tsx test/test-session-links.mjs && npx tsx test/test-issue-loop-pause-guard.mjs && npx tsx test/test-artifact-guard.mjs && npx tsx test/test-graceful-restart.mjs",
|
|
22
|
+
test: "npx tsx test/test-context-window.mjs && npx tsx test/test-ratelimit-retry.mjs && npx tsx test/test-instance-config.mjs && npx tsx test/test-authorize.mjs && npx tsx test/test-normalize-allowed-user.mjs && npx tsx test/test-share-url.mjs && npx tsx test/test-update-sharing-normalization.mjs && npx tsx test/test-sharing-notify-sync.mjs && npx tsx test/test-staged-homes-sweep.mjs && npx tsx test/test-session-helpers.mjs && npx tsx test/test-cli-routing.mjs && npx tsx test/test-security-context.mjs && npx tsx test/test-isolation-decision.mjs && npx tsx test/test-message-helpers.mjs && npx tsx test/test-agent-config.mjs && npx tsx test/test-wrap-command.mjs && npx tsx test/test-credential-staging.mjs && npx tsx test/test-claude-auth.mjs && npx tsx test/test-btw-proxy-env.mjs && npx tsx test/test-output-formatters.mjs && npx tsx test/test-inbox-guard.mjs && npx tsx test/test-auto-topic.mjs && npx tsx test/test-project-info.mjs && npx tsx test/test-agent-types.mjs && npx tsx test/test-transport.mjs && npx tsx test/test-session-update-handlers.mjs && npx tsx test/test-session-scanner.mjs && npx tsx test/test-hypha-client.mjs && npx tsx test/test-hook-settings.mjs && npx tsx test/test-session-service-logic.mjs && npx tsx test/test-daemon-persistence.mjs && npx tsx test/test-detect-isolation.mjs && npx tsx test/test-machine-service-logic.mjs && npx tsx test/test-interactive-helpers.mjs && npx tsx test/test-codex-app-server.mjs && npx tsx test/test-acp-backend.mjs && npx tsx test/test-acp-bridge.mjs && npx tsx test/test-hook-server.mjs && npx tsx test/test-session-commands.mjs && npx tsx test/test-interactive-console.mjs && npx tsx test/test-session-messages.mjs && npx tsx test/test-session-send-query.mjs && npx tsx test/test-skills.mjs && npx tsx test/test-agent-grouping.mjs && npx tsx test/test-machine-list-directory.mjs && npx tsx test/test-service-commands.mjs && npx tsx test/test-supervisor.mjs && npx tsx test/test-supervisor-lock.mjs && node test/test-supervisor-restart.mjs && npx tsx test/test-clear-detection.mjs && npx tsx test/test-session-consolidation.mjs && npx tsx test/test-inbox-store.mjs && npx tsx test/test-inbox.mjs && npx tsx test/test-inbox-cross-machine.mjs && npx tsx test/test-issue-store.mjs && npx tsx test/test-issue-close-gate.mjs && npx tsx test/test-loop-verify.mjs && npx tsx test/test-issue-rpc.mjs && npx tsx test/test-issue-pause.mjs && npx tsx test/test-workflow-store.mjs && npx tsx test/test-workflow-rpc.mjs && npx tsx test/test-workflow-scheduler.mjs && npx tsx test/test-cron.mjs && npx tsx test/test-workflow-runs.mjs && npx tsx test/test-workflow-idle.mjs && npx tsx test/test-serve-link-subdomain.mjs && npx tsx test/test-short-id.mjs && npx tsx test/test-transcript-edit.mjs && npx tsx test/test-edit-history.mjs && npx tsx test/test-friendly-name.mjs && npx tsx test/test-session-rpc-dispatch.mjs && npx tsx test/test-sandbox-cli.mjs && npx tsx test/test-serve-manager.mjs && npx tsx test/test-serve-ws-upgrade.mjs && npx tsx test/test-serve-auth.mjs && npx tsx test/test-static-file-server.mjs && npx tsx test/test-serve-stability.mjs && npx tsx test/test-frpc-e2e.mjs --unit-only && npx tsx test/test-frpc-status.mjs && node test/pinnedClaudeCode.test.mjs && node test/fleet.test.mjs && npx tsx test/test-session-file.mjs && npx tsx test/test-channel-rpc.mjs && npx tsx test/test-wise-agent.mjs && npx tsx test/test-channel-agent.mjs && npx tsx test/test-channels-service.mjs && npx tsx test/test-hotreload-seam.mjs && npx tsx test/test-hot-reload.mjs && npx tsx test/test-hot-reload-live.mjs && npx tsx test/test-session-core.mjs && npx tsx test/test-channel-async-reply.mjs && npx tsx test/test-outbox-reload.mjs && npx tsx test/test-channel-binding.mjs && npx tsx test/test-channel-identity.mjs && npx tsx test/test-shared-session-identity.mjs && npx tsx test/test-wise-agent-auth.mjs && npx tsx test/test-channel-http.mjs && npx tsx test/test-channel-upload.mjs && npx tsx test/test-wise-voice.mjs && npx tsx test/test-wise-headless.mjs && npx tsx test/test-wise-machine.mjs && npx tsx test/test-crew-merge.mjs && npx tsx test/test-crew-verdict-routing.mjs && npx tsx test/test-crew-standalone.mjs && npx tsx test/test-session-links.mjs && npx tsx test/test-issue-loop-pause-guard.mjs && npx tsx test/test-artifact-guard.mjs && npx tsx test/test-graceful-restart.mjs && npx tsx test/test-flush-exit.mjs",
|
|
23
23
|
"test:hypha": "node --no-warnings test/test-hypha-service.mjs",
|
|
24
24
|
dev: "tsx src/cli.ts",
|
|
25
25
|
"dev:daemon": "tsx src/cli.ts daemon start-sync",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as resolveProjectRoot, x as getRun, y as listRuns, z as getWorkflow, A as runWorkflow, B as setWorkflowEnabled, C as removeWorkflow, D as saveWorkflow, E as rawWorkflow, F as listWorkflows } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as resolveProjectRoot, u as updateIssue, m as getIssue, n as resumeIssue, p as pauseIssue, o as addComment, q as addIssue, t as listIssues, v as searchIssues, w as isVisibleTo } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ag as applyClaudeProxyEnv, ah as composeSessionId, ai as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, aj as generateHookSettings } from './run-
|
|
1
|
+
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import { ag as applyClaudeProxyEnv, ah as composeSessionId, ai as generateFriendlyName, c as connectToHypha, a as createSessionStore, r as registerMachineService, aj as generateHookSettings } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import { resolve, join } from 'node:path';
|
|
4
4
|
import { existsSync, readFileSync, watch } from 'node:fs';
|
|
@@ -253,6 +253,34 @@ function mergeSecurityContexts(base, override) {
|
|
|
253
253
|
merged.allowedDirectories = mergeArrays(base.allowedDirectories, override.allowedDirectories);
|
|
254
254
|
return merged;
|
|
255
255
|
}
|
|
256
|
+
function clampSecurityContextToCeiling(ceiling, requested) {
|
|
257
|
+
if (!ceiling) return void 0;
|
|
258
|
+
if (!requested) return ceiling;
|
|
259
|
+
const merged = {};
|
|
260
|
+
merged.role = ceiling.role;
|
|
261
|
+
merged.denyAllNetwork = (ceiling.denyAllNetwork ?? false) || (requested.denyAllNetwork ?? false);
|
|
262
|
+
const cf = ceiling.filesystem;
|
|
263
|
+
const rf = requested.filesystem;
|
|
264
|
+
if (cf || rf) {
|
|
265
|
+
merged.filesystem = {
|
|
266
|
+
// Grants: ceiling only (caller cannot widen writable paths).
|
|
267
|
+
allowWrite: cf?.allowWrite ? dedup(cf.allowWrite) : void 0,
|
|
268
|
+
// Denials: union (caller may add more).
|
|
269
|
+
denyRead: mergeArrays(cf?.denyRead, rf?.denyRead),
|
|
270
|
+
denyWrite: mergeArrays(cf?.denyWrite, rf?.denyWrite)
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
const cn = ceiling.network;
|
|
274
|
+
const rn = requested.network;
|
|
275
|
+
if (cn || rn) {
|
|
276
|
+
merged.network = {
|
|
277
|
+
allowedDomains: cn?.allowedDomains ? dedup(cn.allowedDomains) : void 0,
|
|
278
|
+
deniedDomains: mergeArrays(cn?.deniedDomains, rn?.deniedDomains)
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
merged.allowedDirectories = ceiling.allowedDirectories ? dedup(ceiling.allowedDirectories) : void 0;
|
|
282
|
+
return merged;
|
|
283
|
+
}
|
|
256
284
|
function resolveSecurityContext(config, userEmail) {
|
|
257
285
|
if (!config) return void 0;
|
|
258
286
|
const defaultCtx = config.default;
|
|
@@ -2356,7 +2384,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
|
|
|
2356
2384
|
if (machineCtx) {
|
|
2357
2385
|
options = {
|
|
2358
2386
|
...options,
|
|
2359
|
-
securityContext: mergeSecurityContexts(machineCtx, options.securityContext)
|
|
2387
|
+
securityContext: isSharedUser ? clampSecurityContextToCeiling(machineCtx, options.securityContext) : mergeSecurityContexts(machineCtx, options.securityContext)
|
|
2360
2388
|
};
|
|
2361
2389
|
}
|
|
2362
2390
|
}
|
|
@@ -3013,7 +3041,7 @@ async function registerMachineService(server, machineId, metadata, daemonState,
|
|
|
3013
3041
|
const tunnels = handlers.tunnels;
|
|
3014
3042
|
if (!tunnels) throw new Error("Tunnel management not available");
|
|
3015
3043
|
if (tunnels.has(params.name)) throw new Error(`Tunnel '${params.name}' already running`);
|
|
3016
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
3044
|
+
const { FrpcTunnel } = await import('./frpc-DmaWRu0M.mjs');
|
|
3017
3045
|
const tunnel = new FrpcTunnel({
|
|
3018
3046
|
name: params.name,
|
|
3019
3047
|
ports: params.ports,
|
|
@@ -3480,7 +3508,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
3480
3508
|
}
|
|
3481
3509
|
const deps = buildSessionDeps(rpc, { cwd, ownerEmail: owner });
|
|
3482
3510
|
const sender = { name: context?.user?.email || context?.user?.id || "user", kind: "user", verified: true };
|
|
3483
|
-
const { toolsForRole } = await import('./sideband-
|
|
3511
|
+
const { toolsForRole } = await import('./sideband-CIJUNKUA.mjs');
|
|
3484
3512
|
const r2 = await runWiseAgent({ message: params.message, sender, config: { tools: toolsForRole(role2) }, deps, transport, model: resolved.model });
|
|
3485
3513
|
return fmt(r2);
|
|
3486
3514
|
}
|
|
@@ -3579,7 +3607,7 @@ QUESTION: ${params.question || "Summarize this concisely."}` }
|
|
|
3579
3607
|
if (r.error || !r.sender) return { error: r.error || "unauthorized" };
|
|
3580
3608
|
const callId = "call_" + Math.random().toString(16).slice(2, 12);
|
|
3581
3609
|
const rendered = renderMessage(c, { sender: r.sender, body: { message: kwargs.message }, callId });
|
|
3582
|
-
const { queryCore } = await import('./commands-
|
|
3610
|
+
const { queryCore } = await import('./commands-DuPRCS2G.mjs');
|
|
3583
3611
|
const timeout = c.reply?.timeout_sec || 120;
|
|
3584
3612
|
let result;
|
|
3585
3613
|
try {
|
|
@@ -8692,6 +8720,23 @@ function mapDecisionToWire(d) {
|
|
|
8692
8720
|
}
|
|
8693
8721
|
}
|
|
8694
8722
|
|
|
8723
|
+
function codexPermissionSettings(mode) {
|
|
8724
|
+
switch (mode) {
|
|
8725
|
+
case "yolo":
|
|
8726
|
+
case "bypassPermissions":
|
|
8727
|
+
case "danger-full-access":
|
|
8728
|
+
return { approvalPolicy: "never", sandbox: "danger-full-access" };
|
|
8729
|
+
case "safe-yolo":
|
|
8730
|
+
case "acceptEdits":
|
|
8731
|
+
return { approvalPolicy: "on-failure", sandbox: "workspace-write" };
|
|
8732
|
+
case "read-only":
|
|
8733
|
+
case "plan":
|
|
8734
|
+
return { approvalPolicy: "on-request", sandbox: "read-only" };
|
|
8735
|
+
case "default":
|
|
8736
|
+
default:
|
|
8737
|
+
return { approvalPolicy: "on-request", sandbox: "workspace-write" };
|
|
8738
|
+
}
|
|
8739
|
+
}
|
|
8695
8740
|
const CODEX_PROVIDER_KEY_ENV = "SVAMP_CODEX_API_KEY";
|
|
8696
8741
|
const PROVIDER_NAME = "svamp";
|
|
8697
8742
|
function resolveCodexProvider(env = process.env) {
|
|
@@ -8728,6 +8773,7 @@ var codexProvider = /*#__PURE__*/Object.freeze({
|
|
|
8728
8773
|
__proto__: null,
|
|
8729
8774
|
CODEX_PROVIDER_KEY_ENV: CODEX_PROVIDER_KEY_ENV,
|
|
8730
8775
|
buildCodexProviderArgs: buildCodexProviderArgs,
|
|
8776
|
+
codexPermissionSettings: codexPermissionSettings,
|
|
8731
8777
|
hasCustomProvider: hasCustomProvider,
|
|
8732
8778
|
resolveCodexProvider: resolveCodexProvider
|
|
8733
8779
|
});
|
|
@@ -8740,6 +8786,8 @@ class CodexAppServerBackend {
|
|
|
8740
8786
|
const provider = opts.provider ?? resolveCodexProvider();
|
|
8741
8787
|
const { configArgs, env: providerEnv, model: providerModel } = buildCodexProviderArgs(provider);
|
|
8742
8788
|
this.model = opts.model ?? providerModel;
|
|
8789
|
+
this.approvalPolicy = opts.approvalPolicy;
|
|
8790
|
+
this.sandbox = opts.sandbox;
|
|
8743
8791
|
this.client = new CodexAppServerClient({
|
|
8744
8792
|
cwd: opts.cwd,
|
|
8745
8793
|
env: { ...opts.env ?? {}, ...providerEnv },
|
|
@@ -8756,6 +8804,11 @@ class CodexAppServerBackend {
|
|
|
8756
8804
|
sessionId = randomUUID();
|
|
8757
8805
|
log;
|
|
8758
8806
|
model;
|
|
8807
|
+
// #0438: codex's own approval policy + sandbox, derived from the svamp permission mode. Mutable
|
|
8808
|
+
// so a mid-session switchMode takes effect on the next turn. yolo → 'never' + 'danger-full-access'
|
|
8809
|
+
// so codex NEVER prompts for writes (and never times out waiting on a prompt).
|
|
8810
|
+
approvalPolicy;
|
|
8811
|
+
sandbox;
|
|
8759
8812
|
started = false;
|
|
8760
8813
|
// Approval promises keyed by callId, resolved by respondToPermission().
|
|
8761
8814
|
pendingApprovals = /* @__PURE__ */ new Map();
|
|
@@ -8779,9 +8832,9 @@ class CodexAppServerBackend {
|
|
|
8779
8832
|
if (avail === false) throw new Error("Installed Codex is too old for app-server \u2014 upgrade to >= 0.100 (`npm i -g @openai/codex@latest`).");
|
|
8780
8833
|
await this.client.start();
|
|
8781
8834
|
if (this.opts.resumeThreadId) {
|
|
8782
|
-
await this.client.resumeThread({ threadId: this.opts.resumeThreadId, model: this.model, approvalPolicy: this.
|
|
8835
|
+
await this.client.resumeThread({ threadId: this.opts.resumeThreadId, model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
8783
8836
|
} else {
|
|
8784
|
-
const r = await this.client.startThread({ model: this.model, approvalPolicy: this.
|
|
8837
|
+
const r = await this.client.startThread({ model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
8785
8838
|
this.model = this.model ?? r.model;
|
|
8786
8839
|
}
|
|
8787
8840
|
this.started = true;
|
|
@@ -8798,7 +8851,7 @@ class CodexAppServerBackend {
|
|
|
8798
8851
|
resolveTurn = res;
|
|
8799
8852
|
});
|
|
8800
8853
|
try {
|
|
8801
|
-
await this.client.sendTurnAndWait(prompt, { model: this.model, approvalPolicy: this.
|
|
8854
|
+
await this.client.sendTurnAndWait(prompt, { model: this.model, approvalPolicy: this.approvalPolicy, sandbox: this.sandbox });
|
|
8802
8855
|
} catch (err) {
|
|
8803
8856
|
this.emit({ type: "status", status: "error", detail: err instanceof Error ? err.message : String(err) });
|
|
8804
8857
|
} finally {
|
|
@@ -8849,6 +8902,12 @@ class CodexAppServerBackend {
|
|
|
8849
8902
|
setModel(model) {
|
|
8850
8903
|
this.model = model;
|
|
8851
8904
|
}
|
|
8905
|
+
/** #0438: update codex's approval policy + sandbox (from a svamp permission-mode switch). Takes
|
|
8906
|
+
* effect on the next turn (and next thread start). yolo → 'never' + 'danger-full-access'. */
|
|
8907
|
+
setPermission(approvalPolicy, sandbox) {
|
|
8908
|
+
this.approvalPolicy = approvalPolicy;
|
|
8909
|
+
this.sandbox = sandbox;
|
|
8910
|
+
}
|
|
8852
8911
|
/** The model label for assistant-message parity with Claude (frontend schema requires a non-empty `model`). */
|
|
8853
8912
|
getModel() {
|
|
8854
8913
|
return this.model || "codex";
|
|
@@ -11985,17 +12044,31 @@ function resolveEvaluatorModel(envValue) {
|
|
|
11985
12044
|
function parseEvaluatorVerdict(text) {
|
|
11986
12045
|
if (!text) return null;
|
|
11987
12046
|
const candidates = [];
|
|
11988
|
-
let depth = 0, start = -1;
|
|
12047
|
+
let depth = 0, start = -1, inStr = false, esc = false;
|
|
11989
12048
|
for (let i = 0; i < text.length; i++) {
|
|
11990
12049
|
const c = text[i];
|
|
11991
|
-
if (
|
|
12050
|
+
if (inStr) {
|
|
12051
|
+
if (esc) {
|
|
12052
|
+
esc = false;
|
|
12053
|
+
} else if (c === "\\") {
|
|
12054
|
+
esc = true;
|
|
12055
|
+
} else if (c === '"') {
|
|
12056
|
+
inStr = false;
|
|
12057
|
+
}
|
|
12058
|
+
continue;
|
|
12059
|
+
}
|
|
12060
|
+
if (c === '"') {
|
|
12061
|
+
inStr = true;
|
|
12062
|
+
} else if (c === "{") {
|
|
11992
12063
|
if (depth === 0) start = i;
|
|
11993
12064
|
depth++;
|
|
11994
12065
|
} else if (c === "}") {
|
|
11995
|
-
depth
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
12066
|
+
if (depth > 0) {
|
|
12067
|
+
depth--;
|
|
12068
|
+
if (depth === 0 && start >= 0) {
|
|
12069
|
+
candidates.push(text.slice(start, i + 1));
|
|
12070
|
+
start = -1;
|
|
12071
|
+
}
|
|
11999
12072
|
}
|
|
12000
12073
|
}
|
|
12001
12074
|
}
|
|
@@ -13867,7 +13940,7 @@ async function startDaemon(options) {
|
|
|
13867
13940
|
try {
|
|
13868
13941
|
const dir = loadSessionIndex()[sessionId]?.directory;
|
|
13869
13942
|
if (!dir) return;
|
|
13870
|
-
const { reconcileServiceLinks } = await import('./agentCommands-
|
|
13943
|
+
const { reconcileServiceLinks } = await import('./agentCommands-BZPDL-1B.mjs');
|
|
13871
13944
|
const configPath = getSvampConfigPath(dir, sessionId);
|
|
13872
13945
|
const config = readSvampConfig(configPath);
|
|
13873
13946
|
const entries = Array.from(urls.entries());
|
|
@@ -13885,7 +13958,7 @@ async function startDaemon(options) {
|
|
|
13885
13958
|
}
|
|
13886
13959
|
}
|
|
13887
13960
|
async function createExposedTunnel(spec) {
|
|
13888
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
13961
|
+
const { FrpcTunnel } = await import('./frpc-DmaWRu0M.mjs');
|
|
13889
13962
|
const tunnel = new FrpcTunnel({
|
|
13890
13963
|
name: spec.name,
|
|
13891
13964
|
ports: spec.ports,
|
|
@@ -13906,7 +13979,7 @@ async function startDaemon(options) {
|
|
|
13906
13979
|
}
|
|
13907
13980
|
const tunnelRecreateState = /* @__PURE__ */ new Map();
|
|
13908
13981
|
const tunnelRecreateInFlight = /* @__PURE__ */ new Set();
|
|
13909
|
-
const { ServeManager } = await import('./serveManager-
|
|
13982
|
+
const { ServeManager } = await import('./serveManager-a_dIQuK4.mjs');
|
|
13910
13983
|
const serveManager = new ServeManager(SVAMP_HOME, (msg) => logger.log(`[SERVE] ${msg}`), hyphaServerUrl);
|
|
13911
13984
|
ensureAutoInstalledSkills(logger).catch(() => {
|
|
13912
13985
|
});
|
|
@@ -16028,11 +16101,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16028
16101
|
});
|
|
16029
16102
|
},
|
|
16030
16103
|
onIssue: async (params) => {
|
|
16031
|
-
const { issueRpc } = await import('./rpc-
|
|
16104
|
+
const { issueRpc } = await import('./rpc-DswYjrCh.mjs');
|
|
16032
16105
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
16033
16106
|
},
|
|
16034
16107
|
onWorkflow: async (params) => {
|
|
16035
|
-
const { workflowRpc } = await import('./rpc-
|
|
16108
|
+
const { workflowRpc } = await import('./rpc-Db3BR76v.mjs');
|
|
16036
16109
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
16037
16110
|
},
|
|
16038
16111
|
onRipgrep: async (args, cwd) => {
|
|
@@ -16426,6 +16499,8 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16426
16499
|
if (currentPermissionMode === mode) return;
|
|
16427
16500
|
logger.log(`[${agentName} Session ${sessionId}] Switch mode: ${mode}`);
|
|
16428
16501
|
currentPermissionMode = mode;
|
|
16502
|
+
const cp = codexPermissionSettings(mode);
|
|
16503
|
+
agentBackend.setPermission?.(cp.approvalPolicy, cp.sandbox);
|
|
16429
16504
|
},
|
|
16430
16505
|
onRestartClaude: async () => {
|
|
16431
16506
|
logger.log(`[${agentName} Session ${sessionId}] Restart agent requested`);
|
|
@@ -16588,11 +16663,11 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16588
16663
|
});
|
|
16589
16664
|
},
|
|
16590
16665
|
onIssue: async (params) => {
|
|
16591
|
-
const { issueRpc } = await import('./rpc-
|
|
16666
|
+
const { issueRpc } = await import('./rpc-DswYjrCh.mjs');
|
|
16592
16667
|
return issueRpc(params?.cwd || directory, params || {}, { notifySession: notifyIssueOwner, rekickLoopOwner });
|
|
16593
16668
|
},
|
|
16594
16669
|
onWorkflow: async (params) => {
|
|
16595
|
-
const { workflowRpc } = await import('./rpc-
|
|
16670
|
+
const { workflowRpc } = await import('./rpc-Db3BR76v.mjs');
|
|
16596
16671
|
return workflowRpc(params?.cwd || directory, params || {});
|
|
16597
16672
|
},
|
|
16598
16673
|
onRipgrep: async (args, cwd) => {
|
|
@@ -16745,7 +16820,8 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16745
16820
|
if (avail === false) throw new Error("Installed Codex is too old for app-server \u2014 upgrade to >= 0.100 (`npm i -g @openai/codex@latest`).");
|
|
16746
16821
|
const provider = resolveCodexProvider();
|
|
16747
16822
|
const codexModel = options2.model || agentConfig?.default_model || provider.model || void 0;
|
|
16748
|
-
|
|
16823
|
+
const codexPerm = codexPermissionSettings(currentPermissionMode);
|
|
16824
|
+
logger.log(`[Agent Session ${sessionId}] Codex backend: app-server (model=${codexModel ?? "default"}${provider.apiBase ? `, provider=${provider.apiBase}` : ""}, mode=${currentPermissionMode} \u2192 approval=${codexPerm.approvalPolicy}/sandbox=${codexPerm.sandbox})`);
|
|
16749
16825
|
if (acpResumeThreadId) logger.log(`[Agent Session ${sessionId}] Resuming Codex thread ${acpResumeThreadId} (restart recovery)`);
|
|
16750
16826
|
agentBackend = new CodexAppServerBackend({
|
|
16751
16827
|
cwd: directory,
|
|
@@ -16754,6 +16830,8 @@ ${capturedError}${buildClaudeErrorHint(capturedError)}`;
|
|
|
16754
16830
|
env: options2.environmentVariables,
|
|
16755
16831
|
log: logger.log,
|
|
16756
16832
|
isolationConfig: agentIsoConfig,
|
|
16833
|
+
approvalPolicy: codexPerm.approvalPolicy,
|
|
16834
|
+
sandbox: codexPerm.sandbox,
|
|
16757
16835
|
// #0412 P2: resume the persisted thread across a daemon restart (context intact).
|
|
16758
16836
|
resumeThreadId: acpResumeThreadId
|
|
16759
16837
|
});
|
|
@@ -17600,7 +17678,7 @@ ${oracle.output.trim().slice(0, 500)}`, "\u{1F501} Continuing loop");
|
|
|
17600
17678
|
const PING_TIMEOUT_MS = 15e3;
|
|
17601
17679
|
const POST_RECONNECT_GRACE_MS = 2e4;
|
|
17602
17680
|
const RECONNECT_JITTER_MS = 2500;
|
|
17603
|
-
const { WorkflowScheduler } = await import('./scheduler-
|
|
17681
|
+
const { WorkflowScheduler } = await import('./scheduler-DhKDP3hC.mjs');
|
|
17604
17682
|
const workflowScheduler = new WorkflowScheduler({
|
|
17605
17683
|
projectRoots: () => {
|
|
17606
17684
|
const dirs = /* @__PURE__ */ new Set();
|
|
@@ -18211,4 +18289,4 @@ var run = /*#__PURE__*/Object.freeze({
|
|
|
18211
18289
|
writeStopMarker: writeStopMarker
|
|
18212
18290
|
});
|
|
18213
18291
|
|
|
18214
|
-
export {
|
|
18292
|
+
export { resolveModel as $, runWorkflow as A, setWorkflowEnabled as B, removeWorkflow as C, saveWorkflow as D, rawWorkflow as E, listWorkflows as F, isWorkflowEnabled as G, workflowCrons as H, cronMatches as I, summarize as J, workflowSteps as K, loadMachineContext as L, buildMachineInstructions as M, machineToolsForRole as N, buildMachineTools as O, parseFrontmatter as P, getSkillsServer as Q, READ_ONLY_TOOLS as R, ServeAuth as S, getSkillsWorkspaceName as T, getSkillsCollectionName as U, fetchWithTimeout as V, searchSkills as W, SKILLS_DIR as X, getSkillInfo as Y, downloadSkillFile as Z, listSkillFiles as _, createSessionStore as a, clearStopMarker as a0, stopMarkerExists as a1, formatHandle as a2, normalizeAllowedUser as a3, loadSecurityContextConfig as a4, resolveSecurityContext as a5, buildSecurityContextFromFlags as a6, mergeSecurityContexts as a7, buildSessionShareUrl as a8, computeOutboundHop as a9, registerAwaitingReply as aa, buildMachineShareUrl as ab, parseHandle as ac, handleMatchesMetadata as ad, describeMisconfiguration as ae, buildMachineDeps as af, applyClaudeProxyEnv as ag, composeSessionId as ah, generateFriendlyName as ai, generateHookSettings as aj, claudeAuth as ak, projectInfo as al, DefaultTransport$1 as am, acpBackend as an, acpAgentConfig as ao, codexProvider as ap, codexAppServerBackend as aq, GeminiTransport$1 as ar, instanceConfig as as, api as at, run as au, stopDaemon as b, connectToHypha as c, daemonStatus as d, getFrpsSubdomainHost as e, getFrpsServerPort as f, getHyphaServerUrl$1 as g, getFrpsServerAddr as h, shortId as i, getHyphaServerUrl as j, hasCookieToken as k, resolveProjectRoot as l, getIssue as m, resumeIssue as n, addComment as o, pauseIssue as p, addIssue as q, registerMachineService as r, startDaemon as s, listIssues as t, updateIssue as u, searchIssues as v, isVisibleTo as w, getRun as x, listRuns as y, getWorkflow as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as resolveProjectRoot, F as listWorkflows, G as isWorkflowEnabled, H as workflowCrons, A as runWorkflow, I as cronMatches } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import 'os';
|
|
3
3
|
import 'fs/promises';
|
|
4
4
|
import 'fs';
|
|
@@ -54,7 +54,7 @@ async function handleServeCommand() {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
async function serveAdd(args, machineId) {
|
|
57
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
57
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
58
58
|
const pos = positionalArgs(args);
|
|
59
59
|
const name = pos[0];
|
|
60
60
|
if (!name) {
|
|
@@ -93,7 +93,7 @@ async function serveAdd(args, machineId) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
async function serveApply(args, machineId) {
|
|
96
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
96
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
97
97
|
const fs = await import('fs');
|
|
98
98
|
const yaml = await import('yaml');
|
|
99
99
|
const file = positionalArgs(args)[0];
|
|
@@ -182,7 +182,7 @@ async function serveApply(args, machineId) {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
async function serveRemove(args, machineId) {
|
|
185
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
185
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
186
186
|
const pos = positionalArgs(args);
|
|
187
187
|
const name = pos[0];
|
|
188
188
|
if (!name) {
|
|
@@ -202,7 +202,7 @@ async function serveRemove(args, machineId) {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
async function serveList(args, machineId) {
|
|
205
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
205
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
206
206
|
const all = hasFlag(args, "--all", "-a");
|
|
207
207
|
const json = hasFlag(args, "--json");
|
|
208
208
|
const sessionId = getFlag(args, "--session");
|
|
@@ -235,7 +235,7 @@ async function serveList(args, machineId) {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
async function serveInfo(machineId) {
|
|
238
|
-
const { connectAndGetMachine } = await import('./commands-
|
|
238
|
+
const { connectAndGetMachine } = await import('./commands-DuPRCS2G.mjs');
|
|
239
239
|
const { machine, server } = await connectAndGetMachine(machineId);
|
|
240
240
|
try {
|
|
241
241
|
const info = await machine.serveInfo();
|
|
@@ -5,7 +5,7 @@ import * as http from 'http';
|
|
|
5
5
|
import * as net from 'net';
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { serveStaticMount } from './staticFileServer-CbYnj2bH.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { j as getHyphaServerUrl, S as ServeAuth, k as hasCookieToken } from './run-kkeXP2d_.mjs';
|
|
9
9
|
import 'os';
|
|
10
10
|
import 'fs/promises';
|
|
11
11
|
import 'url';
|
|
@@ -854,7 +854,7 @@ Connection: close\r
|
|
|
854
854
|
const mount = this.mounts.get(mountName);
|
|
855
855
|
const subdomainOverride = mount?.access === "link" && mount.linkToken ? /* @__PURE__ */ new Map([[this.port, buildLinkSubdomain(subdomainSafe, mount.linkToken)]]) : void 0;
|
|
856
856
|
try {
|
|
857
|
-
const { FrpcTunnel } = await import('./frpc-
|
|
857
|
+
const { FrpcTunnel } = await import('./frpc-DmaWRu0M.mjs');
|
|
858
858
|
let tunnel;
|
|
859
859
|
tunnel = new FrpcTunnel({
|
|
860
860
|
name: tunnelName,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as READ_ONLY_TOOLS,
|
|
1
|
+
import { R as READ_ONLY_TOOLS, L as loadMachineContext, M as buildMachineInstructions, N as machineToolsForRole, O as buildMachineTools } from './run-kkeXP2d_.mjs';
|
|
2
2
|
import 'node:child_process';
|
|
3
3
|
import 'os';
|
|
4
4
|
import 'fs/promises';
|