@gajae-code/coding-agent 0.11.4 → 0.11.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 +23 -0
- package/dist/types/cli/notify-cli.d.ts +5 -1
- package/dist/types/config/settings-schema.d.ts +20 -0
- package/dist/types/export/html/template.generated.d.ts +1 -1
- package/dist/types/gjc-runtime/deep-interview-state.d.ts +28 -0
- package/dist/types/gjc-runtime/launch-tmux.d.ts +3 -0
- package/dist/types/gjc-runtime/managed-owner-admission.d.ts +42 -0
- package/dist/types/gjc-runtime/managed-owner-supervisor.d.ts +41 -0
- package/dist/types/gjc-runtime/tmux-owner-isolation.d.ts +9 -0
- package/dist/types/gjc-runtime/ultragoal-owner-loss-recovery.d.ts +94 -0
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +1 -0
- package/dist/types/harness-control-plane/owner.d.ts +3 -1
- package/dist/types/internal-urls/local-protocol.d.ts +18 -0
- package/dist/types/main.d.ts +2 -2
- package/dist/types/modes/components/ansi-display-validator.d.ts +2 -0
- package/dist/types/modes/components/notifications-settings-editor.d.ts +4 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +3 -1
- package/dist/types/modes/components/settings-selector.d.ts +2 -0
- package/dist/types/modes/components/tool-transcript-format.d.ts +58 -0
- package/dist/types/modes/components/transcript-viewer-overlay.d.ts +3 -0
- package/dist/types/modes/controllers/goal-mode-controller.d.ts +8 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +15 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-broker.d.ts +3 -0
- package/dist/types/modes/shared/agent-wire/workflow-gate-types.d.ts +16 -0
- package/dist/types/plan-mode/approved-plan.d.ts +1 -0
- package/dist/types/runtime-mcp/manager.d.ts +2 -0
- package/dist/types/runtime-mcp/oauth-discovery.d.ts +12 -1
- package/dist/types/sdk/bus/chat-daemon-cli.d.ts +3 -1
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +39 -4
- package/dist/types/sdk/bus/config-commands.d.ts +8 -0
- package/dist/types/sdk/bus/config.d.ts +22 -0
- package/dist/types/sdk/bus/index.d.ts +162 -2
- package/dist/types/sdk/bus/notification-service.d.ts +71 -8
- package/dist/types/sdk/bus/session-control.d.ts +11 -8
- package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +5 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +6 -3
- package/dist/types/sdk/bus/telegram-daemon-control.d.ts +23 -4
- package/dist/types/sdk/bus/telegram-daemon.d.ts +214 -20
- package/dist/types/sdk/session.d.ts +16 -1
- package/dist/types/secrets/index.d.ts +4 -2
- package/dist/types/secrets/obfuscator.d.ts +1 -1
- package/dist/types/session/agent-session.d.ts +31 -2
- package/dist/types/session/artifacts.d.ts +30 -8
- package/dist/types/session/internal/managed-session-scope.d.ts +7 -0
- package/dist/types/session/internal/managed-session-storage.d.ts +63 -6
- package/dist/types/session/session-manager.d.ts +88 -18
- package/dist/types/session/session-storage.d.ts +27 -0
- package/dist/types/session/streaming-output.d.ts +4 -0
- package/dist/types/task/executor.d.ts +9 -0
- package/dist/types/tool-discovery/tool-index.d.ts +2 -0
- package/dist/types/tools/ask.d.ts +48 -0
- package/dist/types/tools/bash-skill-urls.d.ts +2 -2
- package/dist/types/tools/index.d.ts +4 -0
- package/package.json +9 -9
- package/scripts/generate-sdk-operation-inventory.ts +2 -0
- package/src/cli/notify-cli.ts +40 -18
- package/src/commands/sdk.ts +7 -2
- package/src/config/settings-schema.ts +17 -0
- package/src/daemon/runtime.ts +2 -2
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +70 -49
- package/src/defaults/gjc/skills/ralplan/SKILL.md +0 -6
- package/src/defaults/gjc/skills/team/SKILL.md +7 -9
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +0 -2
- package/src/eval/py/index.ts +2 -2
- package/src/export/html/template.generated.ts +1 -1
- package/src/extensibility/plugins/marketplace/manager.ts +94 -10
- package/src/gjc-runtime/deep-interview-recorder.ts +7 -0
- package/src/gjc-runtime/deep-interview-runtime.ts +10 -0
- package/src/gjc-runtime/deep-interview-state.ts +127 -3
- package/src/gjc-runtime/launch-tmux.ts +61 -6
- package/src/gjc-runtime/managed-owner-admission.ts +352 -0
- package/src/gjc-runtime/managed-owner-supervisor.ts +162 -0
- package/src/gjc-runtime/state-runtime.ts +38 -12
- package/src/gjc-runtime/team-runtime.ts +1 -1
- package/src/gjc-runtime/tmux-owner-isolation.ts +117 -0
- package/src/gjc-runtime/ultragoal-owner-loss-recovery.ts +328 -0
- package/src/gjc-runtime/ultragoal-runtime.ts +14 -0
- package/src/harness-control-plane/owner.ts +59 -3
- package/src/hindsight/client.ts +65 -2
- package/src/internal-urls/agent-protocol.ts +76 -5
- package/src/internal-urls/docs-index.generated.ts +7 -6
- package/src/internal-urls/local-protocol.ts +416 -18
- package/src/lsp/index.ts +4 -88
- package/src/main.ts +37 -13
- package/src/modes/acp/acp-agent.ts +8 -0
- package/src/modes/components/ansi-display-validator.ts +54 -0
- package/src/modes/components/notifications-settings-editor.ts +26 -2
- package/src/modes/components/session-observer-overlay.ts +40 -24
- package/src/modes/components/settings-selector.ts +3 -1
- package/src/modes/components/tool-transcript-format.ts +321 -0
- package/src/modes/components/transcript-viewer-overlay.ts +39 -17
- package/src/modes/controllers/goal-mode-controller.ts +20 -1
- package/src/modes/controllers/plan-mode-controller.ts +2 -0
- package/src/modes/controllers/runtime-mcp-command-controller.ts +3 -0
- package/src/modes/controllers/selector-controller.ts +70 -8
- package/src/modes/interactive-mode.ts +1 -0
- package/src/modes/shared/agent-wire/deep-interview-gate.ts +31 -1
- package/src/modes/shared/agent-wire/workflow-gate-broker.ts +17 -1
- package/src/modes/shared/agent-wire/workflow-gate-schema.ts +4 -2
- package/src/modes/shared/agent-wire/workflow-gate-types.ts +120 -3
- package/src/plan-mode/approved-plan.ts +3 -1
- package/src/prompts/agents/architect.md +1 -0
- package/src/prompts/agents/critic.md +1 -0
- package/src/prompts/system/custom-system-prompt.md +1 -1
- package/src/prompts/system/system-prompt.md +2 -1
- package/src/prompts/tools/lsp.md +3 -3
- package/src/runtime-mcp/manager.ts +16 -1
- package/src/runtime-mcp/oauth-discovery.ts +116 -26
- package/src/sdk/broker/session-index.ts +122 -64
- package/src/sdk/bus/chat-daemon-cli.ts +72 -10
- package/src/sdk/bus/chat-daemon-control.ts +526 -130
- package/src/sdk/bus/chat-daemon-runtime.ts +1 -0
- package/src/sdk/bus/config-commands.ts +22 -0
- package/src/sdk/bus/config.ts +37 -0
- package/src/sdk/bus/index.ts +384 -92
- package/src/sdk/bus/lifecycle-control-runtime.ts +53 -3
- package/src/sdk/bus/notification-service.ts +284 -62
- package/src/sdk/bus/recent-activity.ts +14 -5
- package/src/sdk/bus/session-control.ts +150 -44
- package/src/sdk/bus/telegram-daemon-cli.ts +20 -14
- package/src/sdk/bus/telegram-daemon-contract.ts +6 -3
- package/src/sdk/bus/telegram-daemon-control.ts +294 -76
- package/src/sdk/bus/telegram-daemon.ts +1788 -267
- package/src/sdk/protocol/operation-inventory.generated.json +11 -0
- package/src/sdk/session.ts +155 -27
- package/src/secrets/index.ts +53 -10
- package/src/secrets/obfuscator.ts +21 -18
- package/src/secrets/regex.ts +2 -0
- package/src/session/agent-session.ts +495 -253
- package/src/session/artifacts.ts +188 -23
- package/src/session/context-estimation.ts +7 -2
- package/src/session/internal/managed-session-scope.ts +200 -38
- package/src/session/internal/managed-session-storage.ts +1152 -46
- package/src/session/session-manager.ts +1055 -148
- package/src/session/session-storage.ts +109 -11
- package/src/session/streaming-output.ts +6 -0
- package/src/task/executor.ts +71 -26
- package/src/task/index.ts +63 -20
- package/src/tool-discovery/tool-index.ts +18 -0
- package/src/tools/ask.ts +129 -32
- package/src/tools/bash-skill-urls.ts +14 -3
- package/src/tools/bash.ts +2 -2
- package/src/tools/index.ts +4 -0
- package/src/tools/plan-mode-guard.ts +1 -0
- package/src/tools/sqlite-reader.ts +3 -2
- package/src/tools/subagent.ts +2 -0
|
@@ -365,6 +365,7 @@ export class ChatDaemonRuntime {
|
|
|
365
365
|
private async handleFrame(attached: AttachedSession, frame: Record<string, unknown>): Promise<void> {
|
|
366
366
|
if (this.#sessions.get(attached.sessionId) !== attached) return;
|
|
367
367
|
const normalizedFrame = notificationFrame(frame);
|
|
368
|
+
if (normalizedFrame.type === "turn_stream" && normalizedFrame.phase === "live") return;
|
|
368
369
|
const frameSessionId = sessionIdFrom(normalizedFrame) ?? sessionIdFrom(frame);
|
|
369
370
|
if (frameSessionId !== undefined && frameSessionId !== attached.sessionId) return;
|
|
370
371
|
const sessionId = attached.sessionId;
|
|
@@ -168,3 +168,25 @@ export function parseRichToggleCommand(text: string): boolean | undefined {
|
|
|
168
168
|
if (arg === "off" || arg === "false" || arg === "0") return false;
|
|
169
169
|
return undefined;
|
|
170
170
|
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Parse a `/toolactivity on|off` toggle for Telegram tool-activity delivery.
|
|
174
|
+
*
|
|
175
|
+
* This is daemon-local delivery policy rather than a host-session config
|
|
176
|
+
* command, so it works without a connected session and persists globally.
|
|
177
|
+
* Addressed commands are accepted only for the exact current bot username.
|
|
178
|
+
*/
|
|
179
|
+
export function parseToolActivityToggleCommand(text: string, botUsername?: string): boolean | undefined {
|
|
180
|
+
const trimmed = text.trim();
|
|
181
|
+
if (!trimmed.startsWith("/")) return undefined;
|
|
182
|
+
const [rawCommand, ...rest] = trimmed.slice(1).split(/\s+/);
|
|
183
|
+
if (!rawCommand || rest.length !== 1) return undefined;
|
|
184
|
+
if (rawCommand.endsWith("@") || rawCommand.indexOf("@") !== rawCommand.lastIndexOf("@")) return undefined;
|
|
185
|
+
const { name, suffix } = splitTelegramBotSuffix(rawCommand);
|
|
186
|
+
if (name !== "toolactivity") return undefined;
|
|
187
|
+
if (suffix && (!botUsername || suffix !== botUsername.toLowerCase())) return undefined;
|
|
188
|
+
const arg = rest[0]!.toLowerCase();
|
|
189
|
+
if (arg === "on" || arg === "true" || arg === "1") return true;
|
|
190
|
+
if (arg === "off" || arg === "false" || arg === "0") return false;
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
package/src/sdk/bus/config.ts
CHANGED
|
@@ -64,6 +64,12 @@ export interface NotificationSettingsSnapshot {
|
|
|
64
64
|
richDraft: {
|
|
65
65
|
enabled: boolean;
|
|
66
66
|
};
|
|
67
|
+
toolActivity: {
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
};
|
|
70
|
+
streaming: {
|
|
71
|
+
enabled: boolean;
|
|
72
|
+
};
|
|
67
73
|
topics: {
|
|
68
74
|
nameTemplate?: string;
|
|
69
75
|
};
|
|
@@ -141,6 +147,8 @@ export function parseNotificationSettingsSnapshot(rawConfig?: unknown): Notifica
|
|
|
141
147
|
const btw = notificationSettingsObject(telegram.btw);
|
|
142
148
|
const rich = notificationSettingsObject(telegram.rich);
|
|
143
149
|
const richDraft = notificationSettingsObject(telegram.richDraft);
|
|
150
|
+
const toolActivity = notificationSettingsObject(telegram.toolActivity);
|
|
151
|
+
const streaming = notificationSettingsObject(telegram.streaming);
|
|
144
152
|
const topics = notificationSettingsObject(telegram.topics);
|
|
145
153
|
const activation = readTelegramActivationMarkers(notificationSettingsObject(telegram.activation));
|
|
146
154
|
const discord = notificationSettingsObject(notifications.discord);
|
|
@@ -161,6 +169,12 @@ export function parseNotificationSettingsSnapshot(rawConfig?: unknown): Notifica
|
|
|
161
169
|
richDraft: {
|
|
162
170
|
enabled: notificationSettingsBoolean(richDraft.enabled, false),
|
|
163
171
|
},
|
|
172
|
+
toolActivity: {
|
|
173
|
+
enabled: notificationSettingsBoolean(toolActivity.enabled, true),
|
|
174
|
+
},
|
|
175
|
+
streaming: {
|
|
176
|
+
enabled: notificationSettingsBoolean(streaming.enabled, true),
|
|
177
|
+
},
|
|
164
178
|
topics: {
|
|
165
179
|
nameTemplate: notificationSettingsString(topics.nameTemplate),
|
|
166
180
|
},
|
|
@@ -224,6 +238,12 @@ export interface NotificationConfig {
|
|
|
224
238
|
richDraft: {
|
|
225
239
|
enabled: boolean;
|
|
226
240
|
};
|
|
241
|
+
toolActivity: {
|
|
242
|
+
enabled: boolean;
|
|
243
|
+
};
|
|
244
|
+
streaming: {
|
|
245
|
+
enabled: boolean;
|
|
246
|
+
};
|
|
227
247
|
topics: {
|
|
228
248
|
/**
|
|
229
249
|
* Optional Telegram forum-topic name template with `{repo}`, `{branch}`,
|
|
@@ -253,6 +273,8 @@ export function getNotificationConfig(settings: NotificationSettingsReader): Not
|
|
|
253
273
|
rich: snapshot.telegram.rich,
|
|
254
274
|
btw: snapshot.telegram.btw,
|
|
255
275
|
richDraft: snapshot.telegram.richDraft,
|
|
276
|
+
toolActivity: snapshot.telegram.toolActivity,
|
|
277
|
+
streaming: snapshot.telegram.streaming,
|
|
256
278
|
topics: snapshot.telegram.topics,
|
|
257
279
|
};
|
|
258
280
|
}
|
|
@@ -313,6 +335,21 @@ export function hasNonBlankValue(value: string | undefined): boolean {
|
|
|
313
335
|
return typeof value === "string" && value.trim().length > 0;
|
|
314
336
|
}
|
|
315
337
|
|
|
338
|
+
/**
|
|
339
|
+
* Resolve live assistant streaming independently of generic notification
|
|
340
|
+
* lifecycle enablement. Explicit environment values override the durable
|
|
341
|
+
* Telegram preference; otherwise streaming is available only to an active
|
|
342
|
+
* configured Telegram identity.
|
|
343
|
+
*/
|
|
344
|
+
export function isNotificationStreamingEnabled(input: { cfg: NotificationConfig; env: NodeJS.ProcessEnv }): boolean {
|
|
345
|
+
const override = input.env.GJC_NOTIFICATIONS_STREAM?.trim().toLowerCase();
|
|
346
|
+
if (override === "1") return true;
|
|
347
|
+
if (override === "0" || override === "off" || override === "false") return false;
|
|
348
|
+
return (
|
|
349
|
+
input.cfg.streaming.enabled && isTelegramConfigured(input.cfg) && !getCurrentTelegramActivationMarker(input.cfg)
|
|
350
|
+
);
|
|
351
|
+
}
|
|
352
|
+
|
|
316
353
|
/** Is Telegram configured with usable non-blank boundary credentials? */
|
|
317
354
|
export function isTelegramConfigured(
|
|
318
355
|
cfg: NotificationConfig,
|