@gajae-code/coding-agent 0.12.0 → 0.12.2
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 +111 -0
- package/dist/types/async/job-manager.d.ts +17 -3
- package/dist/types/config/settings-schema.d.ts +56 -2
- package/dist/types/exa/mcp-client.d.ts +10 -1
- package/dist/types/exec/bash-executor.d.ts +45 -12
- package/dist/types/extensibility/extensions/types.d.ts +16 -2
- package/dist/types/extensibility/gjc-plugins/index.d.ts +12 -2
- package/dist/types/extensibility/gjc-plugins/installer.d.ts +63 -7
- package/dist/types/extensibility/gjc-plugins/lifecycle-reconciliation.d.ts +55 -0
- package/dist/types/extensibility/gjc-plugins/lifecycle.d.ts +64 -0
- package/dist/types/extensibility/gjc-plugins/runtime-quarantine.d.ts +67 -0
- package/dist/types/extensibility/gjc-plugins/session-validation.d.ts +3 -1
- package/dist/types/extensibility/gjc-plugins/types.d.ts +124 -0
- package/dist/types/gjc-runtime/launch-tmux.d.ts +1 -0
- package/dist/types/gjc-runtime/ralplan-review-conflicts.d.ts +114 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +23 -3
- package/dist/types/gjc-runtime/team-launch.d.ts +1 -1
- package/dist/types/gjc-runtime/team-runtime.d.ts +25 -0
- package/dist/types/gjc-runtime/team-worker-heartbeat.d.ts +43 -0
- package/dist/types/gjc-runtime/tmux-owner-isolation.d.ts +10 -0
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +37 -80
- package/dist/types/modes/acp/acp-agent.d.ts +2 -19
- package/dist/types/modes/components/gjc-bundle-settings.d.ts +34 -0
- package/dist/types/modes/components/irc-sidebar.d.ts +16 -0
- package/dist/types/modes/components/notifications-settings-editor.d.ts +1 -0
- package/dist/types/modes/components/session-observer-overlay.d.ts +18 -0
- package/dist/types/modes/components/settings-selector.d.ts +9 -0
- package/dist/types/modes/components/status-line/gh.d.ts +5 -0
- package/dist/types/modes/components/transcript-viewer-overlay.d.ts +18 -1
- package/dist/types/modes/controllers/command-controller.d.ts +1 -1
- package/dist/types/modes/controllers/event-controller.d.ts +1 -1
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +2 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +1 -1
- package/dist/types/modes/interactive-mode.d.ts +9 -0
- package/dist/types/modes/theme/theme.d.ts +3 -1
- package/dist/types/modes/types.d.ts +32 -0
- package/dist/types/reminders/star-reminder.d.ts +3 -13
- package/dist/types/runtime-mcp/manager.d.ts +1 -0
- package/dist/types/sdk/acp/adapter.d.ts +3 -1
- package/dist/types/sdk/broker/transport.d.ts +2 -0
- package/dist/types/sdk/bus/attachment-registry.d.ts +1 -0
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +5 -1
- package/dist/types/sdk/bus/config.d.ts +6 -2
- package/dist/types/sdk/bus/index.d.ts +29 -0
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +8 -1
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +4 -0
- package/dist/types/sdk/bus/reconciliation-store.d.ts +7 -3
- package/dist/types/sdk/bus/rich-draft.d.ts +1 -0
- package/dist/types/sdk/bus/rich-render.d.ts +2 -0
- package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +165 -0
- package/dist/types/sdk/bus/telegram-cli.d.ts +12 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +12 -4
- package/dist/types/sdk/bus/telegram-daemon.d.ts +25 -1
- package/dist/types/sdk/bus/telegram-reference.d.ts +11 -1
- package/dist/types/sdk/bus/threaded-render.d.ts +3 -2
- package/dist/types/sdk/bus/topic-registry.d.ts +11 -1
- package/dist/types/sdk/host/query/revision-store.d.ts +2 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
- package/dist/types/sdk/prompt-status.d.ts +23 -3
- package/dist/types/sdk/session.d.ts +6 -0
- package/dist/types/session/agent-session.d.ts +40 -2
- package/dist/types/session/artifacts.d.ts +8 -0
- package/dist/types/session/blob-store.d.ts +57 -4
- package/dist/types/session/internal/managed-session-storage.d.ts +30 -4
- package/dist/types/session/session-manager.d.ts +23 -6
- package/dist/types/session/session-storage.d.ts +4 -0
- package/dist/types/session/streaming-output.d.ts +36 -7
- package/dist/types/setup/credential-import.d.ts +12 -0
- package/dist/types/skill-state/active-state.d.ts +12 -0
- package/dist/types/skill-state/workflow-hud.d.ts +6 -0
- package/dist/types/task/executor.d.ts +3 -2
- package/dist/types/task/index.d.ts +7 -1
- package/dist/types/task/output-manager.d.ts +1 -0
- package/dist/types/task/provider-retry-status.d.ts +8 -0
- package/dist/types/task/receipt.d.ts +9 -1
- package/dist/types/task/types.d.ts +23 -0
- package/dist/types/tools/ask-answer-registry.d.ts +2 -2
- package/dist/types/tools/bash-interactive.d.ts +4 -1
- package/dist/types/tools/bash.d.ts +3 -1
- package/dist/types/tools/image-gen.d.ts +4 -0
- package/dist/types/tools/index.d.ts +6 -0
- package/dist/types/tools/output-meta.d.ts +23 -2
- package/dist/types/tools/path-utils.d.ts +1 -0
- package/dist/types/tools/read.d.ts +0 -6
- package/dist/types/tools/review.d.ts +5 -7
- package/dist/types/tools/subagent.d.ts +2 -0
- package/dist/types/utils/gh.d.ts +13 -0
- package/dist/types/utils/image-resize.d.ts +1 -0
- package/dist/types/web/search/providers/kimi.d.ts +2 -0
- package/dist/types/web/search/providers/searxng.d.ts +7 -0
- package/dist/types/web/search/providers/xai.d.ts +2 -0
- package/package.json +10 -8
- package/scripts/acp-conformance-agent.ts +218 -0
- package/scripts/capture-gjc-bundle-settings.ts +306 -0
- package/scripts/dogfood-ralplan-review-conflicts.ts +272 -0
- package/scripts/generate-sdk-operation-inventory.ts +5 -0
- package/scripts/resident-memory-bench.ts +1341 -0
- package/scripts/run-acp-conformance.ts +290 -0
- package/src/async/job-manager.ts +99 -39
- package/src/cli/fast-help.ts +1 -1
- package/src/cli/plugin-cli.ts +176 -18
- package/src/commands/team.ts +19 -1
- package/src/config/file-lock.ts +11 -2
- package/src/config/settings-schema.ts +53 -2
- package/src/coordinator-mcp/question-gate-codec.ts +1 -1
- package/src/coordinator-mcp/server.ts +5 -12
- package/src/debug/index.ts +42 -17
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +1 -0
- package/src/defaults/gjc/skills/ralplan/SKILL.md +25 -20
- package/src/defaults/gjc/skills/team/SKILL.md +2 -0
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +39 -26
- package/src/defaults/gjc/skills/ultragoal/validation-batch-contracts.md +12 -0
- package/src/defaults/gjc-defaults.ts +4 -4
- package/src/exa/mcp-client.ts +12 -3
- package/src/exec/bash-executor.ts +144 -27
- package/src/extensibility/extensions/runner.ts +15 -0
- package/src/extensibility/extensions/types.ts +18 -1
- package/src/extensibility/gjc-plugins/constrained-hooks.ts +8 -2
- package/src/extensibility/gjc-plugins/index.ts +19 -2
- package/src/extensibility/gjc-plugins/installer.ts +189 -50
- package/src/extensibility/gjc-plugins/lifecycle-reconciliation.ts +199 -0
- package/src/extensibility/gjc-plugins/lifecycle.ts +626 -0
- package/src/extensibility/gjc-plugins/observability.ts +3 -3
- package/src/extensibility/gjc-plugins/prompt-appendix.ts +5 -1
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +12 -2
- package/src/extensibility/gjc-plugins/runtime-quarantine.ts +121 -0
- package/src/extensibility/gjc-plugins/schema.ts +84 -12
- package/src/extensibility/gjc-plugins/session-validation.ts +9 -3
- package/src/extensibility/gjc-plugins/types.ts +141 -0
- package/src/extensibility/gjc-plugins/validation.ts +9 -0
- package/src/gjc-runtime/launch-tmux.ts +25 -6
- package/src/gjc-runtime/launch-worktree.ts +103 -1
- package/src/gjc-runtime/ledger-event-renderer.ts +1 -0
- package/src/gjc-runtime/managed-owner-admission.ts +1 -1
- package/src/gjc-runtime/ralplan-review-conflicts.ts +472 -0
- package/src/gjc-runtime/ralplan-runtime.ts +491 -27
- package/src/gjc-runtime/team-launch.ts +8 -0
- package/src/gjc-runtime/team-runtime.ts +140 -32
- package/src/gjc-runtime/team-worker-heartbeat.ts +149 -0
- package/src/gjc-runtime/tmux-owner-isolation.ts +10 -0
- package/src/gjc-runtime/tmux-sessions.ts +58 -13
- package/src/gjc-runtime/ultragoal-evidence.ts +6 -74
- package/src/gjc-runtime/ultragoal-runtime.ts +635 -612
- package/src/gjc-runtime/workflow-manifest.generated.json +37 -99
- package/src/gjc-runtime/workflow-manifest.ts +21 -70
- package/src/internal-urls/docs-index.generated.ts +16 -16
- package/src/modes/DESIGN.md +104 -0
- package/src/modes/acp/acp-agent.ts +298 -186
- package/src/modes/components/gjc-bundle-settings.ts +508 -0
- package/src/modes/components/irc-sidebar.ts +30 -1
- package/src/modes/components/notifications-settings-editor.ts +12 -1
- package/src/modes/components/oauth-selector.ts +68 -30
- package/src/modes/components/session-observer-overlay.ts +305 -86
- package/src/modes/components/settings-selector.ts +56 -5
- package/src/modes/components/status-line/gh.ts +16 -0
- package/src/modes/components/tool-status-header.ts +3 -15
- package/src/modes/components/transcript-viewer-overlay.ts +99 -24
- package/src/modes/controllers/command-controller.ts +42 -34
- package/src/modes/controllers/event-controller.ts +27 -16
- package/src/modes/controllers/extension-ui-controller.ts +193 -34
- package/src/modes/controllers/selector-controller.ts +160 -22
- package/src/modes/interactive-mode.ts +189 -62
- package/src/modes/jobs-observer.ts +1 -1
- package/src/modes/runtime-init.ts +3 -0
- package/src/modes/theme/theme.ts +11 -9
- package/src/modes/types.ts +88 -0
- package/src/prompts/agent-fragments/ralplan-persistence.md +4 -3
- package/src/prompts/system/eager-todo.md +8 -4
- package/src/prompts/system/system-prompt.md +11 -4
- package/src/prompts/tools/bash.md +5 -5
- package/src/prompts/tools/search-tool-bm25.md +5 -0
- package/src/prompts/tools/task.md +1 -1
- package/src/reminders/star-reminder.ts +4 -42
- package/src/runtime-mcp/manager.ts +19 -4
- package/src/sdk/acp/adapter.ts +22 -6
- package/src/sdk/broker/lifecycle.ts +18 -13
- package/src/sdk/broker/transport.ts +35 -3
- package/src/sdk/bus/attachment-registry.ts +5 -1
- package/src/sdk/bus/chat-daemon-cli.ts +4 -39
- package/src/sdk/bus/chat-daemon-control.ts +7 -3
- package/src/sdk/bus/config.ts +18 -2
- package/src/sdk/bus/index.ts +661 -126
- package/src/sdk/bus/kind-aware-reconciliation.ts +148 -73
- package/src/sdk/bus/lifecycle-commands.ts +4 -1
- package/src/sdk/bus/lifecycle-control-runtime.ts +403 -88
- package/src/sdk/bus/reconciliation-store.ts +95 -16
- package/src/sdk/bus/rich-draft.ts +1 -1
- package/src/sdk/bus/rich-render.ts +2 -2
- package/src/sdk/bus/telegram-adoption-intent.ts +574 -0
- package/src/sdk/bus/telegram-cli.ts +33 -8
- package/src/sdk/bus/telegram-daemon-cli.ts +1 -0
- package/src/sdk/bus/telegram-daemon-contract.ts +12 -4
- package/src/sdk/bus/telegram-daemon.ts +916 -23
- package/src/sdk/bus/telegram-reference.ts +40 -3
- package/src/sdk/bus/threaded-render.ts +48 -3
- package/src/sdk/bus/topic-registry.ts +20 -0
- package/src/sdk/host/query/revision-store.ts +36 -2
- package/src/sdk/host/reverse-leases.ts +44 -7
- package/src/sdk/prompt-status.ts +16 -3
- package/src/sdk/protocol/operation-inventory.generated.json +33 -0
- package/src/sdk/session.ts +89 -9
- package/src/session/agent-session.ts +844 -173
- package/src/session/artifacts.ts +22 -0
- package/src/session/auth-broker-config.ts +10 -3
- package/src/session/blob-store.ts +915 -24
- package/src/session/internal/managed-session-scope.ts +200 -111
- package/src/session/internal/managed-session-storage.ts +492 -62
- package/src/session/session-manager.ts +1614 -435
- package/src/session/session-storage.ts +38 -45
- package/src/session/streaming-output.ts +238 -68
- package/src/setup/credential-import.ts +75 -13
- package/src/skill-state/active-state.ts +32 -0
- package/src/skill-state/workflow-hud.ts +17 -0
- package/src/skill-state/workflow-mutation-guard.ts +496 -2
- package/src/task/executor.ts +122 -39
- package/src/task/index.ts +280 -45
- package/src/task/output-manager.ts +24 -14
- package/src/task/provider-retry-status.ts +16 -0
- package/src/task/receipt.ts +34 -8
- package/src/task/render.ts +6 -2
- package/src/task/types.ts +108 -0
- package/src/tools/ask-answer-registry.ts +12 -6
- package/src/tools/ask.ts +86 -55
- package/src/tools/ast-edit.ts +1 -0
- package/src/tools/ast-grep.ts +1 -0
- package/src/tools/bash-interactive.ts +8 -3
- package/src/tools/bash.ts +503 -60
- package/src/tools/find.ts +1 -0
- package/src/tools/image-gen.ts +29 -5
- package/src/tools/index.ts +6 -0
- package/src/tools/output-meta.ts +108 -14
- package/src/tools/path-utils.ts +3 -2
- package/src/tools/read.ts +18 -0
- package/src/tools/review.ts +5 -7
- package/src/tools/search.ts +1 -0
- package/src/tools/subagent-render.ts +6 -2
- package/src/tools/subagent.ts +6 -0
- package/src/tools/telegram-send.ts +6 -3
- package/src/utils/gh.ts +39 -0
- package/src/utils/image-resize.ts +3 -0
- package/src/web/search/providers/anthropic.ts +4 -4
- package/src/web/search/providers/kimi.ts +15 -5
- package/src/web/search/providers/searxng.ts +47 -4
- package/src/web/search/providers/xai.ts +7 -2
- package/dist/types/gjc-runtime/ultragoal-pipeline.d.ts +0 -23
- package/src/defaults/gjc/skills/ultragoal/pipeline-validation-contracts.md +0 -30
- package/src/gjc-runtime/ultragoal-pipeline.ts +0 -306
|
@@ -5,37 +5,6 @@ export { CRITIC_GATE_HARD_STOP_EVENT, CRITIC_GATE_OVERRIDE_EVENT, CRITIC_VERDICT
|
|
|
5
5
|
export { captureUltragoalRecoverySnapshot, parseStrictTerminalTranscript, persistUltragoalRecoveryDecision, planUltragoalOwnerLossRecovery, type UltragoalOwnerLossReceipt, type UltragoalRecoveryBinding, type UltragoalRecoveryDecision, type UltragoalRecoverySnapshot, validateOwnerLossBinding, validateRawUltragoalEvidence, validateRecoveryAdmission, validateRecoveryPath, } from "./ultragoal-owner-loss-recovery";
|
|
6
6
|
export type UltragoalGjcGoalMode = "aggregate" | "per-story";
|
|
7
7
|
export type UltragoalGoalStatus = "pending" | "active" | "complete" | "failed" | "blocked" | "review_blocked" | "superseded";
|
|
8
|
-
export type UltragoalPipelineMetadataSource = "original_plan_graph" | "legacy_brief_only" | "steering";
|
|
9
|
-
export type UltragoalPipelineOverlapState = "none" | "open" | "joined_clean" | "blocked_disjoint_continue" | "quarantine_required" | "rebaseline_complete";
|
|
10
|
-
export interface UltragoalPipelineTargets extends JsonObject {
|
|
11
|
-
files: string[];
|
|
12
|
-
surfaces: string[];
|
|
13
|
-
}
|
|
14
|
-
export interface UltragoalPipelineMetadata extends JsonObject {
|
|
15
|
-
schemaVersion: 1;
|
|
16
|
-
goalId: string;
|
|
17
|
-
source: UltragoalPipelineMetadataSource;
|
|
18
|
-
eligible: boolean;
|
|
19
|
-
dependsOn: string[];
|
|
20
|
-
independentOf: string[];
|
|
21
|
-
targets: UltragoalPipelineTargets;
|
|
22
|
-
metadataHash: string;
|
|
23
|
-
overlap: UltragoalPipelineOverlapState;
|
|
24
|
-
overlapId?: string;
|
|
25
|
-
priorGoalId?: string;
|
|
26
|
-
nextGoalId?: string;
|
|
27
|
-
blockerFootprints?: UltragoalPipelineTargets[];
|
|
28
|
-
invalidationReason?: string;
|
|
29
|
-
invalidatedAt?: string;
|
|
30
|
-
}
|
|
31
|
-
export interface UltragoalGoalMetadataInput {
|
|
32
|
-
schemaVersion: 1;
|
|
33
|
-
goalId: string;
|
|
34
|
-
source: UltragoalPipelineMetadataSource;
|
|
35
|
-
dependsOn?: string[];
|
|
36
|
-
independentOf?: string[];
|
|
37
|
-
targets?: Partial<UltragoalPipelineTargets>;
|
|
38
|
-
}
|
|
39
8
|
export interface UltragoalValidationBatchMetadata extends JsonObject {
|
|
40
9
|
schemaVersion: 1;
|
|
41
10
|
batchId: string;
|
|
@@ -50,31 +19,6 @@ export interface UltragoalValidationBatchInput {
|
|
|
50
19
|
memberIds: string[];
|
|
51
20
|
finalGoalId: string;
|
|
52
21
|
}
|
|
53
|
-
export interface UltragoalPipelineOverlapHandles extends JsonObject {
|
|
54
|
-
review: JsonObject;
|
|
55
|
-
qa: JsonObject;
|
|
56
|
-
implementation: JsonObject;
|
|
57
|
-
}
|
|
58
|
-
export interface UltragoalPipelineOverlapReceipt extends JsonObject {
|
|
59
|
-
ok: true;
|
|
60
|
-
event: string;
|
|
61
|
-
overlap_id: string;
|
|
62
|
-
prior_goal_id: string;
|
|
63
|
-
next_goal_id?: string;
|
|
64
|
-
goal_id?: string;
|
|
65
|
-
status?: UltragoalPipelineOverlapState;
|
|
66
|
-
next_goal_status?: UltragoalGoalStatus;
|
|
67
|
-
goals_path: string;
|
|
68
|
-
ledger_path: string;
|
|
69
|
-
}
|
|
70
|
-
export type UltragoalPipelineLedgerEventName = "pipeline_overlap_started" | "pipeline_overlap_joined" | "pipeline_overlap_blocked" | "pipeline_overlap_quarantined" | "pipeline_overlap_rebaselined";
|
|
71
|
-
export interface UltragoalPipelineLedgerEvent extends UltragoalLedgerEvent {
|
|
72
|
-
event: UltragoalPipelineLedgerEventName;
|
|
73
|
-
schemaVersion: 1;
|
|
74
|
-
overlapId: string;
|
|
75
|
-
priorGoalId: string;
|
|
76
|
-
nextGoalId: string;
|
|
77
|
-
}
|
|
78
22
|
export interface UltragoalGoal {
|
|
79
23
|
id: string;
|
|
80
24
|
title: string;
|
|
@@ -87,7 +31,6 @@ export interface UltragoalGoal {
|
|
|
87
31
|
evidence?: string;
|
|
88
32
|
steering?: Record<string, unknown>;
|
|
89
33
|
completionVerification?: UltragoalCompletionVerification;
|
|
90
|
-
pipelineMetadata?: UltragoalPipelineMetadata;
|
|
91
34
|
validationBatch?: UltragoalValidationBatchMetadata;
|
|
92
35
|
}
|
|
93
36
|
export interface UltragoalPlan {
|
|
@@ -204,7 +147,6 @@ export interface UltragoalStatusSummary {
|
|
|
204
147
|
nudgeRemaining?: number;
|
|
205
148
|
nudgeGoalId?: string;
|
|
206
149
|
nudgeTargetKind?: UltragoalNudgeTargetKind;
|
|
207
|
-
pipelineOverlap?: JsonObject;
|
|
208
150
|
}
|
|
209
151
|
export interface UltragoalCommandResult {
|
|
210
152
|
reviewBlockerGoalIds?: string[];
|
|
@@ -267,22 +209,6 @@ export declare function recordUltragoalNudgeIfBudgetRemaining(input: {
|
|
|
267
209
|
export declare function writePlan(cwd: string, plan: UltragoalPlan, sessionId?: string | null): Promise<void>;
|
|
268
210
|
export declare function nonEmptyString(value: unknown): string | null;
|
|
269
211
|
export declare function stringArray(value: unknown): string[] | null;
|
|
270
|
-
export declare function hashPipelineMetadata(metadata: Omit<UltragoalPipelineMetadata, "metadataHash">): string;
|
|
271
|
-
export declare function validateValidationBatchPipelineExclusion(goal: UltragoalGoal): void;
|
|
272
|
-
export declare function targetsAreDisjoint(left: UltragoalPipelineTargets, right: UltragoalPipelineTargets): boolean;
|
|
273
|
-
export declare function targetsOverlap(left: UltragoalPipelineTargets, right: UltragoalPipelineTargets): boolean;
|
|
274
|
-
export declare function requireNonEmptyPipelineTargets(value: unknown, fieldName: string): UltragoalPipelineTargets;
|
|
275
|
-
export declare function collectPipelineBlockerFootprints(result: JsonObject, fieldName: string): UltragoalPipelineTargets[];
|
|
276
|
-
export declare function pipelinePeer(plan: UltragoalPlan, metadata: UltragoalPipelineMetadata): UltragoalGoal | undefined;
|
|
277
|
-
export declare function handleIdsFromValue(value: JsonObject | JsonObject[], fieldName: string): string[];
|
|
278
|
-
export declare function resultHandleIds(value: JsonObject, fieldName: string): string[];
|
|
279
|
-
export declare function requireCoveredHandles(expected: readonly string[], actual: readonly string[], fieldName: string): void;
|
|
280
|
-
export declare function requireFreshPipelineMetadata(goal: UltragoalGoal): UltragoalPipelineMetadata;
|
|
281
|
-
export declare function openPipelineOverlap(plan: UltragoalPlan): {
|
|
282
|
-
prior: UltragoalGoal;
|
|
283
|
-
next: UltragoalGoal;
|
|
284
|
-
overlapId: string;
|
|
285
|
-
} | null;
|
|
286
212
|
export declare function readUltragoalPlan(cwd: string, sessionId?: string | null): Promise<UltragoalPlan | null>;
|
|
287
213
|
export declare function getUltragoalStatus(cwd: string, sessionId?: string | null): Promise<UltragoalStatusSummary>;
|
|
288
214
|
export declare function buildUltragoalHudSummary(summary: UltragoalStatusSummary, latestLedger?: UltragoalLedgerEvent): WorkflowHudSummary;
|
|
@@ -291,8 +217,6 @@ export declare function createUltragoalPlan(input: {
|
|
|
291
217
|
brief: string;
|
|
292
218
|
gjcGoalMode?: UltragoalGjcGoalMode;
|
|
293
219
|
sessionId?: string | null;
|
|
294
|
-
goalMetadata?: UltragoalGoalMetadataInput[];
|
|
295
|
-
goalMetadataJson?: string;
|
|
296
220
|
validationBatches?: UltragoalValidationBatchInput[];
|
|
297
221
|
validationBatchJson?: string;
|
|
298
222
|
}): Promise<UltragoalPlan>;
|
|
@@ -304,10 +228,6 @@ export interface UltragoalRunCompletionState {
|
|
|
304
228
|
hasBlockers: boolean;
|
|
305
229
|
needsFinalAggregateReceipt: boolean;
|
|
306
230
|
}
|
|
307
|
-
export declare function requireJsonObjectValue(value: unknown, fieldName: string): JsonObject;
|
|
308
|
-
export declare function requireJsonObjectOrArrayValue(value: unknown, fieldName: string): JsonObject | JsonObject[];
|
|
309
|
-
import { joinUltragoalPipelineOverlap, rebaselineUltragoalPipelineOverlap, startUltragoalPipelineOverlap } from "./ultragoal-pipeline";
|
|
310
|
-
export { joinUltragoalPipelineOverlap, rebaselineUltragoalPipelineOverlap, startUltragoalPipelineOverlap };
|
|
311
231
|
export declare function getUltragoalRunCompletionState(plan: UltragoalPlan, options?: {
|
|
312
232
|
retryFailed?: boolean;
|
|
313
233
|
}): UltragoalRunCompletionState;
|
|
@@ -343,6 +263,22 @@ export declare function startNextUltragoalGoal(input: {
|
|
|
343
263
|
}>;
|
|
344
264
|
export declare function qualityGateObject(value: unknown): JsonObject | null;
|
|
345
265
|
export declare function nonEmptyStringArray(value: unknown): string[] | null;
|
|
266
|
+
export interface UltragoalQualityGateDiagnostic {
|
|
267
|
+
path: string;
|
|
268
|
+
code: string;
|
|
269
|
+
message: string;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Collects every quality-gate defect in one pass instead of throwing on the first.
|
|
273
|
+
* Authoring a valid gate is otherwise an edit/retry loop at the most expensive phase
|
|
274
|
+
* of a run (#3474). The aggregate error message keeps each individual message verbatim
|
|
275
|
+
* so existing callers and assertions that match on a single message still work, and
|
|
276
|
+
* `diagnostics` carries the machine-readable stable `path` + `code` pairs.
|
|
277
|
+
*/
|
|
278
|
+
export declare class UltragoalQualityGateError extends Error {
|
|
279
|
+
readonly diagnostics: readonly UltragoalQualityGateDiagnostic[];
|
|
280
|
+
constructor(diagnostics: readonly UltragoalQualityGateDiagnostic[]);
|
|
281
|
+
}
|
|
346
282
|
export declare function requireQualityGateObject(value: unknown, fieldName: string): JsonObject;
|
|
347
283
|
export declare function requireObjectArray(value: unknown, fieldName: string): JsonObject[];
|
|
348
284
|
export declare function requiredStringField(row: JsonObject, key: string, fieldName: string): string;
|
|
@@ -386,6 +322,27 @@ export declare function validateExecutorQaRedTeamEvidenceForReview(cwd: string,
|
|
|
386
322
|
mode?: "review";
|
|
387
323
|
changeSet?: UltragoalChangeSet;
|
|
388
324
|
}): Promise<void>;
|
|
325
|
+
/**
|
|
326
|
+
* Scaffold a schema-shaped quality-gate template for selected surfaces (#3474).
|
|
327
|
+
* The template is intentionally incomplete for live artifact proofs so `quality-gate
|
|
328
|
+
* validate` can report remaining evidence gaps in one pass after the author fills paths.
|
|
329
|
+
*/
|
|
330
|
+
export declare function buildQualityGateInitTemplate(surfaces: readonly string[]): JsonObject;
|
|
331
|
+
/**
|
|
332
|
+
* Read-only quality-gate validation (#3474). Applies exactly the same rules as
|
|
333
|
+
* `checkpoint --status complete` — including deferred-vs-boundary gate selection and
|
|
334
|
+
* artifact existence checks — but never touches `goals.json`, `ledger.jsonl`, or goal
|
|
335
|
+
* state, and reports every diagnostic in one run instead of the first failure.
|
|
336
|
+
*/
|
|
337
|
+
export declare function validateUltragoalQualityGateReadOnly(input: {
|
|
338
|
+
cwd: string;
|
|
339
|
+
qualityGateJson: string;
|
|
340
|
+
goalId?: string;
|
|
341
|
+
sessionId?: string | null;
|
|
342
|
+
}): Promise<{
|
|
343
|
+
valid: boolean;
|
|
344
|
+
errors: readonly UltragoalQualityGateDiagnostic[];
|
|
345
|
+
}>;
|
|
389
346
|
export declare function checkpointUltragoalGoal(input: {
|
|
390
347
|
cwd: string;
|
|
391
348
|
goalId: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Agent, type AgentSideConnection, type AuthenticateRequest, type AuthenticateResponse, type AvailableCommand, type ClientCapabilities, type CloseSessionRequest, type CloseSessionResponse, type DeleteSessionRequest, type DeleteSessionResponse, type ForkSessionRequest, type ForkSessionResponse, type InitializeRequest, type InitializeResponse, type ListSessionsRequest, type ListSessionsResponse, type LoadSessionRequest, type LoadSessionResponse, type NewSessionRequest, type NewSessionResponse, type PromptRequest, type PromptResponse, type ResumeSessionRequest, type ResumeSessionResponse, type SetSessionConfigOptionRequest, type SetSessionConfigOptionResponse, type SetSessionModeRequest, type SetSessionModeResponse } from "@agentclientprotocol/sdk";
|
|
2
|
-
import { type AcpProviderRegistration, AcpSdkAdapter } from "../../sdk/acp";
|
|
2
|
+
import { type AcpProviderRegistration, type AcpReverseConnection, AcpSdkAdapter } from "../../sdk/acp";
|
|
3
3
|
import type { AcpStartupOptions } from "./startup-options";
|
|
4
4
|
export declare const ACP_BOOTSTRAP_RACE_GUARD_MS = 50;
|
|
5
5
|
type JsonObject = Record<string, unknown>;
|
|
@@ -205,28 +205,11 @@ export declare function acpPromptPayload(blocks: PromptRequest["prompt"]): {
|
|
|
205
205
|
export declare function acpRequestFailure(error: unknown): unknown;
|
|
206
206
|
/** Registers a permission provider only when the ACP client requires prompts. */
|
|
207
207
|
export declare function acpProviderRegistrations(capabilities: ClientCapabilities | undefined, env?: NodeJS.ProcessEnv): AcpProviderRegistration[];
|
|
208
|
+
export declare function createAcpReverseConnection(connection: AgentSideConnection, sessionId: string): AcpReverseConnection;
|
|
208
209
|
/** Maps ACP permission handling to the session's canonical SDK policy. */
|
|
209
210
|
export declare function applyAcpPermissionMode(adapter: Pick<AcpSdkAdapter, "control">, capabilities: ClientCapabilities | undefined, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
210
211
|
/** Applies CLI-provided ACP startup settings through SDK controls before session exposure. */
|
|
211
212
|
export declare function applyAcpStartupOptions(adapter: Pick<AcpSdkAdapter, "setModel" | "control">, options: AcpStartupOptions | undefined): Promise<void>;
|
|
212
|
-
/** ACP form elicitation uses the client-facing reverse surface without owning a session runtime. */
|
|
213
|
-
export declare function createAcpExtensionUiContext(connection: AgentSideConnection, getSessionId: () => string, capabilities: ClientCapabilities | undefined): {
|
|
214
|
-
select: (message: string, options: string[], dialog?: {
|
|
215
|
-
signal?: AbortSignal;
|
|
216
|
-
timeout?: number;
|
|
217
|
-
onTimeout?: () => void;
|
|
218
|
-
}) => Promise<string | undefined>;
|
|
219
|
-
confirm: (message: string, detail?: string, dialog?: {
|
|
220
|
-
signal?: AbortSignal;
|
|
221
|
-
timeout?: number;
|
|
222
|
-
onTimeout?: () => void;
|
|
223
|
-
}) => Promise<boolean>;
|
|
224
|
-
input: (message: string, placeholder?: string, dialog?: {
|
|
225
|
-
signal?: AbortSignal;
|
|
226
|
-
timeout?: number;
|
|
227
|
-
onTimeout?: () => void;
|
|
228
|
-
}) => Promise<string | undefined>;
|
|
229
|
-
};
|
|
230
213
|
/**
|
|
231
214
|
* ACP is a pure SDK client. Session processes are created and resumed by the
|
|
232
215
|
* broker, while all per-session operations use that session's authenticated SDK
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Container } from "@gajae-code/tui";
|
|
2
|
+
import { type GjcLifecycleContext } from "../../extensibility/gjc-plugins/lifecycle";
|
|
3
|
+
import { type GjcRuntimeSnapshotProvider } from "../../extensibility/gjc-plugins/runtime-quarantine";
|
|
4
|
+
import type { GjcBundleIdentity, GjcBundleSummary, GjcLifecycleResult, GjcReviewedUpdateToken, GjcToggleResult, GjcUpdateApplyResult, GjcUpdatePreview } from "../../extensibility/gjc-plugins/types";
|
|
5
|
+
/** Injectable lifecycle boundary; Settings never reads registries or executes bundle code. */
|
|
6
|
+
export interface GjcBundleLifecyclePort {
|
|
7
|
+
listGjcBundles(ctx: GjcLifecycleContext): Promise<GjcBundleSummary[]>;
|
|
8
|
+
getGjcBundle(ctx: GjcLifecycleContext, identity: GjcBundleIdentity): Promise<GjcLifecycleResult<GjcBundleSummary>>;
|
|
9
|
+
previewGjcBundleUpdate(ctx: GjcLifecycleContext, identity: GjcBundleIdentity): Promise<GjcLifecycleResult<GjcUpdatePreview>>;
|
|
10
|
+
applyGjcBundleUpdate(ctx: GjcLifecycleContext, token: GjcReviewedUpdateToken): Promise<GjcLifecycleResult<GjcUpdateApplyResult>>;
|
|
11
|
+
setGjcBundleEnabled(ctx: GjcLifecycleContext, identity: GjcBundleIdentity, enabled: boolean): Promise<GjcLifecycleResult<GjcToggleResult>>;
|
|
12
|
+
setGjcBundleSurfaceEnabled(ctx: GjcLifecycleContext, identity: GjcBundleIdentity, surfaceId: string, enabled: boolean): Promise<GjcLifecycleResult<GjcToggleResult>>;
|
|
13
|
+
}
|
|
14
|
+
export interface GjcBundleSettingsDependencies {
|
|
15
|
+
lifecycle?: GjcBundleLifecyclePort;
|
|
16
|
+
runtimeSnapshotProvider?: GjcRuntimeSnapshotProvider;
|
|
17
|
+
activationGeneration?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface GjcBundleSettingsCallbacks {
|
|
20
|
+
onClose: () => void;
|
|
21
|
+
onBundlesChanged?: () => void;
|
|
22
|
+
}
|
|
23
|
+
export type GjcBundleSettingsState = "loading" | "error" | "empty" | "list" | "detail" | "unsupported-source" | "update-review" | "update-confirm" | "update-running" | "update-result" | "stale-result" | "quarantined-blocked" | "mutation-in-flight-locked";
|
|
24
|
+
/** Scope-qualified, lifecycle-backed Settings UI for installed GJC bundles. */
|
|
25
|
+
export declare class GjcBundleSettingsComponent extends Container {
|
|
26
|
+
#private;
|
|
27
|
+
private readonly callbacks;
|
|
28
|
+
private readonly dependencies;
|
|
29
|
+
constructor(cwd: string, callbacks: GjcBundleSettingsCallbacks, dependencies?: GjcBundleSettingsDependencies);
|
|
30
|
+
get stateId(): GjcBundleSettingsState;
|
|
31
|
+
get navigationLocked(): boolean;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
handleInput(data: string): void;
|
|
34
|
+
}
|
|
@@ -32,6 +32,22 @@ export declare function computeIrcSplitWidths(width: number): {
|
|
|
32
32
|
separatorWidth: number;
|
|
33
33
|
rightWidth: number;
|
|
34
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Resolves the single shared work-lane geometry. The left lane is used by both
|
|
37
|
+
* transcript and todo content whenever the IRC lane is effective.
|
|
38
|
+
*/
|
|
39
|
+
export declare function computeIrcWorkLaneWidths(width: number, sidebarVisible: boolean): {
|
|
40
|
+
leftWidth: number;
|
|
41
|
+
separatorWidth: number;
|
|
42
|
+
rightWidth: number;
|
|
43
|
+
};
|
|
44
|
+
export declare class IrcLeftLaneComponent implements Component {
|
|
45
|
+
private readonly content;
|
|
46
|
+
private readonly isSidebarVisible;
|
|
47
|
+
constructor(content: Component, isSidebarVisible: (width: number) => boolean);
|
|
48
|
+
render(width: number): string[];
|
|
49
|
+
invalidate(): void;
|
|
50
|
+
}
|
|
35
51
|
type SemanticLine = Readonly<{
|
|
36
52
|
kind: "header" | "body" | "elision" | "blank";
|
|
37
53
|
text: string;
|
|
@@ -12,6 +12,7 @@ export interface NotificationsEditorPreferences {
|
|
|
12
12
|
richDraftEnabled: boolean;
|
|
13
13
|
toolActivityEnabled: boolean;
|
|
14
14
|
streamingEnabled: boolean;
|
|
15
|
+
sound: "all" | "important" | "none";
|
|
15
16
|
}
|
|
16
17
|
/** Secret-safe snapshot used to render the Notifications tab. */
|
|
17
18
|
export interface NotificationsEditorState {
|
|
@@ -2,6 +2,24 @@ import type { KeyId } from "../../config/keybindings";
|
|
|
2
2
|
import type { SessionMessageEntry } from "../../session/session-manager";
|
|
3
3
|
import type { SessionObserverRegistry } from "../session-observer-registry";
|
|
4
4
|
import { type TranscriptViewerEntry, TranscriptViewerOverlay } from "./transcript-viewer-overlay";
|
|
5
|
+
export declare const __sessionObserverProjectionCounters: {
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
projectionFullRuns: number;
|
|
8
|
+
projectionIncrementalRuns: number;
|
|
9
|
+
sourceMessagesProjected: number;
|
|
10
|
+
projectedEntriesAppended: number;
|
|
11
|
+
resultPatchCount: number;
|
|
12
|
+
snapshot(): {
|
|
13
|
+
projectionFullRuns: number;
|
|
14
|
+
projectionIncrementalRuns: number;
|
|
15
|
+
sourceMessagesProjected: number;
|
|
16
|
+
projectedEntriesAppended: number;
|
|
17
|
+
resultPatchCount: number;
|
|
18
|
+
};
|
|
19
|
+
enable(): void;
|
|
20
|
+
disable(): void;
|
|
21
|
+
reset(): void;
|
|
22
|
+
};
|
|
5
23
|
/** Session-observer adapter. The shared viewer owns navigation and fold state. */
|
|
6
24
|
export declare class SessionObserverOverlayComponent extends TranscriptViewerOverlay {
|
|
7
25
|
#private;
|
|
@@ -3,6 +3,7 @@ import type { Effort } from "@gajae-code/ai";
|
|
|
3
3
|
import { type Component, Container } from "@gajae-code/tui";
|
|
4
4
|
import { type SettingPath } from "../../config/settings";
|
|
5
5
|
import type { StatusLinePreset, StatusLineSegmentId, StatusLineSeparatorStyle } from "../../config/settings-schema";
|
|
6
|
+
import type { GjcRuntimeSnapshotProvider } from "../../extensibility/gjc-plugins/runtime-quarantine";
|
|
6
7
|
import { type NotificationsEditorOperations } from "./notifications-settings-editor";
|
|
7
8
|
import type { StatusLineSegmentOptions } from "./tool-status-header";
|
|
8
9
|
/**
|
|
@@ -24,6 +25,14 @@ export interface SettingsRuntimeContext {
|
|
|
24
25
|
petAvailable?: boolean;
|
|
25
26
|
/** Terminal environment used to select unavailable-pet guidance. Omitted in production to use Bun.env. */
|
|
26
27
|
terminalEnv?: NodeJS.ProcessEnv;
|
|
28
|
+
/**
|
|
29
|
+
* Runtime evidence published by the session for the current activation
|
|
30
|
+
* generation. Omitted when no session published one, in which case the GJC
|
|
31
|
+
* Bundles tab honestly reports runtime status as unavailable.
|
|
32
|
+
*/
|
|
33
|
+
gjcRuntimeSnapshot?: GjcRuntimeSnapshotProvider;
|
|
34
|
+
/** Activation generation the published snapshot must match to be merged. */
|
|
35
|
+
gjcActivationGeneration?: number;
|
|
27
36
|
}
|
|
28
37
|
/** Status line settings subset for preview */
|
|
29
38
|
export interface StatusLinePreviewSettings {
|
|
@@ -29,13 +29,30 @@ export type TranscriptViewerOverlayOptions = {
|
|
|
29
29
|
footerControls?: string;
|
|
30
30
|
getEntryText?: (entry: TranscriptViewerEntry, expanded: boolean) => string;
|
|
31
31
|
};
|
|
32
|
+
export declare const __transcriptViewerPerfCounters: {
|
|
33
|
+
enabled: boolean;
|
|
34
|
+
layoutCacheHits: number;
|
|
35
|
+
layoutCacheMisses: number;
|
|
36
|
+
refreshRuns: number;
|
|
37
|
+
rebuildRuns: number;
|
|
38
|
+
snapshot(): {
|
|
39
|
+
layoutCacheHits: number;
|
|
40
|
+
layoutCacheMisses: number;
|
|
41
|
+
refreshRuns: number;
|
|
42
|
+
rebuildRuns: number;
|
|
43
|
+
};
|
|
44
|
+
enable(): void;
|
|
45
|
+
disable(): void;
|
|
46
|
+
reset(): void;
|
|
47
|
+
};
|
|
32
48
|
/** Message-agnostic, modal transcript browser over resolved projection entries. */
|
|
33
49
|
export declare class TranscriptViewerOverlay extends Container {
|
|
34
50
|
#private;
|
|
35
51
|
constructor(options: TranscriptViewerOverlayOptions);
|
|
36
52
|
get selectedEntryId(): string | undefined;
|
|
37
53
|
get isFullscreen(): boolean;
|
|
38
|
-
refresh(identityMap?: ReadonlyMap<string, string
|
|
54
|
+
refresh(identityMap?: ReadonlyMap<string, string>, preserveLayoutCache?: boolean): void;
|
|
55
|
+
invalidateLayoutEntries(entryIds: readonly string[]): void;
|
|
39
56
|
render(width: number): string[];
|
|
40
57
|
handleMouse(event: MouseEvent): void;
|
|
41
58
|
handleInput(keyData: string): void;
|
|
@@ -3,7 +3,7 @@ import { type ProviderDetails, type UsageReport } from "@gajae-code/ai";
|
|
|
3
3
|
import type { KeybindingsManager } from "../../config/keybindings";
|
|
4
4
|
import type { CompactOptions } from "../../extensibility/extensions/types";
|
|
5
5
|
import { theme } from "../../modes/theme/theme";
|
|
6
|
-
import type
|
|
6
|
+
import { type InteractiveModeContext } from "../../modes/types";
|
|
7
7
|
export declare function buildHelpMarkdown(keybindings: Pick<KeybindingsManager, "getAccessibleDisplayString">): string;
|
|
8
8
|
export declare class CommandController {
|
|
9
9
|
#private;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Component } from "@gajae-code/tui";
|
|
2
|
-
import type
|
|
2
|
+
import { type InteractiveModeContext } from "../../modes/types";
|
|
3
3
|
import type { AgentSessionEvent } from "../../session/agent-session";
|
|
4
4
|
/** Test-only performance counters for advisory baseline tests. */
|
|
5
5
|
export declare const __eventControllerPerfCounters: {
|
|
@@ -2,7 +2,7 @@ import type { Component, TUI } from "@gajae-code/tui";
|
|
|
2
2
|
import { KeybindingsManager } from "../../config/keybindings";
|
|
3
3
|
import type { ExtensionUIContext, ExtensionUIDialogOptions, ExtensionWidgetContent, ExtensionWidgetOptions, TerminalInputHandler } from "../../extensibility/extensions";
|
|
4
4
|
import { type Theme } from "../../modes/theme/theme";
|
|
5
|
-
import type
|
|
5
|
+
import { type InteractiveModeContext } from "../../modes/types";
|
|
6
6
|
export declare class ExtensionUiController {
|
|
7
7
|
#private;
|
|
8
8
|
private ctx;
|
|
@@ -79,5 +79,6 @@ export declare class ExtensionUiController {
|
|
|
79
79
|
addExtensionTerminalInputListener(handler: TerminalInputHandler): () => void;
|
|
80
80
|
clearHookWidgets(): void;
|
|
81
81
|
clearExtensionTerminalInputListeners(): void;
|
|
82
|
+
dispose(): void;
|
|
82
83
|
showExtensionError(extensionPath: string, error: string): void;
|
|
83
84
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Component, SlashCommand } from "@gajae-code/tui";
|
|
2
2
|
import type { ModelProfileConfig } from "../../config/models-config-schema";
|
|
3
3
|
import { type Settings } from "../../config/settings";
|
|
4
|
-
import type
|
|
4
|
+
import { type InteractiveModeContext, type OAuthSelectorOptions } from "../../modes/types";
|
|
5
5
|
import { getNotificationConfig, maskToken } from "../../sdk/bus/config";
|
|
6
6
|
import { proposedTelegramIdentity, reconcileCommittedTelegramConfiguration, removeTelegramConfiguration, saveTelegramInactive } from "../../sdk/bus/notification-orchestration";
|
|
7
7
|
import { buildNotificationStatusReport, checkNotificationHealth, recoverNotifications, sanitizeDiagnostic, sendNotificationTest } from "../../sdk/bus/notification-service";
|
|
@@ -39,7 +39,9 @@ export declare const DEFAULT_COMPOSER_PLACEHOLDER: string;
|
|
|
39
39
|
export declare function getComposerPlaceholder(keybindings: Pick<KeybindingsManager, "getDisplayString">, context: KeyDisplayContext, options: {
|
|
40
40
|
readonly busy: boolean;
|
|
41
41
|
readonly busyPromptMode: "steer" | "queue";
|
|
42
|
+
readonly showActionHints: boolean;
|
|
42
43
|
}): string;
|
|
44
|
+
export declare function resolveActivityIndicatorMessage(foregroundActive: boolean, activeBackgroundTasks: number, foregroundMessage: string): string | undefined;
|
|
43
45
|
export declare function getWelcomeTranscriptReservedRows(chatContainer: Container, width: number): number;
|
|
44
46
|
export type WelcomeBannerSettingMode = "auto" | "unicode" | "square" | "ascii";
|
|
45
47
|
export declare function resolveWelcomeLogoMode(mode: WelcomeBannerSettingMode, env?: Record<string, string | undefined>, platform?: NodeJS.Platform): WelcomeLogoMode;
|
|
@@ -156,6 +158,8 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
156
158
|
commitPetPreviewMode(mode: PetMode): boolean;
|
|
157
159
|
restoreComposer(): void;
|
|
158
160
|
rebuildChatFromMessages(policy: TranscriptRebuildPolicy): void;
|
|
161
|
+
isStopped(): boolean;
|
|
162
|
+
onStop(callback: () => void): () => void;
|
|
159
163
|
stop(): void;
|
|
160
164
|
shutdown(): Promise<void>;
|
|
161
165
|
checkShutdownRequested(): Promise<void>;
|
|
@@ -169,7 +173,12 @@ export declare class InteractiveMode implements InteractiveModeContext {
|
|
|
169
173
|
}): void;
|
|
170
174
|
showError(message: string): void;
|
|
171
175
|
showWarning(message: string): void;
|
|
176
|
+
syncActivityIndicator(): void;
|
|
172
177
|
ensureLoadingAnimation(): void;
|
|
178
|
+
stopLoadingAnimation(options?: {
|
|
179
|
+
restoreBackground?: boolean;
|
|
180
|
+
}): void;
|
|
181
|
+
suspendActivityIndicator(): () => void;
|
|
173
182
|
setWorkingMessage(message?: string): void;
|
|
174
183
|
applyPendingWorkingMessage(): void;
|
|
175
184
|
showNewVersionNotification(newVersion: string): void;
|
|
@@ -193,7 +193,9 @@ export declare var theme: Theme;
|
|
|
193
193
|
/** Get the name of the currently active theme. */
|
|
194
194
|
export declare function getCurrentThemeName(): string | undefined;
|
|
195
195
|
export declare function initTheme(enableWatcher?: boolean, symbolPreset?: SymbolPreset, colorBlindMode?: boolean, darkTheme?: string, lightTheme?: string): Promise<void>;
|
|
196
|
-
export declare function setTheme(name: string, enableWatcher?: boolean
|
|
196
|
+
export declare function setTheme(name: string, enableWatcher?: boolean, options?: {
|
|
197
|
+
shouldApply?: () => boolean;
|
|
198
|
+
}): Promise<{
|
|
197
199
|
success: boolean;
|
|
198
200
|
error?: string;
|
|
199
201
|
}>;
|
|
@@ -49,6 +49,29 @@ export type ComposerSubmissionOptions = Readonly<{
|
|
|
49
49
|
editor: CustomEditor;
|
|
50
50
|
}>;
|
|
51
51
|
export declare function canApplyComposerSubmission(options: ComposerSubmissionOptions | undefined, editor: CustomEditor): boolean;
|
|
52
|
+
type PartialActivityStatusContainer = Partial<Pick<Container, "children" | "clear" | "detachChild" | "addChild">>;
|
|
53
|
+
export declare function stopInteractiveActivityIndicator(ctx: {
|
|
54
|
+
loadingAnimation?: Loader;
|
|
55
|
+
statusContainer?: PartialActivityStatusContainer;
|
|
56
|
+
stopLoadingAnimation?: (options?: {
|
|
57
|
+
restoreBackground?: boolean;
|
|
58
|
+
}) => void;
|
|
59
|
+
}, options?: {
|
|
60
|
+
restoreBackground?: boolean;
|
|
61
|
+
}): void;
|
|
62
|
+
export declare function clearInteractiveActivityLoaders(ctx: Pick<InteractiveModeContext, "autoCompactionLoader" | "autoCompactionEscapeHandler" | "retryLoader" | "retryCountdownTimer" | "retryEscapeHandler" | "retryEscapePrimed" | "editor">): void;
|
|
63
|
+
export declare function suspendInteractiveActivityIndicator(ctx: {
|
|
64
|
+
loadingAnimation?: Loader;
|
|
65
|
+
statusContainer?: PartialActivityStatusContainer;
|
|
66
|
+
stopLoadingAnimation?: (options?: {
|
|
67
|
+
restoreBackground?: boolean;
|
|
68
|
+
}) => void;
|
|
69
|
+
syncActivityIndicator?: () => void;
|
|
70
|
+
suspendActivityIndicator?: () => () => void;
|
|
71
|
+
}): () => void;
|
|
72
|
+
export declare function syncInteractiveActivityIndicator(ctx: {
|
|
73
|
+
syncActivityIndicator?: () => void;
|
|
74
|
+
}): void;
|
|
52
75
|
export type TodoStatus = "pending" | "in_progress" | "completed" | "abandoned";
|
|
53
76
|
export type TodoItem = {
|
|
54
77
|
content: string;
|
|
@@ -139,6 +162,8 @@ export interface InteractiveModeContext {
|
|
|
139
162
|
init(): Promise<void>;
|
|
140
163
|
shutdown(): Promise<void>;
|
|
141
164
|
checkShutdownRequested(): Promise<void>;
|
|
165
|
+
isStopped?(): boolean;
|
|
166
|
+
onStop(callback: () => void): () => void;
|
|
142
167
|
setToolUIContext(uiContext: ExtensionUIContext, hasUI: boolean): void;
|
|
143
168
|
initializeHookRunner(uiContext: ExtensionUIContext, hasUI: boolean): void;
|
|
144
169
|
createBackgroundUiContext(): ExtensionUIContext;
|
|
@@ -161,6 +186,11 @@ export interface InteractiveModeContext {
|
|
|
161
186
|
setWorkingMessage(message?: string): void;
|
|
162
187
|
applyPendingWorkingMessage(): void;
|
|
163
188
|
ensureLoadingAnimation(): void;
|
|
189
|
+
syncActivityIndicator(): void;
|
|
190
|
+
suspendActivityIndicator(): () => void;
|
|
191
|
+
stopLoadingAnimation(options?: {
|
|
192
|
+
restoreBackground?: boolean;
|
|
193
|
+
}): void;
|
|
164
194
|
/**
|
|
165
195
|
* Commit a pet mode through the shared result-returning policy: capability
|
|
166
196
|
* is rechecked immediately before mutation and the preference persists only
|
|
@@ -223,6 +253,7 @@ export interface InteractiveModeContext {
|
|
|
223
253
|
updateEditorTopBorder(): void;
|
|
224
254
|
updateEditorBorderColor(): void;
|
|
225
255
|
rebuildChatFromMessages(policy: TranscriptRebuildPolicy): void;
|
|
256
|
+
updateEditorChrome(): void;
|
|
226
257
|
setTodos(todos: TodoItem[] | TodoPhase[]): void;
|
|
227
258
|
reloadTodos(): Promise<void>;
|
|
228
259
|
toggleTodoExpansion(): void;
|
|
@@ -344,3 +375,4 @@ export interface OAuthSelectorOptions {
|
|
|
344
375
|
trigger?: "bare-login";
|
|
345
376
|
externalCredentialDiscover?: CredentialAutoImportOptions["discover"];
|
|
346
377
|
}
|
|
378
|
+
export {};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ImageContent } from "@gajae-code/ai";
|
|
2
2
|
import type { CustomMessage } from "../session/messages";
|
|
3
|
+
import { type GhResult, type RunGh, runGhDefault } from "../utils/gh";
|
|
4
|
+
export type { GhResult, RunGh };
|
|
5
|
+
export { runGhDefault };
|
|
3
6
|
export declare const STAR_REMINDER_REPO = "Yeachan-Heo/gajae-code";
|
|
4
7
|
export declare const STAR_REMINDER_CUSTOM_TYPE = "star-reminder";
|
|
5
8
|
export declare const STARRED_CACHE_TTL_MS: number;
|
|
@@ -10,15 +13,6 @@ export interface StarReminderState {
|
|
|
10
13
|
starredCheckedAt: string;
|
|
11
14
|
}
|
|
12
15
|
export type StarCheckStatus = "starred" | "unstarred" | "unavailable";
|
|
13
|
-
export interface GhResult {
|
|
14
|
-
exitCode: number;
|
|
15
|
-
stdout: string;
|
|
16
|
-
stderr: string;
|
|
17
|
-
timedOut?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export type RunGh = (args: string[], options?: {
|
|
20
|
-
timeoutMs?: number;
|
|
21
|
-
}) => Promise<GhResult>;
|
|
22
16
|
export interface StarReminderDeps {
|
|
23
17
|
statePath?: string;
|
|
24
18
|
now?: () => Date;
|
|
@@ -49,10 +43,6 @@ export declare function recordStarredFromPut(deps?: StarReminderDeps): Promise<S
|
|
|
49
43
|
export declare function recordFreshStarCheck(status: "starred" | "unstarred", deps?: StarReminderDeps): Promise<StarReminderState>;
|
|
50
44
|
/** Record a launch-nudge decline. Never downgrades a confirmed star. */
|
|
51
45
|
export declare function recordDeclinedAfterNo(deps?: StarReminderDeps): Promise<StarReminderState>;
|
|
52
|
-
/** Default `gh` runner. Returns an unavailable-style result instead of throwing. */
|
|
53
|
-
export declare function runGhDefault(args: string[], options?: {
|
|
54
|
-
timeoutMs?: number;
|
|
55
|
-
}): Promise<GhResult>;
|
|
56
46
|
/** Classify the star state of the repo via `gh api`. */
|
|
57
47
|
export declare function checkGhStarred(deps?: StarReminderDeps): Promise<StarCheckStatus>;
|
|
58
48
|
/** Star the repo via `gh api -X PUT`. Returns whether the PUT succeeded. */
|
|
@@ -6,6 +6,7 @@ import type { MCPToolDetails } from "./tool-bridge";
|
|
|
6
6
|
import type { MCPToolCache } from "./tool-cache";
|
|
7
7
|
import type { MCPGetPromptResult, MCPPrompt, MCPRequestOptions, MCPResource, MCPResourceReadResult, MCPResourceTemplate, MCPServerConfig, MCPServerConnection } from "./types";
|
|
8
8
|
export declare function resolveStartupTimeoutMs(configs: MCPServerConfig[], maxStartupTimeoutMs?: number): number;
|
|
9
|
+
export declare function resolveExactConfigStartupTimeoutMs(configs: MCPServerConfig[]): number;
|
|
9
10
|
/**
|
|
10
11
|
* Stable, total ordering on MCP tools by name.
|
|
11
12
|
*
|
|
@@ -2,7 +2,9 @@ import { SdkClient, SdkClientError, type SdkFrame } from "../client";
|
|
|
2
2
|
type JsonObject = Record<string, unknown>;
|
|
3
3
|
/** The small agent-side ACP surface used for reverse requests. */
|
|
4
4
|
export interface AcpReverseConnection {
|
|
5
|
-
request?(method: string, params: JsonObject
|
|
5
|
+
request?(method: string, params: JsonObject, options?: {
|
|
6
|
+
cancellationSignal?: AbortSignal;
|
|
7
|
+
}): Promise<unknown>;
|
|
6
8
|
[key: string]: unknown;
|
|
7
9
|
}
|
|
8
10
|
export interface AcpProviderRegistration {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { Broker } from "./broker";
|
|
2
|
+
export type BrokerShutdownSendAction = "dropped" | "wait_for_drain" | "close";
|
|
3
|
+
export declare function brokerShutdownSendAction(status: number): BrokerShutdownSendAction;
|
|
2
4
|
/** Loopback-only WebSocket transport for the agent-global SDK broker. */
|
|
3
5
|
export declare class BrokerTransport {
|
|
4
6
|
#private;
|
|
@@ -16,7 +16,11 @@ export type ChatDaemonAction = "stop" | "reload";
|
|
|
16
16
|
* when deleting an observed owner-lock lease. Generation 12 refreshes retained
|
|
17
17
|
* native path and process authority semantics. Generation 13 rejects special
|
|
18
18
|
* files before retained native authority opens. Generation 14 reloads shared
|
|
19
|
-
* chat daemons after notification configuration parsing changes.
|
|
19
|
+
* chat daemons after notification configuration parsing changes. Generation 15
|
|
20
|
+
* applies the current notification configuration directly when starting chat
|
|
21
|
+
* daemon transports. Generation 16 applies Telegram sound-policy configuration
|
|
22
|
+
* through shared notification parsing. Generation 17 binds managed-session
|
|
23
|
+
* replacement to exact native filesystem authority.
|
|
20
24
|
*/
|
|
21
25
|
export declare const CHAT_DAEMON_GENERATIONS: Readonly<Record<ChatDaemonKind, number>>;
|
|
22
26
|
export declare function chatDaemonGeneration(kind: ChatDaemonKind): number;
|