@gajae-code/coding-agent 0.12.6 → 0.12.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 (150) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/dist/types/async/job-manager.d.ts +36 -1
  3. package/dist/types/commands/notify.d.ts +4 -0
  4. package/dist/types/config/file-lock.d.ts +3 -0
  5. package/dist/types/config/model-discovery-manager.d.ts +6 -1
  6. package/dist/types/config/model-registry.d.ts +2 -0
  7. package/dist/types/config/resolve-config-value.d.ts +2 -1
  8. package/dist/types/config/settings-schema.d.ts +17 -1
  9. package/dist/types/eval/backend.d.ts +2 -2
  10. package/dist/types/exec/bash-executor.d.ts +8 -10
  11. package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +0 -36
  12. package/dist/types/internal-urls/registry-helpers.d.ts +0 -18
  13. package/dist/types/main.d.ts +1 -0
  14. package/dist/types/modes/components/hook-selector.d.ts +20 -0
  15. package/dist/types/modes/components/notifications-settings-editor.d.ts +53 -4
  16. package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
  17. package/dist/types/modes/controllers/selector-controller.d.ts +4 -2
  18. package/dist/types/sdk/broker/broker.d.ts +5 -1
  19. package/dist/types/sdk/broker/lifecycle-ledger.d.ts +1 -0
  20. package/dist/types/sdk/bus/chat-daemon-control.d.ts +11 -3
  21. package/dist/types/sdk/bus/config.d.ts +75 -113
  22. package/dist/types/sdk/bus/discord-live-provider.d.ts +8 -2
  23. package/dist/types/sdk/bus/discord-provider.d.ts +19 -0
  24. package/dist/types/sdk/bus/index.d.ts +1 -1
  25. package/dist/types/sdk/bus/notification-orchestration.d.ts +127 -18
  26. package/dist/types/sdk/bus/notification-service.d.ts +31 -4
  27. package/dist/types/sdk/bus/session-control.d.ts +8 -3
  28. package/dist/types/sdk/bus/slack-live-provider.d.ts +9 -2
  29. package/dist/types/sdk/bus/slack-provider.d.ts +22 -0
  30. package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +9 -4
  31. package/dist/types/sdk/client/discovery.d.ts +2 -1
  32. package/dist/types/sdk/host/host.d.ts +2 -23
  33. package/dist/types/sdk/host/query/handlers.d.ts +2 -0
  34. package/dist/types/sdk/host/reverse-leases.d.ts +4 -7
  35. package/dist/types/sdk/index.d.ts +1 -0
  36. package/dist/types/sdk/providers.d.ts +22 -0
  37. package/dist/types/sdk/session-directory.d.ts +1 -1
  38. package/dist/types/session/artifacts.d.ts +5 -8
  39. package/dist/types/session/client-bridge.d.ts +0 -14
  40. package/dist/types/session/internal/managed-session-scope.d.ts +17 -1
  41. package/dist/types/session/internal/managed-session-storage.d.ts +11 -4
  42. package/dist/types/session/internal/native-publish-outcome.d.ts +1 -0
  43. package/dist/types/session/internal/session-open-errors.d.ts +5 -0
  44. package/dist/types/session/messages.d.ts +1 -4
  45. package/dist/types/session/session-manager.d.ts +7 -6
  46. package/dist/types/session/session-storage.d.ts +2 -0
  47. package/dist/types/session/streaming-output.d.ts +0 -32
  48. package/dist/types/task/receipt.d.ts +1 -2
  49. package/dist/types/task/types.d.ts +43 -178
  50. package/dist/types/tools/bash.d.ts +1 -1
  51. package/dist/types/tools/fetch.d.ts +0 -3
  52. package/dist/types/tools/output-meta.d.ts +5 -37
  53. package/dist/types/tools/subagent.d.ts +15 -0
  54. package/dist/types/tools/todo-write.d.ts +3 -0
  55. package/dist/types/tools/tool-result.d.ts +0 -1
  56. package/package.json +10 -8
  57. package/scripts/build-sdk-package-smoke.ts +51 -0
  58. package/scripts/capture-notifications-settings-showcase.ts +1 -1
  59. package/src/async/job-manager.ts +430 -46
  60. package/src/cli/notify-cli.ts +204 -94
  61. package/src/commands/notify.ts +19 -8
  62. package/src/config/file-lock.ts +6 -0
  63. package/src/config/model-discovery-manager.ts +50 -8
  64. package/src/config/model-registry.ts +862 -75
  65. package/src/config/resolve-config-value.ts +10 -8
  66. package/src/config/settings-schema.ts +25 -15
  67. package/src/config/settings.ts +15 -15
  68. package/src/cursor.ts +13 -20
  69. package/src/defaults/gjc/skills/ultragoal/SKILL.md +2 -3
  70. package/src/eval/backend.ts +2 -2
  71. package/src/exec/bash-executor.ts +151 -425
  72. package/src/gjc-runtime/session-state-sidecar.ts +12 -2
  73. package/src/gjc-runtime/ultragoal-runtime.ts +3 -280
  74. package/src/gjc-runtime/workflow-manifest.generated.json +1 -40
  75. package/src/gjc-runtime/workflow-manifest.ts +0 -12
  76. package/src/internal-urls/agent-protocol.ts +38 -98
  77. package/src/internal-urls/artifact-protocol.ts +17 -28
  78. package/src/internal-urls/docs-index.generated.ts +7 -7
  79. package/src/internal-urls/registry-helpers.ts +0 -62
  80. package/src/main.ts +43 -7
  81. package/src/modes/DESIGN.md +11 -11
  82. package/src/modes/acp/acp-agent.ts +0 -24
  83. package/src/modes/acp/acp-client-bridge.ts +11 -154
  84. package/src/modes/components/hook-selector.ts +155 -44
  85. package/src/modes/components/model-selector.ts +242 -49
  86. package/src/modes/components/notifications-settings-editor.ts +631 -85
  87. package/src/modes/controllers/extension-ui-controller.ts +114 -15
  88. package/src/modes/controllers/selector-controller.ts +464 -50
  89. package/src/prompts/tools/bash.md +2 -2
  90. package/src/sdk/acp/adapter.ts +9 -200
  91. package/src/sdk/broker/broker.ts +54 -10
  92. package/src/sdk/broker/lifecycle-ledger.ts +34 -1
  93. package/src/sdk/broker/lifecycle.ts +47 -50
  94. package/src/sdk/bus/chat-daemon-cli.ts +12 -5
  95. package/src/sdk/bus/chat-daemon-control.ts +35 -8
  96. package/src/sdk/bus/chat-daemon-runtime.ts +16 -2
  97. package/src/sdk/bus/config.ts +534 -286
  98. package/src/sdk/bus/discord-live-provider.ts +57 -2
  99. package/src/sdk/bus/discord-provider.ts +21 -0
  100. package/src/sdk/bus/index.ts +105 -359
  101. package/src/sdk/bus/notification-orchestration.ts +371 -68
  102. package/src/sdk/bus/notification-service.ts +431 -130
  103. package/src/sdk/bus/session-control.ts +119 -44
  104. package/src/sdk/bus/slack-live-provider.ts +78 -2
  105. package/src/sdk/bus/slack-provider.ts +24 -0
  106. package/src/sdk/bus/telegram-daemon-cli.ts +9 -2
  107. package/src/sdk/bus/telegram-daemon-contract.ts +9 -4
  108. package/src/sdk/bus/telegram-daemon-control.ts +3 -3
  109. package/src/sdk/bus/telegram-daemon.ts +23 -15
  110. package/src/sdk/client/discovery.ts +10 -4
  111. package/src/sdk/host/host.ts +9 -187
  112. package/src/sdk/host/query/handlers.ts +20 -1
  113. package/src/sdk/host/reverse-leases.ts +42 -249
  114. package/src/sdk/index.ts +1 -0
  115. package/src/sdk/protocol/operation-inventory.generated.json +18 -0
  116. package/src/sdk/protocol/operation-registry.ts +5 -2
  117. package/src/sdk/providers.ts +51 -0
  118. package/src/sdk/session-directory.ts +1 -0
  119. package/src/sdk/session.ts +10 -7
  120. package/src/session/agent-session.ts +59 -202
  121. package/src/session/artifacts.ts +74 -211
  122. package/src/session/client-bridge.ts +0 -15
  123. package/src/session/internal/managed-session-scope.ts +981 -450
  124. package/src/session/internal/managed-session-storage.ts +362 -124
  125. package/src/session/internal/native-publish-outcome.ts +3 -1
  126. package/src/session/internal/session-open-errors.ts +11 -0
  127. package/src/session/messages.ts +7 -32
  128. package/src/session/session-manager.ts +48 -15
  129. package/src/session/session-storage.ts +72 -5
  130. package/src/session/streaming-output.ts +40 -198
  131. package/src/slash-commands/builtin-registry.ts +82 -4
  132. package/src/task/index.ts +237 -65
  133. package/src/task/receipt.ts +2 -4
  134. package/src/task/render.ts +0 -30
  135. package/src/task/types.ts +10 -34
  136. package/src/tools/ask.ts +1 -1
  137. package/src/tools/bash.ts +239 -818
  138. package/src/tools/eval.ts +4 -99
  139. package/src/tools/fetch.ts +15 -77
  140. package/src/tools/find.ts +3 -7
  141. package/src/tools/output-meta.ts +114 -696
  142. package/src/tools/search.ts +4 -9
  143. package/src/tools/subagent.ts +97 -75
  144. package/src/tools/telegram-send.ts +4 -2
  145. package/src/tools/todo-write.ts +47 -0
  146. package/src/tools/tool-result.ts +0 -1
  147. package/dist/types/gjc-runtime/ultragoal-review-source.d.ts +0 -83
  148. package/dist/types/utils/artifact-id.d.ts +0 -2
  149. package/src/gjc-runtime/ultragoal-review-source.ts +0 -378
  150. package/src/utils/artifact-id.ts +0 -6
@@ -1,4 +1,12 @@
1
- import type { DiscordInboundEvent, DiscordMessageComponent, DiscordProvider, DiscordThread } from "./discord-provider";
1
+ import type {
2
+ DiscordConfigurationProbeResult,
3
+ DiscordDiagnosticProvider,
4
+ DiscordInboundEvent,
5
+ DiscordMessageComponent,
6
+ DiscordOneShotTestResult,
7
+ DiscordProvider,
8
+ DiscordThread,
9
+ } from "./discord-provider";
2
10
 
3
11
  const API_BASE = "https://discord.com/api/v10";
4
12
  const GATEWAY_INTENTS = 1 + 512 + 32_768;
@@ -35,7 +43,7 @@ export interface DiscordLiveProviderOptions {
35
43
  type JsonRecord = Record<string, unknown>;
36
44
 
37
45
  /** Discord REST/Gateway implementation. The only credential is held privately and is never emitted. */
38
- export class DiscordLiveProvider implements DiscordProvider {
46
+ export class DiscordLiveProvider implements DiscordProvider, DiscordDiagnosticProvider {
39
47
  readonly applicationId: string;
40
48
  readonly #token: string;
41
49
  readonly #fetch: DiscordFetch;
@@ -230,6 +238,53 @@ export class DiscordLiveProvider implements DiscordProvider {
230
238
  return null;
231
239
  }
232
240
 
241
+ async probeConfiguration(signal?: AbortSignal): Promise<DiscordConfigurationProbeResult> {
242
+ if (signal?.aborted) return { ok: false, detail: "Discord configuration probe cancelled." };
243
+ try {
244
+ const currentUser = await this.#request("/users/@me", { signal });
245
+ const botUserId = this.#string(currentUser, "id");
246
+ if (!botUserId) return { ok: false, detail: "Discord returned an invalid bot identity." };
247
+ const application = await this.#request("/applications/@me", { signal });
248
+ const applicationId = this.#string(application, "id");
249
+ if (!applicationId || applicationId !== this.applicationId) {
250
+ return { ok: false, detail: "Discord application identity does not match the configured application ID." };
251
+ }
252
+ return { ok: true, detail: "Discord bot and application credentials are valid.", botUserId };
253
+ } catch (error) {
254
+ if (signal?.aborted) return { ok: false, detail: "Discord configuration probe cancelled." };
255
+ const detail = error instanceof Error ? error.message : "Discord configuration probe failed.";
256
+ return { ok: false, detail };
257
+ }
258
+ }
259
+
260
+ async sendOneShotTest(input: {
261
+ channelId: string;
262
+ message: string;
263
+ signal?: AbortSignal;
264
+ }): Promise<DiscordOneShotTestResult> {
265
+ if (input.signal?.aborted) return { ok: false, detail: "Discord notification test cancelled." };
266
+ try {
267
+ const response = await this.#request(`/channels/${input.channelId}/messages`, {
268
+ method: "POST",
269
+ body: JSON.stringify({ content: input.message }),
270
+ signal: input.signal,
271
+ });
272
+ const messageId = this.#string(response, "id");
273
+ if (!messageId) {
274
+ return {
275
+ ok: false,
276
+ detail: "Discord may have accepted the message but returned no message receipt.",
277
+ uncertain: true,
278
+ };
279
+ }
280
+ return { ok: true, detail: "Discord notification test delivered.", messageId };
281
+ } catch (error) {
282
+ if (input.signal?.aborted) return { ok: false, detail: "Discord notification test cancelled." };
283
+ const detail = error instanceof Error ? error.message : "Discord notification test failed.";
284
+ return { ok: false, detail, uncertain: !detail.startsWith("Discord API request failed") };
285
+ }
286
+ }
287
+
233
288
  async start(onEvent: (event: DiscordInboundEvent) => Promise<void>): Promise<void> {
234
289
  if (!this.#stopped) return;
235
290
  this.#onEvent = onEvent;
@@ -31,6 +31,27 @@ export interface DiscordMessageComponent {
31
31
  }>;
32
32
  }
33
33
 
34
+ export interface DiscordConfigurationProbeResult {
35
+ ok: boolean;
36
+ detail: string;
37
+ botUserId?: string;
38
+ }
39
+
40
+ export interface DiscordOneShotTestResult {
41
+ ok: boolean;
42
+ detail: string;
43
+ messageId?: string;
44
+ uncertain?: boolean;
45
+ }
46
+
47
+ export interface DiscordDiagnosticProvider {
48
+ probeConfiguration(signal?: AbortSignal): Promise<DiscordConfigurationProbeResult>;
49
+ sendOneShotTest(input: {
50
+ channelId: string;
51
+ message: string;
52
+ signal?: AbortSignal;
53
+ }): Promise<DiscordOneShotTestResult>;
54
+ }
34
55
  export interface DiscordProvider {
35
56
  readonly applicationId: string;
36
57
  readonly botUserId: string;