@antelopejs/dms-ai 0.0.6 → 0.1.1-next.0
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 +83 -2
- package/dist/config.d.ts +7 -0
- package/dist/config.js +33 -0
- package/dist/config.js.map +1 -0
- package/dist/constants/sidecar.d.ts +2 -0
- package/dist/constants/sidecar.js +3 -1
- package/dist/constants/sidecar.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/spawn-sidecar.d.ts +1 -0
- package/dist/lifecycle/spawn-sidecar.js +9 -0
- package/dist/lifecycle/spawn-sidecar.js.map +1 -1
- package/dist/routes/settings.d.ts +7 -0
- package/dist/routes/settings.js +2 -0
- package/dist/routes/settings.js.map +1 -1
- package/frontend-vue/app/components/SettingsView.vue +85 -3
- package/frontend-vue/app/runtime/constants.ts +0 -1
- package/package.json +11 -1
- package/sidecar/chatbox/dist/assets/index-CEZ1NLp9.js +52 -0
- package/sidecar/chatbox/dist/assets/{index-pP_KOHIn.css → index-D_51Vqqk.css} +1 -1
- package/sidecar/chatbox/dist/index.html +2 -2
- package/sidecar/dist/agent/attachment-files.d.ts +5 -0
- package/sidecar/dist/agent/attachment-files.js +29 -0
- package/sidecar/dist/agent/attachment-files.js.map +1 -0
- package/sidecar/dist/agent/provider.d.ts +40 -0
- package/sidecar/dist/agent/provider.js +2 -0
- package/sidecar/dist/agent/provider.js.map +1 -0
- package/sidecar/dist/agent/{claude-runner.d.ts → runner.d.ts} +8 -11
- package/sidecar/dist/agent/runner.js +71 -0
- package/sidecar/dist/agent/runner.js.map +1 -0
- package/sidecar/dist/agent/session.d.ts +22 -0
- package/sidecar/dist/agent/{claude-session.js → session.js} +39 -47
- package/sidecar/dist/agent/session.js.map +1 -0
- package/sidecar/dist/agent/switching-runner.d.ts +6 -0
- package/sidecar/dist/agent/switching-runner.js +58 -0
- package/sidecar/dist/agent/switching-runner.js.map +1 -0
- package/sidecar/dist/constants/agent.d.ts +2 -12
- package/sidecar/dist/constants/agent.js +2 -11
- package/sidecar/dist/constants/agent.js.map +1 -1
- package/sidecar/dist/constants/claude.d.ts +10 -0
- package/sidecar/dist/constants/claude.js +10 -0
- package/sidecar/dist/constants/claude.js.map +1 -0
- package/sidecar/dist/constants/cli.d.ts +2 -0
- package/sidecar/dist/constants/cli.js +3 -0
- package/sidecar/dist/constants/cli.js.map +1 -0
- package/sidecar/dist/constants/codex.d.ts +85 -0
- package/sidecar/dist/constants/codex.js +110 -0
- package/sidecar/dist/constants/codex.js.map +1 -0
- package/sidecar/dist/constants/http.d.ts +1 -0
- package/sidecar/dist/constants/http.js +1 -0
- package/sidecar/dist/constants/http.js.map +1 -1
- package/sidecar/dist/constants/mcp.d.ts +6 -0
- package/sidecar/dist/constants/mcp.js +11 -0
- package/sidecar/dist/constants/mcp.js.map +1 -1
- package/sidecar/dist/constants/pages.d.ts +0 -1
- package/sidecar/dist/constants/pages.js +0 -1
- package/sidecar/dist/constants/pages.js.map +1 -1
- package/sidecar/dist/constants/paths.d.ts +5 -0
- package/sidecar/dist/constants/paths.js +5 -0
- package/sidecar/dist/constants/paths.js.map +1 -1
- package/sidecar/dist/constants/ports.d.ts +0 -1
- package/sidecar/dist/constants/ports.js +0 -1
- package/sidecar/dist/constants/ports.js.map +1 -1
- package/sidecar/dist/constants/providers.d.ts +16 -0
- package/sidecar/dist/constants/providers.js +17 -0
- package/sidecar/dist/constants/providers.js.map +1 -0
- package/sidecar/dist/constants/settings.d.ts +1 -4
- package/sidecar/dist/constants/settings.js +2 -12
- package/sidecar/dist/constants/settings.js.map +1 -1
- package/sidecar/dist/constants/skills.d.ts +1 -0
- package/sidecar/dist/constants/skills.js +2 -0
- package/sidecar/dist/constants/skills.js.map +1 -0
- package/sidecar/dist/constants/timing.d.ts +1 -0
- package/sidecar/dist/constants/timing.js +1 -0
- package/sidecar/dist/constants/timing.js.map +1 -1
- package/sidecar/dist/constants/tool-lexicon.d.ts +7 -0
- package/sidecar/dist/constants/tool-lexicon.js +8 -0
- package/sidecar/dist/constants/tool-lexicon.js.map +1 -0
- package/sidecar/dist/index.d.ts +11 -0
- package/sidecar/dist/index.js +33 -8
- package/sidecar/dist/index.js.map +1 -1
- package/sidecar/dist/mcp/define-tool.d.ts +23 -0
- package/sidecar/dist/mcp/define-tool.js +4 -0
- package/sidecar/dist/mcp/define-tool.js.map +1 -0
- package/sidecar/dist/mcp/http-binding.d.ts +9 -0
- package/sidecar/dist/mcp/http-binding.js +123 -0
- package/sidecar/dist/mcp/http-binding.js.map +1 -0
- package/sidecar/dist/mcp/sdk-binding.js +14 -0
- package/sidecar/dist/mcp/sdk-binding.js.map +1 -0
- package/sidecar/dist/mcp/tool-definitions.d.ts +3 -0
- package/sidecar/dist/mcp/{server.js → tool-definitions.js} +2 -11
- package/sidecar/dist/mcp/tool-definitions.js.map +1 -0
- package/sidecar/dist/mcp/tools/ask-user.d.ts +1 -1
- package/sidecar/dist/mcp/tools/ask-user.js +2 -2
- package/sidecar/dist/mcp/tools/ask-user.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder.d.ts +19 -19
- package/sidecar/dist/mcp/tools/builder.js +26 -26
- package/sidecar/dist/mcp/tools/builder.js.map +1 -1
- package/sidecar/dist/mcp/tools/find-pages-using.d.ts +1 -1
- package/sidecar/dist/mcp/tools/find-pages-using.js +2 -2
- package/sidecar/dist/mcp/tools/find-pages-using.js.map +1 -1
- package/sidecar/dist/mcp/tools/get-current-page.d.ts +1 -1
- package/sidecar/dist/mcp/tools/get-current-page.js +2 -2
- package/sidecar/dist/mcp/tools/get-current-page.js.map +1 -1
- package/sidecar/dist/mcp/tools/list-pages.d.ts +1 -1
- package/sidecar/dist/mcp/tools/list-pages.js +2 -2
- package/sidecar/dist/mcp/tools/list-pages.js.map +1 -1
- package/sidecar/dist/mcp/tools/navigate-to-page.d.ts +1 -1
- package/sidecar/dist/mcp/tools/navigate-to-page.js +2 -2
- package/sidecar/dist/mcp/tools/navigate-to-page.js.map +1 -1
- package/sidecar/dist/mcp/tools/query-logs.d.ts +1 -1
- package/sidecar/dist/mcp/tools/query-logs.js +2 -2
- package/sidecar/dist/mcp/tools/query-logs.js.map +1 -1
- package/sidecar/dist/mcp/tools/typecheck.d.ts +1 -1
- package/sidecar/dist/mcp/tools/typecheck.js +2 -2
- package/sidecar/dist/mcp/tools/typecheck.js.map +1 -1
- package/sidecar/dist/mcp/types.d.ts +6 -2
- package/sidecar/dist/protocol/events.d.ts +37 -0
- package/sidecar/dist/protocol/events.js +8 -0
- package/sidecar/dist/protocol/events.js.map +1 -1
- package/sidecar/dist/protocol/messages.d.ts +8 -0
- package/sidecar/dist/protocol/messages.js +2 -0
- package/sidecar/dist/protocol/messages.js.map +1 -1
- package/sidecar/dist/providers/claude/adapter.d.ts +5 -0
- package/sidecar/dist/{agent/sdk-adapter.js → providers/claude/adapter.js} +20 -1
- package/sidecar/dist/providers/claude/adapter.js.map +1 -0
- package/sidecar/dist/{agent → providers/claude}/attachments.d.ts +1 -1
- package/sidecar/dist/{agent → providers/claude}/attachments.js +3 -27
- package/sidecar/dist/providers/claude/attachments.js.map +1 -0
- package/sidecar/dist/providers/claude/config.d.ts +4 -0
- package/sidecar/dist/providers/claude/config.js +13 -0
- package/sidecar/dist/providers/claude/config.js.map +1 -0
- package/sidecar/dist/providers/claude/input-queue.js.map +1 -0
- package/sidecar/dist/providers/claude/module.d.ts +2 -0
- package/sidecar/dist/providers/claude/module.js +25 -0
- package/sidecar/dist/providers/claude/module.js.map +1 -0
- package/sidecar/dist/providers/claude/provider.d.ts +11 -0
- package/sidecar/dist/{agent/claude-runner.js → providers/claude/provider.js} +118 -96
- package/sidecar/dist/providers/claude/provider.js.map +1 -0
- package/sidecar/dist/{agent/resolve-claude-binary.js → providers/claude/resolve-binary.js} +3 -3
- package/sidecar/dist/{agent/resolve-claude-binary.js.map → providers/claude/resolve-binary.js.map} +1 -1
- package/sidecar/dist/providers/claude/sdk-loader.js +16 -0
- package/sidecar/dist/providers/claude/sdk-loader.js.map +1 -0
- package/sidecar/dist/providers/codex/adapter.d.ts +7 -0
- package/sidecar/dist/providers/codex/adapter.js +147 -0
- package/sidecar/dist/providers/codex/adapter.js.map +1 -0
- package/sidecar/dist/providers/codex/attachments.d.ts +7 -0
- package/sidecar/dist/providers/codex/attachments.js +73 -0
- package/sidecar/dist/providers/codex/attachments.js.map +1 -0
- package/sidecar/dist/providers/codex/client.d.ts +34 -0
- package/sidecar/dist/providers/codex/client.js +128 -0
- package/sidecar/dist/providers/codex/client.js.map +1 -0
- package/sidecar/dist/providers/codex/config.d.ts +34 -0
- package/sidecar/dist/providers/codex/config.js +111 -0
- package/sidecar/dist/providers/codex/config.js.map +1 -0
- package/sidecar/dist/providers/codex/event-stream.d.ts +8 -0
- package/sidecar/dist/providers/codex/event-stream.js +53 -0
- package/sidecar/dist/providers/codex/event-stream.js.map +1 -0
- package/sidecar/dist/providers/codex/module.d.ts +2 -0
- package/sidecar/dist/providers/codex/module.js +54 -0
- package/sidecar/dist/providers/codex/module.js.map +1 -0
- package/sidecar/dist/providers/codex/permissions.d.ts +21 -0
- package/sidecar/dist/providers/codex/permissions.js +77 -0
- package/sidecar/dist/providers/codex/permissions.js.map +1 -0
- package/sidecar/dist/providers/codex/process.d.ts +23 -0
- package/sidecar/dist/providers/codex/process.js +208 -0
- package/sidecar/dist/providers/codex/process.js.map +1 -0
- package/sidecar/dist/providers/codex/protocol/common.d.ts +59 -0
- package/sidecar/dist/providers/codex/protocol/common.js +2 -0
- package/sidecar/dist/providers/codex/protocol/common.js.map +1 -0
- package/sidecar/dist/providers/codex/protocol/index.d.ts +3 -0
- package/sidecar/dist/providers/codex/protocol/index.js +3 -0
- package/sidecar/dist/providers/codex/protocol/index.js.map +1 -0
- package/sidecar/dist/providers/codex/protocol/serde_json.d.ts +3 -0
- package/sidecar/dist/providers/codex/protocol/serde_json.js +2 -0
- package/sidecar/dist/providers/codex/protocol/serde_json.js.map +1 -0
- package/sidecar/dist/providers/codex/protocol/v2.d.ts +481 -0
- package/sidecar/dist/providers/codex/protocol/v2.js +2 -0
- package/sidecar/dist/providers/codex/protocol/v2.js.map +1 -0
- package/sidecar/dist/providers/codex/provider.d.ts +14 -0
- package/sidecar/dist/providers/codex/provider.js +225 -0
- package/sidecar/dist/providers/codex/provider.js.map +1 -0
- package/sidecar/dist/providers/codex/resolve-binary.d.ts +10 -0
- package/sidecar/dist/providers/codex/resolve-binary.js +80 -0
- package/sidecar/dist/providers/codex/resolve-binary.js.map +1 -0
- package/sidecar/dist/providers/codex/skills.d.ts +10 -0
- package/sidecar/dist/providers/codex/skills.js +42 -0
- package/sidecar/dist/providers/codex/skills.js.map +1 -0
- package/sidecar/dist/providers/registry.d.ts +7 -0
- package/sidecar/dist/providers/registry.js +31 -0
- package/sidecar/dist/providers/registry.js.map +1 -0
- package/sidecar/dist/providers/types.d.ts +25 -0
- package/sidecar/dist/providers/types.js +5 -0
- package/sidecar/dist/providers/types.js.map +1 -0
- package/sidecar/dist/server/http.d.ts +2 -0
- package/sidecar/dist/server/http.js +26 -12
- package/sidecar/dist/server/http.js.map +1 -1
- package/sidecar/dist/server/routing.d.ts +4 -4
- package/sidecar/dist/server/routing.js +7 -1
- package/sidecar/dist/server/routing.js.map +1 -1
- package/sidecar/dist/server/ws.d.ts +2 -0
- package/sidecar/dist/server/ws.js +40 -17
- package/sidecar/dist/server/ws.js.map +1 -1
- package/sidecar/dist/skills/build-catalog.d.ts +2 -0
- package/sidecar/dist/skills/build-catalog.js +12 -1
- package/sidecar/dist/skills/build-catalog.js.map +1 -1
- package/sidecar/dist/state/conversations.d.ts +3 -1
- package/sidecar/dist/state/conversations.js +20 -0
- package/sidecar/dist/state/conversations.js.map +1 -1
- package/sidecar/dist/state/safe-segment.d.ts +1 -0
- package/sidecar/dist/state/safe-segment.js +17 -0
- package/sidecar/dist/state/safe-segment.js.map +1 -0
- package/sidecar/dist/state/settings-store.js +7 -0
- package/sidecar/dist/state/settings-store.js.map +1 -1
- package/sidecar/dist/state/settings-types.d.ts +2 -0
- package/sidecar/dist/state/settings-types.js.map +1 -1
- package/sidecar/dist/state/types.d.ts +11 -0
- package/sidecar/dist/state/types.js +7 -0
- package/sidecar/dist/state/types.js.map +1 -1
- package/sidecar/package.json +3 -0
- package/sidecar/chatbox/dist/assets/index-Cy2BwTG0.js +0 -50
- package/sidecar/dist/agent/attachments.js.map +0 -1
- package/sidecar/dist/agent/claude-runner.js.map +0 -1
- package/sidecar/dist/agent/claude-session.d.ts +0 -18
- package/sidecar/dist/agent/claude-session.js.map +0 -1
- package/sidecar/dist/agent/input-queue.js.map +0 -1
- package/sidecar/dist/agent/sdk-adapter.d.ts +0 -3
- package/sidecar/dist/agent/sdk-adapter.js.map +0 -1
- package/sidecar/dist/agent/sdk-loader.js +0 -14
- package/sidecar/dist/agent/sdk-loader.js.map +0 -1
- package/sidecar/dist/mcp/server.js.map +0 -1
- /package/sidecar/dist/mcp/{server.d.ts → sdk-binding.d.ts} +0 -0
- /package/sidecar/dist/{agent → providers/claude}/input-queue.d.ts +0 -0
- /package/sidecar/dist/{agent → providers/claude}/input-queue.js +0 -0
- /package/sidecar/dist/{agent/resolve-claude-binary.d.ts → providers/claude/resolve-binary.d.ts} +0 -0
- /package/sidecar/dist/{agent → providers/claude}/sdk-loader.d.ts +0 -0
package/README.md
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
</div>
|
|
8
8
|
|
|
9
9
|
An AntelopeJS DMS development assistant. It adds an owner-only AI workspace to the dashboard and
|
|
10
|
-
runs
|
|
11
|
-
edit the host project, and stream activity back to the dashboard.
|
|
10
|
+
runs a coding agent in a local sidecar that can inspect the loaded modules and their declared skills,
|
|
11
|
+
edit the host project, and stream activity back to the dashboard. Claude Code drives it by default;
|
|
12
|
+
OpenAI's Codex is selectable once its CLI is installed.
|
|
12
13
|
|
|
13
14
|
## Installation
|
|
14
15
|
|
|
@@ -22,6 +23,86 @@ The module starts its bundled sidecar with the project as its working directory.
|
|
|
22
23
|
set `DMS_AI=0` before starting the backend to disable the sidecar. If
|
|
23
24
|
`@antelopejs/dms-builder` is installed, the assistant also exposes its builder integration.
|
|
24
25
|
|
|
26
|
+
## Configuration
|
|
27
|
+
|
|
28
|
+
Both keys are optional. Left out, the sidecar keeps the defaults it uses when run standalone
|
|
29
|
+
(`http://localhost:5010` and `http://localhost:3001`), which is the behaviour every existing project
|
|
30
|
+
already has.
|
|
31
|
+
|
|
32
|
+
| Key | What it is |
|
|
33
|
+
| ------------ | ------------------------------------------------------------------------------ |
|
|
34
|
+
| `backendUrl` | Origin the sidecar calls the DMS backend on — its pages registry, logs and builder clients. |
|
|
35
|
+
| `hostOrigin` | Origin the DMS frontend is served from. |
|
|
36
|
+
|
|
37
|
+
The api module publishes the origin it actually reserved, so `backendUrl` should reference it rather
|
|
38
|
+
than repeat a port that may already be taken:
|
|
39
|
+
|
|
40
|
+
```typescript [antelope.config.ts]
|
|
41
|
+
export default defineConfig({
|
|
42
|
+
modules: {
|
|
43
|
+
"dms-ai": {
|
|
44
|
+
source: { type: "package", package: "@antelopejs/dms-ai" },
|
|
45
|
+
config: {
|
|
46
|
+
backendUrl: "${@api.API_LOCAL_BASE_URL}",
|
|
47
|
+
hostOrigin: "http://localhost:3001",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
`hostOrigin` is the *frontend* origin, which the api module cannot publish: write it out, using the
|
|
55
|
+
same value as `dms`'s `clientBaseUrl`.
|
|
56
|
+
|
|
57
|
+
## Agent providers
|
|
58
|
+
|
|
59
|
+
The assistant runs on either Claude Code or Codex, picked in the AI settings page. Both go through
|
|
60
|
+
the same seam, so the chat, the tool calls, the permission prompts and the file-change animation
|
|
61
|
+
behave the same either way. `GET /settings` reports which ones this install can actually drive:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{ "provider": "claude", "providers": { "claude": { "available": true }, "codex": { "available": false, "reason": "Install @openai/codex, at the exact version dms-ai pins, to enable this provider." } } }
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`claude` is the default *choice*, not a fallback. A provider that this install cannot drive — its
|
|
68
|
+
package uninstalled, its API key gone from the environment — fails the turn with that reason in the
|
|
69
|
+
chat, and the conversation is never quietly handed to the other backend: someone who picked OpenAI
|
|
70
|
+
may have picked it precisely so their code does not reach Anthropic.
|
|
71
|
+
|
|
72
|
+
Switching provider disposes the live sessions of the previous one — an open conversation loses its
|
|
73
|
+
in-agent context, its transcript is kept.
|
|
74
|
+
|
|
75
|
+
### Enabling Codex
|
|
76
|
+
|
|
77
|
+
1. **Install the `codex` CLI.** It is an *optional* peer dependency, so it is never installed for
|
|
78
|
+
you: the platform packages weigh ~324 MB unpacked, and only the installs that want Codex should
|
|
79
|
+
pay for them. Use the exact version this module pins, in `peerDependencies["@openai/codex"]`:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pnpm add @openai/codex@0.154.0
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The app-server protocol is versioned by binary and OpenAI publishes roughly ten versions a
|
|
86
|
+
month. The sidecar ships protocol types generated from the pinned version and checks
|
|
87
|
+
`codex --version` against it at spawn, refusing to start on a mismatch rather than speaking a
|
|
88
|
+
protocol its types do not describe. The refusal names both versions, so an upgrade says what to
|
|
89
|
+
pin back to. To run a newer binary anyway — at the risk of a protocol its types do not
|
|
90
|
+
describe — set `DMS_AI_CODEX_ALLOW_VERSION_MISMATCH=1`; the drift is then logged once, at startup, instead of
|
|
91
|
+
blocking the provider.
|
|
92
|
+
|
|
93
|
+
2. **Provide an API key.** Export `OPENAI_API_KEY` in the host process environment. The binary does
|
|
94
|
+
not read that variable itself: the sidecar writes it into an `auth.json` (mode `0600`) inside a
|
|
95
|
+
`CODEX_HOME` dedicated to the conversation. On Windows that mode is not enforced by the
|
|
96
|
+
filesystem, so the file is only as private as the directory it sits in. ChatGPT login is not
|
|
97
|
+
supported here — it shares a token refresh with the user's own `codex` install.
|
|
98
|
+
|
|
99
|
+
3. **Restart the sidecar**, then pick *OpenAI (Codex)* in the AI settings page.
|
|
100
|
+
|
|
101
|
+
Linux, macOS and Windows are all supported. One app-server process runs per conversation, and the
|
|
102
|
+
sidecar records its pid so a previous run's orphans are killed at startup — through procfs on
|
|
103
|
+
Linux, `ps` on macOS and `taskkill /T` on Windows, which is also what takes the sandboxed children
|
|
104
|
+
of the app-server with it.
|
|
105
|
+
|
|
25
106
|
## Vue frontend
|
|
26
107
|
|
|
27
108
|
The module registers `frontend-vue` through `AddFrontendModule` with the Vue 3 renderer. The host DMS supplies authentication and shared state.
|
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseConfig = parseConfig;
|
|
4
|
+
exports.setConfig = setConfig;
|
|
5
|
+
exports.getConfig = getConfig;
|
|
6
|
+
const CONFIG_KEYS = ["backendUrl", "hostOrigin"];
|
|
7
|
+
let current = {};
|
|
8
|
+
function readOrigin(raw, key) {
|
|
9
|
+
const value = raw[key];
|
|
10
|
+
if (typeof value !== "string")
|
|
11
|
+
return undefined;
|
|
12
|
+
const trimmed = value.trim();
|
|
13
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
14
|
+
}
|
|
15
|
+
function parseConfig(raw) {
|
|
16
|
+
if (raw === null || typeof raw !== "object")
|
|
17
|
+
return {};
|
|
18
|
+
const source = raw;
|
|
19
|
+
const parsed = {};
|
|
20
|
+
for (const key of CONFIG_KEYS) {
|
|
21
|
+
const origin = readOrigin(source, key);
|
|
22
|
+
if (origin !== undefined)
|
|
23
|
+
parsed[key] = origin;
|
|
24
|
+
}
|
|
25
|
+
return parsed;
|
|
26
|
+
}
|
|
27
|
+
function setConfig(config) {
|
|
28
|
+
current = config;
|
|
29
|
+
}
|
|
30
|
+
function getConfig() {
|
|
31
|
+
return current;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AA0BA,kCASC;AAED,8BAEC;AAED,8BAEC;AAnCD,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,YAAY,CAAU,CAAC;AAE1D,IAAI,OAAO,GAAa,EAAE,CAAC;AAE3B,SAAS,UAAU,CACjB,GAA4B,EAC5B,GAAW;IAEX,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAMD,SAAgB,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,SAAS,CAAC,MAAgB;IACxC,OAAO,GAAG,MAAM,CAAC;AACnB,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -18,6 +18,8 @@ export declare const SIDECAR_BUILD_ID_FLAG = "--build-id";
|
|
|
18
18
|
export declare const SIDECAR_MODULE_ROOTS_FLAG = "--module-roots";
|
|
19
19
|
export declare const SIDECAR_SKILL_DIRS_FLAG = "--skill-dirs";
|
|
20
20
|
export declare const SIDECAR_BUILDER_FLAG = "--builder-enabled";
|
|
21
|
+
export declare const SIDECAR_BACKEND_URL_FLAG = "--backend-url";
|
|
22
|
+
export declare const SIDECAR_HOST_ORIGIN_FLAG = "--host-origin";
|
|
21
23
|
export declare const MODULE_ROOTS_TIMEOUT_MS = 3000;
|
|
22
24
|
export declare const SIDECAR_DIST_EXTENSION = ".js";
|
|
23
25
|
export declare const SIDECAR_LOOPBACK_HOST = "127.0.0.1";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SIDECAR_AUTH_HEADER = exports.SIDECAR_LOOPBACK_HOST = exports.SIDECAR_DIST_EXTENSION = exports.MODULE_ROOTS_TIMEOUT_MS = exports.SIDECAR_BUILDER_FLAG = exports.SIDECAR_SKILL_DIRS_FLAG = exports.SIDECAR_MODULE_ROOTS_FLAG = exports.SIDECAR_BUILD_ID_FLAG = exports.SIDECAR_LOCK_POLL_INTERVAL_MS = exports.SIDECAR_HEALTH_TIMEOUT_MS = exports.SIDECAR_HEALTH_PATH = exports.SIDECAR_LOG_FILE_NAME = exports.SIDECAR_LOCK_FILE_NAME = exports.SIDECAR_CACHE_DIR_SEGMENTS = exports.SIDECAR_SUCCESS_EXIT_CODE = exports.SIDECAR_DIST_REL = exports.SIDECAR_ENV_DISABLE_KEY = exports.SIDECAR_DISABLED_FLAG = exports.SIDECAR_LOG_PREFIX = exports.SIDECAR_RESPAWN_DELAY_MS = exports.SIDECAR_RESPAWN_WINDOW_MS = exports.SIDECAR_RESPAWN_MAX = exports.SIDECAR_SPAWN_TIMEOUT_MS = exports.SIDECAR_BIN_NAME = void 0;
|
|
3
|
+
exports.SIDECAR_AUTH_HEADER = exports.SIDECAR_LOOPBACK_HOST = exports.SIDECAR_DIST_EXTENSION = exports.MODULE_ROOTS_TIMEOUT_MS = exports.SIDECAR_HOST_ORIGIN_FLAG = exports.SIDECAR_BACKEND_URL_FLAG = exports.SIDECAR_BUILDER_FLAG = exports.SIDECAR_SKILL_DIRS_FLAG = exports.SIDECAR_MODULE_ROOTS_FLAG = exports.SIDECAR_BUILD_ID_FLAG = exports.SIDECAR_LOCK_POLL_INTERVAL_MS = exports.SIDECAR_HEALTH_TIMEOUT_MS = exports.SIDECAR_HEALTH_PATH = exports.SIDECAR_LOG_FILE_NAME = exports.SIDECAR_LOCK_FILE_NAME = exports.SIDECAR_CACHE_DIR_SEGMENTS = exports.SIDECAR_SUCCESS_EXIT_CODE = exports.SIDECAR_DIST_REL = exports.SIDECAR_ENV_DISABLE_KEY = exports.SIDECAR_DISABLED_FLAG = exports.SIDECAR_LOG_PREFIX = exports.SIDECAR_RESPAWN_DELAY_MS = exports.SIDECAR_RESPAWN_WINDOW_MS = exports.SIDECAR_RESPAWN_MAX = exports.SIDECAR_SPAWN_TIMEOUT_MS = exports.SIDECAR_BIN_NAME = void 0;
|
|
4
4
|
exports.SIDECAR_BIN_NAME = "dms-ai-sidecar";
|
|
5
5
|
exports.SIDECAR_SPAWN_TIMEOUT_MS = 10_000;
|
|
6
6
|
exports.SIDECAR_RESPAWN_MAX = 3;
|
|
@@ -25,6 +25,8 @@ exports.SIDECAR_BUILD_ID_FLAG = "--build-id";
|
|
|
25
25
|
exports.SIDECAR_MODULE_ROOTS_FLAG = "--module-roots";
|
|
26
26
|
exports.SIDECAR_SKILL_DIRS_FLAG = "--skill-dirs";
|
|
27
27
|
exports.SIDECAR_BUILDER_FLAG = "--builder-enabled";
|
|
28
|
+
exports.SIDECAR_BACKEND_URL_FLAG = "--backend-url";
|
|
29
|
+
exports.SIDECAR_HOST_ORIGIN_FLAG = "--host-origin";
|
|
28
30
|
exports.MODULE_ROOTS_TIMEOUT_MS = 3_000;
|
|
29
31
|
exports.SIDECAR_DIST_EXTENSION = ".js";
|
|
30
32
|
exports.SIDECAR_LOOPBACK_HOST = "127.0.0.1";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/constants/sidecar.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AACjD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,0BAA0B,GAAG;IACxC,cAAc;IACd,QAAQ;IACR,QAAQ;CACA,CAAC;AACE,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,yBAAyB,GAAG,IAAI,CAAC;AACjC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,yBAAyB,GAAG,gBAAgB,CAAC;AAC7C,QAAA,uBAAuB,GAAG,cAAc,CAAC;AACzC,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAChC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAC/B,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/constants/sidecar.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,wBAAwB,GAAG,MAAM,CAAC;AAClC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AACxB,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAC/B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAC5B,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,gBAAgB,GAAG,6BAA6B,CAAC;AACjD,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAC9B,QAAA,0BAA0B,GAAG;IACxC,cAAc;IACd,QAAQ;IACR,QAAQ;CACA,CAAC;AACE,QAAA,sBAAsB,GAAG,cAAc,CAAC;AACxC,QAAA,qBAAqB,GAAG,aAAa,CAAC;AACtC,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,yBAAyB,GAAG,IAAI,CAAC;AACjC,QAAA,6BAA6B,GAAG,GAAG,CAAC;AACpC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,yBAAyB,GAAG,gBAAgB,CAAC;AAC7C,QAAA,uBAAuB,GAAG,cAAc,CAAC;AACzC,QAAA,oBAAoB,GAAG,mBAAmB,CAAC;AAC3C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAC3C,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAC3C,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAChC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAC/B,QAAA,qBAAqB,GAAG,WAAW,CAAC;AACpC,QAAA,mBAAmB,GAAG,gBAAgB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.construct = construct;
|
|
6
7
|
exports.start = start;
|
|
7
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
9
|
const logging_1 = require("@antelopejs/interface-core/logging");
|
|
9
10
|
const page_1 = require("@antelopejs/interface-dms/page");
|
|
10
11
|
const presence_1 = require("./builder/presence");
|
|
12
|
+
const config_1 = require("./config");
|
|
11
13
|
const frontend_module_1 = require("./constants/frontend-module");
|
|
12
14
|
const sidecar_1 = require("./constants/sidecar");
|
|
13
15
|
const module_roots_1 = require("./lifecycle/module-roots");
|
|
@@ -16,6 +18,9 @@ const spawn_sidecar_1 = require("./lifecycle/spawn-sidecar");
|
|
|
16
18
|
const log_buffer_1 = require("./logging/log-buffer");
|
|
17
19
|
require("./pages");
|
|
18
20
|
require("./routes");
|
|
21
|
+
function construct(config) {
|
|
22
|
+
(0, config_1.setConfig)((0, config_1.parseConfig)(config));
|
|
23
|
+
}
|
|
19
24
|
async function start() {
|
|
20
25
|
(0, log_buffer_1.startLogCapture)();
|
|
21
26
|
await (0, page_1.AddFrontendModule)({
|
|
@@ -31,6 +36,7 @@ async function start() {
|
|
|
31
36
|
]);
|
|
32
37
|
void (0, spawn_sidecar_1.spawnSidecar)({
|
|
33
38
|
hostProjectRoot: process.cwd(),
|
|
39
|
+
...(0, config_1.getConfig)(),
|
|
34
40
|
moduleRoots,
|
|
35
41
|
skillDirs,
|
|
36
42
|
builderEnabled,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAkBA,8BAEC;AAED,sBAyBC;AA/CD,0DAA6B;AAC7B,gEAA6D;AAC7D,yDAAmE;AACnE,iDAAwD;AACxD,qCAA6D;AAC7D,iEAIqC;AACrC,iDAAyD;AACzD,2DAA8D;AAC9D,6DAAgE;AAChE,6DAAyD;AACzD,qDAAuD;AACvD,mBAAiB;AACjB,oBAAkB;AAElB,SAAgB,SAAS,CAAC,MAAe;IACvC,IAAA,kBAAS,EAAC,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC;AAEM,KAAK,UAAU,KAAK;IACzB,IAAA,4BAAe,GAAE,CAAC;IAClB,MAAM,IAAA,wBAAiB,EAAC;QACtB,IAAI,EAAE,sCAAoB;QAC1B,UAAU,EAAE,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qCAAmB,CAAC;QACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE;QACvC,QAAQ,EAAE,0CAAwB;KACnC,CAAC,CAAC;IAIH,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACjE,IAAA,iCAAkB,GAAE;QACpB,IAAA,mCAAmB,GAAE;QACrB,IAAA,6BAAkB,GAAE;KACrB,CAAC,CAAC;IACH,KAAK,IAAA,4BAAY,EAAC;QAChB,eAAe,EAAE,OAAO,CAAC,GAAG,EAAE;QAC9B,GAAG,IAAA,kBAAS,GAAE;QACd,WAAW;QACX,SAAS;QACT,cAAc;KACf,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -20,6 +20,10 @@ const module_1 = require("../constants/module");
|
|
|
20
20
|
const sidecar_1 = require("../constants/sidecar");
|
|
21
21
|
const respawn_tracker_1 = require("./respawn-tracker");
|
|
22
22
|
const WINDOWS_PLATFORM = "win32";
|
|
23
|
+
const ORIGIN_FLAGS = {
|
|
24
|
+
[sidecar_1.SIDECAR_BACKEND_URL_FLAG]: "backendUrl",
|
|
25
|
+
[sidecar_1.SIDECAR_HOST_ORIGIN_FLAG]: "hostOrigin",
|
|
26
|
+
};
|
|
23
27
|
const state = {
|
|
24
28
|
child: null,
|
|
25
29
|
port: null,
|
|
@@ -211,6 +215,11 @@ function buildSpawnArgs(binPath, buildId) {
|
|
|
211
215
|
if (state.options?.builderEnabled) {
|
|
212
216
|
args.push(sidecar_1.SIDECAR_BUILDER_FLAG, "1");
|
|
213
217
|
}
|
|
218
|
+
for (const [flag, option] of Object.entries(ORIGIN_FLAGS)) {
|
|
219
|
+
const origin = state.options?.[option];
|
|
220
|
+
if (origin !== undefined)
|
|
221
|
+
args.push(flag, origin);
|
|
222
|
+
}
|
|
214
223
|
return args;
|
|
215
224
|
}
|
|
216
225
|
function trySpawnChild(binPath, buildId, logPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"spawn-sidecar.js","sourceRoot":"","sources":["../../src/lifecycle/spawn-sidecar.ts"],"names":[],"mappings":";;;;;AA0GA,wCAEC;AAED,0CAGC;AAGD,sDAGC;AAED,4CAEC;AAID,8CAEC;AAKD,8CAEC;AAED,oCAGC;AASD,oDAoBC;AA1KD,2DAA8D;AAC9D,qCAOiB;AACjB,0DAA6B;AAC7B,0DAA6B;AAC7B,gEAA6D;AAC7D,gDAA0D;AAC1D,kDAuB8B;AAC9B,uDAA8E;AAmD9E,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAIjC,MAAM,YAAY,GAAiC;IACjD,CAAC,kCAAwB,CAAC,EAAE,YAAY;IACxC,CAAC,kCAAwB,CAAC,EAAE,YAAY;CACzC,CAAC;AAEF,MAAM,KAAK,GAAiB;IAC1B,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,cAAc,EAAE,IAAA,sCAAoB,GAAE;IACtC,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,SAAgB,cAAc;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;AACvC,CAAC;AAGD,SAAgB,qBAAqB;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7D,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAC7B,CAAC;AAID,SAAgB,iBAAiB;IAC/B,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAKD,SAAgB,iBAAiB;IAC/B,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,IAAkB;IACnD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IACrB,MAAM,oBAAoB,EAAE,CAAC;AAC/B,CAAC;AASM,KAAK,UAAU,oBAAoB;IACxC,IAAI,aAAa,EAAE;QAAE,OAAO;IAC5B,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO;IAC7B,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO;IACnC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAMxB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO;QACjC,IAAI,CAAC,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO;QACrD,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO;IACjC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;QACzE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,QAAQ,CAAC;AACxB,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,4BAAmB;QAAE,OAAO,IAAI,CAAC;IAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,iCAAuB,CAAC,KAAK,+BAAqB,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,0BAAgB,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,mBAAI,CAAC,OAAO,CAAC,SAAS,EAAE,0BAAgB,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,QAAgB;IACpD,OAAO,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,oCAA0B,EAAE,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,sBAAY,EACtB,cAAc,CAAC,IAAI,EAAE,gCAAsB,CAAC,EAC5C,MAAM,CACP,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;QACvD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAqB,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAa,CAAC;QACtE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gCAAsB,CAAC;gBAAE,SAAS;YACtD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1D,IAAI,KAAK,GAAG,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;QAClD,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACpC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,mBAAI,CAAC,GAAG,CAClB;YACE,IAAI,EAAE,+BAAqB;YAC3B,IAAI;YACJ,IAAI,EAAE,6BAAmB;YACzB,OAAO,EAAE,mCAAyB;SACnC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,iBAAO,CAAC,IAAI,CAAC,GAAG,4BAAkB,4BAA4B,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAAiB;IACjD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kCAAwB,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,KAAK,CAAC,uCAA6B,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,OAAe;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,OAAe;IACtD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,+BAAqB,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,CAAC;IACrD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,mCAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IACjD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,iCAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,8BAAoB,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,OAAe,EACf,OAAe,EACf,OAAe;IAEf,IAAI,CAAC;QACH,IAAA,mBAAS,EAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAA,kBAAQ,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,gBAAgB,CAAC;QACvD,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YACtE,QAAQ;YACR,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;YACzB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,IAAA,mBAAS,EAAC,EAAE,CAAC,CAAC;QACd,IAAI,QAAQ;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAY,EACZ,QAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kCAAwB,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,iBAAO,CAAC,IAAI,CACV,GAAG,4BAAkB,8BAA8B,IAAI,CAAC,IAAI,EAAE,CAC/D,CAAC;YACF,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC,uCAA6B,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,wCAAwC,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,OAAe,EACf,OAAe;IAEf,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,+BAAqB,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,aAAa,CAAC,KAAK,CAAC,CAAC;IACrB,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO;IACnB,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,KAAmB;IACxC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,IAAmB;IAC1C,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,IAAI,KAAK,mCAAyB,EAAE,CAAC;QACvC,iBAAO,CAAC,IAAI,CAAC,GAAG,4BAAkB,4BAA4B,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IACD,uBAAuB,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,iBAAO,CAAC,KAAK,CACX,GAAG,4BAAkB,4CAA4C,CAClE,CAAC;QACF,OAAO;IACT,CAAC;IACD,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACxC,iBAAO,CAAC,KAAK,CACX,GAAG,4BAAkB,mCAAmC,kCAAwB,IAAI,CACrF,CAAC;IACF,UAAU,CAAC,uBAAuB,EAAE,kCAAwB,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,uBAAuB;IAC9B,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO;IAC7B,KAAK,oBAAoB,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,GAAY;IAC7C,iBAAO,CAAC,KAAK,CAAC,GAAG,4BAAkB,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
type ProviderName = "claude" | "codex";
|
|
2
|
+
interface ProviderAvailability {
|
|
3
|
+
available: boolean;
|
|
4
|
+
reason?: string;
|
|
5
|
+
}
|
|
1
6
|
interface AiSettings {
|
|
7
|
+
provider: ProviderName;
|
|
2
8
|
mode: "normal" | "acceptEdits" | "plan" | "auto";
|
|
3
9
|
thinking: "off" | "low" | "medium" | "high";
|
|
4
10
|
generationMode: "safe" | "vibe";
|
|
5
11
|
allowLocalSkills: boolean;
|
|
6
12
|
builderAvailable: boolean;
|
|
13
|
+
providers: Record<ProviderName, ProviderAvailability>;
|
|
7
14
|
}
|
|
8
15
|
declare const AISettingsController_base: import("@antelopejs/interface-api").ControllerClass<object>;
|
|
9
16
|
export declare class AISettingsController extends AISettingsController_base {
|
package/dist/routes/settings.js
CHANGED
|
@@ -18,11 +18,13 @@ const auth_1 = require("@antelopejs/interface-dms/auth");
|
|
|
18
18
|
const module_1 = require("../constants/module");
|
|
19
19
|
const proxy_1 = require("./proxy");
|
|
20
20
|
const DEFAULT_SETTINGS = {
|
|
21
|
+
provider: "claude",
|
|
21
22
|
mode: "normal",
|
|
22
23
|
thinking: "medium",
|
|
23
24
|
generationMode: "safe",
|
|
24
25
|
allowLocalSkills: false,
|
|
25
26
|
builderAvailable: false,
|
|
27
|
+
providers: { claude: { available: true }, codex: { available: false } },
|
|
26
28
|
};
|
|
27
29
|
let AISettingsController = class AISettingsController extends (0, interface_api_1.Controller)(module_1.ROUTE_PREFIX) {
|
|
28
30
|
getSettings() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/routes/settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAA2E;AAC3E,yDAA+D;AAC/D,gDAAmD;AACnD,mCAAiD;
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/routes/settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAA2E;AAC3E,yDAA+D;AAC/D,gDAAmD;AACnD,mCAAiD;AAwBjD,MAAM,gBAAgB,GAAe;IACnC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,MAAM;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,SAAS,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;CACxE,CAAC;AAGK,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,IAAA,0BAAU,EAAC,qBAAY,CAAC;IAEhE,WAAW;QACT,OAAO,IAAA,kBAAU,EAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAGD,cAAc,CAAa,IAAa;QACtC,OAAO,IAAA,kBAAU,EAAC,WAAW,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;CACF,CAAA;AAVY,oDAAoB;AAE/B;IADC,IAAA,mBAAG,EAAC,WAAW,CAAC;;;;uDAGhB;AAGD;IADC,IAAA,mBAAG,EAAC,WAAW,CAAC;IACD,WAAA,IAAA,wBAAQ,GAAE,CAAA;;;;0DAEzB;+BATU,oBAAoB;IADhC,IAAA,oBAAa,GAAE;GACH,oBAAoB,CAUhC"}
|
|
@@ -4,23 +4,33 @@ import { computed, onMounted, ref } from 'vue'
|
|
|
4
4
|
type Mode = 'normal' | 'acceptEdits' | 'plan' | 'auto'
|
|
5
5
|
type Thinking = 'off' | 'low' | 'medium' | 'high'
|
|
6
6
|
type GenerationMode = 'safe' | 'vibe'
|
|
7
|
+
type ProviderName = 'claude' | 'codex'
|
|
8
|
+
|
|
9
|
+
interface ProviderAvailability {
|
|
10
|
+
available: boolean
|
|
11
|
+
reason?: string
|
|
12
|
+
}
|
|
7
13
|
|
|
8
14
|
interface AiSettings {
|
|
15
|
+
provider: ProviderName
|
|
9
16
|
mode: Mode
|
|
10
17
|
thinking: Thinking
|
|
11
18
|
generationMode: GenerationMode
|
|
12
19
|
allowLocalSkills: boolean
|
|
13
20
|
builderAvailable: boolean
|
|
21
|
+
providers: Record<ProviderName, ProviderAvailability>
|
|
14
22
|
}
|
|
15
23
|
|
|
16
24
|
const { $authFetch } = useAuthFetch()
|
|
17
25
|
|
|
18
26
|
const settings = ref<AiSettings>({
|
|
27
|
+
provider: 'claude',
|
|
19
28
|
mode: 'normal',
|
|
20
29
|
thinking: 'medium',
|
|
21
30
|
generationMode: 'safe',
|
|
22
31
|
allowLocalSkills: false,
|
|
23
32
|
builderAvailable: false,
|
|
33
|
+
providers: { claude: { available: true }, codex: { available: false } },
|
|
24
34
|
})
|
|
25
35
|
const loading = ref(false)
|
|
26
36
|
const saving = ref(false)
|
|
@@ -37,6 +47,23 @@ const MODE_OPTIONS: Array<{ value: Mode; label: string; hint: string }> = [
|
|
|
37
47
|
{ value: 'auto', label: 'Auto', hint: 'Auto-approve every tool action' },
|
|
38
48
|
]
|
|
39
49
|
|
|
50
|
+
const PROVIDER_OPTIONS: Array<{
|
|
51
|
+
value: ProviderName
|
|
52
|
+
label: string
|
|
53
|
+
model: string
|
|
54
|
+
}> = [
|
|
55
|
+
{ value: 'claude', label: 'Anthropic (Claude)', model: 'Claude Opus 4.x' },
|
|
56
|
+
{ value: 'codex', label: 'OpenAI (Codex)', model: 'GPT-5.x (Codex default)' },
|
|
57
|
+
]
|
|
58
|
+
|
|
59
|
+
// One control, two meanings: a token budget on Claude, a reasoning effort level
|
|
60
|
+
// on Codex, which has no "off" and maps it to its lowest level.
|
|
61
|
+
const THINKING_HINTS: Record<ProviderName, string> = {
|
|
62
|
+
claude: 'Thinking budget handed to the model.',
|
|
63
|
+
codex:
|
|
64
|
+
'Reasoning effort handed to the model. Codex has no "off": it maps to the lowest level.',
|
|
65
|
+
}
|
|
66
|
+
|
|
40
67
|
const THINKING_OPTIONS: Array<{ value: Thinking; label: string }> = [
|
|
41
68
|
{ value: 'off', label: 'Off' },
|
|
42
69
|
{ value: 'low', label: 'Low' },
|
|
@@ -71,6 +98,39 @@ async function persist(): Promise<void> {
|
|
|
71
98
|
}
|
|
72
99
|
}
|
|
73
100
|
|
|
101
|
+
function availabilityOf(name: ProviderName): ProviderAvailability {
|
|
102
|
+
return settings.value.providers?.[name] ?? { available: false }
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function providerLabel(option: (typeof PROVIDER_OPTIONS)[number]): string {
|
|
106
|
+
return availabilityOf(option.value).available
|
|
107
|
+
? option.label
|
|
108
|
+
: `${option.label} — unavailable`
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const activeProvider = computed(() => settings.value.provider)
|
|
112
|
+
|
|
113
|
+
const providerReason = computed(
|
|
114
|
+
() => availabilityOf(settings.value.provider).reason ?? null,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
const activeModel = computed(
|
|
118
|
+
() =>
|
|
119
|
+
PROVIDER_OPTIONS.find((o) => o.value === settings.value.provider)?.model ??
|
|
120
|
+
'',
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
function onProvider(event: Event): void {
|
|
124
|
+
const next = (event.target as HTMLSelectElement).value as ProviderName
|
|
125
|
+
if (!availabilityOf(next).available) {
|
|
126
|
+
// The option is disabled, so this only fires on a stale DOM; snap back.
|
|
127
|
+
;(event.target as HTMLSelectElement).value = settings.value.provider
|
|
128
|
+
return
|
|
129
|
+
}
|
|
130
|
+
settings.value.provider = next
|
|
131
|
+
void persist()
|
|
132
|
+
}
|
|
133
|
+
|
|
74
134
|
function onMode(event: Event): void {
|
|
75
135
|
settings.value.mode = (event.target as HTMLSelectElement).value as Mode
|
|
76
136
|
void persist()
|
|
@@ -123,14 +183,33 @@ const SELECT_CLASS =
|
|
|
123
183
|
<div class="flex flex-col gap-4 p-5">
|
|
124
184
|
<div>
|
|
125
185
|
<label class="mb-1.5 block text-xs font-medium text-toned">Provider</label>
|
|
126
|
-
<select
|
|
127
|
-
|
|
186
|
+
<select
|
|
187
|
+
:class="SELECT_CLASS"
|
|
188
|
+
:value="activeProvider"
|
|
189
|
+
:disabled="loading || saving"
|
|
190
|
+
@change="onProvider"
|
|
191
|
+
>
|
|
192
|
+
<option
|
|
193
|
+
v-for="option in PROVIDER_OPTIONS"
|
|
194
|
+
:key="option.value"
|
|
195
|
+
:value="option.value"
|
|
196
|
+
:disabled="!availabilityOf(option.value).available"
|
|
197
|
+
>
|
|
198
|
+
{{ providerLabel(option) }}
|
|
199
|
+
</option>
|
|
128
200
|
</select>
|
|
201
|
+
<p v-if="providerReason" class="mt-1.5 text-xs text-error">
|
|
202
|
+
{{ providerReason }}
|
|
203
|
+
</p>
|
|
204
|
+
<p class="mt-1.5 text-xs text-dimmed">
|
|
205
|
+
Switching provider ends the live context of open conversations;
|
|
206
|
+
their transcripts are kept.
|
|
207
|
+
</p>
|
|
129
208
|
</div>
|
|
130
209
|
<div>
|
|
131
210
|
<label class="mb-1.5 block text-xs font-medium text-toned">Model</label>
|
|
132
211
|
<select :class="SELECT_CLASS" disabled>
|
|
133
|
-
<option>
|
|
212
|
+
<option>{{ activeModel }}</option>
|
|
134
213
|
</select>
|
|
135
214
|
</div>
|
|
136
215
|
</div>
|
|
@@ -181,6 +260,9 @@ const SELECT_CLASS =
|
|
|
181
260
|
{{ option.label }}
|
|
182
261
|
</option>
|
|
183
262
|
</select>
|
|
263
|
+
<p class="mt-1.5 text-xs text-dimmed">
|
|
264
|
+
{{ THINKING_HINTS[settings.provider] }}
|
|
265
|
+
</p>
|
|
184
266
|
</div>
|
|
185
267
|
<div>
|
|
186
268
|
<label class="flex items-start gap-3">
|
|
@@ -3,7 +3,6 @@ export const OVERLAY_Z_INDEX = 999_999
|
|
|
3
3
|
export const OVERLAY_DOM_ID = 'dms-ai-overlay-root'
|
|
4
4
|
export const OVERLAY_IFRAME_ID = 'dms-ai-overlay-iframe'
|
|
5
5
|
export const SIDECAR_INFO_PATH = '/ai/sidecar-info'
|
|
6
|
-
export const SIDECAR_PROBE_PORT = 5010
|
|
7
6
|
export const SIDECAR_PROBE_HOST = 'http://localhost'
|
|
8
7
|
export const OVERLAY_BOX_SHADOW = '0 8px 24px rgba(0, 0, 0, 0.18)'
|
|
9
8
|
export const SIDECAR_HOST_NAME = 'localhost'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/dms-ai",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.1-next.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"test": "cd sidecar && pnpm test && cd ../frontend-vue && pnpm test",
|
|
41
41
|
"test:sidecar-smoke": "pnpm run build:sidecar && node --test tests/sidecar-build.test.cjs",
|
|
42
42
|
"test:frontend-registration": "pnpm run build && node --test tests/frontend-registration.test.cjs",
|
|
43
|
+
"test:spawn-args": "node --test tests/spawn-args.test.cjs",
|
|
43
44
|
"test:release-script": "node --test tests/release-script.test.cjs",
|
|
44
45
|
"test:e2e": "cd sidecar && pnpm test:e2e",
|
|
45
46
|
"release": "pnpm --dir frontend-vue install --frozen-lockfile && pnpm --dir sidecar install --frozen-lockfile && pnpm --dir sidecar/chatbox install --frozen-lockfile && release-it",
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
"@antelopejs/interface-dms": ">=0.0.1 <1.0.0",
|
|
54
55
|
"@anthropic-ai/claude-agent-sdk": "^0.2.131",
|
|
55
56
|
"@anthropic-ai/claude-code": "^2.1.131",
|
|
57
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
56
58
|
"ws": "^8.18.0",
|
|
57
59
|
"zod": "^4.0.0"
|
|
58
60
|
},
|
|
@@ -68,6 +70,14 @@
|
|
|
68
70
|
"rimraf": "^6.1.3",
|
|
69
71
|
"typescript": "^5.9.3"
|
|
70
72
|
},
|
|
73
|
+
"peerDependencies": {
|
|
74
|
+
"@openai/codex": "0.154.0"
|
|
75
|
+
},
|
|
76
|
+
"peerDependenciesMeta": {
|
|
77
|
+
"@openai/codex": {
|
|
78
|
+
"optional": true
|
|
79
|
+
}
|
|
80
|
+
},
|
|
71
81
|
"optionalDependencies": {
|
|
72
82
|
"@antelopejs/interface-dms-builder": ">=0.0.1 <1.0.0"
|
|
73
83
|
},
|