@sayknow-cli/coding-agent 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/append-only-mode.d.ts +31 -0
- package/dist/types/capability/rule.d.ts +8 -0
- package/dist/types/cli/completion-cli.d.ts +41 -0
- package/dist/types/cli/config-cli.d.ts +1 -0
- package/dist/types/cli/fixture-report.d.ts +20 -0
- package/dist/types/cli/fixture-report.test.d.ts +1 -0
- package/dist/types/cli/nofile-limit.d.ts +11 -0
- package/dist/types/cli/notify-cli.d.ts +7 -0
- package/dist/types/cli/update-cli.d.ts +22 -0
- package/dist/types/cli.d.ts +124 -1
- package/dist/types/commands/completion.d.ts +29 -0
- package/dist/types/commands/config.d.ts +3 -0
- package/dist/types/commands/deep-interview.d.ts +3 -0
- package/dist/types/config/file-lock.d.ts +7 -6
- package/dist/types/config/keybindings.d.ts +2 -2
- package/dist/types/config/model-profile-activation.d.ts +6 -0
- package/dist/types/config/model-profiles.d.ts +1 -0
- package/dist/types/config/settings-schema.d.ts +119 -1
- package/dist/types/config/settings.d.ts +8 -0
- package/dist/types/discovery/index.d.ts +1 -0
- package/dist/types/export/html/template.generated.d.ts +1 -1
- package/dist/types/export/ttsr.d.ts +14 -3
- package/dist/types/extensibility/extensions/runner.d.ts +2 -1
- package/dist/types/extensibility/extensions/types.d.ts +8 -0
- package/dist/types/goals/runtime.d.ts +1 -0
- package/dist/types/hooks/native-skill-hook.d.ts +12 -0
- package/dist/types/main.d.ts +4 -1
- package/dist/types/modes/components/assistant-message.d.ts +5 -1
- package/dist/types/modes/components/model-selector.d.ts +4 -0
- package/dist/types/modes/components/queued-message-selector.d.ts +12 -0
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/status-line.d.ts +9 -0
- package/dist/types/modes/components/thinking-selector.d.ts +2 -2
- package/dist/types/modes/controllers/command-controller.d.ts +1 -0
- package/dist/types/modes/controllers/event-controller.d.ts +5 -0
- package/dist/types/modes/controllers/input-controller.d.ts +1 -3
- package/dist/types/modes/controllers/selector-controller.d.ts +1 -0
- package/dist/types/modes/interactive-mode.d.ts +4 -0
- package/dist/types/modes/print-mode.d.ts +13 -1
- package/dist/types/modes/prompt-action-autocomplete.d.ts +1 -1
- package/dist/types/modes/rpc/rpc-mode.d.ts +1 -3
- package/dist/types/modes/rpc/rpc-socket-security.d.ts +3 -0
- package/dist/types/modes/rpc/rpc-types.d.ts +14 -0
- package/dist/types/modes/shared/agent-wire/event-contract.d.ts +19 -0
- package/dist/types/modes/shared/agent-wire/event-envelope.d.ts +23 -1
- package/dist/types/modes/types.d.ts +3 -0
- package/dist/types/modes/utils/injected-user-submission.d.ts +52 -0
- package/dist/types/modes/utils/ui-helpers.d.ts +1 -0
- package/dist/types/notifications/config-commands.d.ts +9 -0
- package/dist/types/notifications/config.d.ts +30 -1
- package/dist/types/notifications/daemon-paths.d.ts +1 -0
- package/dist/types/notifications/index.d.ts +8 -3
- package/dist/types/notifications/lifecycle-commands.d.ts +12 -3
- package/dist/types/notifications/lifecycle-control-runtime.d.ts +2 -1
- package/dist/types/notifications/reply-sent-store.d.ts +53 -0
- package/dist/types/notifications/rich-draft.d.ts +68 -0
- package/dist/types/notifications/rich-render.d.ts +90 -0
- package/dist/types/notifications/telegram-daemon.d.ts +45 -3
- package/dist/types/notifications/telegram-reference.d.ts +7 -5
- package/dist/types/notifications/threaded-render.d.ts +14 -0
- package/dist/types/runtime-api-key.d.ts +7 -0
- package/dist/types/sdk.d.ts +3 -0
- package/dist/types/session/agent-session.d.ts +61 -6
- package/dist/types/session/agent-storage.d.ts +1 -0
- package/dist/types/session/file-mention-pruning.d.ts +8 -0
- package/dist/types/session/messages.d.ts +4 -0
- package/dist/types/session/session-manager.d.ts +17 -1
- package/dist/types/skc-runtime/deep-interview-ambiguity.d.ts +39 -0
- package/dist/types/skc-runtime/deep-interview-recorder.d.ts +10 -1
- package/dist/types/skc-runtime/deep-interview-state.d.ts +17 -2
- package/dist/types/skc-runtime/session-state-sidecar.d.ts +7 -0
- package/dist/types/skc-runtime/state-writer.d.ts +3 -0
- package/dist/types/skc-runtime/tmux-common.d.ts +1 -0
- package/dist/types/skc-runtime/ultragoal-receipt-freshness.d.ts +42 -0
- package/dist/types/skc-runtime/ultragoal-runtime.d.ts +120 -13
- package/dist/types/skill-state/active-state.d.ts +18 -1
- package/dist/types/system-prompt.d.ts +18 -2
- package/dist/types/task/executor.d.ts +3 -0
- package/dist/types/task/fork-context-budget.d.ts +7 -0
- package/dist/types/task/token-log.d.ts +30 -0
- package/dist/types/task/token-log.test.d.ts +1 -0
- package/dist/types/tools/bisect.d.ts +81 -0
- package/dist/types/tools/computer.d.ts +2 -2
- package/dist/types/tools/index.d.ts +1 -0
- package/dist/types/tools/search.d.ts +2 -2
- package/dist/types/tools/ultragoal-ask-guard.d.ts +9 -2
- package/dist/types/utils/file-mentions.d.ts +14 -0
- package/dist/types/utils/git.d.ts +32 -0
- package/dist/types/utils/pasted-image-path.d.ts +30 -0
- package/dist/types/web/scrapers/youtube.d.ts +8 -0
- package/dist/types/workflow/workflow-intent-diff.d.ts +8 -2
- package/dist/types/workflow/workflow-intent-report-consumer.d.ts +50 -0
- package/dist/types/workflow/workflow-intent-report-schema.d.ts +2 -0
- package/dist/types/workflow/workflow-intent-report.d.ts +48 -0
- package/package.json +8 -8
- package/src/append-only-mode.ts +58 -0
- package/src/autoresearch/prompt.md +1 -1
- package/src/autoresearch/tools/log-experiment.ts +1 -1
- package/src/capability/rule.ts +9 -0
- package/src/cli/completion-cli.ts +234 -0
- package/src/cli/config-cli.ts +61 -9
- package/src/cli/fast-help.ts +1 -0
- package/src/cli/fixture-report.test.ts +230 -0
- package/src/cli/fixture-report.ts +171 -0
- package/src/cli/nofile-limit.ts +48 -0
- package/src/cli/notify-cli.ts +103 -17
- package/src/cli/telegram-cli.ts +1 -1
- package/src/cli/update-cli.ts +148 -33
- package/src/cli.ts +29 -1
- package/src/commands/completion.ts +84 -0
- package/src/commands/config.ts +2 -0
- package/src/commands/contribution-prep.ts +1 -1
- package/src/commands/deep-interview.ts +2 -1
- package/src/config/file-lock.ts +73 -34
- package/src/config/keybindings.ts +3 -3
- package/src/config/model-profile-activation.ts +65 -0
- package/src/config/model-profiles.ts +31 -2
- package/src/config/settings-schema.ts +76 -1
- package/src/config/settings.ts +22 -0
- package/src/defaults/skc/skills/team/SKILL.md +17 -14
- package/src/defaults/skc/skills/ultragoal/SKILL.md +59 -4
- package/src/defaults/skc/skills/ultragoal/pipeline-validation-contracts.md +30 -0
- package/src/defaults/skc-defaults.ts +9 -0
- package/src/discovery/helpers.ts +10 -0
- package/src/discovery/index.ts +1 -0
- package/src/export/html/template.generated.ts +1 -1
- package/src/export/html/template.js +60 -2
- package/src/export/ttsr.ts +96 -18
- package/src/extensibility/extensions/runner.ts +183 -219
- package/src/extensibility/extensions/types.ts +9 -0
- package/src/extensibility/skc-plugins/runtime-adapters.ts +156 -44
- package/src/goals/runtime.ts +10 -2
- package/src/hindsight/backend.ts +1 -3
- package/src/hooks/native-skill-hook.ts +124 -4
- package/src/internal-urls/docs-index.generated.ts +17 -8
- package/src/lsp/client.ts +1 -0
- package/src/main.ts +95 -43
- package/src/memories/index.ts +12 -1
- package/src/modes/components/assistant-message.ts +241 -82
- package/src/modes/components/custom-editor.ts +1 -0
- package/src/modes/components/footer.ts +7 -2
- package/src/modes/components/model-selector.ts +54 -11
- package/src/modes/components/queued-message-selector.ts +92 -0
- package/src/modes/components/settings-selector.ts +4 -0
- package/src/modes/components/status-line.ts +167 -54
- package/src/modes/components/thinking-selector.ts +10 -8
- package/src/modes/components/tool-execution.ts +44 -19
- package/src/modes/components/welcome.ts +181 -44
- package/src/modes/controllers/command-controller.ts +40 -4
- package/src/modes/controllers/event-controller.ts +77 -49
- package/src/modes/controllers/extension-ui-controller.ts +12 -11
- package/src/modes/controllers/input-controller.ts +192 -35
- package/src/modes/controllers/selector-controller.ts +168 -24
- package/src/modes/interactive-mode.ts +56 -16
- package/src/modes/print-mode.ts +43 -4
- package/src/modes/prompt-action-autocomplete.ts +21 -20
- package/src/modes/rpc/rpc-mode.ts +32 -12
- package/src/modes/rpc/rpc-socket-security.ts +13 -1
- package/src/modes/rpc/rpc-types.ts +9 -0
- package/src/modes/shared/agent-wire/command-validation.ts +4 -0
- package/src/modes/shared/agent-wire/event-contract.ts +22 -0
- package/src/modes/shared/agent-wire/event-envelope.ts +82 -0
- package/src/modes/shared/agent-wire/scopes.ts +1 -0
- package/src/modes/types.ts +3 -0
- package/src/modes/utils/hotkeys-markdown.ts +1 -0
- package/src/modes/utils/injected-user-submission.ts +94 -0
- package/src/modes/utils/ui-helpers.ts +20 -7
- package/src/notifications/config-commands.ts +20 -0
- package/src/notifications/config.ts +52 -5
- package/src/notifications/daemon-paths.ts +2 -0
- package/src/notifications/index.ts +144 -18
- package/src/notifications/lifecycle-commands.ts +74 -23
- package/src/notifications/lifecycle-control-runtime.ts +8 -3
- package/src/notifications/lifecycle-orchestrator.ts +19 -6
- package/src/notifications/reply-sent-store.ts +134 -0
- package/src/notifications/rich-draft.ts +107 -0
- package/src/notifications/rich-render.ts +142 -0
- package/src/notifications/telegram-daemon-control.ts +5 -3
- package/src/notifications/telegram-daemon.ts +606 -98
- package/src/notifications/telegram-reference.ts +17 -16
- package/src/notifications/threaded-render.ts +45 -2
- package/src/prompts/agents/architect.md +19 -10
- package/src/prompts/agents/critic.md +16 -18
- package/src/prompts/agents/executor.md +14 -11
- package/src/prompts/agents/planner.md +18 -13
- package/src/prompts/ci-green-request.md +3 -8
- package/src/prompts/goals/goal-continuation.md +0 -5
- package/src/prompts/goals/goal-mode-active.md +0 -5
- package/src/prompts/system/agent-creation-architect.md +2 -2
- package/src/prompts/system/plan-mode-active.md +1 -1
- package/src/prompts/system/plan-mode-subagent.md +3 -3
- package/src/prompts/system/project-prompt.md +0 -13
- package/src/prompts/system/subagent-system-prompt.md +3 -2
- package/src/prompts/system/system-prompt.md +29 -17
- package/src/prompts/system/volatile-project-context.md +10 -0
- package/src/prompts/system/web-search.md +4 -7
- package/src/prompts/tools/apply-patch.md +6 -0
- package/src/prompts/tools/ast-edit.md +1 -0
- package/src/prompts/tools/bash.md +1 -1
- package/src/prompts/tools/bisect.md +22 -0
- package/src/prompts/tools/browser.md +1 -1
- package/src/prompts/tools/computer.md +2 -2
- package/src/prompts/tools/cron.md +0 -2
- package/src/prompts/tools/eval.md +2 -2
- package/src/prompts/tools/find.md +1 -1
- package/src/prompts/tools/github.md +6 -6
- package/src/prompts/tools/goal.md +1 -3
- package/src/prompts/tools/image-gen.md +12 -5
- package/src/prompts/tools/irc.md +5 -4
- package/src/prompts/tools/job.md +2 -2
- package/src/prompts/tools/lsp.md +1 -1
- package/src/prompts/tools/monitor.md +2 -2
- package/src/prompts/tools/patch.md +2 -2
- package/src/prompts/tools/replace.md +2 -21
- package/src/prompts/tools/rewind.md +1 -1
- package/src/prompts/tools/search-tool-bm25.md +6 -11
- package/src/prompts/tools/search.md +1 -1
- package/src/prompts/tools/skill.md +3 -2
- package/src/prompts/tools/ssh.md +2 -1
- package/src/prompts/tools/subagent.md +2 -2
- package/src/prompts/tools/task.md +4 -5
- package/src/prompts/tools/todo-write.md +1 -1
- package/src/prompts/tools/vim.md +1 -0
- package/src/prompts/tools/web-search.md +2 -0
- package/src/prompts/tools/write.md +8 -2
- package/src/runtime-api-key.ts +16 -0
- package/src/sdk.ts +88 -36
- package/src/session/agent-session.ts +1013 -141
- package/src/session/agent-storage.ts +4 -0
- package/src/session/file-mention-pruning.ts +64 -0
- package/src/session/messages.ts +4 -0
- package/src/session/session-manager.ts +103 -4
- package/src/skc-runtime/deep-interview-ambiguity.ts +206 -0
- package/src/skc-runtime/deep-interview-recorder.ts +62 -8
- package/src/skc-runtime/deep-interview-state.ts +44 -2
- package/src/skc-runtime/session-state-sidecar.ts +263 -20
- package/src/skc-runtime/state-runtime.ts +12 -2
- package/src/skc-runtime/state-writer.ts +15 -0
- package/src/skc-runtime/tmux-common.ts +1 -0
- package/src/skc-runtime/ultragoal-guard.ts +55 -66
- package/src/skc-runtime/ultragoal-receipt-freshness.ts +315 -0
- package/src/skc-runtime/ultragoal-runtime.ts +1672 -159
- package/src/skc-runtime/workflow-manifest.generated.json +113 -2
- package/src/skc-runtime/workflow-manifest.ts +74 -1
- package/src/skill-state/active-state.ts +141 -5
- package/src/skill-state/deep-interview-mutation-guard.ts +67 -3
- package/src/slash-commands/builtin-registry.ts +296 -72
- package/src/system-prompt.ts +57 -16
- package/src/task/executor.ts +132 -24
- package/src/task/fork-context-advisory.ts +2 -7
- package/src/task/fork-context-budget.ts +9 -0
- package/src/task/index.ts +13 -6
- package/src/task/output-manager.ts +20 -8
- package/src/task/receipt.ts +26 -7
- package/src/task/token-log.test.ts +188 -0
- package/src/task/token-log.ts +179 -0
- package/src/tools/bisect.ts +367 -0
- package/src/tools/computer.ts +246 -43
- package/src/tools/index.ts +3 -0
- package/src/tools/output-meta.ts +116 -4
- package/src/tools/search.ts +8 -2
- package/src/tools/skill.ts +15 -0
- package/src/tools/telegram-send.ts +6 -0
- package/src/tools/ultragoal-ask-guard.ts +39 -5
- package/src/utils/file-mentions.ts +39 -7
- package/src/utils/git.ts +73 -0
- package/src/utils/pasted-image-path.ts +170 -0
- package/src/web/scrapers/youtube.ts +24 -12
- package/src/workflow/workflow-intent-diff.ts +29 -6
- package/src/workflow/workflow-intent-report-consumer.ts +221 -0
- package/src/workflow/workflow-intent-report-schema.ts +129 -0
- package/src/workflow/workflow-intent-report.ts +135 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for append-only context-mode resolution and manager
|
|
3
|
+
* construction. Both the initial session build (`sdk.ts`) and the runtime
|
|
4
|
+
* model/setting-change path (`agent-session.ts`), plus the status UI, resolve
|
|
5
|
+
* through here so the auto allowlist and prefix-reset diagnostics never drift.
|
|
6
|
+
*/
|
|
7
|
+
import { AppendOnlyContextManager } from "@sayknow-cli/agent-core";
|
|
8
|
+
/**
|
|
9
|
+
* Providers for which append-only context auto-enables. Exact provider-string
|
|
10
|
+
* match only: `anthropic` reached via a gateway/aggregator provider string
|
|
11
|
+
* (e.g. `openrouter`, a custom gateway) does NOT match and stays opt-in via
|
|
12
|
+
* `provider.appendOnlyContext: "on"`, because those transports can rewrite or
|
|
13
|
+
* renormalize the request in ways that have not been validated for append-only
|
|
14
|
+
* prefix stability.
|
|
15
|
+
*/
|
|
16
|
+
export declare function providerSupportsAppendOnlyAuto(provider: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Resolve whether to enable append-only context mode based on the setting and provider.
|
|
19
|
+
*
|
|
20
|
+
* - `"on"` → always enable
|
|
21
|
+
* - `"off"` → never enable
|
|
22
|
+
* - `"auto"` → enable for providers with strong prompt-prefix caching that this
|
|
23
|
+
* harness has validated (see {@link providerSupportsAppendOnlyAuto})
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveAppendOnlyMode(setting: "auto" | "on" | "off" | undefined, provider: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Construct an {@link AppendOnlyContextManager} wired to emit per-session
|
|
28
|
+
* stable-prefix reset diagnostics. Use this at every creation site so the
|
|
29
|
+
* telemetry is uniform.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createAppendOnlyContextManager(provider: string | undefined): AppendOnlyContextManager;
|
|
@@ -12,6 +12,10 @@ export interface RuleFrontmatter {
|
|
|
12
12
|
scope?: string | string[];
|
|
13
13
|
/** Per-rule TTSR interrupt mode override. */
|
|
14
14
|
interruptMode?: "never" | "prose-only" | "tool-only" | "always";
|
|
15
|
+
/** Per-rule TTSR repeat mode override. */
|
|
16
|
+
repeatMode?: "once" | "after-gap";
|
|
17
|
+
/** Per-rule TTSR repeat gap override. */
|
|
18
|
+
repeatGap?: number;
|
|
15
19
|
[key: string]: unknown;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
@@ -36,6 +40,10 @@ export interface Rule {
|
|
|
36
40
|
scope?: string[];
|
|
37
41
|
/** Per-rule TTSR interrupt mode override (falls back to global ttsr.interruptMode). */
|
|
38
42
|
interruptMode?: "never" | "prose-only" | "tool-only" | "always";
|
|
43
|
+
/** Per-rule TTSR repeat mode override (falls back to global ttsr.repeatMode). */
|
|
44
|
+
repeatMode?: "once" | "after-gap";
|
|
45
|
+
/** Per-rule TTSR repeat gap override (falls back to global ttsr.repeatGap). */
|
|
46
|
+
repeatGap?: number;
|
|
39
47
|
/** Source metadata */
|
|
40
48
|
_source: SourceMeta;
|
|
41
49
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { CommandCtor, CommandEntry } from "@sayknow-cli/utils/cli";
|
|
2
|
+
export type FigName = string | string[];
|
|
3
|
+
export interface FigArg {
|
|
4
|
+
name: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
isOptional?: boolean;
|
|
7
|
+
isVariadic?: boolean;
|
|
8
|
+
suggestions?: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface FigOption {
|
|
11
|
+
name: FigName;
|
|
12
|
+
description?: string;
|
|
13
|
+
args?: FigArg;
|
|
14
|
+
isRepeatable?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface FigSubcommand {
|
|
17
|
+
name: FigName;
|
|
18
|
+
description?: string;
|
|
19
|
+
options?: FigOption[];
|
|
20
|
+
args?: FigArg | FigArg[];
|
|
21
|
+
}
|
|
22
|
+
export interface FigSpec extends FigSubcommand {
|
|
23
|
+
name: string;
|
|
24
|
+
subcommands?: FigSubcommand[];
|
|
25
|
+
}
|
|
26
|
+
export type InshellisenseIndexStatus = "created" | "updated" | "already-compatible" | "overwritten";
|
|
27
|
+
export interface InstallSkcInshellisenseSpecOptions {
|
|
28
|
+
dir?: string;
|
|
29
|
+
force?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface InstallSkcInshellisenseSpecResult {
|
|
32
|
+
directory: string;
|
|
33
|
+
specPath: string;
|
|
34
|
+
indexPath: string;
|
|
35
|
+
indexStatus: InshellisenseIndexStatus;
|
|
36
|
+
}
|
|
37
|
+
export declare function defaultInshellisenseSpecDir(homeDir?: string): string;
|
|
38
|
+
export declare function buildSkcFigSpec(entries: CommandEntry[], rootCommandOverride?: CommandCtor): Promise<FigSpec>;
|
|
39
|
+
export declare function renderFigSpecModule(spec: FigSpec): string;
|
|
40
|
+
export declare function renderInshellisenseIndexModule(): string;
|
|
41
|
+
export declare function installSkcInshellisenseSpec(spec: FigSpec, options?: InstallSkcInshellisenseSpecOptions): Promise<InstallSkcInshellisenseSpecResult>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TaskTokenLog } from "../task/types";
|
|
2
|
+
export interface LiveRunReportShape {
|
|
3
|
+
schemaVersion: 1;
|
|
4
|
+
binaryId: string;
|
|
5
|
+
fixtureId: string;
|
|
6
|
+
totals: {
|
|
7
|
+
turns: number;
|
|
8
|
+
inputTokens: number;
|
|
9
|
+
outputTokens: number;
|
|
10
|
+
cacheReadTokens: number;
|
|
11
|
+
cacheWriteTokens: number;
|
|
12
|
+
totalTokens: number;
|
|
13
|
+
};
|
|
14
|
+
cacheHitRate: number | null;
|
|
15
|
+
receiptArtifactRatio: number | null;
|
|
16
|
+
spawnDecisions: number | null;
|
|
17
|
+
roi: number | null;
|
|
18
|
+
}
|
|
19
|
+
export declare function buildFixtureReport(fixtureId: string, logs: readonly TaskTokenLog[]): LiveRunReportShape;
|
|
20
|
+
export declare function runFixtureReport(fixtureId: string): Promise<number>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
export declare const RECOMMENDED_MACOS_NOFILE_LIMIT = 4096;
|
|
3
|
+
export declare function parseNoFileLimit(text: string): number | undefined;
|
|
4
|
+
export declare function buildMacOSNoFileLimitWarning(currentLimit: number): string;
|
|
5
|
+
export interface WarnIfMacOSNoFileLimitTooLowDeps {
|
|
6
|
+
platform?: NodeJS.Platform;
|
|
7
|
+
env?: NodeJS.ProcessEnv;
|
|
8
|
+
execFileSync?: typeof execFileSync;
|
|
9
|
+
writeStderr?: (text: string) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function warnIfMacOSNoFileLimitTooLow(deps?: WarnIfMacOSNoFileLimitTooLowDeps): void;
|
|
@@ -22,4 +22,11 @@ export interface NotifyCommandDeps {
|
|
|
22
22
|
}
|
|
23
23
|
export declare function parseNotifyArgs(args: string[]): NotifyCommandArgs | undefined;
|
|
24
24
|
export declare function runNotifyCommand(cmd: NotifyCommandArgs, deps?: NotifyCommandDeps): Promise<void>;
|
|
25
|
+
type TokenPromptInput = NodeJS.ReadStream & {
|
|
26
|
+
isRaw?: boolean;
|
|
27
|
+
setRawMode?: (mode: boolean) => unknown;
|
|
28
|
+
};
|
|
29
|
+
type TokenPromptOutput = Pick<NodeJS.WriteStream, "write">;
|
|
30
|
+
export declare function promptForToken(input?: TokenPromptInput, output?: TokenPromptOutput): Promise<string>;
|
|
25
31
|
export declare function printNotifyHelp(): void;
|
|
32
|
+
export {};
|
|
@@ -53,6 +53,28 @@ export declare function formatVerificationFailureForTest(result: InstalledVersio
|
|
|
53
53
|
*/
|
|
54
54
|
export declare function replaceBinaryForUpdate(options: BinaryReplacementOptions): Promise<InstalledVersionVerification>;
|
|
55
55
|
export declare function runPackageManagerUpdateForTest(options: PackageManagerUpdateOptions): Promise<InstalledVersionVerification>;
|
|
56
|
+
export declare function fsyncFileForTest(filePath: string): Promise<void>;
|
|
57
|
+
/** Injectable steps of the binary update flow (seams for testing ordering). */
|
|
58
|
+
export interface BinaryUpdateFlow {
|
|
59
|
+
download(url: string, tempPath: string): Promise<void>;
|
|
60
|
+
fsync(filePath: string): Promise<void>;
|
|
61
|
+
replace(options: BinaryReplacementOptions): Promise<InstalledVersionVerification>;
|
|
62
|
+
verifyInstalledVersion(expectedVersion: string): Promise<InstalledVersionVerification>;
|
|
63
|
+
/** Best-effort cleanup of the temp file when the flow aborts before replace. */
|
|
64
|
+
removeTemp?(filePath: string): Promise<void>;
|
|
65
|
+
/** Called once fsync has succeeded, right before replacement begins. */
|
|
66
|
+
beforeReplace?(): void;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Orchestrate download → fsync → replace → verify with a strict ordering
|
|
70
|
+
* contract: the downloaded temp binary MUST be flushed to stable storage
|
|
71
|
+
* before it is published (renamed into place) or exec'd for verification.
|
|
72
|
+
*
|
|
73
|
+
* If fsync fails the temp bytes are not durable, so we abort before
|
|
74
|
+
* replacement/verification and clean up the temp file rather than installing a
|
|
75
|
+
* possibly-truncated binary.
|
|
76
|
+
*/
|
|
77
|
+
export declare function runBinaryUpdateFlow(targetPath: string, url: string, expectedVersion: string, flow: BinaryUpdateFlow): Promise<InstalledVersionVerification>;
|
|
56
78
|
/**
|
|
57
79
|
* Run the update command.
|
|
58
80
|
*/
|
package/dist/types/cli.d.ts
CHANGED
|
@@ -3,7 +3,130 @@
|
|
|
3
3
|
* CLI entry point — registers all commands explicitly and delegates to the
|
|
4
4
|
* lightweight CLI runner from pi-utils.
|
|
5
5
|
*/
|
|
6
|
-
import { type CommandEntry } from "@sayknow-cli/utils/cli";
|
|
6
|
+
import { Command, type CommandEntry } from "@sayknow-cli/utils/cli";
|
|
7
7
|
export declare const commands: CommandEntry[];
|
|
8
|
+
export declare class RootHelpCommand extends Command {
|
|
9
|
+
static description: string;
|
|
10
|
+
static hidden: boolean;
|
|
11
|
+
static args: {
|
|
12
|
+
messages: import("@sayknow-cli/utils/cli").ArgDescriptor & {
|
|
13
|
+
description: string;
|
|
14
|
+
required: false;
|
|
15
|
+
multiple: true;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
static flags: {
|
|
19
|
+
model: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
smol: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
slow: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
26
|
+
description: string;
|
|
27
|
+
};
|
|
28
|
+
plan: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
mpreset: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
default: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
35
|
+
description: string;
|
|
36
|
+
};
|
|
37
|
+
provider: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
"api-key": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
"system-prompt": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
44
|
+
description: string;
|
|
45
|
+
};
|
|
46
|
+
"append-system-prompt": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
49
|
+
"allow-home": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
50
|
+
description: string;
|
|
51
|
+
};
|
|
52
|
+
mode: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
53
|
+
description: string;
|
|
54
|
+
options: string[];
|
|
55
|
+
};
|
|
56
|
+
print: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
57
|
+
char: string;
|
|
58
|
+
description: string;
|
|
59
|
+
};
|
|
60
|
+
continue: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
61
|
+
char: string;
|
|
62
|
+
description: string;
|
|
63
|
+
};
|
|
64
|
+
resume: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
65
|
+
char: string;
|
|
66
|
+
description: string;
|
|
67
|
+
};
|
|
68
|
+
"session-dir": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
69
|
+
description: string;
|
|
70
|
+
};
|
|
71
|
+
"no-session": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
72
|
+
description: string;
|
|
73
|
+
};
|
|
74
|
+
models: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
75
|
+
description: string;
|
|
76
|
+
};
|
|
77
|
+
"no-tools": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
78
|
+
description: string;
|
|
79
|
+
};
|
|
80
|
+
"no-lsp": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
81
|
+
description: string;
|
|
82
|
+
};
|
|
83
|
+
"no-pty": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
84
|
+
description: string;
|
|
85
|
+
};
|
|
86
|
+
tmux: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
87
|
+
description: string;
|
|
88
|
+
};
|
|
89
|
+
tools: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
90
|
+
description: string;
|
|
91
|
+
};
|
|
92
|
+
thinking: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
93
|
+
description: string;
|
|
94
|
+
options: string[];
|
|
95
|
+
};
|
|
96
|
+
hook: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
97
|
+
description: string;
|
|
98
|
+
multiple: true;
|
|
99
|
+
};
|
|
100
|
+
extension: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
101
|
+
char: string;
|
|
102
|
+
description: string;
|
|
103
|
+
multiple: true;
|
|
104
|
+
};
|
|
105
|
+
"no-extensions": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
106
|
+
description: string;
|
|
107
|
+
};
|
|
108
|
+
"no-skills": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
109
|
+
description: string;
|
|
110
|
+
};
|
|
111
|
+
skills: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
112
|
+
description: string;
|
|
113
|
+
};
|
|
114
|
+
"no-rules": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
115
|
+
description: string;
|
|
116
|
+
};
|
|
117
|
+
export: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
118
|
+
description: string;
|
|
119
|
+
};
|
|
120
|
+
"list-models": import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
121
|
+
description: string;
|
|
122
|
+
};
|
|
123
|
+
"no-title": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
124
|
+
description: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
static examples: string[];
|
|
128
|
+
static strict: boolean;
|
|
129
|
+
run(): Promise<void>;
|
|
130
|
+
}
|
|
8
131
|
/** Run the CLI with the given argv (no `process.argv` prefix). */
|
|
9
132
|
export declare function runCli(argv: string[]): Promise<void>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate shell completion specs for external completion engines.
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from "@sayknow-cli/utils/cli";
|
|
5
|
+
export default class Completion extends Command {
|
|
6
|
+
static description: string;
|
|
7
|
+
static args: {
|
|
8
|
+
target: import("@sayknow-cli/utils/cli").ArgDescriptor & {
|
|
9
|
+
description: string;
|
|
10
|
+
required: false;
|
|
11
|
+
options: readonly ["inshellisense", "fig"];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
static flags: {
|
|
15
|
+
install: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
dir: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
force: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
json: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
run(): Promise<void>;
|
|
29
|
+
}
|
|
@@ -25,6 +25,9 @@ export default class Config extends Command {
|
|
|
25
25
|
json: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
26
26
|
description: string;
|
|
27
27
|
};
|
|
28
|
+
"show-secrets": import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
28
31
|
};
|
|
29
32
|
run(): Promise<void>;
|
|
30
33
|
}
|
|
@@ -12,6 +12,9 @@ export default class DeepInterview extends Command {
|
|
|
12
12
|
deep: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
13
13
|
description: string;
|
|
14
14
|
};
|
|
15
|
+
trace: import("@sayknow-cli/utils/cli").FlagDescriptor<"boolean"> & {
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
15
18
|
threshold: import("@sayknow-cli/utils/cli").FlagDescriptor<"string"> & {
|
|
16
19
|
description: string;
|
|
17
20
|
};
|
|
@@ -13,16 +13,17 @@ export interface FileLockOwnerToken {
|
|
|
13
13
|
pid: number;
|
|
14
14
|
timestamp: number;
|
|
15
15
|
}
|
|
16
|
-
/** Outcome of a guarded
|
|
16
|
+
/** Outcome of a guarded lock-dir removal attempt (`removeFileLockDirForGc`). */
|
|
17
17
|
export type FileLockGcRemoval = "removed" | "owner_changed" | "missing";
|
|
18
18
|
/**
|
|
19
19
|
* @internal
|
|
20
|
-
* Fail-closed removal of a
|
|
21
|
-
* token as close to the unlink as possible
|
|
22
|
-
* STILL holds the exact `{pid, timestamp}`
|
|
20
|
+
* Fail-closed removal of a lock dir whose owner is expected to be dead or
|
|
21
|
+
* finished. Re-reads the on-disk owner token as close to the unlink as possible
|
|
22
|
+
* and only deletes the dir when it STILL holds the exact `{pid, timestamp}`
|
|
23
|
+
* identity the caller observed.
|
|
23
24
|
*
|
|
24
|
-
* Closes
|
|
25
|
-
*
|
|
25
|
+
* Closes stale-cleanup TOCTOU windows (#606): between a dead/stale re-read and
|
|
26
|
+
* the unlink, a live process can reclaim a stale lock at the same path
|
|
26
27
|
* (`acquireLock` rms the stale dir, then re-`mkdir`s and rewrites `info` with a
|
|
27
28
|
* fresh pid+timestamp). Deleting by path alone would reap that LIVE lock. Any
|
|
28
29
|
* mismatch (`owner_changed`) or absent/unreadable info (`missing` — e.g. a
|
|
@@ -244,8 +244,8 @@ export declare const KEYBINDINGS: {
|
|
|
244
244
|
readonly description: "Queue message for next turn";
|
|
245
245
|
};
|
|
246
246
|
readonly "app.message.dequeue": {
|
|
247
|
-
readonly defaultKeys: "alt+up";
|
|
248
|
-
readonly description: "
|
|
247
|
+
readonly defaultKeys: ["alt+up", "alt+down"];
|
|
248
|
+
readonly description: "Select queued message to edit";
|
|
249
249
|
};
|
|
250
250
|
readonly "app.clipboard.pasteImage": {
|
|
251
251
|
readonly defaultKeys: "alt+v" | "ctrl+v";
|
|
@@ -46,7 +46,13 @@ export interface MaterializeModelProfileAssignmentOptions {
|
|
|
46
46
|
role: SkcModelAssignmentTargetId;
|
|
47
47
|
selector: string;
|
|
48
48
|
}
|
|
49
|
+
export interface MaterializeModelProfileAssignmentsOptions {
|
|
50
|
+
session: Pick<ModelProfileActivationSession, "model" | "thinkingLevel" | "setActiveModelProfile" | "getActiveModelProfile">;
|
|
51
|
+
settings: Pick<Settings, "clearOverride" | "get" | "override" | "set">;
|
|
52
|
+
assignments: ReadonlyMap<SkcModelAssignmentTargetId, string> | Partial<Record<SkcModelAssignmentTargetId, string>>;
|
|
53
|
+
}
|
|
49
54
|
export declare function materializeActiveModelProfileAssignment(options: MaterializeModelProfileAssignmentOptions): boolean;
|
|
55
|
+
export declare function materializeActiveModelProfileAssignments(options: MaterializeModelProfileAssignmentsOptions): boolean;
|
|
50
56
|
export declare function formatModelProfileCredentialError(profileName: string, providers: readonly string[]): string;
|
|
51
57
|
export declare function prepareModelProfileActivation(options: PrepareModelProfileActivationOptions): Promise<PreparedModelProfileActivation>;
|
|
52
58
|
export declare function applyPreparedModelProfileActivation(prepared: PreparedModelProfileActivation, options?: {
|
|
@@ -31,6 +31,7 @@ export interface ModelProfilePresentation {
|
|
|
31
31
|
providerGroup: string;
|
|
32
32
|
}
|
|
33
33
|
export declare function getModelProfilePresentation(profile: string | Pick<ModelProfileDefinition, "name" | "displayName">): ModelProfilePresentation;
|
|
34
|
+
export declare function formatModelProfileDisplayLabel(profile: Pick<ModelProfileDefinition, "name" | "displayName">): string;
|
|
34
35
|
export declare function groupModelProfilesForPresetLanding(profiles: ReadonlyMap<string, ModelProfileDefinition>): Map<string, ModelProfileDefinition[]>;
|
|
35
36
|
export declare function recommendModelProfileForProvider(providerId: string, profiles: ReadonlyMap<string, ModelProfileDefinition>): ModelProfileDefinition | undefined;
|
|
36
37
|
export declare function mergeModelProfiles(userProfiles?: ModelsConfig["profiles"]): Map<string, ModelProfileDefinition>;
|
|
@@ -130,6 +130,14 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
130
130
|
readonly type: "string";
|
|
131
131
|
readonly default: undefined;
|
|
132
132
|
};
|
|
133
|
+
readonly "notifications.telegram.rich.enabled": {
|
|
134
|
+
readonly type: "boolean";
|
|
135
|
+
readonly default: true;
|
|
136
|
+
};
|
|
137
|
+
readonly "notifications.telegram.richDraft.enabled": {
|
|
138
|
+
readonly type: "boolean";
|
|
139
|
+
readonly default: false;
|
|
140
|
+
};
|
|
133
141
|
readonly "notifications.discord.botToken": {
|
|
134
142
|
readonly type: "string";
|
|
135
143
|
readonly default: undefined;
|
|
@@ -563,6 +571,66 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
563
571
|
}];
|
|
564
572
|
};
|
|
565
573
|
};
|
|
574
|
+
readonly "tools.readArtifactSpillThreshold": {
|
|
575
|
+
readonly type: "number";
|
|
576
|
+
readonly default: 0;
|
|
577
|
+
readonly ui: {
|
|
578
|
+
readonly tab: "tools";
|
|
579
|
+
readonly label: "Experimental read-tool artifact spill threshold (KB)";
|
|
580
|
+
readonly description: "Advanced opt-in only: combined-size cap for `read` output across all requested ranges. Above this the full output is saved as an artifact and a bounded head+tail snippet is kept inline. Live layofflabs/gpt-5.5 medium evidence on 2026-07-07 found no token savings and a lower cache-hit rate at 50 KB, so normal coding sessions should leave this Off unless intentionally measuring large-read behavior.";
|
|
581
|
+
readonly options: readonly [{
|
|
582
|
+
readonly value: "0";
|
|
583
|
+
readonly label: "Off";
|
|
584
|
+
readonly description: "Default; no read-specific spill (backstop only)";
|
|
585
|
+
}, {
|
|
586
|
+
readonly value: "50";
|
|
587
|
+
readonly label: "50 KB";
|
|
588
|
+
readonly description: "~12.5K tokens";
|
|
589
|
+
}, {
|
|
590
|
+
readonly value: "100";
|
|
591
|
+
readonly label: "100 KB";
|
|
592
|
+
readonly description: "~25K tokens";
|
|
593
|
+
}, {
|
|
594
|
+
readonly value: "256";
|
|
595
|
+
readonly label: "256 KB";
|
|
596
|
+
readonly description: "~64K tokens";
|
|
597
|
+
}, {
|
|
598
|
+
readonly value: "512";
|
|
599
|
+
readonly label: "512 KB";
|
|
600
|
+
readonly description: "~128K tokens";
|
|
601
|
+
}, {
|
|
602
|
+
readonly value: "1000";
|
|
603
|
+
readonly label: "1 MB";
|
|
604
|
+
readonly description: "~250K tokens";
|
|
605
|
+
}];
|
|
606
|
+
};
|
|
607
|
+
};
|
|
608
|
+
readonly "tools.fileMentionInlineBytes": {
|
|
609
|
+
readonly type: "number";
|
|
610
|
+
readonly default: 20;
|
|
611
|
+
readonly ui: {
|
|
612
|
+
readonly tab: "tools";
|
|
613
|
+
readonly label: "File-mention inline cap (KB)";
|
|
614
|
+
readonly description: "Inline byte cap for auto-read `@path` file mentions, deliberately below the read-tool cap so an incidental mention injects a smaller snippet than an explicit read. The full file is still available via the read tool.";
|
|
615
|
+
readonly options: readonly [{
|
|
616
|
+
readonly value: "5";
|
|
617
|
+
readonly label: "5 KB";
|
|
618
|
+
readonly description: "~1.25K tokens";
|
|
619
|
+
}, {
|
|
620
|
+
readonly value: "10";
|
|
621
|
+
readonly label: "10 KB";
|
|
622
|
+
readonly description: "~2.5K tokens";
|
|
623
|
+
}, {
|
|
624
|
+
readonly value: "20";
|
|
625
|
+
readonly label: "20 KB";
|
|
626
|
+
readonly description: "Default; ~5K tokens";
|
|
627
|
+
}, {
|
|
628
|
+
readonly value: "50";
|
|
629
|
+
readonly label: "50 KB";
|
|
630
|
+
readonly description: "~12.5K tokens (matches read cap)";
|
|
631
|
+
}];
|
|
632
|
+
};
|
|
633
|
+
};
|
|
566
634
|
readonly "tools.artifactTailBytes": {
|
|
567
635
|
readonly type: "number";
|
|
568
636
|
readonly default: 20;
|
|
@@ -724,6 +792,40 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
724
792
|
}];
|
|
725
793
|
};
|
|
726
794
|
};
|
|
795
|
+
readonly "tools.maxInlineResultBytes": {
|
|
796
|
+
readonly type: "number";
|
|
797
|
+
readonly default: 0;
|
|
798
|
+
readonly ui: {
|
|
799
|
+
readonly tab: "tools";
|
|
800
|
+
readonly label: "Max inline tool-result size (KB)";
|
|
801
|
+
readonly description: "Absolute backstop cap on inline tool-result text, enforced after artifact spill for every tool (including read and tools that set their own partial artifact meta). Output above this size is force-saved as an artifact and truncated to head+tail. 0 disables (default; opt-in pending measurement).";
|
|
802
|
+
readonly options: readonly [{
|
|
803
|
+
readonly value: "0";
|
|
804
|
+
readonly label: "Off";
|
|
805
|
+
readonly description: "Disabled; no absolute inline cap";
|
|
806
|
+
}, {
|
|
807
|
+
readonly value: "20";
|
|
808
|
+
readonly label: "20 KB";
|
|
809
|
+
readonly description: "~5K tokens";
|
|
810
|
+
}, {
|
|
811
|
+
readonly value: "30";
|
|
812
|
+
readonly label: "30 KB";
|
|
813
|
+
readonly description: "~7.5K tokens";
|
|
814
|
+
}, {
|
|
815
|
+
readonly value: "50";
|
|
816
|
+
readonly label: "50 KB";
|
|
817
|
+
readonly description: "~12.5K tokens";
|
|
818
|
+
}, {
|
|
819
|
+
readonly value: "75";
|
|
820
|
+
readonly label: "75 KB";
|
|
821
|
+
readonly description: "~19K tokens";
|
|
822
|
+
}, {
|
|
823
|
+
readonly value: "100";
|
|
824
|
+
readonly label: "100 KB";
|
|
825
|
+
readonly description: "~25K tokens";
|
|
826
|
+
}];
|
|
827
|
+
};
|
|
828
|
+
};
|
|
727
829
|
readonly "statusLine.showHookStatus": {
|
|
728
830
|
readonly type: "boolean";
|
|
729
831
|
readonly default: false;
|
|
@@ -1689,6 +1791,14 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
1689
1791
|
readonly type: "string";
|
|
1690
1792
|
readonly default: undefined;
|
|
1691
1793
|
};
|
|
1794
|
+
readonly "compaction.maintenancePruningEnabled": {
|
|
1795
|
+
readonly type: "boolean";
|
|
1796
|
+
readonly default: false;
|
|
1797
|
+
};
|
|
1798
|
+
readonly "compaction.maintenancePruningMinSavingsTokens": {
|
|
1799
|
+
readonly type: "number";
|
|
1800
|
+
readonly default: 8000;
|
|
1801
|
+
};
|
|
1692
1802
|
readonly "compaction.idleEnabled": {
|
|
1693
1803
|
readonly type: "boolean";
|
|
1694
1804
|
readonly default: false;
|
|
@@ -2044,7 +2154,7 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2044
2154
|
readonly ui: {
|
|
2045
2155
|
readonly tab: "context";
|
|
2046
2156
|
readonly label: "TTSR Context Mode";
|
|
2047
|
-
readonly description: "What to do with partial output when TTSR triggers";
|
|
2157
|
+
readonly description: "What to do with partial output when TTSR triggers. 'discard' (recommended) drops the aborted partial turn so it never accumulates in context. 'keep' retains every aborted partial turn, which grows the token footprint each time a rule fires \u2014 prefer 'discard' unless you specifically need the partial output.";
|
|
2048
2158
|
};
|
|
2049
2159
|
};
|
|
2050
2160
|
readonly "ttsr.interruptMode": {
|
|
@@ -3890,6 +4000,8 @@ export interface CompactionSettings {
|
|
|
3890
4000
|
autoContinue: boolean;
|
|
3891
4001
|
remoteEnabled: boolean;
|
|
3892
4002
|
remoteEndpoint: string | undefined;
|
|
4003
|
+
maintenancePruningEnabled: boolean;
|
|
4004
|
+
maintenancePruningMinSavingsTokens: number;
|
|
3893
4005
|
idleEnabled: boolean;
|
|
3894
4006
|
idleThresholdTokens: number;
|
|
3895
4007
|
idleTimeoutSeconds: number;
|
|
@@ -3998,6 +4110,12 @@ export interface NotificationsSettings {
|
|
|
3998
4110
|
telegram: {
|
|
3999
4111
|
botToken: string | undefined;
|
|
4000
4112
|
chatId: string | undefined;
|
|
4113
|
+
rich: {
|
|
4114
|
+
enabled: boolean;
|
|
4115
|
+
};
|
|
4116
|
+
richDraft: {
|
|
4117
|
+
enabled: boolean;
|
|
4118
|
+
};
|
|
4001
4119
|
};
|
|
4002
4120
|
discord: {
|
|
4003
4121
|
botToken: string | undefined;
|
|
@@ -108,6 +108,14 @@ export declare class Settings {
|
|
|
108
108
|
* Set a model role (helper for modelRoles record).
|
|
109
109
|
*/
|
|
110
110
|
setModelRole(role: ModelRole | string, modelId: string): void;
|
|
111
|
+
/**
|
|
112
|
+
* Set an agent model override while keeping any live runtime override aligned.
|
|
113
|
+
*
|
|
114
|
+
* Runtime model profiles override `task.agentModelOverrides` for the current
|
|
115
|
+
* session. A user-selected role assignment must win immediately in that same
|
|
116
|
+
* session, but only the explicit agent change should be persisted.
|
|
117
|
+
*/
|
|
118
|
+
setAgentModelOverride(agentName: string, modelId: string): void;
|
|
111
119
|
/**
|
|
112
120
|
* Get a model role (helper for modelRoles record).
|
|
113
121
|
*/
|