@sayknow-cli/coding-agent 0.3.1 → 0.3.4
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/bin/skc.js +4 -0
- package/dist/types/cli/mcp-cli.d.ts +25 -0
- package/dist/types/cli/plugin-cli.d.ts +2 -0
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/commands/mcp.d.ts +70 -0
- package/dist/types/commands/plugin.d.ts +6 -0
- package/dist/types/commands/session.d.ts +6 -0
- package/dist/types/config/keybindings.d.ts +2 -2
- package/dist/types/config/model-profile-activation.d.ts +8 -1
- package/dist/types/config/model-profiles.d.ts +2 -2
- package/dist/types/config/model-registry.d.ts +3 -3
- package/dist/types/config/models-config-schema.d.ts +0 -5
- package/dist/types/config/settings-schema.d.ts +79 -68
- package/dist/types/deep-interview/plaintext-gate-guard.d.ts +11 -0
- package/dist/types/export/html/template.generated.d.ts +1 -1
- package/dist/types/extensibility/skc-plugins/compiler.d.ts +19 -0
- package/dist/types/extensibility/skc-plugins/constrained-hooks.d.ts +29 -0
- package/dist/types/extensibility/skc-plugins/index.d.ts +9 -0
- package/dist/types/extensibility/skc-plugins/injection.d.ts +9 -0
- package/dist/types/extensibility/skc-plugins/installer.d.ts +13 -0
- package/dist/types/extensibility/skc-plugins/mcp-policy.d.ts +26 -0
- package/dist/types/extensibility/skc-plugins/observability.d.ts +27 -0
- package/dist/types/extensibility/skc-plugins/prompt-appendix.d.ts +16 -0
- package/dist/types/extensibility/skc-plugins/registry.d.ts +32 -0
- package/dist/types/extensibility/skc-plugins/runtime-adapters.d.ts +64 -0
- package/dist/types/extensibility/skc-plugins/session-validation.d.ts +42 -0
- package/dist/types/extensibility/skc-plugins/types.d.ts +158 -2
- package/dist/types/extensibility/skc-plugins/validation.d.ts +8 -1
- package/dist/types/i18n/messages/en.d.ts +0 -1
- package/dist/types/main.d.ts +2 -0
- package/dist/types/modes/components/custom-editor.d.ts +1 -1
- package/dist/types/modes/components/model-selector.d.ts +8 -0
- package/dist/types/modes/components/settings-defs.d.ts +0 -1
- package/dist/types/modes/components/status-line/git-utils.d.ts +6 -0
- package/dist/types/modes/theme/defaults/index.d.ts +99 -0
- package/dist/types/modes/theme/theme.d.ts +1 -1
- package/dist/types/notifications/html-format.d.ts +11 -0
- package/dist/types/notifications/index.d.ts +149 -1
- package/dist/types/notifications/lifecycle-commands.d.ts +60 -0
- package/dist/types/notifications/lifecycle-control-runtime.d.ts +98 -0
- package/dist/types/notifications/lifecycle-orchestrator.d.ts +144 -0
- package/dist/types/notifications/operator-runtime.d.ts +52 -0
- package/dist/types/notifications/rate-limit-pool.d.ts +2 -0
- package/dist/types/notifications/recent-activity.d.ts +35 -0
- package/dist/types/notifications/telegram-daemon.d.ts +114 -16
- package/dist/types/notifications/telegram-reference.d.ts +3 -1
- package/dist/types/notifications/topic-registry.d.ts +12 -9
- package/dist/types/runtime-mcp/types.d.ts +7 -0
- package/dist/types/sdk.d.ts +2 -0
- package/dist/types/session/agent-session.d.ts +14 -4
- package/dist/types/session/blob-store.d.ts +25 -0
- package/dist/types/session/session-manager.d.ts +57 -0
- package/dist/types/skc-runtime/launch-tmux.d.ts +1 -0
- package/dist/types/skc-runtime/psmux-detect.d.ts +78 -0
- package/dist/types/skc-runtime/state-renderer.d.ts +5 -0
- package/dist/types/skc-runtime/team-runtime.d.ts +2 -0
- package/dist/types/skc-runtime/tmux-common.d.ts +30 -2
- package/dist/types/skc-runtime/tmux-sessions.d.ts +18 -0
- package/dist/types/skc-runtime/ultragoal-guard.d.ts +37 -1
- package/dist/types/skc-runtime/ultragoal-runtime.d.ts +80 -0
- package/dist/types/slash-commands/helpers/fast-status-report.d.ts +6 -0
- package/dist/types/system-prompt.d.ts +2 -0
- package/dist/types/task/executor.d.ts +9 -1
- package/dist/types/tools/browser/tab-supervisor.d.ts +31 -0
- package/dist/types/tools/composer-bash-policy.d.ts +14 -0
- package/dist/types/tools/computer-gc.d.ts +23 -0
- package/dist/types/tools/cron.d.ts +36 -61
- package/dist/types/tools/index.d.ts +3 -2
- package/dist/types/tools/resource-gc.d.ts +54 -0
- package/dist/types/utils/changelog.d.ts +1 -0
- package/dist/types/web/insane/url-guard.d.ts +6 -3
- package/dist/types/web/scrapers/types.d.ts +5 -0
- package/dist/types/web/scrapers/utils.d.ts +7 -1
- package/dist/types/web/search/index.d.ts +1 -0
- package/dist/types/web/search/providers/utils.d.ts +11 -4
- package/package.json +11 -9
- package/scripts/g004-tmux-smoke.ts +100 -0
- package/scripts/g005-daemon-smoke.ts +180 -0
- package/scripts/g011-daemon-path-smoke.ts +153 -0
- package/src/cli/args.ts +0 -1
- package/src/cli/fast-help.ts +29 -2
- package/src/cli/mcp-cli.ts +272 -0
- package/src/cli/plugin-cli.ts +66 -3
- package/src/cli/web-search-cli.ts +5 -0
- package/src/cli.ts +30 -12
- package/src/commands/mcp.ts +117 -0
- package/src/commands/plugin.ts +4 -0
- package/src/commands/session.ts +18 -0
- package/src/config/keybindings.ts +2 -2
- package/src/config/model-profile-activation.ts +62 -8
- package/src/config/model-profiles.ts +3 -4
- package/src/config/model-registry.ts +3 -6
- package/src/config/models-config-schema.ts +1 -1
- package/src/config/settings-schema.ts +88 -103
- package/src/deep-interview/plaintext-gate-guard.ts +94 -0
- package/src/defaults/skc/extensions/grok-cli-vendor/biome.json +1 -1
- package/src/defaults/skc/skills/deep-interview/SKILL.md +7 -6
- package/src/defaults/skc/skills/team/SKILL.md +5 -3
- package/src/defaults/skc/skills/ultragoal/SKILL.md +41 -13
- package/src/export/html/index.ts +2 -2
- package/src/export/html/template.generated.ts +1 -1
- package/src/export/html/template.js +0 -12
- package/src/extensibility/extensions/runner.ts +1 -0
- package/src/extensibility/skc-plugins/compiler.ts +351 -0
- package/src/extensibility/skc-plugins/constrained-hooks.ts +170 -0
- package/src/extensibility/skc-plugins/index.ts +9 -0
- package/src/extensibility/skc-plugins/injection.ts +109 -0
- package/src/extensibility/skc-plugins/installer.ts +434 -0
- package/src/extensibility/skc-plugins/loader.ts +3 -1
- package/src/extensibility/skc-plugins/mcp-policy.ts +239 -0
- package/src/extensibility/skc-plugins/observability.ts +84 -0
- package/src/extensibility/skc-plugins/paths.ts +1 -1
- package/src/extensibility/skc-plugins/prompt-appendix.ts +109 -0
- package/src/extensibility/skc-plugins/registry.ts +180 -0
- package/src/extensibility/skc-plugins/runtime-adapters.ts +234 -0
- package/src/extensibility/skc-plugins/schema.ts +250 -20
- package/src/extensibility/skc-plugins/session-validation.ts +147 -0
- package/src/extensibility/skc-plugins/types.ts +199 -3
- package/src/extensibility/skc-plugins/validation.ts +80 -0
- package/src/extensibility/skills.ts +15 -0
- package/src/goals/tools/goal-tool.ts +14 -1
- package/src/hooks/skill-state.ts +57 -0
- package/src/i18n/messages/de.ts +0 -1
- package/src/i18n/messages/en.ts +0 -1
- package/src/i18n/messages/es.ts +0 -1
- package/src/i18n/messages/fr.ts +0 -1
- package/src/i18n/messages/ja.ts +0 -1
- package/src/i18n/messages/ko.ts +0 -1
- package/src/i18n/messages/zh.ts +0 -1
- package/src/internal-urls/docs-index.generated.ts +14 -11
- package/src/main.ts +14 -3
- package/src/modes/bridge/bridge-mode.ts +11 -0
- package/src/modes/components/assistant-message.ts +49 -1
- package/src/modes/components/custom-editor.ts +2 -0
- package/src/modes/components/footer.ts +2 -3
- package/src/modes/components/hook-editor.ts +1 -1
- package/src/modes/components/hook-selector.ts +67 -43
- package/src/modes/components/model-selector.ts +65 -12
- package/src/modes/components/settings-defs.ts +1 -2
- package/src/modes/components/settings-selector.ts +2 -7
- package/src/modes/components/status-line/git-utils.ts +25 -0
- package/src/modes/components/status-line.ts +10 -11
- package/src/modes/components/welcome.ts +2 -3
- package/src/modes/controllers/extension-ui-controller.ts +0 -27
- package/src/modes/controllers/selector-controller.ts +59 -11
- package/src/modes/interactive-mode.ts +4 -1
- package/src/modes/shared/agent-wire/scopes.ts +1 -1
- package/src/modes/theme/defaults/gruvbox-dark.json +99 -0
- package/src/modes/theme/defaults/index.ts +2 -0
- package/src/modes/theme/theme.ts +0 -4
- package/src/modes/utils/hotkeys-markdown.ts +1 -1
- package/src/notifications/html-format.ts +38 -0
- package/src/notifications/index.ts +242 -12
- package/src/notifications/lifecycle-commands.ts +238 -0
- package/src/notifications/lifecycle-control-runtime.ts +405 -0
- package/src/notifications/lifecycle-orchestrator.ts +358 -0
- package/src/notifications/operator-runtime.ts +171 -0
- package/src/notifications/rate-limit-pool.ts +19 -0
- package/src/notifications/recent-activity.ts +132 -0
- package/src/notifications/telegram-daemon.ts +778 -257
- package/src/notifications/telegram-reference.ts +25 -7
- package/src/notifications/topic-registry.ts +23 -9
- package/src/prompts/agents/executor.md +2 -2
- package/src/prompts/system/system-prompt.md +2 -2
- package/src/prompts/tools/cron.md +5 -3
- package/src/prompts/tools/read.md +1 -1
- package/src/runtime-mcp/transports/stdio.ts +38 -4
- package/src/runtime-mcp/types.ts +7 -0
- package/src/sdk.ts +162 -10
- package/src/session/agent-session.ts +210 -74
- package/src/session/blob-store.ts +196 -8
- package/src/session/session-manager.ts +762 -12
- package/src/skc-runtime/launch-tmux.ts +68 -19
- package/src/skc-runtime/psmux-detect.ts +239 -0
- package/src/skc-runtime/state-renderer.ts +13 -0
- package/src/skc-runtime/team-runtime.ts +56 -23
- package/src/skc-runtime/tmux-common.ts +88 -4
- package/src/skc-runtime/tmux-sessions.ts +111 -9
- package/src/skc-runtime/ultragoal-guard.ts +192 -8
- package/src/skc-runtime/ultragoal-runtime.ts +296 -16
- package/src/slash-commands/builtin-registry.ts +23 -3
- package/src/slash-commands/helpers/fast-status-report.ts +13 -3
- package/src/slash-commands/helpers/parse.ts +2 -1
- package/src/system-prompt.ts +9 -0
- package/src/task/executor.ts +31 -7
- package/src/task/index.ts +2 -0
- package/src/tools/ask.ts +5 -1
- package/src/tools/bash.ts +9 -0
- package/src/tools/browser/tab-supervisor.ts +86 -2
- package/src/tools/composer-bash-policy.ts +96 -0
- package/src/tools/computer-gc.ts +66 -0
- package/src/tools/computer.ts +2 -0
- package/src/tools/cron.ts +75 -112
- package/src/tools/fetch.ts +18 -2
- package/src/tools/index.ts +5 -9
- package/src/tools/read.ts +25 -55
- package/src/tools/renderers.ts +0 -2
- package/src/tools/resource-gc.ts +291 -0
- package/src/tools/ultragoal-ask-guard.ts +7 -1
- package/src/utils/changelog.ts +8 -0
- package/src/web/insane/url-guard.ts +18 -14
- package/src/web/scrapers/types.ts +143 -45
- package/src/web/scrapers/utils.ts +70 -19
- package/src/web/search/index.ts +1 -0
- package/src/web/search/providers/utils.ts +22 -5
- package/vendor/insane-search/MANIFEST.json +3 -1
- package/vendor/insane-search/engine/__init__.py +14 -0
- package/vendor/insane-search/engine/content_safety.py +151 -0
- package/vendor/insane-search/engine/fetch_chain.py +32 -0
- package/vendor/insane-search/engine/tests/test_u8.py +216 -0
- package/dist/types/tools/inspect-image-renderer.d.ts +0 -26
- package/dist/types/tools/inspect-image.d.ts +0 -31
- package/src/prompts/tools/inspect-image-system.md +0 -20
- package/src/prompts/tools/inspect-image.md +0 -32
- package/src/tools/inspect-image-renderer.ts +0 -103
- package/src/tools/inspect-image.ts +0 -172
package/bin/skc.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MCPServerConfig } from "../runtime-mcp/types";
|
|
2
|
+
export type MCPAction = "add" | "list" | "remove";
|
|
3
|
+
export interface MCPCommandArgs {
|
|
4
|
+
action: MCPAction;
|
|
5
|
+
name?: string;
|
|
6
|
+
commandArgs?: string[];
|
|
7
|
+
flags: {
|
|
8
|
+
project?: boolean;
|
|
9
|
+
force?: boolean;
|
|
10
|
+
json?: boolean;
|
|
11
|
+
type?: "stdio" | "http" | "sse";
|
|
12
|
+
command?: string;
|
|
13
|
+
url?: string;
|
|
14
|
+
arg?: string[];
|
|
15
|
+
env?: string[];
|
|
16
|
+
header?: string[];
|
|
17
|
+
cwd?: string;
|
|
18
|
+
timeout?: number;
|
|
19
|
+
};
|
|
20
|
+
cwd?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class MCPArgsError extends Error {
|
|
23
|
+
}
|
|
24
|
+
export declare function redactMCPServerConfig(config: MCPServerConfig): MCPServerConfig;
|
|
25
|
+
export declare function runMCPCommand(args: MCPCommandArgs): Promise<void>;
|
package/dist/types/cli.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
|
+
/**
|
|
3
|
+
* CLI entry point — registers all commands explicitly and delegates to the
|
|
4
|
+
* lightweight CLI runner from pi-utils.
|
|
5
|
+
*/
|
|
6
|
+
import { type CommandEntry } from "@sayknow-cli/utils/cli";
|
|
7
|
+
export declare const commands: CommandEntry[];
|
|
2
8
|
/** Run the CLI with the given argv (no `process.argv` prefix). */
|
|
3
9
|
export declare function runCli(argv: string[]): Promise<void>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct MCP server registration for standalone SKC.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@sayknow-cli/utils/cli";
|
|
5
|
+
import { type MCPAction } from "../cli/mcp-cli";
|
|
6
|
+
export default class MCP extends Command {
|
|
7
|
+
static description: string;
|
|
8
|
+
static delegateHelp: boolean;
|
|
9
|
+
static examples: string[];
|
|
10
|
+
static args: {
|
|
11
|
+
action: import("@sayknow-cli/utils/cli").ArgDescriptor & {
|
|
12
|
+
description: string;
|
|
13
|
+
required: false;
|
|
14
|
+
options: MCPAction[];
|
|
15
|
+
};
|
|
16
|
+
name: import("@sayknow-cli/utils/cli").ArgDescriptor & {
|
|
17
|
+
description: string;
|
|
18
|
+
required: false;
|
|
19
|
+
};
|
|
20
|
+
commandArgs: import("@sayknow-cli/utils/cli").ArgDescriptor & {
|
|
21
|
+
description: string;
|
|
22
|
+
required: false;
|
|
23
|
+
multiple: true;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
static flags: {
|
|
27
|
+
project: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
force: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
31
|
+
description: string;
|
|
32
|
+
default: boolean;
|
|
33
|
+
};
|
|
34
|
+
json: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
35
|
+
char: string;
|
|
36
|
+
description: string;
|
|
37
|
+
default: boolean;
|
|
38
|
+
};
|
|
39
|
+
type: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
40
|
+
description: string;
|
|
41
|
+
options: string[];
|
|
42
|
+
};
|
|
43
|
+
command: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
url: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
arg: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
50
|
+
description: string;
|
|
51
|
+
multiple: true;
|
|
52
|
+
};
|
|
53
|
+
env: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
54
|
+
description: string;
|
|
55
|
+
multiple: true;
|
|
56
|
+
};
|
|
57
|
+
header: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
58
|
+
description: string;
|
|
59
|
+
multiple: true;
|
|
60
|
+
};
|
|
61
|
+
cwd: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
62
|
+
description: string;
|
|
63
|
+
};
|
|
64
|
+
timeout: import("@sayknow-cli/utils/cli").FlagDescriptor<"integer"> & {
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
run(): Promise<void>;
|
|
69
|
+
private printHelp;
|
|
70
|
+
}
|
|
@@ -47,6 +47,12 @@ export default class Plugin extends Command {
|
|
|
47
47
|
description: string;
|
|
48
48
|
options: string[];
|
|
49
49
|
};
|
|
50
|
+
user: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
51
|
+
description: string;
|
|
52
|
+
};
|
|
53
|
+
project: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
54
|
+
description: string;
|
|
55
|
+
};
|
|
50
56
|
};
|
|
51
57
|
run(): Promise<void>;
|
|
52
58
|
}
|
|
@@ -18,6 +18,12 @@ export default class Session extends Command {
|
|
|
18
18
|
description: string;
|
|
19
19
|
default: boolean;
|
|
20
20
|
};
|
|
21
|
+
"session-id": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
"state-file": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
21
27
|
};
|
|
22
28
|
static examples: string[];
|
|
23
29
|
run(): Promise<void>;
|
|
@@ -230,8 +230,8 @@ export declare const KEYBINDINGS: {
|
|
|
230
230
|
readonly description: "Open external editor";
|
|
231
231
|
};
|
|
232
232
|
readonly "app.message.followUp": {
|
|
233
|
-
readonly defaultKeys:
|
|
234
|
-
readonly description: "Send follow-up message";
|
|
233
|
+
readonly defaultKeys: [];
|
|
234
|
+
readonly description: "Send follow-up message (no default; Ctrl+Enter inserts a newline)";
|
|
235
235
|
};
|
|
236
236
|
readonly "app.message.queue": {
|
|
237
237
|
readonly defaultKeys: "alt+enter";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ThinkingLevel } from "@sayknow-cli/agent-core";
|
|
2
2
|
import type { Api, Model } from "@sayknow-cli/ai";
|
|
3
3
|
import type { AgentSession } from "../session/agent-session";
|
|
4
|
-
import { type ModelRegistry } from "./model-registry";
|
|
4
|
+
import { type ModelRegistry, type SkcModelAssignmentTargetId } from "./model-registry";
|
|
5
5
|
import type { Settings } from "./settings";
|
|
6
6
|
type ModelProfileActivationSession = Pick<AgentSession, "model" | "thinkingLevel" | "sessionId"> & {
|
|
7
7
|
setModelTemporary?: AgentSession["setModelTemporary"];
|
|
@@ -40,6 +40,13 @@ export interface PreparedModelProfileActivation {
|
|
|
40
40
|
*/
|
|
41
41
|
previousSessionDefaultModel: string | undefined;
|
|
42
42
|
}
|
|
43
|
+
export interface MaterializeModelProfileAssignmentOptions {
|
|
44
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
45
|
+
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set">;
|
|
46
|
+
role: SkcModelAssignmentTargetId;
|
|
47
|
+
selector: string;
|
|
48
|
+
}
|
|
49
|
+
export declare function materializeActiveModelProfileAssignment(options: MaterializeModelProfileAssignmentOptions): boolean;
|
|
43
50
|
export declare function formatModelProfileCredentialError(profileName: string, providers: readonly string[]): string;
|
|
44
51
|
export declare function prepareModelProfileActivation(options: PrepareModelProfileActivationOptions): Promise<PreparedModelProfileActivation>;
|
|
45
52
|
export declare function applyPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: {
|
|
@@ -20,8 +20,8 @@ export interface ModelProfileDefinition {
|
|
|
20
20
|
}
|
|
21
21
|
export interface ResolvedProfileBinding {
|
|
22
22
|
defaultSelector?: string;
|
|
23
|
-
modelRoles:
|
|
24
|
-
agentModelOverrides: Partial<Record<Exclude<ModelProfileRole, "default"
|
|
23
|
+
modelRoles: Record<string, string>;
|
|
24
|
+
agentModelOverrides: Partial<Record<Exclude<ModelProfileRole, "default">, string>>;
|
|
25
25
|
}
|
|
26
26
|
export declare function deriveModelProfileMappedProviders(definition: Pick<ModelProfileDefinition, "modelMapping">): string[];
|
|
27
27
|
export declare function aggregateModelProfileRequiredProviders(requiredProviders: readonly string[], definition: Pick<ModelProfileDefinition, "modelMapping">): string[];
|
|
@@ -11,7 +11,7 @@ import { type Settings } from "./settings";
|
|
|
11
11
|
export type { CanonicalModelIndex, CanonicalModelRecord, CanonicalModelVariant, ModelEquivalenceConfig };
|
|
12
12
|
export declare const kNoAuth = "N/A";
|
|
13
13
|
export declare function isAuthenticated(apiKey: string | undefined | null): apiKey is string;
|
|
14
|
-
export type ModelRole = "default"
|
|
14
|
+
export type ModelRole = "default";
|
|
15
15
|
export interface ModelRoleInfo {
|
|
16
16
|
tag?: string;
|
|
17
17
|
name: string;
|
|
@@ -19,7 +19,7 @@ export interface ModelRoleInfo {
|
|
|
19
19
|
}
|
|
20
20
|
export declare const MODEL_ROLES: Record<ModelRole, ModelRoleInfo>;
|
|
21
21
|
export declare const MODEL_ROLE_IDS: ModelRole[];
|
|
22
|
-
export type SkcModelAssignmentTargetId = "default" | "
|
|
22
|
+
export type SkcModelAssignmentTargetId = "default" | "executor" | "architect" | "planner" | "critic";
|
|
23
23
|
export interface SkcModelAssignmentTargetInfo extends ModelRoleInfo {
|
|
24
24
|
id: SkcModelAssignmentTargetId;
|
|
25
25
|
settingsPath: "modelRoles" | "task.agentModelOverrides";
|
|
@@ -268,7 +268,7 @@ export declare const ModelsConfigFile: ConfigFile<{
|
|
|
268
268
|
profiles?: Record<string, {
|
|
269
269
|
required_providers: string[];
|
|
270
270
|
display_name?: string | undefined;
|
|
271
|
-
model_mapping: Partial<Record<"architect" | "critic" | "default" | "executor" | "planner"
|
|
271
|
+
model_mapping: Partial<Record<"architect" | "critic" | "default" | "executor" | "planner", string>>;
|
|
272
272
|
}> | undefined;
|
|
273
273
|
}>;
|
|
274
274
|
/** Provider override config (baseUrl, headers, apiKey, compat, transport) without custom models */
|
|
@@ -68,7 +68,6 @@ export declare const ProfileRoleSchema: z.ZodEnum<{
|
|
|
68
68
|
default: "default";
|
|
69
69
|
executor: "executor";
|
|
70
70
|
planner: "planner";
|
|
71
|
-
vision: "vision";
|
|
72
71
|
}>;
|
|
73
72
|
export declare const ProfileModelSelectorSchema: z.ZodString;
|
|
74
73
|
export declare const ProfileModelMappingSchema: z.ZodRecord<z.ZodEnum<{
|
|
@@ -77,7 +76,6 @@ export declare const ProfileModelMappingSchema: z.ZodRecord<z.ZodEnum<{
|
|
|
77
76
|
default: "default";
|
|
78
77
|
executor: "executor";
|
|
79
78
|
planner: "planner";
|
|
80
|
-
vision: "vision";
|
|
81
79
|
}> & z.core.$partial, z.ZodString>;
|
|
82
80
|
export declare const ProfileDefinitionSchema: z.ZodObject<{
|
|
83
81
|
required_providers: z.ZodArray<z.ZodString>;
|
|
@@ -88,7 +86,6 @@ export declare const ProfileDefinitionSchema: z.ZodObject<{
|
|
|
88
86
|
default: "default";
|
|
89
87
|
executor: "executor";
|
|
90
88
|
planner: "planner";
|
|
91
|
-
vision: "vision";
|
|
92
89
|
}> & z.core.$partial, z.ZodString>;
|
|
93
90
|
}, z.core.$strict>;
|
|
94
91
|
export declare const ProfilesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -100,7 +97,6 @@ export declare const ProfilesSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
|
100
97
|
default: "default";
|
|
101
98
|
executor: "executor";
|
|
102
99
|
planner: "planner";
|
|
103
|
-
vision: "vision";
|
|
104
100
|
}> & z.core.$partial, z.ZodString>;
|
|
105
101
|
}, z.core.$strict>>;
|
|
106
102
|
export declare const ModelOverrideSchema: z.ZodObject<{
|
|
@@ -691,7 +687,6 @@ export declare const ModelsConfigSchema: z.ZodObject<{
|
|
|
691
687
|
default: "default";
|
|
692
688
|
executor: "executor";
|
|
693
689
|
planner: "planner";
|
|
694
|
-
vision: "vision";
|
|
695
690
|
}> & z.core.$partial, z.ZodString>;
|
|
696
691
|
}, z.core.$strict>>>;
|
|
697
692
|
}, z.core.$strict>;
|
|
@@ -10,7 +10,7 @@ import { type SkillDiscoverySettings } from "./skill-settings-defaults";
|
|
|
10
10
|
* settings.get("compaction.enabled") // => boolean
|
|
11
11
|
* settings.set("theme.dark", "red-octopus") // sync, saves in background
|
|
12
12
|
*/
|
|
13
|
-
export type SettingTab = "appearance" | "model" | "interaction" | "
|
|
13
|
+
export type SettingTab = "appearance" | "model" | "interaction" | "context" | "memory" | "editing" | "tools" | "tasks" | "providers";
|
|
14
14
|
/** Tab display metadata - icon is resolved via theme.symbol() */
|
|
15
15
|
export type TabMetadata = {
|
|
16
16
|
label: string;
|
|
@@ -56,13 +56,10 @@ interface UiString extends UiBase {
|
|
|
56
56
|
* - Omitted → renders as a free text input.
|
|
57
57
|
*/
|
|
58
58
|
options?: ReadonlyArray<SubmenuOption> | "runtime";
|
|
59
|
-
/** When true, the value is masked in the settings list display but edited in full. */
|
|
60
|
-
secret?: boolean;
|
|
61
59
|
}
|
|
62
60
|
/** Wide ui shape exposed to consumers that walk the schema generically. */
|
|
63
61
|
export type AnyUiMetadata = UiBase & {
|
|
64
62
|
options?: ReadonlyArray<SubmenuOption> | "runtime";
|
|
65
|
-
secret?: boolean;
|
|
66
63
|
};
|
|
67
64
|
interface BooleanDef {
|
|
68
65
|
type: "boolean";
|
|
@@ -124,94 +121,39 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
124
121
|
readonly "notifications.enabled": {
|
|
125
122
|
readonly type: "boolean";
|
|
126
123
|
readonly default: false;
|
|
127
|
-
readonly ui: {
|
|
128
|
-
readonly tab: "notifications";
|
|
129
|
-
readonly label: "Enabled";
|
|
130
|
-
readonly description: "Master switch for notifications. Requires at least one adapter (Telegram/Discord/Slack) configured with a token and a chat/channel to actually deliver.";
|
|
131
|
-
};
|
|
132
124
|
};
|
|
133
125
|
readonly "notifications.telegram.botToken": {
|
|
134
126
|
readonly type: "string";
|
|
135
127
|
readonly default: undefined;
|
|
136
|
-
readonly ui: {
|
|
137
|
-
readonly tab: "notifications";
|
|
138
|
-
readonly label: "Telegram bot token";
|
|
139
|
-
readonly description: "Telegram BotFather HTTP API token. Stored locally; shown masked.";
|
|
140
|
-
readonly secret: true;
|
|
141
|
-
};
|
|
142
128
|
};
|
|
143
129
|
readonly "notifications.telegram.chatId": {
|
|
144
130
|
readonly type: "string";
|
|
145
131
|
readonly default: undefined;
|
|
146
|
-
readonly ui: {
|
|
147
|
-
readonly tab: "notifications";
|
|
148
|
-
readonly label: "Telegram chat ID";
|
|
149
|
-
readonly description: "Target chat. For end-to-end per-session delivery this must be a forum-enabled supergroup the bot can manage; a private chat id is only enough for setup/status.";
|
|
150
|
-
};
|
|
151
132
|
};
|
|
152
133
|
readonly "notifications.discord.botToken": {
|
|
153
134
|
readonly type: "string";
|
|
154
135
|
readonly default: undefined;
|
|
155
|
-
readonly ui: {
|
|
156
|
-
readonly tab: "notifications";
|
|
157
|
-
readonly label: "Discord bot token";
|
|
158
|
-
readonly description: "Discord bot token for the notifications adapter. Stored locally; shown masked.";
|
|
159
|
-
readonly secret: true;
|
|
160
|
-
};
|
|
161
136
|
};
|
|
162
137
|
readonly "notifications.discord.channelId": {
|
|
163
138
|
readonly type: "string";
|
|
164
139
|
readonly default: undefined;
|
|
165
|
-
readonly ui: {
|
|
166
|
-
readonly tab: "notifications";
|
|
167
|
-
readonly label: "Discord channel ID";
|
|
168
|
-
readonly description: "Discord channel that receives notifications and routes replies back.";
|
|
169
|
-
};
|
|
170
140
|
};
|
|
171
141
|
readonly "notifications.slack.botToken": {
|
|
172
142
|
readonly type: "string";
|
|
173
143
|
readonly default: undefined;
|
|
174
|
-
readonly ui: {
|
|
175
|
-
readonly tab: "notifications";
|
|
176
|
-
readonly label: "Slack bot token";
|
|
177
|
-
readonly description: "Slack bot token for the notifications adapter. Stored locally; shown masked.";
|
|
178
|
-
readonly secret: true;
|
|
179
|
-
};
|
|
180
144
|
};
|
|
181
145
|
readonly "notifications.slack.channelId": {
|
|
182
146
|
readonly type: "string";
|
|
183
147
|
readonly default: undefined;
|
|
184
|
-
readonly ui: {
|
|
185
|
-
readonly tab: "notifications";
|
|
186
|
-
readonly label: "Slack channel ID";
|
|
187
|
-
readonly description: "Slack channel that receives notifications and routes replies back.";
|
|
188
|
-
};
|
|
189
148
|
};
|
|
190
149
|
readonly "notifications.redact": {
|
|
191
150
|
readonly type: "boolean";
|
|
192
151
|
readonly default: false;
|
|
193
|
-
readonly ui: {
|
|
194
|
-
readonly tab: "notifications";
|
|
195
|
-
readonly label: "Redact";
|
|
196
|
-
readonly description: "Strip idle summaries and streamed content before remote delivery. Ask prompts are always sent so they remain answerable.";
|
|
197
|
-
};
|
|
198
152
|
};
|
|
199
153
|
readonly "notifications.verbosity": {
|
|
200
154
|
readonly type: "string";
|
|
201
155
|
readonly default: "lean";
|
|
202
156
|
readonly validate: (value: string) => value is "lean" | "verbose";
|
|
203
|
-
readonly ui: {
|
|
204
|
-
readonly tab: "notifications";
|
|
205
|
-
readonly label: "Verbosity";
|
|
206
|
-
readonly description: "How much session context to stream to Telegram.";
|
|
207
|
-
readonly options: readonly [{
|
|
208
|
-
readonly value: "lean";
|
|
209
|
-
readonly label: "Lean";
|
|
210
|
-
}, {
|
|
211
|
-
readonly value: "verbose";
|
|
212
|
-
readonly label: "Verbose";
|
|
213
|
-
}];
|
|
214
|
-
};
|
|
215
157
|
};
|
|
216
158
|
readonly "notifications.daemon.idleTimeoutMs": {
|
|
217
159
|
readonly type: "number";
|
|
@@ -2550,15 +2492,6 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2550
2492
|
readonly description: "Enable the recipe tool when a justfile / package.json / Cargo.toml / Makefile / Taskfile is present";
|
|
2551
2493
|
};
|
|
2552
2494
|
};
|
|
2553
|
-
readonly "inspect_image.enabled": {
|
|
2554
|
-
readonly type: "boolean";
|
|
2555
|
-
readonly default: false;
|
|
2556
|
-
readonly ui: {
|
|
2557
|
-
readonly tab: "tools";
|
|
2558
|
-
readonly label: "Inspect Image";
|
|
2559
|
-
readonly description: "Enable the inspect_image tool, delegating image understanding to a vision-capable model";
|
|
2560
|
-
};
|
|
2561
|
-
};
|
|
2562
2495
|
readonly "checkpoint.enabled": {
|
|
2563
2496
|
readonly type: "boolean";
|
|
2564
2497
|
readonly default: false;
|
|
@@ -2652,6 +2585,16 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2652
2585
|
readonly description: "Ordered fallback web search providers after the active model native provider";
|
|
2653
2586
|
};
|
|
2654
2587
|
};
|
|
2588
|
+
readonly "web_search.timeout": {
|
|
2589
|
+
readonly type: "number";
|
|
2590
|
+
readonly default: 300;
|
|
2591
|
+
readonly validate: (value: number) => boolean;
|
|
2592
|
+
readonly ui: {
|
|
2593
|
+
readonly tab: "tools";
|
|
2594
|
+
readonly label: "Web Search Timeout";
|
|
2595
|
+
readonly description: "Hard timeout in seconds for a single web search request (default 300)";
|
|
2596
|
+
};
|
|
2597
|
+
};
|
|
2655
2598
|
readonly "browser.enabled": {
|
|
2656
2599
|
readonly type: "boolean";
|
|
2657
2600
|
readonly default: true;
|
|
@@ -2679,6 +2622,45 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2679
2622
|
readonly description: "Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)";
|
|
2680
2623
|
};
|
|
2681
2624
|
};
|
|
2625
|
+
readonly "browser.gc.enabled": {
|
|
2626
|
+
readonly type: "boolean";
|
|
2627
|
+
readonly default: true;
|
|
2628
|
+
readonly ui: {
|
|
2629
|
+
readonly tab: "tools";
|
|
2630
|
+
readonly label: "Browser Tab GC";
|
|
2631
|
+
readonly description: "Automatically reclaim idle, unheld SKC-managed headless/spawned browser tabs.";
|
|
2632
|
+
};
|
|
2633
|
+
};
|
|
2634
|
+
readonly "browser.gc.idleMs": {
|
|
2635
|
+
readonly type: "number";
|
|
2636
|
+
readonly default: 300000;
|
|
2637
|
+
readonly validate: (value: number) => boolean;
|
|
2638
|
+
readonly ui: {
|
|
2639
|
+
readonly tab: "tools";
|
|
2640
|
+
readonly label: "Browser Tab GC Idle (ms)";
|
|
2641
|
+
readonly description: "Evict headless/spawned tabs idle longer than this many milliseconds.";
|
|
2642
|
+
};
|
|
2643
|
+
};
|
|
2644
|
+
readonly "browser.gc.rssLimitMb": {
|
|
2645
|
+
readonly type: "number";
|
|
2646
|
+
readonly default: 1536;
|
|
2647
|
+
readonly validate: (value: number) => boolean;
|
|
2648
|
+
readonly ui: {
|
|
2649
|
+
readonly tab: "tools";
|
|
2650
|
+
readonly label: "Browser Tab GC RSS Limit (MB)";
|
|
2651
|
+
readonly description: "Parent-process RSS (MB) above which idle tabs are opportunistically evicted LRU.";
|
|
2652
|
+
};
|
|
2653
|
+
};
|
|
2654
|
+
readonly "resourceGc.sweepIntervalMs": {
|
|
2655
|
+
readonly type: "number";
|
|
2656
|
+
readonly default: 30000;
|
|
2657
|
+
readonly validate: (value: number) => boolean;
|
|
2658
|
+
readonly ui: {
|
|
2659
|
+
readonly tab: "tools";
|
|
2660
|
+
readonly label: "Resource GC Sweep Interval (ms)";
|
|
2661
|
+
readonly description: "How often the resource GC sweeps browser tabs and stale screenshot directories.";
|
|
2662
|
+
};
|
|
2663
|
+
};
|
|
2682
2664
|
readonly "computer.enabled": {
|
|
2683
2665
|
readonly type: "boolean";
|
|
2684
2666
|
readonly default: false;
|
|
@@ -2733,6 +2715,35 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2733
2715
|
readonly description: "Persist audit records for enabled computer-use actions.";
|
|
2734
2716
|
};
|
|
2735
2717
|
};
|
|
2718
|
+
readonly "computer.screenshotGc.enabled": {
|
|
2719
|
+
readonly type: "boolean";
|
|
2720
|
+
readonly default: true;
|
|
2721
|
+
readonly ui: {
|
|
2722
|
+
readonly tab: "tools";
|
|
2723
|
+
readonly label: "Computer Screenshot GC";
|
|
2724
|
+
readonly description: "Delete stale computer-use screenshot fallback directories on disk.";
|
|
2725
|
+
};
|
|
2726
|
+
};
|
|
2727
|
+
readonly "computer.screenshotGc.staleMs": {
|
|
2728
|
+
readonly type: "number";
|
|
2729
|
+
readonly default: 43200000;
|
|
2730
|
+
readonly validate: (value: number) => boolean;
|
|
2731
|
+
readonly ui: {
|
|
2732
|
+
readonly tab: "tools";
|
|
2733
|
+
readonly label: "Computer Screenshot GC Stale Age (ms)";
|
|
2734
|
+
readonly description: "Remove screenshot fallback directories whose mtime is older than this many milliseconds.";
|
|
2735
|
+
};
|
|
2736
|
+
};
|
|
2737
|
+
readonly "computer.screenshotGc.scanIntervalMs": {
|
|
2738
|
+
readonly type: "number";
|
|
2739
|
+
readonly default: 1800000;
|
|
2740
|
+
readonly validate: (value: number) => boolean;
|
|
2741
|
+
readonly ui: {
|
|
2742
|
+
readonly tab: "tools";
|
|
2743
|
+
readonly label: "Computer Screenshot GC Scan Interval (ms)";
|
|
2744
|
+
readonly description: "Minimum interval between os.tmpdir scans for stale screenshot directories.";
|
|
2745
|
+
};
|
|
2746
|
+
};
|
|
2736
2747
|
readonly "tools.intentTracing": {
|
|
2737
2748
|
readonly type: "boolean";
|
|
2738
2749
|
readonly default: true;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type DeepInterviewPlaintextAskLeakOption = "Yes, crystallize" | "Adjust wording" | "Missing scope";
|
|
2
|
+
export type DeepInterviewPlaintextAskLeakResult = {
|
|
3
|
+
kind: "deep_interview_plaintext_ask_leak";
|
|
4
|
+
matchedOptions: DeepInterviewPlaintextAskLeakOption[];
|
|
5
|
+
signals: {
|
|
6
|
+
optionsHeading: true;
|
|
7
|
+
restateIntent: true;
|
|
8
|
+
deepInterviewContext: boolean;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare function detectDeepInterviewPlaintextAskLeak(text: string): DeepInterviewPlaintextAskLeakResult | null;
|