@antelopejs/dms-ai 0.9.0 → 0.9.2
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 +32 -34
- package/dist/constants/http.d.ts +1 -0
- package/dist/constants/http.js +1 -0
- package/dist/constants/http.js.map +1 -1
- package/dist/database/catalog.js +21 -3
- package/dist/database/catalog.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/sidecar-owner.js.map +1 -1
- package/dist/lifecycle/skill-sources.js +19 -146
- package/dist/lifecycle/skill-sources.js.map +1 -1
- package/dist/lifecycle/spawn-sidecar.js +2 -2
- package/dist/lifecycle/spawn-sidecar.js.map +1 -1
- package/dist/lifecycle/terminate-process.d.ts +1 -0
- package/dist/lifecycle/terminate-process.js +8 -4
- package/dist/lifecycle/terminate-process.js.map +1 -1
- package/dist/logging/log-buffer.js +22 -14
- package/dist/logging/log-buffer.js.map +1 -1
- package/dist/pages/settings/availability.js +41 -5
- package/dist/pages/settings/availability.js.map +1 -1
- package/dist/pages/settings/options.d.ts +2 -1
- package/dist/pages/settings/options.js +29 -8
- package/dist/pages/settings/options.js.map +1 -1
- package/dist/pages/settings/sections.js +15 -4
- package/dist/pages/settings/sections.js.map +1 -1
- package/dist/pages-registry.js +2 -6
- package/dist/pages-registry.js.map +1 -1
- package/dist/routes/activity.js +4 -3
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/banner.d.ts +2 -1
- package/dist/routes/banner.js +4 -1
- package/dist/routes/banner.js.map +1 -1
- package/dist/routes/builder.d.ts +5 -5
- package/dist/routes/builder.js +62 -44
- package/dist/routes/builder.js.map +1 -1
- package/dist/routes/changes.js +8 -7
- package/dist/routes/changes.js.map +1 -1
- package/dist/routes/codex-account.js +11 -5
- package/dist/routes/codex-account.js.map +1 -1
- package/dist/routes/content-json.d.ts +6 -0
- package/dist/routes/content-json.js +12 -0
- package/dist/routes/content-json.js.map +1 -0
- package/dist/routes/metrics.js +8 -8
- package/dist/routes/metrics.js.map +1 -1
- package/dist/routes/settings.js +4 -3
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/sidecar-answers.d.ts +10 -0
- package/dist/routes/sidecar-answers.js +90 -0
- package/dist/routes/sidecar-answers.js.map +1 -0
- package/dist/routes/sidecar-results.d.ts +2 -1
- package/dist/routes/sidecar-results.js +8 -2
- package/dist/routes/sidecar-results.js.map +1 -1
- package/dist/routes/skills.d.ts +2 -2
- package/dist/routes/skills.js +3 -2
- package/dist/routes/skills.js.map +1 -1
- package/dist/routes/status.js +23 -4
- package/dist/routes/status.js.map +1 -1
- package/dist/sidecar/answer-schemas.d.ts +8 -0
- package/dist/sidecar/answer-schemas.js +60 -0
- package/dist/sidecar/answer-schemas.js.map +1 -0
- package/dist/sidecar/http-client.d.ts +4 -2
- package/dist/sidecar/http-client.js +5 -2
- package/dist/sidecar/http-client.js.map +1 -1
- package/dist/sidecar/index.d.ts +1 -0
- package/dist/sidecar/index.js +1 -0
- package/dist/sidecar/index.js.map +1 -1
- package/dist/sidecar/settings-values.d.ts +3 -0
- package/dist/sidecar/settings-values.js +33 -1
- package/dist/sidecar/settings-values.js.map +1 -1
- package/dist/types/status.d.ts +2 -2
- package/dist/vocabulary/enumerations.js +2 -0
- package/dist/vocabulary/enumerations.js.map +1 -1
- package/frontend-vue/app/chat/components/ChatView.vue +16 -49
- package/frontend-vue/app/chat/components/Composer.vue +23 -39
- package/frontend-vue/app/chat/components/NoticeCard.vue +9 -0
- package/frontend-vue/app/chat/components/ProviderNotice.vue +14 -3
- package/frontend-vue/app/chat/composables/conversation-events.ts +0 -3
- package/frontend-vue/app/chat/composables/useConversationMode.ts +8 -11
- package/frontend-vue/app/chat/composables/useFollowScroll.ts +77 -0
- package/frontend-vue/app/chat/constants/modes.ts +15 -0
- package/frontend-vue/app/chat/constants/protocol.ts +0 -1
- package/frontend-vue/app/chat/constants/settings.ts +1 -1
- package/frontend-vue/app/chat/types/protocol.ts +11 -9
- package/frontend-vue/app/chat/types/settings.ts +7 -2
- package/frontend-vue/app/chat/utils/permission-view.ts +1 -0
- package/frontend-vue/app/views/constants.ts +2 -0
- package/frontend-vue/app/views/types.ts +3 -1
- package/frontend-vue/i18n/locales/dms-ai-pages-en-GB.json +21 -11
- package/frontend-vue/i18n/locales/dms-ai-pages-fr-FR.json +21 -11
- package/frontend-vue/i18n/locales/dms-ai-panel-en-GB.json +11 -21
- package/frontend-vue/i18n/locales/dms-ai-panel-fr-FR.json +11 -21
- package/frontend-vue/i18n/locales/dms-ai-views-en-GB.json +2 -0
- package/frontend-vue/i18n/locales/dms-ai-views-fr-FR.json +2 -0
- package/frontend-vue/package.json +1 -1
- package/frontend-vue/tests/chat/chat-scroll.test.ts +251 -0
- package/frontend-vue/tests/chat/conversation-events.test.ts +1 -3
- package/frontend-vue/tests/chat/provider-notice.test.ts +33 -0
- package/frontend-vue/tests/chat-panel.test.ts +2 -4
- package/frontend-vue/tests/panel-modes.test.ts +146 -0
- package/frontend-vue/tests/panel-questions.test.ts +1 -19
- package/frontend-vue/tests/panel-states.test.ts +12 -16
- package/frontend-vue/tests/support/fake-layout.ts +119 -0
- package/frontend-vue/tests/support/panel-harness.ts +14 -6
- package/frontend-vue/tests/support/setup-layout.ts +3 -0
- package/frontend-vue/tests/support/stubs.ts +2 -0
- package/frontend-vue/vitest.config.ts +1 -0
- package/package.json +16 -10
- package/sidecar/dist/agent/always-ask-files.d.ts +2 -0
- package/sidecar/dist/agent/always-ask-files.js +34 -0
- package/sidecar/dist/agent/always-ask-files.js.map +1 -0
- package/sidecar/dist/agent/conversation-modes.d.ts +3 -12
- package/sidecar/dist/agent/conversation-modes.js +16 -69
- package/sidecar/dist/agent/conversation-modes.js.map +1 -1
- package/sidecar/dist/agent/effective-mode.d.ts +2 -5
- package/sidecar/dist/agent/effective-mode.js +1 -15
- package/sidecar/dist/agent/effective-mode.js.map +1 -1
- package/sidecar/dist/agent/permission-bus.d.ts +1 -2
- package/sidecar/dist/agent/permission-bus.js +1 -3
- package/sidecar/dist/agent/permission-bus.js.map +1 -1
- package/sidecar/dist/agent/permission-preview.d.ts +6 -0
- package/sidecar/dist/agent/permission-preview.js +35 -10
- package/sidecar/dist/agent/permission-preview.js.map +1 -1
- package/sidecar/dist/agent/permission-rules.js +2 -2
- package/sidecar/dist/agent/permission-rules.js.map +1 -1
- package/sidecar/dist/agent/project-secrets.d.ts +7 -0
- package/sidecar/dist/agent/project-secrets.js +61 -0
- package/sidecar/dist/agent/project-secrets.js.map +1 -0
- package/sidecar/dist/agent/provider.d.ts +5 -4
- package/sidecar/dist/agent/runner.d.ts +3 -2
- package/sidecar/dist/agent/runner.js +9 -3
- package/sidecar/dist/agent/runner.js.map +1 -1
- package/sidecar/dist/agent/session.d.ts +3 -3
- package/sidecar/dist/agent/session.js.map +1 -1
- package/sidecar/dist/agent/tool-kinds.d.ts +7 -1
- package/sidecar/dist/agent/tool-kinds.js +24 -5
- package/sidecar/dist/agent/tool-kinds.js.map +1 -1
- package/sidecar/dist/agent/typecheck.js +14 -1
- package/sidecar/dist/agent/typecheck.js.map +1 -1
- package/sidecar/dist/audit/activity-query.js +2 -0
- package/sidecar/dist/audit/activity-query.js.map +1 -1
- package/sidecar/dist/audit/activity.js +1 -0
- package/sidecar/dist/audit/activity.js.map +1 -1
- package/sidecar/dist/audit/call-audit.js.map +1 -1
- package/sidecar/dist/builder/builder-client.d.ts +3 -1
- package/sidecar/dist/builder/builder-client.js +13 -1
- package/sidecar/dist/builder/builder-client.js.map +1 -1
- package/sidecar/dist/constants/audit.d.ts +1 -3
- package/sidecar/dist/constants/audit.js +2 -1
- package/sidecar/dist/constants/audit.js.map +1 -1
- package/sidecar/dist/constants/builder.d.ts +3 -0
- package/sidecar/dist/constants/builder.js +3 -0
- package/sidecar/dist/constants/builder.js.map +1 -1
- package/sidecar/dist/constants/claude.d.ts +6 -0
- package/sidecar/dist/constants/claude.js +6 -0
- package/sidecar/dist/constants/claude.js.map +1 -1
- package/sidecar/dist/constants/codex.d.ts +4 -0
- package/sidecar/dist/constants/codex.js +4 -0
- package/sidecar/dist/constants/codex.js.map +1 -1
- package/sidecar/dist/constants/permissions.d.ts +2 -0
- package/sidecar/dist/constants/permissions.js +23 -0
- package/sidecar/dist/constants/permissions.js.map +1 -1
- package/sidecar/dist/constants/project-secrets.d.ts +5 -0
- package/sidecar/dist/constants/project-secrets.js +20 -0
- package/sidecar/dist/constants/project-secrets.js.map +1 -0
- package/sidecar/dist/constants/providers.d.ts +2 -0
- package/sidecar/dist/constants/providers.js +1 -0
- package/sidecar/dist/constants/providers.js.map +1 -1
- package/sidecar/dist/constants/settings.d.ts +1 -2
- package/sidecar/dist/constants/settings.js +2 -9
- package/sidecar/dist/constants/settings.js.map +1 -1
- package/sidecar/dist/constants/tool-kinds.d.ts +67 -2
- package/sidecar/dist/constants/tool-kinds.js +111 -34
- package/sidecar/dist/constants/tool-kinds.js.map +1 -1
- package/sidecar/dist/index.js.map +1 -1
- package/sidecar/dist/mcp/http-binding.js +1 -1
- package/sidecar/dist/mcp/http-binding.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-compose.d.ts +4 -4
- package/sidecar/dist/mcp/tools/builder-compose.js +4 -3
- package/sidecar/dist/mcp/tools/builder-compose.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-expr.d.ts +5 -2
- package/sidecar/dist/mcp/tools/builder-expr.js +8 -11
- package/sidecar/dist/mcp/tools/builder-expr.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-gate.js +3 -1
- package/sidecar/dist/mcp/tools/builder-gate.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-project.d.ts +2 -1
- package/sidecar/dist/mcp/tools/builder-project.js +94 -16
- package/sidecar/dist/mcp/tools/builder-project.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-queries.d.ts +6 -6
- package/sidecar/dist/mcp/tools/builder-queries.js +9 -10
- package/sidecar/dist/mcp/tools/builder-queries.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder-table-view.js +10 -8
- package/sidecar/dist/mcp/tools/builder-table-view.js.map +1 -1
- package/sidecar/dist/mcp/tools/builder.d.ts +14 -14
- package/sidecar/dist/mcp/tools/builder.js +17 -12
- package/sidecar/dist/mcp/tools/builder.js.map +1 -1
- package/sidecar/dist/protocol/events.d.ts +97 -63
- package/sidecar/dist/protocol/events.js +14 -8
- package/sidecar/dist/protocol/events.js.map +1 -1
- package/sidecar/dist/protocol/messages.d.ts +54 -49
- package/sidecar/dist/protocol/messages.js +8 -13
- package/sidecar/dist/protocol/messages.js.map +1 -1
- package/sidecar/dist/providers/claude/config.d.ts +3 -3
- package/sidecar/dist/providers/claude/config.js +4 -2
- package/sidecar/dist/providers/claude/config.js.map +1 -1
- package/sidecar/dist/providers/claude/provider.js +20 -26
- package/sidecar/dist/providers/claude/provider.js.map +1 -1
- package/sidecar/dist/providers/claude/safe-mode.d.ts +5 -5
- package/sidecar/dist/providers/claude/safe-mode.js +49 -30
- package/sidecar/dist/providers/claude/safe-mode.js.map +1 -1
- package/sidecar/dist/providers/claude/sdk-loader.js +2 -5
- package/sidecar/dist/providers/claude/sdk-loader.js.map +1 -1
- package/sidecar/dist/providers/claude/secret-files.d.ts +2 -0
- package/sidecar/dist/providers/claude/secret-files.js +50 -0
- package/sidecar/dist/providers/claude/secret-files.js.map +1 -0
- package/sidecar/dist/providers/claude/session-stream.d.ts +4 -9
- package/sidecar/dist/providers/claude/session-stream.js +22 -0
- package/sidecar/dist/providers/claude/session-stream.js.map +1 -1
- package/sidecar/dist/providers/claude/tool-guard.d.ts +14 -0
- package/sidecar/dist/providers/claude/tool-guard.js +112 -0
- package/sidecar/dist/providers/claude/tool-guard.js.map +1 -0
- package/sidecar/dist/providers/codex/adapter.d.ts +10 -0
- package/sidecar/dist/providers/codex/adapter.js +20 -5
- package/sidecar/dist/providers/codex/adapter.js.map +1 -1
- package/sidecar/dist/providers/codex/client.d.ts +3 -1
- package/sidecar/dist/providers/codex/client.js +26 -14
- package/sidecar/dist/providers/codex/client.js.map +1 -1
- package/sidecar/dist/providers/codex/config.d.ts +6 -17
- package/sidecar/dist/providers/codex/config.js +9 -56
- package/sidecar/dist/providers/codex/config.js.map +1 -1
- package/sidecar/dist/providers/codex/mcp-elicitation.d.ts +21 -0
- package/sidecar/dist/providers/codex/mcp-elicitation.js +66 -0
- package/sidecar/dist/providers/codex/mcp-elicitation.js.map +1 -0
- package/sidecar/dist/providers/codex/module.js +1 -1
- package/sidecar/dist/providers/codex/module.js.map +1 -1
- package/sidecar/dist/providers/codex/patch-directories.d.ts +6 -0
- package/sidecar/dist/providers/codex/patch-directories.js +53 -0
- package/sidecar/dist/providers/codex/patch-directories.js.map +1 -0
- package/sidecar/dist/providers/codex/permission-profiles.d.ts +11 -0
- package/sidecar/dist/providers/codex/permission-profiles.js +37 -0
- package/sidecar/dist/providers/codex/permission-profiles.js.map +1 -0
- package/sidecar/dist/providers/codex/permissions.d.ts +13 -4
- package/sidecar/dist/providers/codex/permissions.js +28 -2
- package/sidecar/dist/providers/codex/permissions.js.map +1 -1
- package/sidecar/dist/providers/codex/process.d.ts +1 -0
- package/sidecar/dist/providers/codex/process.js +3 -1
- package/sidecar/dist/providers/codex/process.js.map +1 -1
- package/sidecar/dist/providers/codex/protocol/common.d.ts +16 -4
- package/sidecar/dist/providers/codex/protocol/index.d.ts +2 -2
- package/sidecar/dist/providers/codex/protocol/index.js +1 -1
- package/sidecar/dist/providers/codex/protocol/index.js.map +1 -1
- package/sidecar/dist/providers/codex/protocol/v2.d.ts +23 -32
- package/sidecar/dist/providers/codex/provider.js +16 -15
- package/sidecar/dist/providers/codex/provider.js.map +1 -1
- package/sidecar/dist/providers/codex/secret-file-globs.d.ts +2 -0
- package/sidecar/dist/providers/codex/secret-file-globs.js +45 -0
- package/sidecar/dist/providers/codex/secret-file-globs.js.map +1 -0
- package/sidecar/dist/providers/codex/skills.d.ts +36 -3
- package/sidecar/dist/providers/codex/skills.js +16 -0
- package/sidecar/dist/providers/codex/skills.js.map +1 -1
- package/sidecar/dist/providers/types.d.ts +3 -1
- package/sidecar/dist/providers/types.js +2 -2
- package/sidecar/dist/providers/types.js.map +1 -1
- package/sidecar/dist/server/http-routes.js +1 -1
- package/sidecar/dist/server/http-routes.js.map +1 -1
- package/sidecar/dist/server/permission-events.d.ts +1 -1
- package/sidecar/dist/server/permission-events.js +5 -8
- package/sidecar/dist/server/permission-events.js.map +1 -1
- package/sidecar/dist/server/routing.js +0 -5
- package/sidecar/dist/server/routing.js.map +1 -1
- package/sidecar/dist/server/tool-calls.d.ts +0 -2
- package/sidecar/dist/server/tool-calls.js +20 -20
- package/sidecar/dist/server/tool-calls.js.map +1 -1
- package/sidecar/dist/server/turns.js +9 -1
- package/sidecar/dist/server/turns.js.map +1 -1
- package/sidecar/dist/server/ws.js +4 -15
- package/sidecar/dist/server/ws.js.map +1 -1
- package/sidecar/dist/skills/skill-usage.js +2 -2
- package/sidecar/dist/skills/skill-usage.js.map +1 -1
- package/sidecar/dist/state/change-sets.js.map +1 -1
- package/sidecar/dist/state/settings-store.d.ts +13 -5
- package/sidecar/dist/state/settings-store.js +33 -8
- package/sidecar/dist/state/settings-store.js.map +1 -1
- package/sidecar/dist/state/settings-types.d.ts +15 -2
- package/sidecar/dist/state/settings-types.js +14 -1
- package/sidecar/dist/state/settings-types.js.map +1 -1
- package/sidecar/dist/state/store.js +1 -4
- package/sidecar/dist/state/store.js.map +1 -1
- package/sidecar/dist/state/types.d.ts +7 -6
- package/sidecar/dist/state/types.js.map +1 -1
- package/sidecar/package.json +2 -1
- package/skills/dms-ai/SKILL.md +2 -1
- package/skills/dms-external-database/SKILL.md +5 -2
- package/frontend-vue/app/chat/components/FullAutoBanner.vue +0 -76
- package/frontend-vue/app/chat/components/FullAutoDialog.vue +0 -103
|
@@ -3,14 +3,13 @@ import { dirname } from "node:path";
|
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { DEFAULT_SETTINGS, SETTINGS_LOG_PREFIX, } from "../constants/settings.js";
|
|
5
5
|
import { STATE_FILE_ENCODING, STATE_JSON_INDENT } from "../constants/state.js";
|
|
6
|
-
import { CHAT_MODES, CHECKPOINT_RETENTION_DAYS, GENERATION_MODES, REQUEST_TIMEOUT_MINUTES, THINKING_LEVELS, } from "./settings-types.js";
|
|
6
|
+
import { CHAT_MODES, CHECKPOINT_RETENTION_DAYS, CODEX_CHAT_MODES, GENERATION_MODES, REQUEST_TIMEOUT_MINUTES, THINKING_LEVELS, } from "./settings-types.js";
|
|
7
7
|
import { PROVIDER_NAMES } from "./types.js";
|
|
8
8
|
function lenient(schema) {
|
|
9
9
|
return z.unknown().pipe(schema).optional().catch(undefined);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const FlatSettingsSchema = z.object({
|
|
12
12
|
provider: lenient(z.enum(PROVIDER_NAMES)),
|
|
13
|
-
mode: lenient(z.enum(CHAT_MODES)),
|
|
14
13
|
thinking: lenient(z.enum(THINKING_LEVELS)),
|
|
15
14
|
claudeModel: lenient(z.string().trim().min(1)),
|
|
16
15
|
generationMode: lenient(z.enum(GENERATION_MODES)),
|
|
@@ -21,23 +20,49 @@ const StoredSettingsSchema = z.object({
|
|
|
21
20
|
notifyRequests: lenient(z.boolean()),
|
|
22
21
|
checkpointRetentionDays: lenient(z.literal(CHECKPOINT_RETENTION_DAYS)),
|
|
23
22
|
});
|
|
24
|
-
const
|
|
23
|
+
const StoredSettingsSchema = FlatSettingsSchema.extend({
|
|
24
|
+
defaultModes: lenient(z.object({
|
|
25
|
+
claude: lenient(z.enum(CHAT_MODES)),
|
|
26
|
+
codex: lenient(z.enum(CODEX_CHAT_MODES)),
|
|
27
|
+
})),
|
|
28
|
+
});
|
|
29
|
+
const FLAT_SETTINGS_KEYS = FlatSettingsSchema.keyof().options;
|
|
30
|
+
const LegacySettingsSchema = z.object({ mode: lenient(z.enum(CHAT_MODES)) });
|
|
31
|
+
const LEGACY_MODE_SEEDS = {
|
|
32
|
+
normal: { claude: DEFAULT_SETTINGS.defaultModes.claude, codex: "normal" },
|
|
33
|
+
auto: { claude: "normal", codex: "normal" },
|
|
34
|
+
acceptEdits: { claude: "acceptEdits", codex: "acceptEdits" },
|
|
35
|
+
plan: { claude: "plan", codex: "plan" },
|
|
36
|
+
};
|
|
25
37
|
export function mergeSettings(current, patch) {
|
|
26
38
|
const accepted = StoredSettingsSchema.parse(patch);
|
|
27
|
-
const merged = {
|
|
28
|
-
|
|
39
|
+
const merged = {
|
|
40
|
+
...current,
|
|
41
|
+
defaultModes: {
|
|
42
|
+
claude: accepted.defaultModes?.claude ?? current.defaultModes.claude,
|
|
43
|
+
codex: accepted.defaultModes?.codex ?? current.defaultModes.codex,
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
for (const key of FLAT_SETTINGS_KEYS) {
|
|
29
47
|
const value = accepted[key];
|
|
30
48
|
if (value !== undefined)
|
|
31
49
|
Object.assign(merged, { [key]: value });
|
|
32
50
|
}
|
|
33
51
|
return merged;
|
|
34
52
|
}
|
|
53
|
+
function storedDefaults(legacy) {
|
|
54
|
+
if (legacy === undefined)
|
|
55
|
+
return DEFAULT_SETTINGS;
|
|
56
|
+
return { ...DEFAULT_SETTINGS, defaultModes: LEGACY_MODE_SEEDS[legacy] };
|
|
57
|
+
}
|
|
35
58
|
export function parseSettings(raw) {
|
|
36
59
|
try {
|
|
37
|
-
const
|
|
60
|
+
const stored = JSON.parse(raw);
|
|
61
|
+
const parsed = StoredSettingsSchema.safeParse(stored);
|
|
38
62
|
if (!parsed.success)
|
|
39
63
|
return DEFAULT_SETTINGS;
|
|
40
|
-
|
|
64
|
+
const legacy = LegacySettingsSchema.safeParse(stored).data?.mode;
|
|
65
|
+
return mergeSettings(storedDefaults(legacy), parsed.data);
|
|
41
66
|
}
|
|
42
67
|
catch {
|
|
43
68
|
return DEFAULT_SETTINGS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/state/settings-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAEL,UAAU,
|
|
1
|
+
{"version":3,"file":"settings-store.js","sourceRoot":"","sources":["../../src/state/settings-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAEL,UAAU,EAEV,yBAAyB,EACzB,gBAAgB,EAEhB,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAwB5C,SAAS,OAAO,CAAsB,MAAS;IAC7C,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3C,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACpC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACvE,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC;IACrD,YAAY,EAAE,OAAO,CACnB,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACzC,CAAC,CACH;CACF,CAAC,CAAC;AAIH,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;AAE9D,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;AAa7E,MAAM,iBAAiB,GAA+B;IACpD,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;IACzE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC3C,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5D,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACxC,CAAC;AAOF,MAAM,UAAU,aAAa,CAC3B,OAAoB,EACpB,KAAyB;IAEzB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAgB;QAC1B,GAAG,OAAO;QACV,YAAY,EAAE;YACZ,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM;YACpE,KAAK,EAAE,QAAQ,CAAC,YAAY,EAAE,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK;SAClE;KACF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,MAA4B;IAClD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAClD,OAAO,EAAE,GAAG,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,gBAAgB,CAAC;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;QACjE,OAAO,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QAC1D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GACb,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QACjE,IAAI,SAAS;YAAE,OAAO,gBAAgB,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,iBAAiB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,QAAgB,EAChB,QAAqB;IAErB,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC/D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,KAAoB;IACzC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CACnE,CAAC,GAAY,EAAE,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,kBAAkB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAmC;IAEnC,MAAM,KAAK,GAAkB;QAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO;QACxB,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YACZ,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,KAAK,CAAC,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;gBAAE,MAAM,KAAK,CAAC,QAAQ,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { ProviderName } from "./types.js";
|
|
2
|
-
export declare const CHAT_MODES: readonly ["normal", "acceptEdits", "plan"];
|
|
2
|
+
export declare const CHAT_MODES: readonly ["normal", "auto", "acceptEdits", "plan"];
|
|
3
3
|
export type ChatMode = (typeof CHAT_MODES)[number];
|
|
4
|
+
export declare const CODEX_CHAT_MODES: readonly ["normal", "acceptEdits", "plan"];
|
|
5
|
+
export type CodexChatMode = (typeof CODEX_CHAT_MODES)[number];
|
|
6
|
+
declare const PROVIDER_CHAT_MODES: {
|
|
7
|
+
readonly claude: readonly ["normal", "auto", "acceptEdits", "plan"];
|
|
8
|
+
readonly codex: readonly ["normal", "acceptEdits", "plan"];
|
|
9
|
+
};
|
|
10
|
+
export declare function modeForProvider(provider: ProviderName, mode: ChatMode): ChatMode;
|
|
11
|
+
export type DefaultModes = {
|
|
12
|
+
[P in ProviderName]: (typeof PROVIDER_CHAT_MODES)[P][number];
|
|
13
|
+
};
|
|
4
14
|
export declare const THINKING_LEVELS: readonly ["off", "low", "medium", "high"];
|
|
5
15
|
export type ThinkingLevel = (typeof THINKING_LEVELS)[number];
|
|
6
16
|
export declare const GENERATION_MODES: readonly ["safe", "vibe"];
|
|
@@ -11,7 +21,7 @@ export declare const CHECKPOINT_RETENTION_DAYS: readonly [7, 30, 90];
|
|
|
11
21
|
type CheckpointRetentionDays = (typeof CHECKPOINT_RETENTION_DAYS)[number];
|
|
12
22
|
export interface AppSettings {
|
|
13
23
|
provider: ProviderName;
|
|
14
|
-
|
|
24
|
+
defaultModes: DefaultModes;
|
|
15
25
|
thinking: ThinkingLevel;
|
|
16
26
|
claudeModel: string;
|
|
17
27
|
generationMode: GenerationMode;
|
|
@@ -22,4 +32,7 @@ export interface AppSettings {
|
|
|
22
32
|
notifyRequests: boolean;
|
|
23
33
|
checkpointRetentionDays: CheckpointRetentionDays;
|
|
24
34
|
}
|
|
35
|
+
export interface TurnSettings extends AppSettings {
|
|
36
|
+
mode: ChatMode;
|
|
37
|
+
}
|
|
25
38
|
export {};
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
export const CHAT_MODES = ["normal", "acceptEdits", "plan"];
|
|
1
|
+
export const CHAT_MODES = ["normal", "auto", "acceptEdits", "plan"];
|
|
2
|
+
export const CODEX_CHAT_MODES = [
|
|
3
|
+
"normal",
|
|
4
|
+
"acceptEdits",
|
|
5
|
+
"plan",
|
|
6
|
+
];
|
|
7
|
+
const PROVIDER_CHAT_MODES = {
|
|
8
|
+
claude: CHAT_MODES,
|
|
9
|
+
codex: CODEX_CHAT_MODES,
|
|
10
|
+
};
|
|
11
|
+
export function modeForProvider(provider, mode) {
|
|
12
|
+
const modes = PROVIDER_CHAT_MODES[provider];
|
|
13
|
+
return modes.includes(mode) ? mode : "normal";
|
|
14
|
+
}
|
|
2
15
|
export const THINKING_LEVELS = ["off", "low", "medium", "high"];
|
|
3
16
|
export const GENERATION_MODES = ["safe", "vibe"];
|
|
4
17
|
export const REQUEST_TIMEOUT_MINUTES = [5, 15, 30];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/state/settings-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"settings-types.js","sourceRoot":"","sources":["../../src/state/settings-types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAU,CAAC;AAG7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,aAAa;IACb,MAAM;CACgC,CAAC;AAGzC,MAAM,mBAAmB,GAAG;IAC1B,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,gBAAgB;CACqC,CAAC;AAM/D,MAAM,UAAU,eAAe,CAC7B,QAAsB,EACtB,IAAc;IAEd,MAAM,KAAK,GAAwB,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACjE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAMD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAQzE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAG1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC;AAG5D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC"}
|
|
@@ -4,9 +4,6 @@ import { STATE_DEBOUNCE_MS, STATE_FILE_ENCODING, STATE_INITIAL, STATE_JSON_INDEN
|
|
|
4
4
|
function isObject(value) {
|
|
5
5
|
return typeof value === "object" && value !== null;
|
|
6
6
|
}
|
|
7
|
-
function isObjectOrNull(value) {
|
|
8
|
-
return typeof value === "object";
|
|
9
|
-
}
|
|
10
7
|
function parseStateContents(raw) {
|
|
11
8
|
try {
|
|
12
9
|
const parsed = JSON.parse(raw);
|
|
@@ -14,7 +11,7 @@ function parseStateContents(raw) {
|
|
|
14
11
|
return STATE_INITIAL;
|
|
15
12
|
const candidate = parsed;
|
|
16
13
|
if (candidate.conversations === undefined ||
|
|
17
|
-
!
|
|
14
|
+
!isObject(candidate.conversations)) {
|
|
18
15
|
return STATE_INITIAL;
|
|
19
16
|
}
|
|
20
17
|
return { conversations: candidate.conversations };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAsB/B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AllowedBy, ChangeFileStatus, ChangeSetState,
|
|
1
|
+
import type { AllowedBy, ChangeFileStatus, ChangeSetState, PermissionKind, ToolOutcome, TypecheckOutcome } from "../constants/audit.js";
|
|
2
2
|
import type { BlockPreviewType } from "../protocol/preview.js";
|
|
3
3
|
import type { ChatMode, GenerationMode } from "./settings-types.js";
|
|
4
4
|
declare const STORED_MESSAGE_ROLES: readonly ["user", "assistant", "tool_use", "tool_result", "permission", "error", "notice", "change_set", "question_answer", "block_preview"];
|
|
@@ -40,7 +40,12 @@ export interface ModelFallbackNotice {
|
|
|
40
40
|
usedModel: string;
|
|
41
41
|
timestampMs: number;
|
|
42
42
|
}
|
|
43
|
-
export
|
|
43
|
+
export interface AutoUnavailableNotice {
|
|
44
|
+
kind: "auto_unavailable";
|
|
45
|
+
model: string;
|
|
46
|
+
timestampMs: number;
|
|
47
|
+
}
|
|
48
|
+
export type Notice = AutoFixNotice | PermissionExpiredNotice | QuestionSkippedNotice | FullAutoEndedNotice | ModelFallbackNotice | AutoUnavailableNotice;
|
|
44
49
|
export interface QuestionAnswerRecord {
|
|
45
50
|
header: string;
|
|
46
51
|
question: string;
|
|
@@ -118,10 +123,6 @@ export interface ConversationSummary extends StoredConversationSummary {
|
|
|
118
123
|
pendingQuestions: number;
|
|
119
124
|
generationMode: GenerationMode;
|
|
120
125
|
}
|
|
121
|
-
export interface FullAutoState {
|
|
122
|
-
duration: FullAutoDuration;
|
|
123
|
-
untilMs?: number;
|
|
124
|
-
}
|
|
125
126
|
export interface ChangeSetFile {
|
|
126
127
|
path: string;
|
|
127
128
|
status: ChangeFileStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/state/types.ts"],"names":[],"mappings":"AA4BA,MAAM,oBAAoB,GAAG;IAC3B,MAAM;IACN,WAAW;IACX,UAAU;IACV,aAAa;IACb,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,eAAe;CACP,CAAC;AAIX,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,OAAO,CAAU,CAAC;AAQ9D,MAAM,2BAA2B,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAU,CAAC;AA6GpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AAG3D,MAAM,CAAC,MAAM,qBAAqB,GAAiB,cAAc,CAAC,CAAC,CAAC,CAAC;AAYrE,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;CACf,CAAC"}
|
package/sidecar/package.json
CHANGED
|
@@ -26,8 +26,9 @@
|
|
|
26
26
|
"zod": "^4.0.0"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
+
"@antelopejs/interface-dms-builder": ">=0.4.0 <1.0.0",
|
|
29
30
|
"@antelopejs/tooling-configs": "^0.2.11",
|
|
30
|
-
"@openai/codex": "0.
|
|
31
|
+
"@openai/codex": "0.166.0",
|
|
31
32
|
"@types/node": "^22.19.15",
|
|
32
33
|
"@types/ws": "^8.5.12",
|
|
33
34
|
"knip": "^6.34.0",
|
package/skills/dms-ai/SKILL.md
CHANGED
|
@@ -27,5 +27,6 @@ The sidecar loads every directory a loaded module declares in `package.json` `an
|
|
|
27
27
|
- Overview and Activity open with the DMS `PageToolbar` (period only, no live: "updated" + refresh); their selectors share `rememberKey: "ai"`. The Overview offers previous period / previous year / none in a menu (`comparisonControl: "menu"`); its KPI, series, allowed and top-tools routes forward `compareFrom` / `compareTo` (absent under none); the top lists carry a per-row `delta`. `/ai/activity` filters on the `from` / `to` the table sends; the CSV export ignores them.
|
|
28
28
|
- Offline assistant: Restart on the Overview; lists and settings answer `503` while the sidecar is down.
|
|
29
29
|
- Remote over plain HTTP: start the frontend with `DMS_COOKIE_SECURE=false`.
|
|
30
|
-
- Deleting pages, tables, fields or queries asks in every mode,
|
|
30
|
+
- Deleting pages, tables, fields or queries asks in every mode, Auto review included. So does a database mapping that would remove a page, and so does every edit of a git hook file (anything inside a `.git` directory, `.husky/*`, a lefthook config file, `.pre-commit-config.yaml`), whatever the dependencies toggle says. With Codex, the sandbox is read-only in every mode, so every write asks, and the card for such a file offers no rule.
|
|
31
|
+
- Claude Code defaults to Auto review (a safety check approves routine file edits and web access); every shell command, scheduled task and tool it does not know still asks the person, and so does every edit of `package.json`, a lockfile, `pnpm-workspace.yaml`, `.npmrc`, `.pnpmfile.cjs`, `.yarnrc`, `.yarnrc.yml` or `bunfig.toml` unless the person turned off the dependency approval. Codex defaults to Ask first and has no Auto review. Ask first asks before every command, read-only ones included, and before any change outside the Builder. Accept edits applies file edits unasked, except dependency and git hook files, and asks before every command; with Codex it works as Ask first, asking before every file edit and any command that writes.
|
|
31
32
|
- Undo is limited to the checkpoint retention (7, 30 or 90 days).
|
|
@@ -14,8 +14,11 @@ the questions they left open, revisit the defaults the names and comments contra
|
|
|
14
14
|
analytics pages from the data. You never start from scratch.
|
|
15
15
|
|
|
16
16
|
You work through the `Database*` and `Builder*` tools only. You never read rows of the client's
|
|
17
|
-
database: the catalog and aggregates are what you have, and they are enough.
|
|
18
|
-
|
|
17
|
+
database: the catalog and aggregates are what you have, and they are enough. The database's URL
|
|
18
|
+
lives in the project's `.env`. The sidecar refuses your file tools on `.env` files and keeps their
|
|
19
|
+
variables out of your environment. Under Claude Code a shell in Code mode can still read them; under
|
|
20
|
+
Codex the sandbox refuses that too. Never read `.env` or print the environment, and never write a
|
|
21
|
+
credential yourself.
|
|
19
22
|
|
|
20
23
|
The flow is **connect → analyse → settle → validate → apply → check**. Analysing and settling
|
|
21
24
|
read only, so they run in plan mode. Nothing is written before the integrator presses **Run** on
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed } from "vue";
|
|
3
|
-
import { useChatI18n } from "../composables/useChatI18n";
|
|
4
|
-
import type { FullAutoState } from "../types/protocol";
|
|
5
|
-
import { formatClock } from "../utils/format";
|
|
6
|
-
|
|
7
|
-
interface Props {
|
|
8
|
-
fullAuto: FullAutoState;
|
|
9
|
-
nowMs: number;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
interface Emits {
|
|
13
|
-
turnOff: [];
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const props = defineProps<Props>();
|
|
17
|
-
const emit = defineEmits<Emits>();
|
|
18
|
-
const { t } = useChatI18n();
|
|
19
|
-
|
|
20
|
-
const scope = computed<string>(() => {
|
|
21
|
-
const { duration, untilMs } = props.fullAuto;
|
|
22
|
-
if (duration === "30m" && untilMs !== undefined)
|
|
23
|
-
return t("dms_ai.panel.full_auto.banner_until", {
|
|
24
|
-
time: formatClock(Math.max(0, untilMs - props.nowMs)),
|
|
25
|
-
});
|
|
26
|
-
return t(`dms_ai.panel.full_auto.banner_${duration}`);
|
|
27
|
-
});
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<template>
|
|
31
|
-
<div class="cb-banner-auto" role="status">
|
|
32
|
-
<UIcon name="i-ph-lightning" class="cb-banner-auto__icon" />
|
|
33
|
-
<span class="cb-banner-auto__text">
|
|
34
|
-
<b>{{ t("dms_ai.common.mode.auto") }}</b>
|
|
35
|
-
· {{ scope }}
|
|
36
|
-
</span>
|
|
37
|
-
<UButton
|
|
38
|
-
size="xs"
|
|
39
|
-
color="neutral"
|
|
40
|
-
variant="outline"
|
|
41
|
-
:label="t('dms_ai.panel.full_auto.turn_off')"
|
|
42
|
-
@click="emit('turnOff')"
|
|
43
|
-
/>
|
|
44
|
-
</div>
|
|
45
|
-
</template>
|
|
46
|
-
|
|
47
|
-
<style scoped>
|
|
48
|
-
.cb-banner-auto {
|
|
49
|
-
display: flex;
|
|
50
|
-
flex: none;
|
|
51
|
-
align-items: center;
|
|
52
|
-
gap: 8px;
|
|
53
|
-
padding: 8px 10px 8px 14px;
|
|
54
|
-
border-bottom: 1px solid var(--dms-error-line);
|
|
55
|
-
background: var(--dms-error-tint);
|
|
56
|
-
font-size: 12.5px;
|
|
57
|
-
color: var(--ui-text-toned);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.cb-banner-auto__icon {
|
|
61
|
-
width: 15px;
|
|
62
|
-
height: 15px;
|
|
63
|
-
flex: none;
|
|
64
|
-
color: var(--ui-error);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.cb-banner-auto__text {
|
|
68
|
-
flex: 1;
|
|
69
|
-
min-width: 0;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.cb-banner-auto__text b {
|
|
73
|
-
font-weight: 600;
|
|
74
|
-
color: var(--ui-text-highlighted);
|
|
75
|
-
}
|
|
76
|
-
</style>
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, ref } from "vue";
|
|
3
|
-
import { useChatI18n } from "../composables/useChatI18n";
|
|
4
|
-
import type { FullAutoDuration } from "../types/protocol";
|
|
5
|
-
|
|
6
|
-
interface Emits {
|
|
7
|
-
confirm: [duration: FullAutoDuration];
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const emit = defineEmits<Emits>();
|
|
11
|
-
const open = defineModel<boolean>("open", { required: true });
|
|
12
|
-
const { t } = useChatI18n();
|
|
13
|
-
|
|
14
|
-
const DURATIONS: readonly FullAutoDuration[] = ["turn", "30m", "chat"];
|
|
15
|
-
|
|
16
|
-
const duration = ref<FullAutoDuration>("turn");
|
|
17
|
-
const items = computed(() =>
|
|
18
|
-
DURATIONS.map((value) => ({
|
|
19
|
-
value,
|
|
20
|
-
label: t(`dms_ai.panel.full_auto.duration_${value}`),
|
|
21
|
-
})),
|
|
22
|
-
);
|
|
23
|
-
|
|
24
|
-
function confirm(): void {
|
|
25
|
-
emit("confirm", duration.value);
|
|
26
|
-
open.value = false;
|
|
27
|
-
}
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<template>
|
|
31
|
-
<UModal v-model:open="open" :title="t('dms_ai.panel.full_auto.title')">
|
|
32
|
-
<template #body>
|
|
33
|
-
<div class="full-auto">
|
|
34
|
-
<div class="full-auto__intro">
|
|
35
|
-
<DmsIconWell icon="i-ph-lightning" tone="error" size="lg" />
|
|
36
|
-
<p class="full-auto__text">
|
|
37
|
-
{{ t("dms_ai.panel.full_auto.description") }}
|
|
38
|
-
</p>
|
|
39
|
-
</div>
|
|
40
|
-
<span class="full-auto__label">
|
|
41
|
-
{{ t("dms_ai.panel.full_auto.turn_off_after") }}
|
|
42
|
-
</span>
|
|
43
|
-
<DmsSegmented
|
|
44
|
-
v-model="duration"
|
|
45
|
-
:items="items"
|
|
46
|
-
size="md"
|
|
47
|
-
block
|
|
48
|
-
:aria-label="t('dms_ai.panel.full_auto.turn_off_after')"
|
|
49
|
-
/>
|
|
50
|
-
</div>
|
|
51
|
-
</template>
|
|
52
|
-
<template #footer>
|
|
53
|
-
<div class="full-auto__foot">
|
|
54
|
-
<UButton
|
|
55
|
-
color="neutral"
|
|
56
|
-
variant="outline"
|
|
57
|
-
:label="t('dms_ai.common.cancel')"
|
|
58
|
-
@click="open = false"
|
|
59
|
-
/>
|
|
60
|
-
<UButton
|
|
61
|
-
color="error"
|
|
62
|
-
icon="i-ph-lightning"
|
|
63
|
-
class="full-auto__confirm"
|
|
64
|
-
:label="t('dms_ai.panel.full_auto.confirm')"
|
|
65
|
-
@click="confirm"
|
|
66
|
-
/>
|
|
67
|
-
</div>
|
|
68
|
-
</template>
|
|
69
|
-
</UModal>
|
|
70
|
-
</template>
|
|
71
|
-
|
|
72
|
-
<style scoped>
|
|
73
|
-
.full-auto {
|
|
74
|
-
display: grid;
|
|
75
|
-
gap: 10px;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.full-auto__intro {
|
|
79
|
-
display: flex;
|
|
80
|
-
align-items: flex-start;
|
|
81
|
-
gap: 12px;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.full-auto__text {
|
|
85
|
-
margin: 0;
|
|
86
|
-
font-size: 13px;
|
|
87
|
-
line-height: 1.5;
|
|
88
|
-
color: var(--ui-text-muted);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.full-auto__label {
|
|
92
|
-
font-size: 12.5px;
|
|
93
|
-
font-weight: 600;
|
|
94
|
-
color: var(--ui-text-highlighted);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.full-auto__foot {
|
|
98
|
-
display: flex;
|
|
99
|
-
justify-content: flex-end;
|
|
100
|
-
gap: 8px;
|
|
101
|
-
width: 100%;
|
|
102
|
-
}
|
|
103
|
-
</style>
|