@gajae-code/coding-agent 0.2.3 → 0.2.5
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/CHANGELOG.md +34 -8600
- package/README.md +1 -1
- package/dist/types/async/job-manager.d.ts +61 -0
- package/dist/types/cli/update-cli.d.ts +3 -0
- package/dist/types/config/settings-schema.d.ts +27 -3
- package/dist/types/config/settings.d.ts +1 -1
- package/dist/types/defaults/gjc-defaults.d.ts +19 -6
- package/dist/types/discovery/helpers.d.ts +1 -0
- package/dist/types/exec/bash-executor.d.ts +8 -1
- package/dist/types/gjc-runtime/restricted-role-agent-bash.d.ts +2 -0
- package/dist/types/modes/acp/acp-client-bridge.d.ts +1 -1
- package/dist/types/modes/components/settings-selector.d.ts +4 -0
- package/dist/types/modes/components/skill-hud/render.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +1 -0
- package/dist/types/modes/interactive-mode.d.ts +2 -0
- package/dist/types/modes/theme/defaults/index.d.ts +45 -9351
- package/dist/types/modes/theme/theme.d.ts +6 -5
- package/dist/types/modes/types.d.ts +2 -0
- package/dist/types/sdk.d.ts +2 -0
- package/dist/types/session/streaming-output.d.ts +11 -0
- package/dist/types/skill-state/active-state.d.ts +1 -0
- package/dist/types/task/types.d.ts +1 -0
- package/dist/types/tools/bash-allowed-prefixes.d.ts +5 -0
- package/dist/types/tools/bash.d.ts +24 -0
- package/dist/types/tools/cron.d.ts +110 -0
- package/dist/types/tools/index.d.ts +4 -0
- package/dist/types/tools/monitor.d.ts +54 -0
- package/dist/types/web/search/index.d.ts +1 -0
- package/dist/types/web/search/provider.d.ts +11 -4
- package/dist/types/web/search/providers/duckduckgo.d.ts +57 -0
- package/dist/types/web/search/types.d.ts +1 -1
- package/package.json +7 -7
- package/src/async/job-manager.ts +224 -0
- package/src/cli/agents-cli.ts +3 -0
- package/src/cli/update-cli.ts +67 -16
- package/src/config/settings-schema.ts +30 -2
- package/src/config/settings.ts +44 -7
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +48 -6
- package/src/defaults/gjc/skills/deep-interview/auto-answer-uncertain.md +37 -0
- package/src/defaults/gjc/skills/deep-interview/auto-research-greenfield.md +42 -0
- package/src/defaults/gjc/skills/ralplan/SKILL.md +8 -4
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +9 -6
- package/src/defaults/gjc-defaults.ts +68 -16
- package/src/discovery/helpers.ts +5 -0
- package/src/eval/js/shared/rewrite-imports.ts +1 -2
- package/src/exec/bash-executor.ts +20 -9
- package/src/gjc-runtime/deep-interview-runtime.ts +44 -0
- package/src/gjc-runtime/ralplan-runtime.ts +2 -0
- package/src/gjc-runtime/restricted-role-agent-bash.ts +5 -0
- package/src/gjc-runtime/state-runtime.ts +3 -2
- package/src/goals/tools/goal-tool.ts +5 -1
- package/src/hooks/skill-state.ts +1 -1
- package/src/internal-urls/docs-index.generated.ts +8 -4
- package/src/lsp/render.ts +1 -1
- package/src/memories/index.ts +5 -4
- package/src/modes/acp/acp-agent.ts +1 -1
- package/src/modes/acp/acp-client-bridge.ts +1 -1
- package/src/modes/components/agent-dashboard.ts +1 -1
- package/src/modes/components/diff.ts +2 -2
- package/src/modes/components/settings-selector.ts +25 -14
- package/src/modes/components/skill-hud/render.ts +7 -2
- package/src/modes/controllers/command-controller.ts +1 -1
- package/src/modes/controllers/input-controller.ts +10 -2
- package/src/modes/controllers/selector-controller.ts +67 -0
- package/src/modes/interactive-mode.ts +34 -3
- package/src/modes/theme/defaults/blue-crab.json +126 -0
- package/src/modes/theme/defaults/index.ts +2 -196
- package/src/modes/theme/theme.ts +75 -36
- package/src/modes/types.ts +2 -0
- package/src/prompts/agents/architect.md +5 -1
- package/src/prompts/agents/critic.md +5 -1
- package/src/prompts/agents/frontmatter.md +1 -0
- package/src/prompts/agents/planner.md +5 -1
- package/src/prompts/memories/unavailable.md +9 -0
- package/src/prompts/tools/bash.md +9 -0
- package/src/prompts/tools/cron.md +25 -0
- package/src/prompts/tools/monitor.md +30 -0
- package/src/runtime-mcp/oauth-flow.ts +4 -2
- package/src/sdk.ts +7 -0
- package/src/session/agent-session.ts +16 -5
- package/src/session/streaming-output.ts +21 -0
- package/src/skill-state/active-state.ts +163 -12
- package/src/slash-commands/builtin-registry.ts +11 -1
- package/src/task/agents.ts +1 -0
- package/src/task/executor.ts +1 -0
- package/src/task/types.ts +1 -0
- package/src/tools/bash-allowed-prefixes.ts +169 -0
- package/src/tools/bash.ts +190 -29
- package/src/tools/browser/tab-worker.ts +1 -1
- package/src/tools/cron.ts +665 -0
- package/src/tools/index.ts +20 -2
- package/src/tools/monitor.ts +136 -0
- package/src/vim/engine.ts +3 -3
- package/src/web/search/index.ts +31 -18
- package/src/web/search/provider.ts +57 -12
- package/src/web/search/providers/duckduckgo.ts +279 -0
- package/src/web/search/types.ts +2 -0
- package/src/modes/theme/dark.json +0 -95
- package/src/modes/theme/defaults/alabaster.json +0 -93
- package/src/modes/theme/defaults/amethyst.json +0 -96
- package/src/modes/theme/defaults/anthracite.json +0 -93
- package/src/modes/theme/defaults/basalt.json +0 -91
- package/src/modes/theme/defaults/birch.json +0 -95
- package/src/modes/theme/defaults/dark-abyss.json +0 -91
- package/src/modes/theme/defaults/dark-arctic.json +0 -104
- package/src/modes/theme/defaults/dark-aurora.json +0 -95
- package/src/modes/theme/defaults/dark-catppuccin.json +0 -107
- package/src/modes/theme/defaults/dark-cavern.json +0 -91
- package/src/modes/theme/defaults/dark-copper.json +0 -95
- package/src/modes/theme/defaults/dark-cosmos.json +0 -90
- package/src/modes/theme/defaults/dark-cyberpunk.json +0 -102
- package/src/modes/theme/defaults/dark-dracula.json +0 -98
- package/src/modes/theme/defaults/dark-eclipse.json +0 -91
- package/src/modes/theme/defaults/dark-ember.json +0 -95
- package/src/modes/theme/defaults/dark-equinox.json +0 -90
- package/src/modes/theme/defaults/dark-forest.json +0 -96
- package/src/modes/theme/defaults/dark-github.json +0 -105
- package/src/modes/theme/defaults/dark-gruvbox.json +0 -112
- package/src/modes/theme/defaults/dark-lavender.json +0 -95
- package/src/modes/theme/defaults/dark-lunar.json +0 -89
- package/src/modes/theme/defaults/dark-midnight.json +0 -95
- package/src/modes/theme/defaults/dark-monochrome.json +0 -94
- package/src/modes/theme/defaults/dark-monokai.json +0 -98
- package/src/modes/theme/defaults/dark-nebula.json +0 -90
- package/src/modes/theme/defaults/dark-nord.json +0 -97
- package/src/modes/theme/defaults/dark-ocean.json +0 -101
- package/src/modes/theme/defaults/dark-one.json +0 -100
- package/src/modes/theme/defaults/dark-poimandres.json +0 -141
- package/src/modes/theme/defaults/dark-rainforest.json +0 -91
- package/src/modes/theme/defaults/dark-reef.json +0 -91
- package/src/modes/theme/defaults/dark-retro.json +0 -92
- package/src/modes/theme/defaults/dark-rose-pine.json +0 -96
- package/src/modes/theme/defaults/dark-sakura.json +0 -95
- package/src/modes/theme/defaults/dark-slate.json +0 -95
- package/src/modes/theme/defaults/dark-solarized.json +0 -97
- package/src/modes/theme/defaults/dark-solstice.json +0 -90
- package/src/modes/theme/defaults/dark-starfall.json +0 -91
- package/src/modes/theme/defaults/dark-sunset.json +0 -99
- package/src/modes/theme/defaults/dark-swamp.json +0 -90
- package/src/modes/theme/defaults/dark-synthwave.json +0 -103
- package/src/modes/theme/defaults/dark-taiga.json +0 -91
- package/src/modes/theme/defaults/dark-terminal.json +0 -95
- package/src/modes/theme/defaults/dark-tokyo-night.json +0 -101
- package/src/modes/theme/defaults/dark-tundra.json +0 -91
- package/src/modes/theme/defaults/dark-twilight.json +0 -91
- package/src/modes/theme/defaults/dark-volcanic.json +0 -91
- package/src/modes/theme/defaults/graphite.json +0 -92
- package/src/modes/theme/defaults/light-arctic.json +0 -107
- package/src/modes/theme/defaults/light-aurora-day.json +0 -91
- package/src/modes/theme/defaults/light-canyon.json +0 -91
- package/src/modes/theme/defaults/light-catppuccin.json +0 -106
- package/src/modes/theme/defaults/light-cirrus.json +0 -90
- package/src/modes/theme/defaults/light-coral.json +0 -95
- package/src/modes/theme/defaults/light-cyberpunk.json +0 -96
- package/src/modes/theme/defaults/light-dawn.json +0 -90
- package/src/modes/theme/defaults/light-dunes.json +0 -91
- package/src/modes/theme/defaults/light-eucalyptus.json +0 -95
- package/src/modes/theme/defaults/light-forest.json +0 -100
- package/src/modes/theme/defaults/light-frost.json +0 -95
- package/src/modes/theme/defaults/light-github.json +0 -115
- package/src/modes/theme/defaults/light-glacier.json +0 -91
- package/src/modes/theme/defaults/light-gruvbox.json +0 -108
- package/src/modes/theme/defaults/light-haze.json +0 -90
- package/src/modes/theme/defaults/light-honeycomb.json +0 -95
- package/src/modes/theme/defaults/light-lagoon.json +0 -91
- package/src/modes/theme/defaults/light-lavender.json +0 -95
- package/src/modes/theme/defaults/light-meadow.json +0 -91
- package/src/modes/theme/defaults/light-mint.json +0 -95
- package/src/modes/theme/defaults/light-monochrome.json +0 -101
- package/src/modes/theme/defaults/light-ocean.json +0 -99
- package/src/modes/theme/defaults/light-one.json +0 -99
- package/src/modes/theme/defaults/light-opal.json +0 -91
- package/src/modes/theme/defaults/light-orchard.json +0 -91
- package/src/modes/theme/defaults/light-paper.json +0 -95
- package/src/modes/theme/defaults/light-poimandres.json +0 -141
- package/src/modes/theme/defaults/light-prism.json +0 -90
- package/src/modes/theme/defaults/light-retro.json +0 -98
- package/src/modes/theme/defaults/light-sand.json +0 -95
- package/src/modes/theme/defaults/light-savanna.json +0 -91
- package/src/modes/theme/defaults/light-solarized.json +0 -102
- package/src/modes/theme/defaults/light-soleil.json +0 -90
- package/src/modes/theme/defaults/light-sunset.json +0 -99
- package/src/modes/theme/defaults/light-synthwave.json +0 -98
- package/src/modes/theme/defaults/light-tokyo-night.json +0 -111
- package/src/modes/theme/defaults/light-wetland.json +0 -91
- package/src/modes/theme/defaults/light-zenith.json +0 -89
- package/src/modes/theme/defaults/limestone.json +0 -94
- package/src/modes/theme/defaults/mahogany.json +0 -97
- package/src/modes/theme/defaults/marble.json +0 -93
- package/src/modes/theme/defaults/obsidian.json +0 -91
- package/src/modes/theme/defaults/onyx.json +0 -91
- package/src/modes/theme/defaults/pearl.json +0 -93
- package/src/modes/theme/defaults/porcelain.json +0 -91
- package/src/modes/theme/defaults/quartz.json +0 -96
- package/src/modes/theme/defaults/sandstone.json +0 -95
- package/src/modes/theme/defaults/titanium.json +0 -90
- package/src/modes/theme/light.json +0 -93
package/README.md
CHANGED
|
@@ -34,4 +34,4 @@ Switching backends mid-session is honoured on the next system-prompt rebuild and
|
|
|
34
34
|
|
|
35
35
|
## Red-claw TUI theme
|
|
36
36
|
|
|
37
|
-
The interactive TUI defaults to the bundled `red-claw` crustacean theme for dark terminals, with matching welcome/icon assets. Explicit user theme settings still win; set `theme.dark: red-claw` in `~/.gjc/agent/config.yml` to pin
|
|
37
|
+
The interactive TUI defaults to the bundled `red-claw` crustacean theme for dark terminals and the bundled `blue-crab` theme for light-appearance terminals, with matching welcome/icon assets. Explicit user theme settings still win; set `theme.dark: red-claw` and `theme.light: blue-crab` in `~/.gjc/agent/config.yml` to pin them.
|
|
@@ -54,6 +54,27 @@ export interface AsyncJobRegisterOptions {
|
|
|
54
54
|
export interface AsyncJobFilter {
|
|
55
55
|
ownerId?: string;
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* A slice of process-stream output for a background job, as recorded by
|
|
59
|
+
* `appendOutput` / read by `readOutputSince`.
|
|
60
|
+
*
|
|
61
|
+
* The cursor model is monotonic UTF-8 byte offsets. `nextOffset` is the offset
|
|
62
|
+
* to pass to the next read to receive only fresh bytes; `startOffset` is the
|
|
63
|
+
* first byte the manager still retains for this job. When the requested offset
|
|
64
|
+
* is older than `startOffset`, the manager returns the retained tail and sets
|
|
65
|
+
* `truncated: true`.
|
|
66
|
+
*/
|
|
67
|
+
export interface AsyncJobOutputSlice {
|
|
68
|
+
jobId: string;
|
|
69
|
+
status: AsyncJob["status"];
|
|
70
|
+
text: string;
|
|
71
|
+
startOffset: number;
|
|
72
|
+
nextOffset: number;
|
|
73
|
+
truncated: boolean;
|
|
74
|
+
}
|
|
75
|
+
/** Default retention cap for per-job captured output. ~512 KiB matches the
|
|
76
|
+
* bash tail-buffer order of magnitude without dominating session memory. */
|
|
77
|
+
export declare const DEFAULT_JOB_OUTPUT_RETENTION_BYTES: number;
|
|
57
78
|
export declare class AsyncJobManager {
|
|
58
79
|
#private;
|
|
59
80
|
/** Process-global instance shared by internal URL protocol handlers and tools. */
|
|
@@ -78,6 +99,46 @@ export declare class AsyncJobManager {
|
|
|
78
99
|
getRunningJobs(filter?: AsyncJobFilter): AsyncJob[];
|
|
79
100
|
getRecentJobs(limit?: number, filter?: AsyncJobFilter): AsyncJob[];
|
|
80
101
|
getAllJobs(filter?: AsyncJobFilter): AsyncJob[];
|
|
102
|
+
/**
|
|
103
|
+
* Append a sanitized process-stream chunk for a background job. Called from
|
|
104
|
+
* the unthrottled bash-executor capture hook (`onRawChunk`) so monitor sees
|
|
105
|
+
* every chunk even when preview/progress callbacks are throttled.
|
|
106
|
+
*
|
|
107
|
+
* Offsets are in UTF-8 bytes. Storing chunk metadata avoids unsafe byte
|
|
108
|
+
* slicing across multibyte characters at read time. The retention window is
|
|
109
|
+
* a per-job rolling cap (`DEFAULT_JOB_OUTPUT_RETENTION_BYTES`); when it
|
|
110
|
+
* overflows, oldest whole chunks are evicted and `startOffset` advances —
|
|
111
|
+
* subsequent reads from a stale offset get `truncated: true`.
|
|
112
|
+
*/
|
|
113
|
+
appendOutput(jobId: string, chunk: string): void;
|
|
114
|
+
/**
|
|
115
|
+
* Read fresh process-stream output for a job since `offset` (in UTF-8
|
|
116
|
+
* bytes). Returns `undefined` when the job does not exist or when an
|
|
117
|
+
* `ownerId` filter is set and the job belongs to a different owner — this
|
|
118
|
+
* mirrors the manager-level "not found" pattern used by `cancel`.
|
|
119
|
+
*
|
|
120
|
+
* - `offset < startOffset` returns the retained tail with `truncated: true`.
|
|
121
|
+
* - `offset > nextOffset` clamps to `nextOffset` and returns an empty text
|
|
122
|
+
* slice with `truncated: false`.
|
|
123
|
+
* - Assembled text slices the leading retained chunk at a UTF-8 codepoint
|
|
124
|
+
* boundary when needed, so multibyte characters cannot be split.
|
|
125
|
+
*/
|
|
126
|
+
readOutputSince(jobId: string, offset: number, filter?: AsyncJobFilter): AsyncJobOutputSlice | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* Register an owner-scoped cleanup callback. Returns an unregister function.
|
|
129
|
+
*
|
|
130
|
+
* Used by Cron* tools to clear session-scoped timers when the owning agent
|
|
131
|
+
* is torn down. Invoked by `runOwnerCleanups({ ownerId })` before
|
|
132
|
+
* `cancelAll({ ownerId })` so timers cannot register new jobs during
|
|
133
|
+
* teardown.
|
|
134
|
+
*/
|
|
135
|
+
registerOwnerCleanup(ownerId: string, cleanup: () => void): () => void;
|
|
136
|
+
/**
|
|
137
|
+
* Run and clear every registered cleanup for the given filter. Idempotent
|
|
138
|
+
* and error-isolated: a throwing cleanup does not prevent siblings from
|
|
139
|
+
* running and never escalates to the caller.
|
|
140
|
+
*/
|
|
141
|
+
runOwnerCleanups(filter?: AsyncJobFilter): void;
|
|
81
142
|
getDeliveryState(filter?: AsyncJobFilter): AsyncJobDeliveryState;
|
|
82
143
|
hasPendingDeliveries(filter?: AsyncJobFilter): boolean;
|
|
83
144
|
watchJobs(jobIds: string[]): number;
|
|
@@ -21,6 +21,9 @@ export declare function parseUpdateArgs(args: string[]): {
|
|
|
21
21
|
check: boolean;
|
|
22
22
|
} | undefined;
|
|
23
23
|
export declare function resolveUpdateMethodForTest(ompPath: string, bunBinDir: string | undefined): "bun" | "binary";
|
|
24
|
+
export declare function formatBinaryDownloadFailureMessageForTest(binaryName: string, url: string, status: string | number, platform?: NodeJS.Platform): string;
|
|
25
|
+
export declare function buildReleaseBinaryUrlForTest(version: string, platform?: NodeJS.Platform, arch?: string): string;
|
|
26
|
+
export declare function formatManualUpdateInstructionsForTest(platform?: NodeJS.Platform): string;
|
|
24
27
|
/**
|
|
25
28
|
* Atomically replace the installed binary and roll back if version verification fails.
|
|
26
29
|
*/
|
|
@@ -212,7 +212,7 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
212
212
|
};
|
|
213
213
|
readonly "theme.light": {
|
|
214
214
|
readonly type: "string";
|
|
215
|
-
readonly default: "
|
|
215
|
+
readonly default: "blue-crab";
|
|
216
216
|
readonly ui: {
|
|
217
217
|
readonly tab: "appearance";
|
|
218
218
|
readonly label: "Light Theme";
|
|
@@ -982,6 +982,24 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
982
982
|
readonly description: "Maximum wait between retries, in ms. When the provider asks us to wait longer than this and no credential or model fallback succeeds, the request fails fast instead of sleeping (e.g. 3-hour Anthropic rate-limit windows).";
|
|
983
983
|
};
|
|
984
984
|
};
|
|
985
|
+
readonly "retry.requestMaxRetries": {
|
|
986
|
+
readonly type: "number";
|
|
987
|
+
readonly default: 5;
|
|
988
|
+
readonly ui: {
|
|
989
|
+
readonly tab: "model";
|
|
990
|
+
readonly label: "Provider Request Retries";
|
|
991
|
+
readonly description: "Maximum provider request retries before a stream is established. Counts retries, not the first attempt. Set to 0 to disable provider request retries.";
|
|
992
|
+
};
|
|
993
|
+
};
|
|
994
|
+
readonly "retry.streamMaxRetries": {
|
|
995
|
+
readonly type: "number";
|
|
996
|
+
readonly default: 5;
|
|
997
|
+
readonly ui: {
|
|
998
|
+
readonly tab: "model";
|
|
999
|
+
readonly label: "Provider Stream Retries";
|
|
1000
|
+
readonly description: "Maximum provider stream replay retries for replay-safe transient stream failures. Counts retries, not the first attempt. Set to 0 to disable provider stream retries.";
|
|
1001
|
+
};
|
|
1002
|
+
};
|
|
985
1003
|
readonly "retry.fallbackChains": {
|
|
986
1004
|
readonly type: "record";
|
|
987
1005
|
readonly default: Record<string, string[]>;
|
|
@@ -2899,7 +2917,7 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2899
2917
|
};
|
|
2900
2918
|
readonly "providers.webSearch": {
|
|
2901
2919
|
readonly type: "enum";
|
|
2902
|
-
readonly values: readonly ["auto", "exa", "brave", "jina", "kimi", "zai", "perplexity", "anthropic", "gemini", "codex", "tavily", "kagi", "synthetic", "parallel", "searxng"];
|
|
2920
|
+
readonly values: readonly ["auto", "duckduckgo", "exa", "brave", "jina", "kimi", "zai", "perplexity", "anthropic", "gemini", "codex", "tavily", "kagi", "synthetic", "parallel", "searxng"];
|
|
2903
2921
|
readonly default: "auto";
|
|
2904
2922
|
readonly ui: {
|
|
2905
2923
|
readonly tab: "providers";
|
|
@@ -2908,7 +2926,11 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2908
2926
|
readonly options: readonly [{
|
|
2909
2927
|
readonly value: "auto";
|
|
2910
2928
|
readonly label: "Auto";
|
|
2911
|
-
readonly description: "
|
|
2929
|
+
readonly description: "Active model's native search if its creds exist, else keyless DuckDuckGo";
|
|
2930
|
+
}, {
|
|
2931
|
+
readonly value: "duckduckgo";
|
|
2932
|
+
readonly label: "DuckDuckGo";
|
|
2933
|
+
readonly description: "Keyless default \u2014 no API key or OAuth required";
|
|
2912
2934
|
}, {
|
|
2913
2935
|
readonly value: "exa";
|
|
2914
2936
|
readonly label: "Exa";
|
|
@@ -3240,6 +3262,8 @@ export interface RetrySettings {
|
|
|
3240
3262
|
maxRetries: number;
|
|
3241
3263
|
baseDelayMs: number;
|
|
3242
3264
|
maxDelayMs: number;
|
|
3265
|
+
requestMaxRetries: number;
|
|
3266
|
+
streamMaxRetries: number;
|
|
3243
3267
|
}
|
|
3244
3268
|
export interface MemoriesSettings {
|
|
3245
3269
|
enabled: boolean;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* import { settings } from "./settings";
|
|
6
6
|
*
|
|
7
7
|
* const enabled = settings.get("compaction.enabled"); // sync read
|
|
8
|
-
* settings.set("theme.dark", "
|
|
8
|
+
* settings.set("theme.dark", "red-claw"); // sync write, saves in background
|
|
9
9
|
*
|
|
10
10
|
* For tests:
|
|
11
11
|
* const isolated = Settings.isolated({ "compaction.enabled": false });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const DEFAULT_GJC_DEFINITION_NAMES: readonly ["deep-interview", "ralplan", "team", "ultragoal"];
|
|
2
2
|
export type DefaultGjcDefinitionName = (typeof DEFAULT_GJC_DEFINITION_NAMES)[number];
|
|
3
|
-
export type DefaultGjcDefinitionKind = "skill";
|
|
3
|
+
export type DefaultGjcDefinitionKind = "skill" | "skill-fragment";
|
|
4
4
|
export type EmbeddedDefaultGjcSkill = {
|
|
5
5
|
name: DefaultGjcDefinitionName;
|
|
6
6
|
description: string;
|
|
@@ -11,23 +11,35 @@ export type EmbeddedDefaultGjcSkill = {
|
|
|
11
11
|
content: string;
|
|
12
12
|
};
|
|
13
13
|
export type DefaultGjcInstallStatus = "different" | "matching" | "missing" | "skipped" | "written";
|
|
14
|
-
export interface
|
|
15
|
-
kind:
|
|
14
|
+
export interface DefaultGjcSkillDefinition {
|
|
15
|
+
kind: "skill";
|
|
16
16
|
name: DefaultGjcDefinitionName;
|
|
17
17
|
relativePath: string;
|
|
18
18
|
content: string;
|
|
19
19
|
}
|
|
20
|
+
export interface DefaultGjcSkillFragmentDefinition {
|
|
21
|
+
kind: "skill-fragment";
|
|
22
|
+
parentSkillName: DefaultGjcDefinitionName;
|
|
23
|
+
relativePath: string;
|
|
24
|
+
content: string;
|
|
25
|
+
}
|
|
26
|
+
export type DefaultGjcDefinition = DefaultGjcSkillDefinition | DefaultGjcSkillFragmentDefinition;
|
|
20
27
|
export interface InstallDefaultGjcDefinitionsOptions {
|
|
21
28
|
check?: boolean;
|
|
22
29
|
force?: boolean;
|
|
23
30
|
targetRoot?: string;
|
|
24
31
|
}
|
|
25
|
-
export
|
|
26
|
-
kind:
|
|
32
|
+
export type DefaultGjcDefinitionInstallFile = {
|
|
33
|
+
kind: "skill";
|
|
27
34
|
name: DefaultGjcDefinitionName;
|
|
28
35
|
path: string;
|
|
29
36
|
status: DefaultGjcInstallStatus;
|
|
30
|
-
}
|
|
37
|
+
} | {
|
|
38
|
+
kind: "skill-fragment";
|
|
39
|
+
parentSkillName: DefaultGjcDefinitionName;
|
|
40
|
+
path: string;
|
|
41
|
+
status: DefaultGjcInstallStatus;
|
|
42
|
+
};
|
|
31
43
|
export interface DefaultGjcDefinitionInstallResult {
|
|
32
44
|
targetRoot: string;
|
|
33
45
|
total: number;
|
|
@@ -40,5 +52,6 @@ export interface DefaultGjcDefinitionInstallResult {
|
|
|
40
52
|
}
|
|
41
53
|
export declare function getDefaultGjcDefinitions(): readonly DefaultGjcDefinition[];
|
|
42
54
|
export declare function getDefaultGjcAgentDefinitions(): readonly DefaultGjcDefinition[];
|
|
55
|
+
export declare function getEmbeddedDefaultGjcSkillFragments(parentSkillName: DefaultGjcDefinitionName): DefaultGjcSkillFragmentDefinition[];
|
|
43
56
|
export declare function getEmbeddedDefaultGjcSkills(): EmbeddedDefaultGjcSkill[];
|
|
44
57
|
export declare function installDefaultGjcDefinitions(options?: InstallDefaultGjcDefinitionsOptions): Promise<DefaultGjcDefinitionInstallResult>;
|
|
@@ -2,8 +2,15 @@ import { type MinimizerOptions } from "@gajae-code/natives";
|
|
|
2
2
|
import { type ShellMinimizerSettings } from "../config/settings";
|
|
3
3
|
export interface BashExecutorOptions {
|
|
4
4
|
cwd?: string;
|
|
5
|
-
timeout?: number;
|
|
5
|
+
timeout?: number | null;
|
|
6
6
|
onChunk?: (chunk: string) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Unthrottled per-chunk callback that fires for every sanitized stdout/stderr
|
|
9
|
+
* chunk *before* preview throttling. Background-job substrate uses this to
|
|
10
|
+
* record the complete process stream for the Monitor tool while keeping
|
|
11
|
+
* `onChunk` cheap for UI/progress rendering.
|
|
12
|
+
*/
|
|
13
|
+
onRawChunk?: (chunk: string) => void;
|
|
7
14
|
signal?: AbortSignal;
|
|
8
15
|
/** Session key suffix to isolate shell sessions per agent */
|
|
9
16
|
sessionKey?: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* ACP-side `ClientBridge` implementation. Wraps `AgentSideConnection` so the
|
|
3
|
-
* `read`/`write`/`bash`/`edit` tools (and the permission gate in
|
|
3
|
+
* `read`/`write`/`bash`/`monitor`/`edit` tools (and the permission gate in
|
|
4
4
|
* `AgentSession`) can route through the client when it advertises the
|
|
5
5
|
* relevant capabilities at `initialize` time.
|
|
6
6
|
*/
|
|
@@ -29,6 +29,10 @@ export interface StatusLinePreviewSettings {
|
|
|
29
29
|
export interface SettingsCallbacks {
|
|
30
30
|
/** Called when any setting value changes */
|
|
31
31
|
onChange: (path: SettingPath, newValue: unknown) => void;
|
|
32
|
+
/** Called for theme preview while browsing theme settings */
|
|
33
|
+
onThemePreview?: (theme: string) => void | Promise<void>;
|
|
34
|
+
/** Called to restore the rendered theme when theme settings preview is cancelled */
|
|
35
|
+
onThemePreviewCancel?: (theme: string) => void | Promise<void>;
|
|
32
36
|
/** Called for status line preview while configuring */
|
|
33
37
|
onStatusLinePreview?: (settings: StatusLinePreviewSettings) => void;
|
|
34
38
|
/** Get current rendered status line for inline preview */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SkillActiveEntry } from "../../../skill-state/active-state";
|
|
2
2
|
export declare function renderSkillHudBar(entries: readonly SkillActiveEntry[], width: number): string | null;
|
|
@@ -61,6 +61,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
61
61
|
isInitialized: boolean;
|
|
62
62
|
isBackgrounded: boolean;
|
|
63
63
|
isBashMode: boolean;
|
|
64
|
+
isBashNoContext: boolean;
|
|
64
65
|
toolOutputExpanded: boolean;
|
|
65
66
|
todoExpanded: boolean;
|
|
66
67
|
planModeEnabled: boolean;
|
|
@@ -200,6 +201,7 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
200
201
|
executeCompaction(customInstructionsOrOptions?: string | CompactOptions, isAuto?: boolean): Promise<CompactionOutcome>;
|
|
201
202
|
openInBrowser(urlOrPath: string): void;
|
|
202
203
|
showSettingsSelector(): void;
|
|
204
|
+
showThemeSelector(): void;
|
|
203
205
|
showHistorySearch(): void;
|
|
204
206
|
showExtensionsDashboard(): void;
|
|
205
207
|
showAgentsDashboard(): void;
|