@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.
Files changed (59) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/types/config/model-profiles.d.ts +2 -2
  3. package/dist/types/config/model-registry.d.ts +3 -3
  4. package/dist/types/config/models-config-schema.d.ts +0 -5
  5. package/dist/types/config/settings-schema.d.ts +78 -9
  6. package/dist/types/export/html/template.generated.d.ts +1 -1
  7. package/dist/types/gjc-runtime/state-renderer.d.ts +5 -0
  8. package/dist/types/gjc-runtime/ultragoal-guard.d.ts +37 -1
  9. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +80 -0
  10. package/dist/types/tools/browser/tab-supervisor.d.ts +31 -0
  11. package/dist/types/tools/computer-gc.d.ts +23 -0
  12. package/dist/types/tools/cron.d.ts +36 -61
  13. package/dist/types/tools/index.d.ts +0 -1
  14. package/dist/types/tools/resource-gc.d.ts +54 -0
  15. package/dist/types/web/search/index.d.ts +1 -0
  16. package/dist/types/web/search/providers/utils.d.ts +11 -4
  17. package/package.json +7 -7
  18. package/src/cli/args.ts +0 -1
  19. package/src/cli/fast-help.ts +0 -1
  20. package/src/cli/web-search-cli.ts +5 -0
  21. package/src/config/model-profiles.ts +3 -4
  22. package/src/config/model-registry.ts +3 -6
  23. package/src/config/models-config-schema.ts +1 -1
  24. package/src/config/settings-schema.ts +80 -10
  25. package/src/export/html/template.generated.ts +1 -1
  26. package/src/export/html/template.js +0 -12
  27. package/src/gjc-runtime/state-renderer.ts +13 -0
  28. package/src/gjc-runtime/ultragoal-guard.ts +167 -0
  29. package/src/gjc-runtime/ultragoal-runtime.ts +221 -1
  30. package/src/goals/tools/goal-tool.ts +14 -1
  31. package/src/internal-urls/docs-index.generated.ts +3 -4
  32. package/src/modes/controllers/selector-controller.ts +6 -0
  33. package/src/prompts/system/system-prompt.md +2 -2
  34. package/src/prompts/tools/cron.md +5 -3
  35. package/src/prompts/tools/read.md +1 -1
  36. package/src/sdk.ts +5 -0
  37. package/src/session/agent-session.ts +44 -0
  38. package/src/tools/browser/tab-supervisor.ts +86 -2
  39. package/src/tools/computer-gc.ts +66 -0
  40. package/src/tools/computer.ts +2 -0
  41. package/src/tools/cron.ts +75 -112
  42. package/src/tools/index.ts +2 -8
  43. package/src/tools/read.ts +25 -55
  44. package/src/tools/renderers.ts +0 -2
  45. package/src/tools/resource-gc.ts +291 -0
  46. package/src/tools/ultragoal-ask-guard.ts +7 -1
  47. package/src/web/search/index.ts +1 -0
  48. package/src/web/search/providers/utils.ts +22 -5
  49. package/vendor/insane-search/MANIFEST.json +3 -1
  50. package/vendor/insane-search/engine/__init__.py +14 -0
  51. package/vendor/insane-search/engine/content_safety.py +151 -0
  52. package/vendor/insane-search/engine/fetch_chain.py +32 -0
  53. package/vendor/insane-search/engine/tests/test_u8.py +216 -0
  54. package/dist/types/tools/inspect-image-renderer.d.ts +0 -26
  55. package/dist/types/tools/inspect-image.d.ts +0 -31
  56. package/src/prompts/tools/inspect-image-system.md +0 -20
  57. package/src/prompts/tools/inspect-image.md +0 -32
  58. package/src/tools/inspect-image-renderer.ts +0 -103
  59. 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: Partial<Record<"vision", string>>;
24
- agentModelOverrides: Partial<Record<Exclude<ModelProfileRole, "default" | "vision">, string>>;
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" | "vision";
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" | "vision" | "executor" | "architect" | "planner" | "critic";
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" | "vision", string>>;
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;