aimux-cli 0.1.16 → 0.1.18
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 +184 -67
- package/bin/aimux-dev +10 -0
- package/dist/alert-display.d.ts +21 -0
- package/dist/alert-display.js +86 -0
- package/dist/alert-display.js.map +1 -0
- package/dist/attachment-store.d.ts +0 -7
- package/dist/attachment-store.js +2 -86
- package/dist/attachment-store.js.map +1 -1
- package/dist/builtin-metadata-watchers.js +4 -4
- package/dist/builtin-metadata-watchers.js.map +1 -1
- package/dist/claude-hooks.d.ts +1 -0
- package/dist/claude-hooks.js +25 -0
- package/dist/claude-hooks.js.map +1 -1
- package/dist/config.d.ts +19 -13
- package/dist/config.js +28 -14
- package/dist/config.js.map +1 -1
- package/dist/connection-targets.d.ts +8 -0
- package/dist/connection-targets.js +28 -0
- package/dist/connection-targets.js.map +1 -0
- package/dist/credentials.d.ts +12 -0
- package/dist/credentials.js +49 -0
- package/dist/credentials.js.map +1 -0
- package/dist/daemon.d.ts +23 -0
- package/dist/daemon.js +391 -66
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/index.d.ts +13 -10
- package/dist/dashboard/index.js +3 -26
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/order.d.ts +22 -0
- package/dist/dashboard/order.js +55 -0
- package/dist/dashboard/order.js.map +1 -0
- package/dist/dashboard/pending-actions.d.ts +39 -10
- package/dist/dashboard/pending-actions.js +166 -36
- package/dist/dashboard/pending-actions.js.map +1 -1
- package/dist/dashboard/quick-jump.d.ts +2 -1
- package/dist/dashboard/quick-jump.js +7 -4
- package/dist/dashboard/quick-jump.js.map +1 -1
- package/dist/dashboard/session-actions.d.ts +4 -4
- package/dist/dashboard/session-actions.js +1 -1
- package/dist/dashboard/session-actions.js.map +1 -1
- package/dist/dashboard/session-registry.d.ts +4 -3
- package/dist/dashboard/session-registry.js +16 -50
- package/dist/dashboard/session-registry.js.map +1 -1
- package/dist/dashboard/state.d.ts +1 -1
- package/dist/dashboard/state.js.map +1 -1
- package/dist/dashboard/ui-state-store.d.ts +16 -1
- package/dist/dashboard/ui-state-store.js +73 -2
- package/dist/dashboard/ui-state-store.js.map +1 -1
- package/dist/debug-state.d.ts +97 -0
- package/dist/debug-state.js +541 -0
- package/dist/debug-state.js.map +1 -0
- package/dist/debug.d.ts +38 -0
- package/dist/debug.js +219 -15
- package/dist/debug.js.map +1 -1
- package/dist/default-plugins/gh-pr-context.d.ts +2 -1
- package/dist/default-plugins/gh-pr-context.js +17 -11
- package/dist/default-plugins/gh-pr-context.js.map +1 -1
- package/dist/default-plugins/transcript-length.js +15 -2
- package/dist/default-plugins/transcript-length.js.map +1 -1
- package/dist/fast-control.js +37 -19
- package/dist/fast-control.js.map +1 -1
- package/dist/http-client.js +31 -2
- package/dist/http-client.js.map +1 -1
- package/dist/local-ui-server.d.ts +22 -0
- package/dist/local-ui-server.js +186 -0
- package/dist/local-ui-server.js.map +1 -0
- package/dist/login-flow.d.ts +7 -0
- package/dist/login-flow.js +120 -0
- package/dist/login-flow.js.map +1 -0
- package/dist/main.js +821 -151
- package/dist/main.js.map +1 -1
- package/dist/managed-launch-env.js +14 -0
- package/dist/managed-launch-env.js.map +1 -1
- package/dist/metadata-server.d.ts +36 -36
- package/dist/metadata-server.js +638 -137
- package/dist/metadata-server.js.map +1 -1
- package/dist/metadata-store.d.ts +4 -1
- package/dist/metadata-store.js +30 -2
- package/dist/metadata-store.js.map +1 -1
- package/dist/multiplexer/agent-io-methods.d.ts +2 -10
- package/dist/multiplexer/agent-io-methods.js +12 -43
- package/dist/multiplexer/agent-io-methods.js.map +1 -1
- package/dist/multiplexer/archives.js +8 -9
- package/dist/multiplexer/archives.js.map +1 -1
- package/dist/multiplexer/dashboard-control.js +45 -13
- package/dist/multiplexer/dashboard-control.js.map +1 -1
- package/dist/multiplexer/dashboard-interaction.d.ts +8 -2
- package/dist/multiplexer/dashboard-interaction.js +187 -28
- package/dist/multiplexer/dashboard-interaction.js.map +1 -1
- package/dist/multiplexer/dashboard-model.d.ts +10 -3
- package/dist/multiplexer/dashboard-model.js +417 -35
- package/dist/multiplexer/dashboard-model.js.map +1 -1
- package/dist/multiplexer/dashboard-ops.d.ts +9 -7
- package/dist/multiplexer/dashboard-ops.js +178 -68
- package/dist/multiplexer/dashboard-ops.js.map +1 -1
- package/dist/multiplexer/dashboard-state-methods.d.ts +2 -1
- package/dist/multiplexer/dashboard-state-methods.js +3 -2
- package/dist/multiplexer/dashboard-state-methods.js.map +1 -1
- package/dist/multiplexer/dashboard-tail-methods.d.ts +22 -10
- package/dist/multiplexer/dashboard-tail-methods.js +164 -47
- package/dist/multiplexer/dashboard-tail-methods.js.map +1 -1
- package/dist/multiplexer/dashboard-view-methods.d.ts +1 -1
- package/dist/multiplexer/dashboard-view-methods.js +23 -8
- package/dist/multiplexer/dashboard-view-methods.js.map +1 -1
- package/dist/multiplexer/graveyard-view-model.d.ts +9 -1
- package/dist/multiplexer/graveyard-view-model.js +39 -0
- package/dist/multiplexer/graveyard-view-model.js.map +1 -1
- package/dist/multiplexer/index.d.ts +15 -12
- package/dist/multiplexer/index.js +64 -43
- package/dist/multiplexer/index.js.map +1 -1
- package/dist/multiplexer/notifications.js +107 -24
- package/dist/multiplexer/notifications.js.map +1 -1
- package/dist/multiplexer/persistence-methods.d.ts +31 -4
- package/dist/multiplexer/persistence-methods.js +304 -308
- package/dist/multiplexer/persistence-methods.js.map +1 -1
- package/dist/multiplexer/runtime-lifecycle-methods.d.ts +8 -10
- package/dist/multiplexer/runtime-lifecycle-methods.js +104 -86
- package/dist/multiplexer/runtime-lifecycle-methods.js.map +1 -1
- package/dist/multiplexer/runtime-state.d.ts +8 -10
- package/dist/multiplexer/runtime-state.js +82 -145
- package/dist/multiplexer/runtime-state.js.map +1 -1
- package/dist/multiplexer/runtime-sync.d.ts +2 -10
- package/dist/multiplexer/runtime-sync.js +3 -18
- package/dist/multiplexer/runtime-sync.js.map +1 -1
- package/dist/multiplexer/service-state-snapshot.d.ts +2 -4
- package/dist/multiplexer/service-state-snapshot.js +4 -51
- package/dist/multiplexer/service-state-snapshot.js.map +1 -1
- package/dist/multiplexer/services.d.ts +1 -0
- package/dist/multiplexer/services.js +55 -5
- package/dist/multiplexer/services.js.map +1 -1
- package/dist/multiplexer/session-capture.d.ts +1 -0
- package/dist/multiplexer/session-capture.js +24 -0
- package/dist/multiplexer/session-capture.js.map +1 -0
- package/dist/multiplexer/session-launch.d.ts +4 -1
- package/dist/multiplexer/session-launch.js +152 -63
- package/dist/multiplexer/session-launch.js.map +1 -1
- package/dist/multiplexer/session-runtime-core.d.ts +8 -20
- package/dist/multiplexer/session-runtime-core.js +40 -135
- package/dist/multiplexer/session-runtime-core.js.map +1 -1
- package/dist/multiplexer/subscreens.js +10 -3
- package/dist/multiplexer/subscreens.js.map +1 -1
- package/dist/multiplexer/worktree-graveyard.d.ts +0 -1
- package/dist/multiplexer/worktree-graveyard.js +15 -16
- package/dist/multiplexer/worktree-graveyard.js.map +1 -1
- package/dist/multiplexer/worktrees.js +96 -40
- package/dist/multiplexer/worktrees.js.map +1 -1
- package/dist/notification-context.js +8 -4
- package/dist/notification-context.js.map +1 -1
- package/dist/notifications.js +163 -101
- package/dist/notifications.js.map +1 -1
- package/dist/notify.d.ts +4 -0
- package/dist/notify.js +14 -0
- package/dist/notify.js.map +1 -1
- package/dist/paths.d.ts +32 -7
- package/dist/paths.js +82 -58
- package/dist/paths.js.map +1 -1
- package/dist/pending-actions.d.ts +5 -0
- package/dist/pending-actions.js +14 -0
- package/dist/pending-actions.js.map +1 -0
- package/dist/plugin-runtime.js +9 -2
- package/dist/plugin-runtime.js.map +1 -1
- package/dist/project-events.d.ts +1 -10
- package/dist/project-events.js +0 -10
- package/dist/project-events.js.map +1 -1
- package/dist/project-scanner.d.ts +2 -3
- package/dist/project-scanner.js +58 -129
- package/dist/project-scanner.js.map +1 -1
- package/dist/project-service-manifest.d.ts +1 -3
- package/dist/project-service-manifest.js +1 -3
- package/dist/project-service-manifest.js.map +1 -1
- package/dist/relay-client.d.ts +30 -0
- package/dist/relay-client.js +191 -0
- package/dist/relay-client.js.map +1 -0
- package/dist/remote-access.d.ts +16 -0
- package/dist/remote-access.js +91 -0
- package/dist/remote-access.js.map +1 -0
- package/dist/runtime-core/exchange-derived.d.ts +2 -0
- package/dist/runtime-core/exchange-derived.js +154 -0
- package/dist/runtime-core/exchange-derived.js.map +1 -0
- package/dist/runtime-core/exchange-import.d.ts +24 -0
- package/dist/runtime-core/exchange-import.js +318 -0
- package/dist/runtime-core/exchange-import.js.map +1 -0
- package/dist/runtime-core/exchange-store.d.ts +157 -0
- package/dist/runtime-core/exchange-store.js +453 -0
- package/dist/runtime-core/exchange-store.js.map +1 -0
- package/dist/runtime-core/topology-services.d.ts +38 -0
- package/dist/runtime-core/topology-services.js +171 -0
- package/dist/runtime-core/topology-services.js.map +1 -0
- package/dist/runtime-core/topology-sessions.d.ts +52 -0
- package/dist/runtime-core/topology-sessions.js +239 -0
- package/dist/runtime-core/topology-sessions.js.map +1 -0
- package/dist/runtime-core/topology-store.d.ts +171 -0
- package/dist/runtime-core/topology-store.js +420 -0
- package/dist/runtime-core/topology-store.js.map +1 -0
- package/dist/runtime-core/topology-worktrees.d.ts +60 -0
- package/dist/runtime-core/topology-worktrees.js +200 -0
- package/dist/runtime-core/topology-worktrees.js.map +1 -0
- package/dist/runtime-migration.d.ts +69 -0
- package/dist/runtime-migration.js +399 -0
- package/dist/runtime-migration.js.map +1 -0
- package/dist/session-bootstrap.d.ts +8 -6
- package/dist/session-bootstrap.js +51 -158
- package/dist/session-bootstrap.js.map +1 -1
- package/dist/session-runtime.d.ts +2 -0
- package/dist/session-runtime.js +1 -0
- package/dist/session-runtime.js.map +1 -1
- package/dist/session-semantics.d.ts +12 -4
- package/dist/session-semantics.js +14 -0
- package/dist/session-semantics.js.map +1 -1
- package/dist/shell-hooks.js +32 -10
- package/dist/shell-hooks.js.map +1 -1
- package/dist/shell-state.d.ts +2 -0
- package/dist/shell-state.js +26 -1
- package/dist/shell-state.js.map +1 -1
- package/dist/statusline-model.d.ts +10 -2
- package/dist/statusline-model.js +106 -30
- package/dist/statusline-model.js.map +1 -1
- package/dist/task-workflow.d.ts +6 -9
- package/dist/task-workflow.js +37 -84
- package/dist/task-workflow.js.map +1 -1
- package/dist/tasks.d.ts +6 -33
- package/dist/tasks.js +46 -88
- package/dist/tasks.js.map +1 -1
- package/dist/team.d.ts +29 -0
- package/dist/team.js +40 -0
- package/dist/team.js.map +1 -1
- package/dist/threads.d.ts +6 -35
- package/dist/threads.js +89 -98
- package/dist/threads.js.map +1 -1
- package/dist/tmux/inbox-popup.js +37 -15
- package/dist/tmux/inbox-popup.js.map +1 -1
- package/dist/tmux/runtime-manager.d.ts +3 -0
- package/dist/tmux/runtime-manager.js +21 -4
- package/dist/tmux/runtime-manager.js.map +1 -1
- package/dist/tmux/statusline.js +49 -9
- package/dist/tmux/statusline.js.map +1 -1
- package/dist/tmux/window-open.js +1 -2
- package/dist/tmux/window-open.js.map +1 -1
- package/dist/tool-output-watchers.d.ts +0 -18
- package/dist/tool-output-watchers.js +0 -322
- package/dist/tool-output-watchers.js.map +1 -1
- package/dist/tui/screens/dashboard-renderers.js +37 -25
- package/dist/tui/screens/dashboard-renderers.js.map +1 -1
- package/dist/tui/screens/overlay-renderers.d.ts +2 -0
- package/dist/tui/screens/overlay-renderers.js +37 -1
- package/dist/tui/screens/overlay-renderers.js.map +1 -1
- package/dist/tui/screens/subscreen-renderers.js +7 -0
- package/dist/tui/screens/subscreen-renderers.js.map +1 -1
- package/dist/worktree.js +17 -0
- package/dist/worktree.js.map +1 -1
- package/dist-ui/_expo/static/css/web-30453ede1678c16acb08b97e83e8646d.css +1 -0
- package/dist-ui/_expo/static/js/web/entry-477c745b2adc79367a4380ecf07d9ff6.js +14620 -0
- package/dist-ui/assets/assets/images/icon.a5413dcd2e811c9f2317d01a28118d8a.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.0a328cd9c1afd0afe8e3b1ec5165b1b4.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/back-icon.35ba0eaec5a4f5ed12ca16fabeae451d.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@2x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@3x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/clear-icon.c94f6478e7ae0cdd9f15de1fcb9e5e55@4x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@2x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@3x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/close-icon.808e1b1b9b53114ec2838071a7e6daa7@4x.png +0 -0
- package/dist-ui/assets/node_modules/@react-navigation/elements/lib/module/assets/search-icon.286d67d3f74808a60a78d3ebf1a5fb57.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/arrow_down.017bc6ba3fc25503e5eb5e53826d48a8.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/error.d1ea1496f9057eb392d5bbf3732a61b7.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/file.19eeb73b9593a38f8e9f418337fc7d10.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/forward.d8b800c443b8972542883e0b9de2bdc6.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/pkg.ab19f4cbc543357183a20571f68380a3.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/sitemap.412dd9275b6b48ad28f5e3d81bb1f626.png +0 -0
- package/dist-ui/assets/node_modules/expo-router/assets/unmatched.20e71bdf79e3a97bf55fd9e164041578.png +0 -0
- package/dist-ui/favicon.ico +0 -0
- package/dist-ui/index.html +38 -0
- package/dist-ui/metadata.json +1 -0
- package/package.json +28 -12
- package/dist/agent-message-parts.d.ts +0 -17
- package/dist/agent-message-parts.js +0 -31
- package/dist/agent-message-parts.js.map +0 -1
- package/dist/instance-directory.d.ts +0 -32
- package/dist/instance-directory.js +0 -82
- package/dist/instance-directory.js.map +0 -1
- package/dist/instance-registry.d.ts +0 -39
- package/dist/instance-registry.js +0 -208
- package/dist/instance-registry.js.map +0 -1
- package/dist/multiplexer/session-actions.d.ts +0 -40
- package/dist/multiplexer/session-actions.js +0 -110
- package/dist/multiplexer/session-actions.js.map +0 -1
- package/dist/orchestration-dispatcher.d.ts +0 -25
- package/dist/orchestration-dispatcher.js +0 -59
- package/dist/orchestration-dispatcher.js.map +0 -1
- package/dist/session-input-operations.d.ts +0 -19
- package/dist/session-input-operations.js +0 -46
- package/dist/session-input-operations.js.map +0 -1
- package/dist/session-message-history.d.ts +0 -27
- package/dist/session-message-history.js +0 -105
- package/dist/session-message-history.js.map +0 -1
- package/dist/task-dispatcher.d.ts +0 -64
- package/dist/task-dispatcher.js +0 -213
- package/dist/task-dispatcher.js.map +0 -1
package/dist/attachment-store.js
CHANGED
|
@@ -1,46 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { basename, extname, join } from "node:path";
|
|
1
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
4
3
|
import { getAttachmentsDir } from "./paths.js";
|
|
5
|
-
const MIME_BY_EXT = {
|
|
6
|
-
".png": "image/png",
|
|
7
|
-
".jpg": "image/jpeg",
|
|
8
|
-
".jpeg": "image/jpeg",
|
|
9
|
-
".gif": "image/gif",
|
|
10
|
-
".webp": "image/webp",
|
|
11
|
-
".bmp": "image/bmp",
|
|
12
|
-
".svg": "image/svg+xml",
|
|
13
|
-
};
|
|
14
|
-
export function ingestAttachmentFromPath(path) {
|
|
15
|
-
const trimmedPath = path.trim();
|
|
16
|
-
if (!trimmedPath) {
|
|
17
|
-
throw new Error("attachment path is required");
|
|
18
|
-
}
|
|
19
|
-
const buffer = readFileSync(trimmedPath);
|
|
20
|
-
const filename = basename(trimmedPath) || "image";
|
|
21
|
-
return writeAttachment(buffer, {
|
|
22
|
-
filename,
|
|
23
|
-
mimeType: inferMimeType(filename),
|
|
24
|
-
source: "path",
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
export function ingestAttachmentFromBase64(input) {
|
|
28
|
-
const contentBase64 = input.contentBase64.trim();
|
|
29
|
-
if (!contentBase64) {
|
|
30
|
-
throw new Error("contentBase64 is required");
|
|
31
|
-
}
|
|
32
|
-
const buffer = Buffer.from(contentBase64, "base64");
|
|
33
|
-
if (buffer.length === 0) {
|
|
34
|
-
throw new Error("attachment content is empty");
|
|
35
|
-
}
|
|
36
|
-
const filename = input.filename?.trim() || "image";
|
|
37
|
-
const mimeType = input.mimeType?.trim() || inferMimeType(filename);
|
|
38
|
-
return writeAttachment(buffer, {
|
|
39
|
-
filename,
|
|
40
|
-
mimeType,
|
|
41
|
-
source: "upload",
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
4
|
export function getAttachment(id) {
|
|
45
5
|
const record = loadAttachmentRecord(id);
|
|
46
6
|
return record ? toPublicAttachment(record) : null;
|
|
@@ -55,36 +15,6 @@ export function getAttachmentContent(id) {
|
|
|
55
15
|
buffer: readFileSync(record.contentPath),
|
|
56
16
|
};
|
|
57
17
|
}
|
|
58
|
-
export function resolveAttachmentPath(id) {
|
|
59
|
-
const record = loadAttachmentRecord(id);
|
|
60
|
-
return record?.contentPath ?? null;
|
|
61
|
-
}
|
|
62
|
-
function writeAttachment(buffer, input) {
|
|
63
|
-
ensureAttachmentsDir();
|
|
64
|
-
const sha256 = createHash("sha256").update(buffer).digest("hex");
|
|
65
|
-
const id = `att_${sha256.slice(0, 16)}`;
|
|
66
|
-
const extension = normalizeExtension(extname(input.filename), input.mimeType);
|
|
67
|
-
const contentPath = join(getAttachmentsDir(), `${id}${extension}`);
|
|
68
|
-
const metadataPath = join(getAttachmentsDir(), `${id}.json`);
|
|
69
|
-
if (!existsSync(contentPath)) {
|
|
70
|
-
writeFileSync(contentPath, buffer);
|
|
71
|
-
}
|
|
72
|
-
const record = {
|
|
73
|
-
id,
|
|
74
|
-
kind: "image",
|
|
75
|
-
filename: input.filename,
|
|
76
|
-
mimeType: input.mimeType,
|
|
77
|
-
sizeBytes: buffer.length,
|
|
78
|
-
sha256,
|
|
79
|
-
createdAt: existsSync(metadataPath)
|
|
80
|
-
? loadAttachmentRecord(id)?.createdAt || new Date().toISOString()
|
|
81
|
-
: new Date().toISOString(),
|
|
82
|
-
source: input.source,
|
|
83
|
-
contentPath,
|
|
84
|
-
};
|
|
85
|
-
writeFileSync(metadataPath, `${JSON.stringify(record, null, 2)}\n`, "utf8");
|
|
86
|
-
return toPublicAttachment(record);
|
|
87
|
-
}
|
|
88
18
|
function loadAttachmentRecord(id) {
|
|
89
19
|
const normalizedId = id.trim();
|
|
90
20
|
if (!normalizedId)
|
|
@@ -112,18 +42,4 @@ function toPublicAttachment(record) {
|
|
|
112
42
|
contentUrl: `/attachments/${record.id}/content`,
|
|
113
43
|
};
|
|
114
44
|
}
|
|
115
|
-
function ensureAttachmentsDir() {
|
|
116
|
-
mkdirSync(getAttachmentsDir(), { recursive: true });
|
|
117
|
-
}
|
|
118
|
-
function inferMimeType(filename) {
|
|
119
|
-
return MIME_BY_EXT[extname(filename).toLowerCase()] || "application/octet-stream";
|
|
120
|
-
}
|
|
121
|
-
function normalizeExtension(extension, mimeType) {
|
|
122
|
-
const trimmed = extension.trim().toLowerCase();
|
|
123
|
-
if (trimmed) {
|
|
124
|
-
return trimmed;
|
|
125
|
-
}
|
|
126
|
-
const matched = Object.entries(MIME_BY_EXT).find(([, candidateMime]) => candidateMime === mimeType)?.[0];
|
|
127
|
-
return matched || "";
|
|
128
|
-
}
|
|
129
45
|
//# sourceMappingURL=attachment-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../src/attachment-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"attachment-store.js","sourceRoot":"","sources":["../src/attachment-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA0B/C,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,EAAU;IAEV,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC;QACtC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAU;IACtC,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;IACvE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAqB,CAAC;IAClF,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAwB;IAClD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,gBAAgB,MAAM,CAAC,EAAE,UAAU;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readdirSync, readFileSync, watch } from "node:fs";
|
|
2
|
-
import { basename, join } from "node:path";
|
|
3
|
-
import { getPlansDir, getStatusDir,
|
|
2
|
+
import { basename, dirname, join } from "node:path";
|
|
3
|
+
import { getPlansDir, getStatusDir, getHistoryDir, getRuntimeExchangePath } from "./paths.js";
|
|
4
4
|
import { debug } from "./debug.js";
|
|
5
5
|
import { readAllTasks } from "./tasks.js";
|
|
6
6
|
import { listSessionIds, readHistory } from "./context/history.js";
|
|
@@ -92,7 +92,7 @@ export function createBuiltinMetadataWatchers(api) {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
});
|
|
95
|
-
const taskWatcher = new DirectoryWatcher(
|
|
95
|
+
const taskWatcher = new DirectoryWatcher(dirname(getRuntimeExchangePath()), () => {
|
|
96
96
|
const tasks = readAllTasks();
|
|
97
97
|
const latestBySession = new Map();
|
|
98
98
|
for (const task of tasks) {
|
|
@@ -110,8 +110,8 @@ export function createBuiltinMetadataWatchers(api) {
|
|
|
110
110
|
latestBySession.set(sessionId, { message: `${prefix}: ${task.description}`, tone });
|
|
111
111
|
}
|
|
112
112
|
for (const [sessionId, entry] of latestBySession) {
|
|
113
|
-
metadata.log(sessionId, entry.message, { source: "tasks", tone: entry.tone });
|
|
114
113
|
if (lastTaskBySession.get(sessionId) !== entry.message) {
|
|
114
|
+
metadata.log(sessionId, entry.message, { source: "tasks", tone: entry.tone });
|
|
115
115
|
if (taskWatcherPrimed) {
|
|
116
116
|
metadata.emitEvent(sessionId, {
|
|
117
117
|
kind: entry.tone === "error" ? "task_failed" : entry.tone === "success" ? "task_done" : "task_assigned",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-metadata-watchers.js","sourceRoot":"","sources":["../src/builtin-metadata-watchers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-metadata-watchers.js","sourceRoot":"","sources":["../src/builtin-metadata-watchers.ts"],"names":[],"mappings":"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"}
|
package/dist/claude-hooks.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface ClaudeHookPayload {
|
|
|
9
9
|
}
|
|
10
10
|
export declare function getAimuxCliEntryPath(): string;
|
|
11
11
|
export declare function shouldSkipClaudeSessionIdInjection(args: string[]): boolean;
|
|
12
|
+
export declare function extractClaudeBackendSessionIdFromArgs(args: string[]): string | undefined;
|
|
12
13
|
export declare function buildClaudeHookSettings(opts: {
|
|
13
14
|
sessionId: string;
|
|
14
15
|
projectRoot: string;
|
package/dist/claude-hooks.js
CHANGED
|
@@ -13,6 +13,31 @@ export function shouldSkipClaudeSessionIdInjection(args) {
|
|
|
13
13
|
arg === "--continue" ||
|
|
14
14
|
arg === "-c");
|
|
15
15
|
}
|
|
16
|
+
function isUsableSessionIdArg(value) {
|
|
17
|
+
return Boolean(value?.trim() && !value.trim().startsWith("-"));
|
|
18
|
+
}
|
|
19
|
+
export function extractClaudeBackendSessionIdFromArgs(args) {
|
|
20
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
21
|
+
const arg = args[i];
|
|
22
|
+
if (arg === "--session-id" && isUsableSessionIdArg(args[i + 1])) {
|
|
23
|
+
return args[i + 1].trim();
|
|
24
|
+
}
|
|
25
|
+
if (arg.startsWith("--session-id=")) {
|
|
26
|
+
const value = arg.slice("--session-id=".length);
|
|
27
|
+
if (isUsableSessionIdArg(value))
|
|
28
|
+
return value.trim();
|
|
29
|
+
}
|
|
30
|
+
if (arg === "--resume" && isUsableSessionIdArg(args[i + 1])) {
|
|
31
|
+
return args[i + 1].trim();
|
|
32
|
+
}
|
|
33
|
+
if (arg.startsWith("--resume=")) {
|
|
34
|
+
const value = arg.slice("--resume=".length);
|
|
35
|
+
if (isUsableSessionIdArg(value))
|
|
36
|
+
return value.trim();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
16
41
|
function buildClaudeHookCommand(action, sessionId, projectRoot) {
|
|
17
42
|
return [
|
|
18
43
|
shellQuote(process.execPath),
|
package/dist/claude-hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-hooks.js","sourceRoot":"","sources":["../src/claude-hooks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-hooks.js","sourceRoot":"","sources":["../src/claude-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAYzC,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,IAAc;IAC/D,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,KAAK,UAAU;QAClB,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3B,GAAG,KAAK,cAAc;QACtB,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;QAC/B,GAAG,KAAK,YAAY;QACpB,GAAG,KAAK,IAAI,CACf,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAyB;IACrD,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,IAAc;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,cAAc,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,oBAAoB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,GAAG,KAAK,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,oBAAoB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc,EAAE,SAAiB,EAAE,WAAmB;IACpF,OAAO;QACL,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC5B,UAAU,CAAC,oBAAoB,EAAE,CAAC;QAClC,aAAa;QACb,MAAM;QACN,WAAW;QACX,UAAU,CAAC,SAAS,CAAC;QACrB,WAAW;QACX,UAAU,CAAC,WAAW,CAAC;KACxB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAgD;IACtF,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACrG,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBAC7E;aACF;YACD,IAAI,EAAE;gBACJ;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBACpE;aACF;YACD,UAAU,EAAE;gBACV;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;iBAC1E;aACF;YACD,YAAY,EAAE;gBACZ;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBAC5E;aACF;YACD,gBAAgB,EAAE;gBAChB;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;iBAC7E;aACF;YACD,UAAU,EAAE;gBACV;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACxF;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAc,EACd,IAIC;IAED,MAAM,QAAQ,GAAa,CAAC,YAAY,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAClF,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,kCAAkC,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAsB,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,MAAsB;IAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA0B;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC;IACxG,MAAM,IAAI,GACR,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAClF,8BAA8B,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA0B;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,kBAAkB,CAAC;IAC9F,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,4BAA4B,CAAC;IAC/G,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -25,29 +25,33 @@ export interface StatuslineConfig {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
export interface RuntimeConfig {
|
|
28
|
-
/** Whether aimux injects automatic session preamble
|
|
28
|
+
/** Whether aimux injects automatic session preamble instructions. */
|
|
29
29
|
agentPreambleEnabled: boolean;
|
|
30
30
|
tmux: TmuxRuntimeConfig;
|
|
31
31
|
}
|
|
32
|
+
export type LogLevel = "error" | "warn" | "info" | "debug" | "trace";
|
|
33
|
+
export interface LoggingConfig {
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
level: LogLevel;
|
|
36
|
+
/** Category names to include. "*" includes all categories. */
|
|
37
|
+
categories: string[];
|
|
38
|
+
/** Rotate the active log file after it reaches this size. */
|
|
39
|
+
maxBytes: number;
|
|
40
|
+
/** Number of rotated log files to keep. */
|
|
41
|
+
maxFiles: number;
|
|
42
|
+
}
|
|
32
43
|
export interface AimuxConfig {
|
|
33
44
|
defaultTool: string;
|
|
34
45
|
contextMaxEntries: number;
|
|
35
46
|
liveWindowSize: number;
|
|
36
47
|
compactEveryNTurns: number;
|
|
48
|
+
logging: LoggingConfig;
|
|
37
49
|
notifications: NotificationConfig;
|
|
38
50
|
statusline: StatuslineConfig;
|
|
39
51
|
runtime: RuntimeConfig;
|
|
40
52
|
worktrees: WorktreeConfig;
|
|
41
53
|
tools: Record<string, ToolConfig>;
|
|
42
54
|
}
|
|
43
|
-
export interface SessionCaptureConfig {
|
|
44
|
-
/** Directory to watch for new files. Supports {home}, {yyyy}, {mm}, {dd} */
|
|
45
|
-
dir: string;
|
|
46
|
-
/** Regex to extract session ID from filename */
|
|
47
|
-
pattern: string;
|
|
48
|
-
/** Delay before first check in ms */
|
|
49
|
-
delayMs: number;
|
|
50
|
-
}
|
|
51
55
|
export interface ToolConfig {
|
|
52
56
|
command: string;
|
|
53
57
|
args: string[];
|
|
@@ -67,10 +71,10 @@ export interface ToolConfig {
|
|
|
67
71
|
resumeFallback?: string[];
|
|
68
72
|
/** Flag to set a session ID when starting, with {sessionId} placeholder, e.g. ["--session-id", "{sessionId}"] */
|
|
69
73
|
sessionIdFlag?: string[];
|
|
70
|
-
/**
|
|
71
|
-
sessionCapture?: SessionCaptureConfig;
|
|
72
|
-
/** File to write preamble instructions to (created on start, removed on exit), e.g. "AGENTS.md" */
|
|
74
|
+
/** Optional file to write preamble instructions to; disabled by default to avoid surprise repo edits. */
|
|
73
75
|
instructionsFile?: string;
|
|
76
|
+
/** Codex config key used for durable standing instructions, e.g. "developer_instructions" */
|
|
77
|
+
developerInstructionsConfigKey?: string | null;
|
|
74
78
|
/** Regex patterns that indicate the tool is idle/waiting for input */
|
|
75
79
|
promptPatterns?: string[];
|
|
76
80
|
/** Regex patterns to detect user prompts in terminal output (for turn extraction) */
|
|
@@ -82,7 +86,9 @@ export interface ToolConfig {
|
|
|
82
86
|
* Load config with hierarchy: defaults → global (~/.aimux/config.json) → project (.aimux/config.json)
|
|
83
87
|
* Project settings override global, global overrides defaults.
|
|
84
88
|
*/
|
|
85
|
-
export declare function loadConfig(
|
|
89
|
+
export declare function loadConfig(opts?: {
|
|
90
|
+
includeGlobal?: boolean;
|
|
91
|
+
}): AimuxConfig;
|
|
86
92
|
/** Save config to project-level .aimux/config.json */
|
|
87
93
|
export declare function saveConfig(config: AimuxConfig): void;
|
|
88
94
|
/** Save config to global ~/.aimux/config.json */
|
package/dist/config.js
CHANGED
|
@@ -6,6 +6,13 @@ const DEFAULT_CONFIG = {
|
|
|
6
6
|
contextMaxEntries: 20,
|
|
7
7
|
liveWindowSize: 20,
|
|
8
8
|
compactEveryNTurns: 50,
|
|
9
|
+
logging: {
|
|
10
|
+
enabled: false,
|
|
11
|
+
level: "info",
|
|
12
|
+
categories: ["*"],
|
|
13
|
+
maxBytes: 10_000_000,
|
|
14
|
+
maxFiles: 5,
|
|
15
|
+
},
|
|
9
16
|
notifications: {
|
|
10
17
|
enabled: true,
|
|
11
18
|
onPrompt: true,
|
|
@@ -38,7 +45,7 @@ const DEFAULT_CONFIG = {
|
|
|
38
45
|
preambleFlag: ["--append-system-prompt"],
|
|
39
46
|
sessionIdFlag: ["--session-id", "{sessionId}"],
|
|
40
47
|
resumeArgs: ["--resume", "{sessionId}"],
|
|
41
|
-
resumeByBackendSessionId:
|
|
48
|
+
resumeByBackendSessionId: true,
|
|
42
49
|
resumeFallback: ["--continue"],
|
|
43
50
|
promptPatterns: ["^> $", "\\$ $"],
|
|
44
51
|
turnPatterns: ["^[❯>]\\s*(.+)", "^❯\\s+(.+)", "^>\\s+(.+)"],
|
|
@@ -51,12 +58,7 @@ const DEFAULT_CONFIG = {
|
|
|
51
58
|
resumeArgs: ["resume", "{sessionId}"],
|
|
52
59
|
resumeByBackendSessionId: true,
|
|
53
60
|
resumeFallback: ["resume", "--last"],
|
|
54
|
-
|
|
55
|
-
sessionCapture: {
|
|
56
|
-
dir: "{home}/.codex/sessions/{yyyy}/{mm}/{dd}",
|
|
57
|
-
pattern: "([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\\.jsonl$",
|
|
58
|
-
delayMs: 2000,
|
|
59
|
-
},
|
|
61
|
+
developerInstructionsConfigKey: "developer_instructions",
|
|
60
62
|
promptPatterns: ["^> $"],
|
|
61
63
|
turnPatterns: ["^[>❯]\\s*(.+)"],
|
|
62
64
|
},
|
|
@@ -73,15 +75,30 @@ const DEFAULT_CONFIG = {
|
|
|
73
75
|
function cloneJson(value) {
|
|
74
76
|
return JSON.parse(JSON.stringify(value));
|
|
75
77
|
}
|
|
78
|
+
function hasSessionPlaceholder(args) {
|
|
79
|
+
return Boolean(args?.some((arg) => arg.includes("{sessionId}")));
|
|
80
|
+
}
|
|
81
|
+
function normalizeConfig(config) {
|
|
82
|
+
const claude = config.tools.claude;
|
|
83
|
+
if (claude?.command === "claude" &&
|
|
84
|
+
hasSessionPlaceholder(claude.sessionIdFlag) &&
|
|
85
|
+
hasSessionPlaceholder(claude.resumeArgs)) {
|
|
86
|
+
// Current Claude Code supports pairing --session-id with --resume <id>.
|
|
87
|
+
// Treat older generated configs that set this false as stale rather than
|
|
88
|
+
// silently launching a fresh Claude under an existing aimux row.
|
|
89
|
+
claude.resumeByBackendSessionId = true;
|
|
90
|
+
}
|
|
91
|
+
return config;
|
|
92
|
+
}
|
|
76
93
|
/**
|
|
77
94
|
* Load config with hierarchy: defaults → global (~/.aimux/config.json) → project (.aimux/config.json)
|
|
78
95
|
* Project settings override global, global overrides defaults.
|
|
79
96
|
*/
|
|
80
|
-
export function loadConfig() {
|
|
97
|
+
export function loadConfig(opts = {}) {
|
|
81
98
|
let config = cloneJson(DEFAULT_CONFIG);
|
|
82
99
|
// Layer 1: global config
|
|
83
100
|
const globalPath = getGlobalConfigPath();
|
|
84
|
-
if (existsSync(globalPath)) {
|
|
101
|
+
if (opts.includeGlobal !== false && existsSync(globalPath)) {
|
|
85
102
|
try {
|
|
86
103
|
const globalRaw = JSON.parse(readFileSync(globalPath, "utf-8"));
|
|
87
104
|
config = deepMerge(config, globalRaw);
|
|
@@ -97,7 +114,7 @@ export function loadConfig() {
|
|
|
97
114
|
}
|
|
98
115
|
catch { }
|
|
99
116
|
}
|
|
100
|
-
return config;
|
|
117
|
+
return normalizeConfig(config);
|
|
101
118
|
}
|
|
102
119
|
/** Save config to project-level .aimux/config.json */
|
|
103
120
|
export function saveConfig(config) {
|
|
@@ -115,11 +132,8 @@ export function saveGlobalConfig(config) {
|
|
|
115
132
|
}
|
|
116
133
|
writeFileSync(getGlobalConfigPath(), JSON.stringify(config, null, 2) + "\n");
|
|
117
134
|
}
|
|
118
|
-
const GITIGNORE_CONTENTS = `# Runtime-private
|
|
135
|
+
const GITIGNORE_CONTENTS = `# Runtime-private service/project state (lives in ~/.aimux/projects/)
|
|
119
136
|
state.json
|
|
120
|
-
graveyard.json
|
|
121
|
-
sessions.json
|
|
122
|
-
instances.json
|
|
123
137
|
|
|
124
138
|
# Agent-facing shared artifacts
|
|
125
139
|
context/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAgGpB,MAAM,cAAc,GAAgB;IAClC,WAAW,EAAE,QAAQ;IACrB,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,EAAE;IAClB,kBAAkB,EAAE,EAAE;IACtB,OAAO,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,CAAC,GAAG,CAAC;QACjB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC;KACZ;IACD,aAAa,EAAE;QACb,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KACjB;IACD,UAAU,EAAE;QACV,cAAc,EAAE;YACd,gBAAgB,EAAE;gBAChB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,KAAK;aACZ;SACF;KACF;IACD,OAAO,EAAE;QACP,oBAAoB,EAAE,IAAI;QAC1B,IAAI,EAAE;YACJ,aAAa,EAAE,OAAO;SACvB;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,kBAAkB;KAC5B;IACD,KAAK,EAAE;QACL,MAAM,EAAE;YACN,OAAO,EAAE,QAAQ;YACjB,IAAI,EAAE,CAAC,gCAAgC,CAAC;YACxC,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,CAAC,wBAAwB,CAAC;YACxC,aAAa,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;YAC9C,UAAU,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;YACvC,wBAAwB,EAAE,IAAI;YAC9B,cAAc,EAAE,CAAC,YAAY,CAAC;YAC9B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACjC,YAAY,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;YAC3D,cAAc,EAAE,qCAAqC;SACtD;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,CAAC,4CAA4C,CAAC;YACpD,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;YACrC,wBAAwB,EAAE,IAAI;YAC9B,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACpC,8BAA8B,EAAE,wBAAwB;YACxD,cAAc,EAAE,CAAC,MAAM,CAAC;YACxB,YAAY,EAAE,CAAC,eAAe,CAAC;SAChC;QACD,KAAK,EAAE;YACL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,CAAC,wBAAwB,CAAC;YAC1C,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC;YACrC,YAAY,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;SAChD;KACF;CACF,CAAC;AAEF,SAAS,SAAS,CAAI,KAAQ;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAe;IAC5C,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,eAAe,CAAC,MAAmB;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;IACnC,IACE,MAAM,EAAE,OAAO,KAAK,QAAQ;QAC5B,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3C,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,EACxC,CAAC;QACD,wEAAwE;QACxE,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,CAAC,wBAAwB,GAAG,IAAI,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAoC,EAAE;IAC/D,IAAI,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IAEvC,yBAAyB;IACzB,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAgB,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,GAAG,aAAa,EAAE,CAAC;IACpC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAgB,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,MAAM,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,mBAAmB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;CAmB1B,CAAC;AAEF,MAAM,UAAU,WAAW;IACzB,iEAAiE;IACjE,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACnF,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC/B,aAAa,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED,iDAAiD;IACjD,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,qFAAqF;AACrF,SAAS,SAAS,CAAC,CAAM,EAAE,CAAM;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACpB,IACE,IAAI;YACJ,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;YACxB,OAAO,IAAI,KAAK,QAAQ;YACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EACpB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function isDevelopmentRuntime(): boolean;
|
|
2
|
+
export declare function resolveWebAppUrl(override?: string): string;
|
|
3
|
+
export declare function resolveRelayUrl(): string;
|
|
4
|
+
export declare const CONNECTION_TARGET_DEFAULTS: {
|
|
5
|
+
readonly prodWebAppUrl: "https://aimux.app";
|
|
6
|
+
readonly prodRelayUrl: "wss://relay.aimux.app";
|
|
7
|
+
readonly devWebAppUrl: "http://localhost:8081";
|
|
8
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const PROD_WEB_APP_URL = "https://aimux.app";
|
|
2
|
+
const PROD_RELAY_URL = "wss://relay.aimux.app";
|
|
3
|
+
const DEV_WEB_APP_URL = "http://localhost:8081";
|
|
4
|
+
function cleanUrl(value) {
|
|
5
|
+
return value.replace(/\/$/, "");
|
|
6
|
+
}
|
|
7
|
+
function optionalEnv(value) {
|
|
8
|
+
const trimmed = value?.trim();
|
|
9
|
+
return trimmed ? trimmed : undefined;
|
|
10
|
+
}
|
|
11
|
+
export function isDevelopmentRuntime() {
|
|
12
|
+
return process.env.AIMUX_ENV === "development";
|
|
13
|
+
}
|
|
14
|
+
export function resolveWebAppUrl(override) {
|
|
15
|
+
const value = optionalEnv(override) ??
|
|
16
|
+
optionalEnv(process.env.AIMUX_WEB_APP_URL) ??
|
|
17
|
+
(isDevelopmentRuntime() ? DEV_WEB_APP_URL : PROD_WEB_APP_URL);
|
|
18
|
+
return cleanUrl(value);
|
|
19
|
+
}
|
|
20
|
+
export function resolveRelayUrl() {
|
|
21
|
+
return cleanUrl(optionalEnv(process.env.AIMUX_RELAY_URL) ?? PROD_RELAY_URL);
|
|
22
|
+
}
|
|
23
|
+
export const CONNECTION_TARGET_DEFAULTS = {
|
|
24
|
+
prodWebAppUrl: PROD_WEB_APP_URL,
|
|
25
|
+
prodRelayUrl: PROD_RELAY_URL,
|
|
26
|
+
devWebAppUrl: DEV_WEB_APP_URL,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=connection-targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection-targets.js","sourceRoot":"","sources":["../src/connection-targets.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,aAAa,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,MAAM,KAAK,GACT,WAAW,CAAC,QAAQ,CAAC;QACrB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1C,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,cAAc,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,aAAa,EAAE,gBAAgB;IAC/B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,eAAe;CACrB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AimuxCredentials {
|
|
2
|
+
version: 1;
|
|
3
|
+
relayUrl: string;
|
|
4
|
+
token: string;
|
|
5
|
+
userId: string;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
remoteEnabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function loadCredentials(): AimuxCredentials | null;
|
|
10
|
+
export declare function saveCredentials(creds: AimuxCredentials): void;
|
|
11
|
+
export declare function clearCredentials(): "cleared" | "none" | "failed";
|
|
12
|
+
export declare function setRemoteEnabled(enabled: boolean): AimuxCredentials | null;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Stored CLI credentials for relay access (`~/.aimux/auth.json`).
|
|
2
|
+
//
|
|
3
|
+
// Populated by `aimux login` (browser flow). The daemon reads this to connect
|
|
4
|
+
// to the relay. The token is a long-lived relay-signed JWT — not a Clerk
|
|
5
|
+
// session token — so it survives daemon restarts and runs for ~90 days.
|
|
6
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync, chmodSync } from "node:fs";
|
|
7
|
+
import { dirname } from "node:path";
|
|
8
|
+
import { getAuthPath } from "./paths.js";
|
|
9
|
+
export function loadCredentials() {
|
|
10
|
+
const path = getAuthPath();
|
|
11
|
+
if (!existsSync(path))
|
|
12
|
+
return null;
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(readFileSync(path, "utf-8"));
|
|
15
|
+
if (parsed.version !== 1 || !parsed.token || !parsed.relayUrl)
|
|
16
|
+
return null;
|
|
17
|
+
return parsed;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function saveCredentials(creds) {
|
|
24
|
+
const path = getAuthPath();
|
|
25
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
26
|
+
writeFileSync(path, `${JSON.stringify(creds, null, 2)}\n`, { mode: 0o600 });
|
|
27
|
+
chmodSync(path, 0o600);
|
|
28
|
+
}
|
|
29
|
+
export function clearCredentials() {
|
|
30
|
+
const path = getAuthPath();
|
|
31
|
+
if (!existsSync(path))
|
|
32
|
+
return "none";
|
|
33
|
+
try {
|
|
34
|
+
rmSync(path, { force: true });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return "failed";
|
|
38
|
+
}
|
|
39
|
+
return "cleared";
|
|
40
|
+
}
|
|
41
|
+
export function setRemoteEnabled(enabled) {
|
|
42
|
+
const creds = loadCredentials();
|
|
43
|
+
if (!creds)
|
|
44
|
+
return null;
|
|
45
|
+
const next = { ...creds, remoteEnabled: enabled };
|
|
46
|
+
saveCredentials(next);
|
|
47
|
+
return next;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,8EAA8E;AAC9E,yEAAyE;AACzE,wEAAwE;AAExE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAazC,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAqB,CAAC;QAC3E,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3E,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB;IACrD,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;IAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;IAClD,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { type RelayStatusSnapshot } from "./relay-client.js";
|
|
2
|
+
export declare function getDaemonHost(): string;
|
|
3
|
+
export declare function getDaemonPort(): number;
|
|
1
4
|
export interface AimuxDaemonInfo {
|
|
2
5
|
pid: number;
|
|
3
6
|
port: number;
|
|
@@ -26,14 +29,34 @@ export declare function stopProjectService(projectRoot: string): Promise<Project
|
|
|
26
29
|
export declare function projectServiceStatus(projectRoot: string): Promise<ProjectServiceState | null>;
|
|
27
30
|
export declare class AimuxDaemon {
|
|
28
31
|
private server;
|
|
32
|
+
private relayClient;
|
|
29
33
|
private readonly children;
|
|
34
|
+
private readonly projectEnsurePromises;
|
|
30
35
|
private state;
|
|
31
36
|
start(): Promise<void>;
|
|
37
|
+
private connectRelayIfConfigured;
|
|
38
|
+
getRelayStatus(): RelayStatusSnapshot | {
|
|
39
|
+
status: "off";
|
|
40
|
+
};
|
|
41
|
+
enableRelay(): RelayStatusSnapshot | {
|
|
42
|
+
status: "off";
|
|
43
|
+
};
|
|
44
|
+
disableRelay(): {
|
|
45
|
+
status: "off";
|
|
46
|
+
};
|
|
32
47
|
stop(): void;
|
|
33
48
|
private refreshState;
|
|
34
49
|
private spawnProjectService;
|
|
35
50
|
private ensureProject;
|
|
51
|
+
private ensureProjectUnlocked;
|
|
52
|
+
private replaceProjectServiceAfterExit;
|
|
53
|
+
private terminateProjectService;
|
|
54
|
+
private waitForProjectServiceExit;
|
|
36
55
|
private stopProject;
|
|
56
|
+
routeRequest(method: string, path: string, body?: unknown, headers?: Record<string, string>): Promise<{
|
|
57
|
+
status: number;
|
|
58
|
+
body: unknown;
|
|
59
|
+
}>;
|
|
37
60
|
private handle;
|
|
38
61
|
}
|
|
39
62
|
export {};
|