@gajae-code/coding-agent 0.11.6 → 0.11.8

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 (259) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/dist/types/capability/index.d.ts +10 -20
  3. package/dist/types/capability/types.d.ts +3 -0
  4. package/dist/types/cli/args.d.ts +0 -2
  5. package/dist/types/commands/daemon.d.ts +2 -2
  6. package/dist/types/commands/sdk.d.ts +20 -2
  7. package/dist/types/config/keybindings.d.ts +34 -4
  8. package/dist/types/config/model-profile-activation.d.ts +4 -3
  9. package/dist/types/config/model-profile-contract.d.ts +38 -0
  10. package/dist/types/config/settings-schema.d.ts +70 -7
  11. package/dist/types/edit/modes/patch.d.ts +13 -0
  12. package/dist/types/edit/path-mutation-lock.d.ts +15 -0
  13. package/dist/types/eval/py/executor.d.ts +1 -1
  14. package/dist/types/eval/py/runner-artifact.d.ts +8 -0
  15. package/dist/types/eval/py/tool-bridge.d.ts +1 -2
  16. package/dist/types/gjc-runtime/repository-binding.d.ts +63 -0
  17. package/dist/types/gjc-runtime/ultragoal-guard.d.ts +6 -5
  18. package/dist/types/gjc-runtime/ultragoal-receipt-freshness.d.ts +20 -0
  19. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +43 -5
  20. package/dist/types/main.d.ts +32 -1
  21. package/dist/types/modes/components/btw-panel.d.ts +1 -0
  22. package/dist/types/modes/components/model-selector.d.ts +2 -0
  23. package/dist/types/modes/components/runtime-mcp-add-wizard.d.ts +2 -1
  24. package/dist/types/modes/components/tool-status-header.d.ts +4 -2
  25. package/dist/types/modes/components/welcome.d.ts +2 -0
  26. package/dist/types/modes/controllers/btw-controller.d.ts +5 -0
  27. package/dist/types/modes/controllers/command-controller.d.ts +2 -0
  28. package/dist/types/modes/controllers/selector-controller.d.ts +2 -1
  29. package/dist/types/modes/interactive-mode.d.ts +7 -2
  30. package/dist/types/modes/prompt-action-autocomplete.d.ts +6 -1
  31. package/dist/types/modes/prompt-suggestion-controller.d.ts +35 -0
  32. package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +2 -2
  33. package/dist/types/modes/types.d.ts +4 -0
  34. package/dist/types/modes/utils/hotkeys-markdown.d.ts +2 -1
  35. package/dist/types/runtime-mcp/content-limits.d.ts +7 -0
  36. package/dist/types/runtime-mcp/manager.d.ts +1 -1
  37. package/dist/types/runtime-mcp/oauth-flow.d.ts +0 -5
  38. package/dist/types/runtime-mcp/plugin-network-boundary.d.ts +14 -0
  39. package/dist/types/sdk/broker/broker.d.ts +2 -0
  40. package/dist/types/sdk/broker/lifecycle.d.ts +6 -0
  41. package/dist/types/sdk/bus/chat-daemon-control.d.ts +6 -1
  42. package/dist/types/sdk/bus/config-commands.d.ts +2 -2
  43. package/dist/types/sdk/bus/config.d.ts +2 -0
  44. package/dist/types/sdk/bus/conversation-store.d.ts +1 -0
  45. package/dist/types/sdk/bus/index.d.ts +26 -1
  46. package/dist/types/sdk/bus/lifecycle-commands.d.ts +5 -4
  47. package/dist/types/sdk/bus/notification-orchestration.d.ts +1 -0
  48. package/dist/types/sdk/bus/notification-service.d.ts +34 -0
  49. package/dist/types/sdk/bus/prompt-reconciliation.d.ts +105 -0
  50. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +18 -3
  51. package/dist/types/sdk/bus/telegram-daemon-control.d.ts +5 -1
  52. package/dist/types/sdk/bus/telegram-daemon.d.ts +189 -4
  53. package/dist/types/sdk/bus/telegram-reference.d.ts +2 -0
  54. package/dist/types/sdk/bus/topic-registry.d.ts +88 -2
  55. package/dist/types/sdk/client/discovery.d.ts +2 -0
  56. package/dist/types/sdk/client/liveness.d.ts +7 -0
  57. package/dist/types/sdk/host/control/operations.d.ts +1 -1
  58. package/dist/types/sdk/host/host.d.ts +1 -1
  59. package/dist/types/sdk/host/query/handlers.d.ts +9 -0
  60. package/dist/types/sdk/index.d.ts +2 -0
  61. package/dist/types/sdk/prompt-status.d.ts +88 -0
  62. package/dist/types/sdk/session-directory.d.ts +1 -1
  63. package/dist/types/sdk/startup-capability.d.ts +3 -0
  64. package/dist/types/sdk/transport/auth-preface.d.ts +9 -0
  65. package/dist/types/sdk/transport/index.d.ts +12 -0
  66. package/dist/types/sdk/transport/relay.d.ts +43 -0
  67. package/dist/types/sdk/transport/serve-cli.d.ts +4 -0
  68. package/dist/types/sdk/transport/socket.d.ts +7 -0
  69. package/dist/types/sdk/transport/stdio.d.ts +3 -0
  70. package/dist/types/session/agent-session.d.ts +30 -5
  71. package/dist/types/session/btw-contract.d.ts +16 -0
  72. package/dist/types/session/internal/managed-session-scope.d.ts +32 -9
  73. package/dist/types/session/internal/managed-session-storage.d.ts +27 -10
  74. package/dist/types/session/internal/native-publish-outcome.d.ts +48 -0
  75. package/dist/types/session/session-manager.d.ts +25 -4
  76. package/dist/types/session/session-storage.d.ts +18 -0
  77. package/dist/types/setup/credential-import.d.ts +5 -1
  78. package/dist/types/setup/provider-onboarding.d.ts +2 -0
  79. package/dist/types/ssh/utils.d.ts +1 -0
  80. package/dist/types/task/discovery.d.ts +3 -1
  81. package/dist/types/task/index.d.ts +3 -1
  82. package/dist/types/task/receipt.d.ts +2 -0
  83. package/dist/types/task/types.d.ts +94 -0
  84. package/dist/types/tools/ask.d.ts +454 -174
  85. package/dist/types/tools/fetch.d.ts +5 -8
  86. package/dist/types/tools/image-gen.d.ts +63 -1
  87. package/dist/types/tools/index.d.ts +4 -0
  88. package/dist/types/tools/skill-discovery.d.ts +7 -0
  89. package/dist/types/tools/sqlite-reader.d.ts +7 -0
  90. package/dist/types/utils/prompt-suggestion.d.ts +33 -0
  91. package/dist/types/utils/shell-snapshot.d.ts +12 -0
  92. package/dist/types/web/insane/bridge.d.ts +1 -0
  93. package/dist/types/web/insane/url-guard.d.ts +17 -0
  94. package/package.json +8 -8
  95. package/scripts/capture-platform-shortcut-labels-showcase.ts +342 -0
  96. package/scripts/dogfood-repository-binding.ts +209 -0
  97. package/scripts/generate-sdk-operation-inventory.ts +4 -0
  98. package/scripts/run-test-manifest.ts +4 -4
  99. package/src/capability/index.ts +50 -42
  100. package/src/capability/types.ts +3 -0
  101. package/src/cli/args.ts +2 -92
  102. package/src/cli/notify-cli.ts +5 -38
  103. package/src/cli/setup-cli.ts +10 -4
  104. package/src/cli.ts +52 -9
  105. package/src/commands/daemon.ts +22 -5
  106. package/src/commands/sdk.ts +44 -11
  107. package/src/config/keybindings.ts +158 -25
  108. package/src/config/model-profile-activation.ts +7 -18
  109. package/src/config/model-profile-contract.ts +161 -0
  110. package/src/config/model-profiles.ts +18 -0
  111. package/src/config/model-registry.ts +11 -1
  112. package/src/config/settings-schema.ts +73 -7
  113. package/src/coordinator-mcp/model-preset.ts +21 -74
  114. package/src/defaults/gjc/skills/deep-interview/SKILL.md +2 -2
  115. package/src/defaults/gjc/skills/ralplan/SKILL.md +3 -1
  116. package/src/defaults/gjc/skills/ultragoal/SKILL.md +42 -1
  117. package/src/discovery/ssh.ts +12 -1
  118. package/src/edit/index.ts +3 -6
  119. package/src/edit/modes/patch.ts +38 -1
  120. package/src/edit/modes/replace.ts +42 -0
  121. package/src/edit/path-mutation-lock.ts +112 -0
  122. package/src/eval/py/executor.ts +30 -11
  123. package/src/eval/py/kernel.ts +1 -21
  124. package/src/eval/py/prelude.py +2 -2
  125. package/src/eval/py/runner-artifact.ts +84 -0
  126. package/src/eval/py/tool-bridge.ts +34 -18
  127. package/src/extensibility/gjc-plugins/runtime-adapters.ts +2 -1
  128. package/src/extensibility/plugins/marketplace/fetcher.ts +191 -7
  129. package/src/gjc-runtime/launch-tmux.ts +1 -1
  130. package/src/gjc-runtime/managed-owner-supervisor.ts +83 -4
  131. package/src/gjc-runtime/ralplan-runtime.ts +75 -3
  132. package/src/gjc-runtime/repository-binding.ts +267 -0
  133. package/src/gjc-runtime/session-state-sidecar.ts +25 -9
  134. package/src/gjc-runtime/tmux-owner-isolation.ts +2 -1
  135. package/src/gjc-runtime/tmux-sessions.ts +45 -6
  136. package/src/gjc-runtime/ultragoal-guard.ts +93 -15
  137. package/src/gjc-runtime/ultragoal-receipt-freshness.ts +103 -0
  138. package/src/gjc-runtime/ultragoal-runtime.ts +456 -31
  139. package/src/gjc-runtime/workflow-manifest.generated.json +58 -0
  140. package/src/gjc-runtime/workflow-manifest.ts +23 -0
  141. package/src/internal-urls/docs-index.generated.ts +12 -10
  142. package/src/internal-urls/local-protocol.ts +64 -21
  143. package/src/internal-urls/mcp-protocol.ts +73 -11
  144. package/src/main.ts +111 -37
  145. package/src/modes/DESIGN.md +5 -0
  146. package/src/modes/acp/acp-agent.ts +50 -16
  147. package/src/modes/action-registry.ts +1 -1
  148. package/src/modes/components/btw-panel.ts +82 -16
  149. package/src/modes/components/model-selector.ts +73 -11
  150. package/src/modes/components/plan-preview-overlay.ts +1 -1
  151. package/src/modes/components/runtime-mcp-add-wizard.ts +5 -0
  152. package/src/modes/components/tool-status-header.ts +25 -4
  153. package/src/modes/components/welcome.ts +22 -18
  154. package/src/modes/controllers/btw-controller.ts +119 -36
  155. package/src/modes/controllers/command-controller.ts +97 -54
  156. package/src/modes/controllers/event-controller.ts +10 -0
  157. package/src/modes/controllers/input-controller.ts +38 -2
  158. package/src/modes/controllers/runtime-mcp-command-controller.ts +29 -6
  159. package/src/modes/controllers/selector-controller.ts +149 -63
  160. package/src/modes/interactive-mode.ts +57 -34
  161. package/src/modes/prompt-action-autocomplete.ts +32 -13
  162. package/src/modes/prompt-suggestion-controller.ts +96 -0
  163. package/src/modes/shared/agent-wire/workflow-gate-broker.ts +2 -2
  164. package/src/modes/types.ts +4 -0
  165. package/src/modes/utils/hotkeys-markdown.ts +64 -36
  166. package/src/modes/utils/ui-helpers.ts +5 -3
  167. package/src/prompts/agents/architect.md +0 -1
  168. package/src/prompts/agents/critic.md +0 -1
  169. package/src/prompts/system/btw-user.md +3 -8
  170. package/src/prompts/system/prompt-suggestion-system.md +32 -0
  171. package/src/prompts/system/system-prompt.md +6 -4
  172. package/src/prompts/tools/cron.md +3 -1
  173. package/src/prompts/tools/skill-discovery.md +1 -0
  174. package/src/runtime-mcp/client.ts +41 -55
  175. package/src/runtime-mcp/content-limits.ts +71 -0
  176. package/src/runtime-mcp/json-rpc.ts +23 -9
  177. package/src/runtime-mcp/manager.ts +51 -53
  178. package/src/runtime-mcp/oauth-flow.ts +0 -72
  179. package/src/runtime-mcp/plugin-network-boundary.ts +101 -0
  180. package/src/runtime-mcp/transports/http.ts +63 -22
  181. package/src/sdk/broker/broker.ts +34 -20
  182. package/src/sdk/broker/lifecycle.ts +185 -36
  183. package/src/sdk/bus/chat-daemon-control.ts +19 -5
  184. package/src/sdk/bus/config-commands.ts +2 -2
  185. package/src/sdk/bus/config.ts +9 -1
  186. package/src/sdk/bus/conversation-store.ts +40 -6
  187. package/src/sdk/bus/index.ts +244 -70
  188. package/src/sdk/bus/lifecycle-commands.ts +63 -10
  189. package/src/sdk/bus/lifecycle-control-runtime.ts +11 -2
  190. package/src/sdk/bus/lifecycle-orchestrator.ts +32 -1
  191. package/src/sdk/bus/notification-orchestration.ts +12 -0
  192. package/src/sdk/bus/notification-service.ts +68 -20
  193. package/src/sdk/bus/prompt-reconciliation.ts +239 -0
  194. package/src/sdk/bus/recent-activity.ts +90 -26
  195. package/src/sdk/bus/telegram-daemon-contract.ts +18 -3
  196. package/src/sdk/bus/telegram-daemon-control.ts +147 -35
  197. package/src/sdk/bus/telegram-daemon.ts +2463 -450
  198. package/src/sdk/bus/telegram-reference.ts +20 -2
  199. package/src/sdk/bus/topic-registry.ts +451 -12
  200. package/src/sdk/cli/session-cli.ts +15 -2
  201. package/src/sdk/client/discovery.ts +19 -3
  202. package/src/sdk/client/liveness.ts +49 -0
  203. package/src/sdk/host/control/dispatch.ts +1 -1
  204. package/src/sdk/host/control/operations.ts +1 -1
  205. package/src/sdk/host/host.ts +2 -6
  206. package/src/sdk/host/query/handlers.ts +70 -5
  207. package/src/sdk/index.ts +12 -0
  208. package/src/sdk/prompt-status.ts +97 -0
  209. package/src/sdk/protocol/operation-inventory.generated.json +58 -0
  210. package/src/sdk/protocol/operation-registry.ts +18 -4
  211. package/src/sdk/session-directory.ts +5 -1
  212. package/src/sdk/session.ts +31 -5
  213. package/src/sdk/startup-capability.ts +9 -1
  214. package/src/sdk/transport/auth-preface.ts +82 -0
  215. package/src/sdk/transport/index.ts +18 -0
  216. package/src/sdk/transport/relay.ts +252 -0
  217. package/src/sdk/transport/serve-cli.ts +105 -0
  218. package/src/sdk/transport/socket.ts +197 -0
  219. package/src/sdk/transport/stdio.ts +17 -0
  220. package/src/session/agent-session.ts +292 -154
  221. package/src/session/blob-store.ts +25 -7
  222. package/src/session/btw-contract.ts +59 -0
  223. package/src/session/internal/managed-session-scope.ts +1163 -137
  224. package/src/session/internal/managed-session-storage.ts +397 -234
  225. package/src/session/internal/native-publish-outcome.ts +266 -0
  226. package/src/session/session-manager.ts +620 -403
  227. package/src/session/session-storage.ts +128 -11
  228. package/src/setup/credential-import.ts +28 -3
  229. package/src/setup/provider-onboarding.ts +30 -1
  230. package/src/setup/provider-presets.json +2 -1
  231. package/src/slash-commands/builtin-registry.ts +1 -1
  232. package/src/ssh/utils.ts +14 -0
  233. package/src/task/discovery.ts +8 -2
  234. package/src/task/gjc-command.ts +2 -2
  235. package/src/task/index.ts +121 -15
  236. package/src/task/receipt.ts +3 -0
  237. package/src/task/types.ts +34 -3
  238. package/src/tools/ask.ts +199 -89
  239. package/src/tools/ast-edit.ts +2 -2
  240. package/src/tools/bash-pty-selection.ts +2 -2
  241. package/src/tools/browser/screenshot-format.ts +6 -1
  242. package/src/tools/cron.ts +1 -1
  243. package/src/tools/fetch.ts +13 -131
  244. package/src/tools/image-gen.ts +476 -23
  245. package/src/tools/index.ts +4 -0
  246. package/src/tools/read.ts +2 -0
  247. package/src/tools/render-utils.ts +7 -1
  248. package/src/tools/skill-discovery.ts +39 -3
  249. package/src/tools/sqlite-reader.ts +63 -5
  250. package/src/utils/edit-mode.ts +2 -2
  251. package/src/utils/pasted-image-path.ts +15 -6
  252. package/src/utils/prompt-suggestion.ts +265 -0
  253. package/src/utils/shell-snapshot.ts +173 -63
  254. package/src/utils/sixel.ts +3 -3
  255. package/src/web/insane/bridge.ts +5 -1
  256. package/src/web/insane/url-guard.ts +140 -27
  257. package/src/web/scrapers/docs-rs.ts +30 -5
  258. package/src/web/scrapers/types.ts +19 -49
  259. package/src/web/scrapers/utils.ts +12 -26
@@ -73,7 +73,11 @@ export declare function discoverExternalCredentials(options?: DiscoveryOptions):
73
73
  export declare function formatCredentialSummary(credential: ImportableCredential): string;
74
74
  /** Redacted summary lines for an entire discovery result. Never includes secrets. */
75
75
  export declare function formatDiscoverySummary(result: CredentialDiscoveryResult): string[];
76
- export declare function isAutoImportOAuthCredential(credential: ImportableCredential): boolean;
76
+ /** Reason shown when automatic OAuth import rejects an unusable discovery record. */
77
+ export declare const INVALID_AUTO_IMPORT_OAUTH_EXPIRY_REASON = "OAuth credential has no valid future expiry";
78
+ export declare function isAutoImportOAuthCredential(credential: ImportableCredential, now?: number): boolean;
79
+ /** Keep rejected OAuth discoveries visible to operators without offering them for automatic import. */
80
+ export declare function getAutoImportOAuthCredentialSkips(credentials: readonly ImportableCredential[], now?: number): SkippedCredential[];
77
81
  export declare function filterAutoImportOAuthCredentials(credentials: readonly ImportableCredential[]): ImportableCredential[];
78
82
  /**
79
83
  * Persist discovered credentials via `upsert`. Each credential is imported
@@ -37,6 +37,7 @@ interface ProviderPreset {
37
37
  baseUrl: string;
38
38
  apiKeyEnv: string;
39
39
  models: readonly string[];
40
+ modelApi?: Readonly<Record<string, ProviderSetupApi>>;
40
41
  compat?: ProviderCompatConfig;
41
42
  }
42
43
  export declare const PROVIDER_PRESETS: readonly ProviderPreset[];
@@ -47,6 +48,7 @@ export declare function findProviderPreset(value: string | undefined): ProviderP
47
48
  export declare function formatProviderPresetList(): string;
48
49
  export declare function parseModelList(values: readonly string[]): string[];
49
50
  export declare function redactSecret(secret: string): string;
51
+ export declare function validateModelApi(modelApi: Readonly<Record<string, string>> | undefined, models: readonly string[], presetId: string): void;
50
52
  export declare function addApiCompatibleProvider(input: ProviderSetupInput): Promise<ProviderSetupResult>;
51
53
  export declare function formatProviderSetupResult(result: ProviderSetupResult): string;
52
54
  export {};
@@ -1,2 +1,3 @@
1
1
  export declare function sanitizeHostName(name: string): string;
2
+ export declare function validateSshDestination(username: string | undefined, host: string): string | undefined;
2
3
  export declare function buildSshTarget(username: string | undefined, host: string): string;
@@ -1,3 +1,4 @@
1
+ import type { Settings } from "../config/settings";
1
2
  import type { AgentDefinition } from "./types";
2
3
  /** Result of agent discovery */
3
4
  export interface DiscoveryResult {
@@ -11,8 +12,9 @@ export declare function filterVisibleAgents(agents: readonly AgentDefinition[]):
11
12
  * Precedence (highest wins): .gjc project, .gjc user, GJC plugins, then bundled
12
13
  *
13
14
  * @param cwd - Current working directory for project agent discovery
15
+ * @param activeSettings - Settings used to resolve enabled providers.
14
16
  */
15
- export declare function discoverAgents(cwd: string, home?: string): Promise<DiscoveryResult>;
17
+ export declare function discoverAgents(cwd: string, home?: string, activeSettings?: Settings): Promise<DiscoveryResult>;
16
18
  /**
17
19
  * Get an agent by name from discovered agents.
18
20
  */
@@ -36,7 +36,9 @@ export declare class TaskTool implements AgentTool<TaskToolSchemaInstance, TaskT
36
36
  get description(): string;
37
37
  private constructor();
38
38
  /**
39
- * Create a TaskTool instance with async agent discovery.
39
+ * Create a TaskTool instance.
40
+ * Repository authority is captured from session cwd *before* agent discovery so
41
+ * multi-repo workspaces fail closed prior to context/discovery (#2901).
40
42
  */
41
43
  static create(session: ToolSession): Promise<TaskTool>;
42
44
  execute(_toolCallId: string, rawParams: unknown, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback<TaskToolDetails>): Promise<AgentToolResult<TaskToolDetails>>;
@@ -59,6 +59,8 @@ export interface TaskResultReceipt {
59
59
  extractedToolCounts?: Record<string, number>;
60
60
  forkContext?: SingleResult["forkContext"];
61
61
  forkContextAdvisory?: SingleResult["forkContextAdvisory"];
62
+ /** Resolved repository identity for this delegated lane (#2901). */
63
+ repositoryBinding?: SingleResult["repositoryBinding"];
62
64
  roi?: TaskRoi;
63
65
  }
64
66
  /**
@@ -52,6 +52,15 @@ export declare const taskItemSchema: z.ZodObject<{
52
52
  none: "none";
53
53
  receipt: "receipt";
54
54
  }>>;
55
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
56
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
57
+ worktreeRoot: z.ZodString;
58
+ commonDir: z.ZodNullable<z.ZodString>;
59
+ relativeSubdir: z.ZodOptional<z.ZodString>;
60
+ displayPath: z.ZodOptional<z.ZodString>;
61
+ head: z.ZodOptional<z.ZodString>;
62
+ branch: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strict>>;
55
64
  }, z.core.$strip>;
56
65
  export type TaskItem = z.infer<typeof taskItemSchema>;
57
66
  export declare const taskSchema: z.ZodObject<{
@@ -67,6 +76,15 @@ export declare const taskSchema: z.ZodObject<{
67
76
  none: "none";
68
77
  receipt: "receipt";
69
78
  }>>;
79
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
80
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
81
+ worktreeRoot: z.ZodString;
82
+ commonDir: z.ZodNullable<z.ZodString>;
83
+ relativeSubdir: z.ZodOptional<z.ZodString>;
84
+ displayPath: z.ZodOptional<z.ZodString>;
85
+ head: z.ZodOptional<z.ZodString>;
86
+ branch: z.ZodOptional<z.ZodString>;
87
+ }, z.core.$strict>>;
70
88
  }, z.core.$strip>>;
71
89
  spawnPlan: z.ZodOptional<z.ZodObject<{
72
90
  whyParallel: z.ZodString;
@@ -89,6 +107,15 @@ export declare const taskSchemaNoIsolation: z.ZodObject<{
89
107
  none: "none";
90
108
  receipt: "receipt";
91
109
  }>>;
110
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
111
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
112
+ worktreeRoot: z.ZodString;
113
+ commonDir: z.ZodNullable<z.ZodString>;
114
+ relativeSubdir: z.ZodOptional<z.ZodString>;
115
+ displayPath: z.ZodOptional<z.ZodString>;
116
+ head: z.ZodOptional<z.ZodString>;
117
+ branch: z.ZodOptional<z.ZodString>;
118
+ }, z.core.$strict>>;
92
119
  }, z.core.$strip>>;
93
120
  spawnPlan: z.ZodOptional<z.ZodObject<{
94
121
  whyParallel: z.ZodString;
@@ -111,6 +138,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
111
138
  none: "none";
112
139
  receipt: "receipt";
113
140
  }>>;
141
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
142
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
143
+ worktreeRoot: z.ZodString;
144
+ commonDir: z.ZodNullable<z.ZodString>;
145
+ relativeSubdir: z.ZodOptional<z.ZodString>;
146
+ displayPath: z.ZodOptional<z.ZodString>;
147
+ head: z.ZodOptional<z.ZodString>;
148
+ branch: z.ZodOptional<z.ZodString>;
149
+ }, z.core.$strict>>;
114
150
  }, z.core.$strip>>;
115
151
  spawnPlan: z.ZodOptional<z.ZodObject<{
116
152
  whyParallel: z.ZodString;
@@ -132,6 +168,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
132
168
  none: "none";
133
169
  receipt: "receipt";
134
170
  }>>;
171
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
172
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
173
+ worktreeRoot: z.ZodString;
174
+ commonDir: z.ZodNullable<z.ZodString>;
175
+ relativeSubdir: z.ZodOptional<z.ZodString>;
176
+ displayPath: z.ZodOptional<z.ZodString>;
177
+ head: z.ZodOptional<z.ZodString>;
178
+ branch: z.ZodOptional<z.ZodString>;
179
+ }, z.core.$strict>>;
135
180
  }, z.core.$strip>>;
136
181
  spawnPlan: z.ZodOptional<z.ZodObject<{
137
182
  whyParallel: z.ZodString;
@@ -153,6 +198,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
153
198
  none: "none";
154
199
  receipt: "receipt";
155
200
  }>>;
201
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
202
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
203
+ worktreeRoot: z.ZodString;
204
+ commonDir: z.ZodNullable<z.ZodString>;
205
+ relativeSubdir: z.ZodOptional<z.ZodString>;
206
+ displayPath: z.ZodOptional<z.ZodString>;
207
+ head: z.ZodOptional<z.ZodString>;
208
+ branch: z.ZodOptional<z.ZodString>;
209
+ }, z.core.$strict>>;
156
210
  }, z.core.$strip>>;
157
211
  spawnPlan: z.ZodOptional<z.ZodObject<{
158
212
  whyParallel: z.ZodString;
@@ -174,6 +228,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
174
228
  none: "none";
175
229
  receipt: "receipt";
176
230
  }>>;
231
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
232
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
233
+ worktreeRoot: z.ZodString;
234
+ commonDir: z.ZodNullable<z.ZodString>;
235
+ relativeSubdir: z.ZodOptional<z.ZodString>;
236
+ displayPath: z.ZodOptional<z.ZodString>;
237
+ head: z.ZodOptional<z.ZodString>;
238
+ branch: z.ZodOptional<z.ZodString>;
239
+ }, z.core.$strict>>;
177
240
  }, z.core.$strip>>;
178
241
  spawnPlan: z.ZodOptional<z.ZodObject<{
179
242
  whyParallel: z.ZodString;
@@ -195,6 +258,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
195
258
  none: "none";
196
259
  receipt: "receipt";
197
260
  }>>;
261
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
262
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
263
+ worktreeRoot: z.ZodString;
264
+ commonDir: z.ZodNullable<z.ZodString>;
265
+ relativeSubdir: z.ZodOptional<z.ZodString>;
266
+ displayPath: z.ZodOptional<z.ZodString>;
267
+ head: z.ZodOptional<z.ZodString>;
268
+ branch: z.ZodOptional<z.ZodString>;
269
+ }, z.core.$strict>>;
198
270
  }, z.core.$strip>>;
199
271
  spawnPlan: z.ZodOptional<z.ZodObject<{
200
272
  whyParallel: z.ZodString;
@@ -216,6 +288,15 @@ declare const ALL_TASK_SCHEMAS: readonly [z.ZodObject<{
216
288
  none: "none";
217
289
  receipt: "receipt";
218
290
  }>>;
291
+ repositoryBinding: z.ZodOptional<z.ZodObject<{
292
+ schema: z.ZodLiteral<"gjc.repository_binding.v1">;
293
+ worktreeRoot: z.ZodString;
294
+ commonDir: z.ZodNullable<z.ZodString>;
295
+ relativeSubdir: z.ZodOptional<z.ZodString>;
296
+ displayPath: z.ZodOptional<z.ZodString>;
297
+ head: z.ZodOptional<z.ZodString>;
298
+ branch: z.ZodOptional<z.ZodString>;
299
+ }, z.core.$strict>>;
219
300
  }, z.core.$strip>>;
220
301
  spawnPlan: z.ZodOptional<z.ZodObject<{
221
302
  whyParallel: z.ZodString;
@@ -431,6 +512,19 @@ export interface SingleResult {
431
512
  recommendedMode: ForkContextMode;
432
513
  reasons: string[];
433
514
  };
515
+ /**
516
+ * Resolved repository identity used for this task after pre-discovery stamping
517
+ * and fail-closed validation (#2901).
518
+ */
519
+ repositoryBinding?: {
520
+ schema: "gjc.repository_binding.v1";
521
+ worktreeRoot: string;
522
+ commonDir: string | null;
523
+ relativeSubdir?: string;
524
+ displayPath?: string;
525
+ head?: string;
526
+ branch?: string;
527
+ };
434
528
  }
435
529
  /** True only for complete, factual five-bucket cost accounting. */
436
530
  export declare function hasCompleteUsageCostBreakdown(usage: unknown): boolean;