@gajae-code/coding-agent 0.7.6 → 0.7.7
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 +6 -0
- 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 +78 -9
- package/dist/types/export/html/template.generated.d.ts +1 -1
- package/dist/types/gjc-runtime/state-renderer.d.ts +5 -0
- package/dist/types/gjc-runtime/ultragoal-guard.d.ts +37 -1
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +80 -0
- package/dist/types/tools/browser/tab-supervisor.d.ts +31 -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 +0 -1
- package/dist/types/tools/resource-gc.d.ts +54 -0
- package/dist/types/web/search/index.d.ts +1 -0
- package/dist/types/web/search/providers/utils.d.ts +11 -4
- package/package.json +7 -7
- package/src/cli/args.ts +0 -1
- package/src/cli/fast-help.ts +0 -1
- package/src/cli/web-search-cli.ts +5 -0
- 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 +80 -10
- package/src/export/html/template.generated.ts +1 -1
- package/src/export/html/template.js +0 -12
- package/src/gjc-runtime/state-renderer.ts +13 -0
- package/src/gjc-runtime/ultragoal-guard.ts +167 -0
- package/src/gjc-runtime/ultragoal-runtime.ts +221 -1
- package/src/goals/tools/goal-tool.ts +14 -1
- package/src/internal-urls/docs-index.generated.ts +3 -4
- package/src/modes/controllers/selector-controller.ts +6 -0
- 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/sdk.ts +5 -0
- package/src/session/agent-session.ts +44 -0
- package/src/tools/browser/tab-supervisor.ts +86 -2
- 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/index.ts +2 -8
- 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/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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.7.7] - 2026-06-28
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed steering regression where a prompt submitted while the agent was busy (`busyPromptMode: "steer"`) could stall in the steering queue — shown as a `Steer:` chip but never delivered — until the user pressed Esc to interrupt. A steer queued while no live agent loop was running (the busy/unwind window between a finished turn and the session going idle) now schedules a continuation so it is delivered promptly, mirroring the follow-up queue. A live loop still consumes the steer at its next tool/turn boundary, so steers are never double-delivered.
|
|
10
|
+
|
|
5
11
|
## [0.7.6] - 2026-06-28
|
|
6
12
|
|
|
7
13
|
### Fixed
|
|
@@ -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 GjcModelAssignmentTargetId = "default" | "
|
|
22
|
+
export type GjcModelAssignmentTargetId = "default" | "executor" | "architect" | "planner" | "critic";
|
|
23
23
|
export interface GjcModelAssignmentTargetInfo extends ModelRoleInfo {
|
|
24
24
|
id: GjcModelAssignmentTargetId;
|
|
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>;
|
|
@@ -2449,15 +2449,6 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2449
2449
|
readonly description: "Enable the recipe tool when a justfile / package.json / Cargo.toml / Makefile / Taskfile is present";
|
|
2450
2450
|
};
|
|
2451
2451
|
};
|
|
2452
|
-
readonly "inspect_image.enabled": {
|
|
2453
|
-
readonly type: "boolean";
|
|
2454
|
-
readonly default: false;
|
|
2455
|
-
readonly ui: {
|
|
2456
|
-
readonly tab: "tools";
|
|
2457
|
-
readonly label: "Inspect Image";
|
|
2458
|
-
readonly description: "Enable the inspect_image tool, delegating image understanding to a vision-capable model";
|
|
2459
|
-
};
|
|
2460
|
-
};
|
|
2461
2452
|
readonly "checkpoint.enabled": {
|
|
2462
2453
|
readonly type: "boolean";
|
|
2463
2454
|
readonly default: false;
|
|
@@ -2551,6 +2542,16 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2551
2542
|
readonly description: "Ordered fallback web search providers after the active model native provider";
|
|
2552
2543
|
};
|
|
2553
2544
|
};
|
|
2545
|
+
readonly "web_search.timeout": {
|
|
2546
|
+
readonly type: "number";
|
|
2547
|
+
readonly default: 300;
|
|
2548
|
+
readonly validate: (value: number) => boolean;
|
|
2549
|
+
readonly ui: {
|
|
2550
|
+
readonly tab: "tools";
|
|
2551
|
+
readonly label: "Web Search Timeout";
|
|
2552
|
+
readonly description: "Hard timeout in seconds for a single web search request (default 300)";
|
|
2553
|
+
};
|
|
2554
|
+
};
|
|
2554
2555
|
readonly "browser.enabled": {
|
|
2555
2556
|
readonly type: "boolean";
|
|
2556
2557
|
readonly default: true;
|
|
@@ -2578,6 +2579,45 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2578
2579
|
readonly description: "Directory to save screenshots. If unset, screenshots go to a temp file. Supports ~. Examples: ~/Downloads, ~/Desktop, /sdcard/Download (Android)";
|
|
2579
2580
|
};
|
|
2580
2581
|
};
|
|
2582
|
+
readonly "browser.gc.enabled": {
|
|
2583
|
+
readonly type: "boolean";
|
|
2584
|
+
readonly default: true;
|
|
2585
|
+
readonly ui: {
|
|
2586
|
+
readonly tab: "tools";
|
|
2587
|
+
readonly label: "Browser Tab GC";
|
|
2588
|
+
readonly description: "Automatically reclaim idle, unheld GJC-managed headless/spawned browser tabs.";
|
|
2589
|
+
};
|
|
2590
|
+
};
|
|
2591
|
+
readonly "browser.gc.idleMs": {
|
|
2592
|
+
readonly type: "number";
|
|
2593
|
+
readonly default: 300000;
|
|
2594
|
+
readonly validate: (value: number) => boolean;
|
|
2595
|
+
readonly ui: {
|
|
2596
|
+
readonly tab: "tools";
|
|
2597
|
+
readonly label: "Browser Tab GC Idle (ms)";
|
|
2598
|
+
readonly description: "Evict headless/spawned tabs idle longer than this many milliseconds.";
|
|
2599
|
+
};
|
|
2600
|
+
};
|
|
2601
|
+
readonly "browser.gc.rssLimitMb": {
|
|
2602
|
+
readonly type: "number";
|
|
2603
|
+
readonly default: 1536;
|
|
2604
|
+
readonly validate: (value: number) => boolean;
|
|
2605
|
+
readonly ui: {
|
|
2606
|
+
readonly tab: "tools";
|
|
2607
|
+
readonly label: "Browser Tab GC RSS Limit (MB)";
|
|
2608
|
+
readonly description: "Parent-process RSS (MB) above which idle tabs are opportunistically evicted LRU.";
|
|
2609
|
+
};
|
|
2610
|
+
};
|
|
2611
|
+
readonly "resourceGc.sweepIntervalMs": {
|
|
2612
|
+
readonly type: "number";
|
|
2613
|
+
readonly default: 30000;
|
|
2614
|
+
readonly validate: (value: number) => boolean;
|
|
2615
|
+
readonly ui: {
|
|
2616
|
+
readonly tab: "tools";
|
|
2617
|
+
readonly label: "Resource GC Sweep Interval (ms)";
|
|
2618
|
+
readonly description: "How often the resource GC sweeps browser tabs and stale screenshot directories.";
|
|
2619
|
+
};
|
|
2620
|
+
};
|
|
2581
2621
|
readonly "computer.enabled": {
|
|
2582
2622
|
readonly type: "boolean";
|
|
2583
2623
|
readonly default: false;
|
|
@@ -2632,6 +2672,35 @@ export declare const SETTINGS_SCHEMA: {
|
|
|
2632
2672
|
readonly description: "Persist audit records for enabled computer-use actions.";
|
|
2633
2673
|
};
|
|
2634
2674
|
};
|
|
2675
|
+
readonly "computer.screenshotGc.enabled": {
|
|
2676
|
+
readonly type: "boolean";
|
|
2677
|
+
readonly default: true;
|
|
2678
|
+
readonly ui: {
|
|
2679
|
+
readonly tab: "tools";
|
|
2680
|
+
readonly label: "Computer Screenshot GC";
|
|
2681
|
+
readonly description: "Delete stale computer-use screenshot fallback directories on disk.";
|
|
2682
|
+
};
|
|
2683
|
+
};
|
|
2684
|
+
readonly "computer.screenshotGc.staleMs": {
|
|
2685
|
+
readonly type: "number";
|
|
2686
|
+
readonly default: 43200000;
|
|
2687
|
+
readonly validate: (value: number) => boolean;
|
|
2688
|
+
readonly ui: {
|
|
2689
|
+
readonly tab: "tools";
|
|
2690
|
+
readonly label: "Computer Screenshot GC Stale Age (ms)";
|
|
2691
|
+
readonly description: "Remove screenshot fallback directories whose mtime is older than this many milliseconds.";
|
|
2692
|
+
};
|
|
2693
|
+
};
|
|
2694
|
+
readonly "computer.screenshotGc.scanIntervalMs": {
|
|
2695
|
+
readonly type: "number";
|
|
2696
|
+
readonly default: 1800000;
|
|
2697
|
+
readonly validate: (value: number) => boolean;
|
|
2698
|
+
readonly ui: {
|
|
2699
|
+
readonly tab: "tools";
|
|
2700
|
+
readonly label: "Computer Screenshot GC Scan Interval (ms)";
|
|
2701
|
+
readonly description: "Minimum interval between os.tmpdir scans for stale screenshot directories.";
|
|
2702
|
+
};
|
|
2703
|
+
};
|
|
2635
2704
|
readonly "tools.intentTracing": {
|
|
2636
2705
|
readonly type: "boolean";
|
|
2637
2706
|
readonly default: true;
|