@royalcat/opencode-dcp-rc 0.0.0-stage → 4.0.0
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/LICENSE +619 -0
- package/README.md +348 -2
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7611 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/commands/compression-targets.d.ts +13 -0
- package/dist/lib/commands/compression-targets.d.ts.map +1 -0
- package/dist/lib/commands/context.d.ts +67 -0
- package/dist/lib/commands/context.d.ts.map +1 -0
- package/dist/lib/commands/decompress.d.ts +12 -0
- package/dist/lib/commands/decompress.d.ts.map +1 -0
- package/dist/lib/commands/help.d.ts +18 -0
- package/dist/lib/commands/help.d.ts.map +1 -0
- package/dist/lib/commands/index.d.ts +8 -0
- package/dist/lib/commands/index.d.ts.map +1 -0
- package/dist/lib/commands/manual.d.ts +23 -0
- package/dist/lib/commands/manual.d.ts.map +1 -0
- package/dist/lib/commands/recompress.d.ts +12 -0
- package/dist/lib/commands/recompress.d.ts.map +1 -0
- package/dist/lib/commands/stats.d.ts +25 -0
- package/dist/lib/commands/stats.d.ts.map +1 -0
- package/dist/lib/commands/sweep.d.ts +23 -0
- package/dist/lib/commands/sweep.d.ts.map +1 -0
- package/dist/lib/compress/index.d.ts +3 -0
- package/dist/lib/compress/index.d.ts.map +1 -0
- package/dist/lib/compress/pipeline.d.ts +29 -0
- package/dist/lib/compress/pipeline.d.ts.map +1 -0
- package/dist/lib/compress/protected-content.d.ts +6 -0
- package/dist/lib/compress/protected-content.d.ts.map +1 -0
- package/dist/lib/compress/rc.d.ts +15 -0
- package/dist/lib/compress/rc.d.ts.map +1 -0
- package/dist/lib/compress/search.d.ts +12 -0
- package/dist/lib/compress/search.d.ts.map +1 -0
- package/dist/lib/compress/state.d.ts +10 -0
- package/dist/lib/compress/state.d.ts.map +1 -0
- package/dist/lib/compress/summary.d.ts +58 -0
- package/dist/lib/compress/summary.d.ts.map +1 -0
- package/dist/lib/compress/timing.d.ts +18 -0
- package/dist/lib/compress/timing.d.ts.map +1 -0
- package/dist/lib/compress/types.d.ts +55 -0
- package/dist/lib/compress/types.d.ts.map +1 -0
- package/dist/lib/compress-permission.d.ts +4 -0
- package/dist/lib/compress-permission.d.ts.map +1 -0
- package/dist/lib/config.d.ts +83 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/hooks.d.ts +22 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/logger.d.ts +31 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/message-ids.d.ts +20 -0
- package/dist/lib/message-ids.d.ts.map +1 -0
- package/dist/lib/messages/index.d.ts +8 -0
- package/dist/lib/messages/index.d.ts.map +1 -0
- package/dist/lib/messages/inject/inject.d.ts +7 -0
- package/dist/lib/messages/inject/inject.d.ts.map +1 -0
- package/dist/lib/messages/inject/subagent-results.d.ts +4 -0
- package/dist/lib/messages/inject/subagent-results.d.ts.map +1 -0
- package/dist/lib/messages/inject/utils.d.ts +23 -0
- package/dist/lib/messages/inject/utils.d.ts.map +1 -0
- package/dist/lib/messages/prune.d.ts +4 -0
- package/dist/lib/messages/prune.d.ts.map +1 -0
- package/dist/lib/messages/query.d.ts +7 -0
- package/dist/lib/messages/query.d.ts.map +1 -0
- package/dist/lib/messages/reasoning-strip.d.ts +8 -0
- package/dist/lib/messages/reasoning-strip.d.ts.map +1 -0
- package/dist/lib/messages/shape.d.ts +5 -0
- package/dist/lib/messages/shape.d.ts.map +1 -0
- package/dist/lib/messages/sync.d.ts +4 -0
- package/dist/lib/messages/sync.d.ts.map +1 -0
- package/dist/lib/messages/utils.d.ts +27 -0
- package/dist/lib/messages/utils.d.ts.map +1 -0
- package/dist/lib/prompts/compress-rc.d.ts +4 -0
- package/dist/lib/prompts/compress-rc.d.ts.map +1 -0
- package/dist/lib/prompts/context-limit-nudge.d.ts +2 -0
- package/dist/lib/prompts/context-limit-nudge.d.ts.map +1 -0
- package/dist/lib/prompts/extensions/nudge.d.ts +4 -0
- package/dist/lib/prompts/extensions/nudge.d.ts.map +1 -0
- package/dist/lib/prompts/extensions/system.d.ts +4 -0
- package/dist/lib/prompts/extensions/system.d.ts.map +1 -0
- package/dist/lib/prompts/extensions/tool.d.ts +3 -0
- package/dist/lib/prompts/extensions/tool.d.ts.map +1 -0
- package/dist/lib/prompts/index.d.ts +4 -0
- package/dist/lib/prompts/index.d.ts.map +1 -0
- package/dist/lib/prompts/iteration-nudge.d.ts +2 -0
- package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -0
- package/dist/lib/prompts/store.d.ts +26 -0
- package/dist/lib/prompts/store.d.ts.map +1 -0
- package/dist/lib/prompts/system.d.ts +4 -0
- package/dist/lib/prompts/system.d.ts.map +1 -0
- package/dist/lib/prompts/turn-nudge.d.ts +2 -0
- package/dist/lib/prompts/turn-nudge.d.ts.map +1 -0
- package/dist/lib/protected-patterns.d.ts +6 -0
- package/dist/lib/protected-patterns.d.ts.map +1 -0
- package/dist/lib/state/index.d.ts +5 -0
- package/dist/lib/state/index.d.ts.map +1 -0
- package/dist/lib/state/persistence.d.ts +45 -0
- package/dist/lib/state/persistence.d.ts.map +1 -0
- package/dist/lib/state/state.d.ts +9 -0
- package/dist/lib/state/state.d.ts.map +1 -0
- package/dist/lib/state/tool-cache.d.ts +13 -0
- package/dist/lib/state/tool-cache.d.ts.map +1 -0
- package/dist/lib/state/types.d.ts +102 -0
- package/dist/lib/state/types.d.ts.map +1 -0
- package/dist/lib/state/utils.d.ts +22 -0
- package/dist/lib/state/utils.d.ts.map +1 -0
- package/dist/lib/strategies/deduplication.d.ts +10 -0
- package/dist/lib/strategies/deduplication.d.ts.map +1 -0
- package/dist/lib/strategies/index.d.ts +3 -0
- package/dist/lib/strategies/index.d.ts.map +1 -0
- package/dist/lib/strategies/purge-errors.d.ts +13 -0
- package/dist/lib/strategies/purge-errors.d.ts.map +1 -0
- package/dist/lib/subagents/subagent-results.d.ts +5 -0
- package/dist/lib/subagents/subagent-results.d.ts.map +1 -0
- package/dist/lib/token-utils.d.ts +19 -0
- package/dist/lib/token-utils.d.ts.map +1 -0
- package/dist/lib/tui/dialogs.d.ts +29 -0
- package/dist/lib/tui/dialogs.d.ts.map +1 -0
- package/dist/lib/tui/format.d.ts +4 -0
- package/dist/lib/tui/format.d.ts.map +1 -0
- package/dist/lib/tui/types.d.ts +18 -0
- package/dist/lib/tui/types.d.ts.map +1 -0
- package/dist/lib/tui/ui.d.ts +48 -0
- package/dist/lib/tui/ui.d.ts.map +1 -0
- package/dist/lib/ui/notification.d.ts +17 -0
- package/dist/lib/ui/notification.d.ts.map +1 -0
- package/dist/lib/ui/utils.d.ts +10 -0
- package/dist/lib/ui/utils.d.ts.map +1 -0
- package/dist/lib/v2/index.d.ts +5 -0
- package/dist/lib/v2/index.d.ts.map +1 -0
- package/dist/lib/v2/messages.d.ts +13 -0
- package/dist/lib/v2/messages.d.ts.map +1 -0
- package/dist/lib/v2/rpc.d.ts +55 -0
- package/dist/lib/v2/rpc.d.ts.map +1 -0
- package/dist/lib/v2/theme.d.ts +55 -0
- package/dist/lib/v2/theme.d.ts.map +1 -0
- package/dist/lib/v2/tui.d.ts +4 -0
- package/dist/lib/v2/tui.d.ts.map +1 -0
- package/dist/tui.d.ts +7 -0
- package/dist/tui.d.ts.map +1 -0
- package/lib/commands/compression-targets.ts +54 -0
- package/lib/commands/context.ts +305 -0
- package/lib/commands/decompress.ts +273 -0
- package/lib/commands/help.ts +76 -0
- package/lib/commands/index.ts +11 -0
- package/lib/commands/manual.ts +126 -0
- package/lib/commands/recompress.ts +222 -0
- package/lib/commands/stats.ts +159 -0
- package/lib/commands/sweep.ts +266 -0
- package/lib/compress/index.ts +2 -0
- package/lib/compress/pipeline.ts +116 -0
- package/lib/compress/protected-content.ts +163 -0
- package/lib/compress/rc.ts +458 -0
- package/lib/compress/search.ts +277 -0
- package/lib/compress/state.ts +272 -0
- package/lib/compress/summary.ts +293 -0
- package/lib/compress/timing.ts +77 -0
- package/lib/compress/types.ts +57 -0
- package/lib/compress-permission.ts +9 -0
- package/lib/config.ts +995 -0
- package/lib/hooks.ts +205 -0
- package/lib/logger.ts +226 -0
- package/lib/message-ids.ts +181 -0
- package/lib/messages/index.ts +7 -0
- package/lib/messages/inject/inject.ts +215 -0
- package/lib/messages/inject/subagent-results.ts +84 -0
- package/lib/messages/inject/utils.ts +304 -0
- package/lib/messages/prune.ts +238 -0
- package/lib/messages/query.ts +71 -0
- package/lib/messages/reasoning-strip.ts +40 -0
- package/lib/messages/shape.ts +50 -0
- package/lib/messages/sync.ts +124 -0
- package/lib/messages/utils.ts +190 -0
- package/lib/prompts/compress-rc.ts +25 -0
- package/lib/prompts/context-limit-nudge.ts +18 -0
- package/lib/prompts/extensions/nudge.ts +34 -0
- package/lib/prompts/extensions/system.ts +32 -0
- package/lib/prompts/extensions/tool.ts +21 -0
- package/lib/prompts/index.ts +29 -0
- package/lib/prompts/iteration-nudge.ts +6 -0
- package/lib/prompts/store.ts +452 -0
- package/lib/prompts/system.ts +41 -0
- package/lib/prompts/turn-nudge.ts +10 -0
- package/lib/protected-patterns.ts +159 -0
- package/lib/state/index.ts +4 -0
- package/lib/state/persistence.ts +305 -0
- package/lib/state/state.ts +210 -0
- package/lib/state/tool-cache.ts +99 -0
- package/lib/state/types.ts +114 -0
- package/lib/state/utils.ts +345 -0
- package/lib/strategies/deduplication.ts +125 -0
- package/lib/strategies/index.ts +2 -0
- package/lib/strategies/purge-errors.ts +86 -0
- package/lib/subagents/subagent-results.ts +75 -0
- package/lib/token-utils.ts +164 -0
- package/lib/tui/dialogs.tsx +237 -0
- package/lib/tui/format.ts +25 -0
- package/lib/tui/types.ts +25 -0
- package/lib/tui/ui.tsx +245 -0
- package/lib/ui/notification.ts +347 -0
- package/lib/ui/utils.ts +304 -0
- package/lib/v2/index.ts +401 -0
- package/lib/v2/messages.ts +252 -0
- package/lib/v2/rpc.ts +48 -0
- package/lib/v2/theme.ts +67 -0
- package/lib/v2/tui.tsx +115 -0
- package/package.json +91 -5
- package/server.js +1 -0
- package/tui.tsx +7 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CompressionBlock, PruneMessagesState, PrunedMessageEntry, SessionState, WithParts } from "./types";
|
|
2
|
+
export declare const isMessageCompacted: (state: SessionState, msg: WithParts) => boolean;
|
|
3
|
+
interface PersistedPruneMessagesState {
|
|
4
|
+
byMessageId: Record<string, PrunedMessageEntry>;
|
|
5
|
+
blocksById: Record<string, CompressionBlock>;
|
|
6
|
+
activeBlockIds: number[];
|
|
7
|
+
activeByAnchorMessageId: Record<string, number>;
|
|
8
|
+
nextBlockId: number;
|
|
9
|
+
nextRunId: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function serializePruneMessagesState(messagesState: PruneMessagesState): PersistedPruneMessagesState;
|
|
12
|
+
export declare function isSubAgentSession(client: any, sessionID: string): Promise<boolean>;
|
|
13
|
+
export declare function findLastCompactionTimestamp(messages: WithParts[]): number;
|
|
14
|
+
export declare function countTurns(state: SessionState, messages: WithParts[]): number;
|
|
15
|
+
export declare function loadPruneMap(obj?: Record<string, number>): Map<string, number>;
|
|
16
|
+
export declare function createPruneMessagesState(): PruneMessagesState;
|
|
17
|
+
export declare function loadPruneMessagesState(persisted?: PersistedPruneMessagesState): PruneMessagesState;
|
|
18
|
+
export declare function collectTurnNudgeAnchors(messages: WithParts[]): Set<string>;
|
|
19
|
+
export declare function getActiveSummaryTokenUsage(state: SessionState): number;
|
|
20
|
+
export declare function resetOnCompaction(state: SessionState): void;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACZ,MAAM,SAAS,CAAA;AAKhB,eAAO,MAAM,kBAAkB,GAAI,OAAO,YAAY,EAAE,KAAK,SAAS,KAAG,OAaxE,CAAA;AAED,UAAU,2BAA2B;IACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC/C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC5C,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,kBAAkB,GAClC,2BAA2B,CAc7B;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOxF;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAWzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAiB7E;AAED,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAU9E;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAS7D;AAED,wBAAgB,sBAAsB,CAClC,SAAS,CAAC,EAAE,2BAA2B,GACxC,kBAAkB,CAyKpB;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CA0B1E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAUtE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAc3D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PluginConfig } from "../config";
|
|
2
|
+
import { Logger } from "../logger";
|
|
3
|
+
import type { SessionState, WithParts } from "../state";
|
|
4
|
+
/**
|
|
5
|
+
* Deduplication strategy - prunes older tool calls that have identical
|
|
6
|
+
* tool name and parameters, keeping only the most recent occurrence.
|
|
7
|
+
* Modifies the session state in place to add pruned tool call IDs.
|
|
8
|
+
*/
|
|
9
|
+
export declare const deduplicate: (state: SessionState, logger: Logger, config: PluginConfig, messages: WithParts[]) => void;
|
|
10
|
+
//# sourceMappingURL=deduplication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deduplication.d.ts","sourceRoot":"","sources":["../../../lib/strategies/deduplication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACpB,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IA2EF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/strategies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PluginConfig } from "../config";
|
|
2
|
+
import { Logger } from "../logger";
|
|
3
|
+
import type { SessionState, WithParts } from "../state";
|
|
4
|
+
/**
|
|
5
|
+
* Purge Errors strategy - prunes tool inputs for tools that errored
|
|
6
|
+
* after they are older than a configurable number of turns.
|
|
7
|
+
* The error message is preserved, but the (potentially large) inputs
|
|
8
|
+
* are removed to save context.
|
|
9
|
+
*
|
|
10
|
+
* Modifies the session state in place to add pruned tool call IDs.
|
|
11
|
+
*/
|
|
12
|
+
export declare const purgeErrors: (state: SessionState, logger: Logger, config: PluginConfig, messages: WithParts[]) => void;
|
|
13
|
+
//# sourceMappingURL=purge-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purge-errors.d.ts","sourceRoot":"","sources":["../../../lib/strategies/purge-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GACpB,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,KACtB,IAkEF,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { WithParts } from "../state";
|
|
2
|
+
export declare function getSubAgentId(part: any): string | null;
|
|
3
|
+
export declare function buildSubagentResultText(messages: WithParts[]): string;
|
|
4
|
+
export declare function mergeSubagentResult(output: string, subAgentResultText: string): string;
|
|
5
|
+
//# sourceMappingURL=subagent-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-results.d.ts","sourceRoot":"","sources":["../../../lib/subagents/subagent-results.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAKzC,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAQtD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBrE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAUtF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SessionState, WithParts } from "./state";
|
|
2
|
+
import { Logger } from "./logger";
|
|
3
|
+
export declare function getCurrentTokenUsage(state: SessionState, messages: WithParts[]): number;
|
|
4
|
+
export declare function getCurrentParams(state: SessionState, messages: WithParts[], logger: Logger): {
|
|
5
|
+
providerId: string | undefined;
|
|
6
|
+
modelId: string | undefined;
|
|
7
|
+
agent: string | undefined;
|
|
8
|
+
variant: string | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare function countTokens(text: string): number;
|
|
11
|
+
export declare function estimateTokensBatch(texts: string[]): number;
|
|
12
|
+
export declare const COMPACTED_TOOL_OUTPUT_PLACEHOLDER = "[Old tool result content cleared]";
|
|
13
|
+
export declare function extractCompletedToolOutput(part: any): string | undefined;
|
|
14
|
+
export declare function extractToolContent(part: any): string[];
|
|
15
|
+
export declare function countToolTokens(part: any): number;
|
|
16
|
+
export declare function getTotalToolTokens(state: SessionState, toolIds: string[]): number;
|
|
17
|
+
export declare function countMessageTextTokens(msg: WithParts): number;
|
|
18
|
+
export declare function countAllMessageTokens(msg: WithParts): number;
|
|
19
|
+
//# sourceMappingURL=token-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../../lib/token-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAMjC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CA6BvF;AAED,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,MAAM,GACf;IACC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B,CAkBA;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAG3D;AAED,eAAO,MAAM,iCAAiC,sCAAsC,CAAA;AAMpF,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAcxE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,CAmBtD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAGjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAOjF;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAU7D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAY5D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import type { analyzeContextTokens } from "../commands/context";
|
|
3
|
+
import type { StatsReport, ViewApi } from "./types";
|
|
4
|
+
export declare function StatusDialog(props: {
|
|
5
|
+
api: ViewApi;
|
|
6
|
+
title: string;
|
|
7
|
+
eyebrow: string;
|
|
8
|
+
message: string;
|
|
9
|
+
}): any;
|
|
10
|
+
export declare function ContextDialog(props: {
|
|
11
|
+
api: ViewApi;
|
|
12
|
+
breakdown: ReturnType<typeof analyzeContextTokens>;
|
|
13
|
+
onBack: () => void;
|
|
14
|
+
}): any;
|
|
15
|
+
export declare function StatsDialog(props: {
|
|
16
|
+
api: ViewApi;
|
|
17
|
+
report: StatsReport;
|
|
18
|
+
onBack: () => void;
|
|
19
|
+
}): any;
|
|
20
|
+
export declare function PanelDialog(props: {
|
|
21
|
+
api: ViewApi;
|
|
22
|
+
manualMode: boolean;
|
|
23
|
+
canCompress: boolean;
|
|
24
|
+
blockedReason?: string;
|
|
25
|
+
onContext: () => void;
|
|
26
|
+
onStats: () => void;
|
|
27
|
+
onManual: (enabled: boolean) => void;
|
|
28
|
+
}): any;
|
|
29
|
+
//# sourceMappingURL=dialogs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../../lib/tui/dialogs.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAI/D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEnD,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAChC,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAClB,OAQA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACjC,GAAG,EAAE,OAAO,CAAA;IACZ,SAAS,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;IAClD,MAAM,EAAE,MAAM,IAAI,CAAA;CACrB,OAgEA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,OAwD3F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IAC/B,GAAG,EAAE,OAAO,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC,OAkDA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../lib/tui/format.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TuiPluginModule } from "@opencode-ai/plugin/tui";
|
|
2
|
+
import type { buildStatsReport } from "../commands/stats";
|
|
3
|
+
export type TuiApi = Parameters<NonNullable<TuiPluginModule["tui"]>>[0];
|
|
4
|
+
export type Theme = Pick<TuiApi["theme"]["current"], "primary" | "accent" | "text" | "textMuted" | "background" | "backgroundElement" | "borderSubtle" | "selectedListItemText" | "success" | "warning" | "error">;
|
|
5
|
+
export type ThemeColor = keyof Theme;
|
|
6
|
+
export type ViewApi = {
|
|
7
|
+
theme: {
|
|
8
|
+
readonly current: Theme;
|
|
9
|
+
};
|
|
10
|
+
renderer: Pick<TuiApi["renderer"], "height" | "on" | "off">;
|
|
11
|
+
ui: {
|
|
12
|
+
dialog: {
|
|
13
|
+
clear(): void;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type StatsReport = Awaited<ReturnType<typeof buildStatsReport>>;
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/tui/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACvE,MAAM,MAAM,KAAK,GAAG,IAAI,CACpB,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EACxB,SAAS,GACT,QAAQ,GACR,MAAM,GACN,WAAW,GACX,YAAY,GACZ,mBAAmB,GACnB,cAAc,GACd,sBAAsB,GACtB,SAAS,GACT,SAAS,GACT,OAAO,CACZ,CAAA;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,KAAK,CAAA;AACpC,MAAM,MAAM,OAAO,GAAG;IAClB,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAA;KAAE,CAAA;IAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;IAC3D,EAAE,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,IAAI,IAAI,CAAA;SAAE,CAAA;KAAE,CAAA;CACpC,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** @jsxImportSource @opentui/solid */
|
|
2
|
+
import type { JSX } from "solid-js";
|
|
3
|
+
import type { Theme, ThemeColor, ViewApi } from "./types";
|
|
4
|
+
export declare function DcpFrame(props: {
|
|
5
|
+
api: ViewApi;
|
|
6
|
+
title?: string;
|
|
7
|
+
eyebrow: string;
|
|
8
|
+
children: JSX.Element;
|
|
9
|
+
onBack?: () => void;
|
|
10
|
+
}): any;
|
|
11
|
+
export declare function Card(props: {
|
|
12
|
+
theme: Theme;
|
|
13
|
+
title: string;
|
|
14
|
+
children: JSX.Element;
|
|
15
|
+
}): any;
|
|
16
|
+
export declare function Metric(props: {
|
|
17
|
+
theme: Theme;
|
|
18
|
+
label: string;
|
|
19
|
+
value: string;
|
|
20
|
+
hint?: string;
|
|
21
|
+
}): any;
|
|
22
|
+
export declare function Progress(props: {
|
|
23
|
+
theme: Theme;
|
|
24
|
+
label: string;
|
|
25
|
+
value: number;
|
|
26
|
+
total: number;
|
|
27
|
+
color: ThemeColor;
|
|
28
|
+
detail: string;
|
|
29
|
+
}): any;
|
|
30
|
+
export declare function PromptRow(props: {
|
|
31
|
+
theme: Theme;
|
|
32
|
+
command: string;
|
|
33
|
+
description: string;
|
|
34
|
+
accent?: ThemeColor;
|
|
35
|
+
}): any;
|
|
36
|
+
export declare function StatusPill(props: {
|
|
37
|
+
theme: Theme;
|
|
38
|
+
label: string;
|
|
39
|
+
value: string;
|
|
40
|
+
accent: ThemeColor;
|
|
41
|
+
}): any;
|
|
42
|
+
export declare function ActionRow(props: {
|
|
43
|
+
theme: Theme;
|
|
44
|
+
title: string;
|
|
45
|
+
detail: string;
|
|
46
|
+
onClick: () => void;
|
|
47
|
+
}): any;
|
|
48
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../lib/tui/ui.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AAGtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKzD,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC5B,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB,OAgEA;AAuBD,wBAAgB,IAAI,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,OAoBjF;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,OAc1F;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACjB,OAwBA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,UAAU,CAAA;CACtB,OAcA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAC9B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;CACrB,OAcA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,OAuBA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Logger } from "../logger";
|
|
2
|
+
import type { SessionState } from "../state";
|
|
3
|
+
import { ToolParameterEntry } from "../state";
|
|
4
|
+
import { PluginConfig } from "../config";
|
|
5
|
+
export type PruneReason = "completion" | "noise" | "extraction";
|
|
6
|
+
export declare const PRUNE_REASON_LABELS: Record<PruneReason, string>;
|
|
7
|
+
interface CompressionNotificationEntry {
|
|
8
|
+
blockId: number;
|
|
9
|
+
runId: number;
|
|
10
|
+
summary: string;
|
|
11
|
+
summaryTokens: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function sendUnifiedNotification(client: any, logger: Logger, config: PluginConfig, state: SessionState, sessionId: string, pruneToolIds: string[], toolMetadata: Map<string, ToolParameterEntry>, reason: PruneReason | undefined, params: any, workingDirectory: string): Promise<boolean>;
|
|
14
|
+
export declare function sendCompressNotification(client: any, logger: Logger, config: PluginConfig, state: SessionState, sessionId: string, entries: CompressionNotificationEntry[], batchTopic: string | undefined, sessionMessageIds: string[], params: any): Promise<boolean>;
|
|
15
|
+
export declare function sendIgnoredMessage(client: any, sessionID: string, text: string, params: any, logger: Logger): Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../../lib/ui/notification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAO5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,YAAY,CAAA;AAC/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI3D,CAAA;AAED,UAAU,4BAA4B;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAmED,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,MAAM,EAAE,GAAG,EACX,gBAAgB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAiClB;AAoCD,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,4BAA4B,EAAE,EACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,MAAM,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CA4HlB;AAED,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SessionState, ToolParameterEntry, WithParts } from "../state";
|
|
2
|
+
export declare function formatStatsHeader(totalTokensSaved: number, pruneTokenCounter: number): string;
|
|
3
|
+
export declare function formatTokenCount(tokens: number, compact?: boolean): string;
|
|
4
|
+
export declare function truncate(str: string, maxLen?: number): string;
|
|
5
|
+
export declare function formatProgressBar(messageIds: string[], prunedMessages: Map<string, number>, recentMessageIds: string[], width?: number): string;
|
|
6
|
+
export declare function cacheSystemPromptTokens(state: SessionState, messages: WithParts[]): void;
|
|
7
|
+
export declare function shortenPath(input: string, workingDirectory?: string): string;
|
|
8
|
+
export declare function formatPrunedItemsList(pruneToolIds: string[], toolMetadata: Map<string, ToolParameterEntry>, workingDirectory?: string): string[];
|
|
9
|
+
export declare function formatPruningResultForTool(prunedIds: string[], toolMetadata: Map<string, ToolParameterEntry>, workingDirectory?: string): string;
|
|
10
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/ui/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AA2ItE,wBAAgB,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAG7F;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAM1E;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAGjE;AAED,wBAAgB,iBAAiB,CAC7B,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,gBAAgB,EAAE,MAAM,EAAE,EAC1B,KAAK,GAAE,MAAW,GACnB,MAAM,CA4BR;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAqCxF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAU5E;AAeD,wBAAgB,qBAAqB,CACjC,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,gBAAgB,CAAC,EAAE,MAAM,GAC1B,MAAM,EAAE,CA0BV;AAED,wBAAgB,0BAA0B,CACtC,SAAS,EAAE,MAAM,EAAE,EACnB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC7C,gBAAgB,CAAC,EAAE,MAAM,GAC1B,MAAM,CAWR"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Plugin } from "@opencode/plugin";
|
|
2
|
+
import { Logger } from "../logger";
|
|
3
|
+
export declare function report(logger: Logger, text: string, sessionID?: string): Promise<void>;
|
|
4
|
+
export declare function setup(ctx: Plugin.Context): Promise<(() => void) | undefined>;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAkClC,wBAAsB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,iBAE5E;AAED,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,qCAuW9C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Message } from "@opencode/ai/schema/messages";
|
|
2
|
+
import type { Plugin } from "@opencode/plugin";
|
|
3
|
+
import type { WithParts } from "../state";
|
|
4
|
+
type History = Awaited<ReturnType<Plugin.Context["session"]["context"]>>;
|
|
5
|
+
type Session = Awaited<ReturnType<Plugin.Context["session"]["get"]>>;
|
|
6
|
+
export declare function history(entries: History, session: Session): WithParts[];
|
|
7
|
+
export declare function project(native: Message[], entries: History, session: Session): {
|
|
8
|
+
messages: WithParts[];
|
|
9
|
+
restore: () => Message[];
|
|
10
|
+
summaryBase: WithParts;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../lib/v2/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAA+B,MAAM,8BAA8B,CAAA;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEzC,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACxE,KAAK,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAuBpE,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAsDvE;AAQD,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;;mBAiGrD,OAAO,EAAE;;EAgEhC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export declare const rpc: {
|
|
2
|
+
readonly id: "dcp-rc";
|
|
3
|
+
readonly methods: {
|
|
4
|
+
readonly status: {
|
|
5
|
+
readonly input: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
|
|
6
|
+
readonly output: import("zod").ZodObject<{
|
|
7
|
+
enabled: import("zod").ZodBoolean;
|
|
8
|
+
}, import("zod/v4/core").$strip>;
|
|
9
|
+
};
|
|
10
|
+
readonly snapshot: {
|
|
11
|
+
readonly input: import("zod").ZodObject<{
|
|
12
|
+
sessionID: import("zod").ZodString;
|
|
13
|
+
}, import("zod/v4/core").$strip>;
|
|
14
|
+
readonly output: import("zod").ZodObject<{
|
|
15
|
+
manualMode: import("zod").ZodBoolean;
|
|
16
|
+
canCompress: import("zod").ZodBoolean;
|
|
17
|
+
blockedReason: import("zod").ZodOptional<import("zod").ZodString>;
|
|
18
|
+
context: import("zod").ZodObject<{
|
|
19
|
+
system: import("zod").ZodNumber;
|
|
20
|
+
user: import("zod").ZodNumber;
|
|
21
|
+
assistant: import("zod").ZodNumber;
|
|
22
|
+
tools: import("zod").ZodNumber;
|
|
23
|
+
toolCount: import("zod").ZodNumber;
|
|
24
|
+
toolsInContextCount: import("zod").ZodNumber;
|
|
25
|
+
prunedTokens: import("zod").ZodNumber;
|
|
26
|
+
prunedToolCount: import("zod").ZodNumber;
|
|
27
|
+
prunedMessageCount: import("zod").ZodNumber;
|
|
28
|
+
total: import("zod").ZodNumber;
|
|
29
|
+
}, import("zod/v4/core").$strip>;
|
|
30
|
+
stats: import("zod").ZodObject<{
|
|
31
|
+
sessionTokens: import("zod").ZodNumber;
|
|
32
|
+
sessionSummaryTokens: import("zod").ZodNumber;
|
|
33
|
+
sessionDurationMs: import("zod").ZodNumber;
|
|
34
|
+
sessionTools: import("zod").ZodNumber;
|
|
35
|
+
sessionMessages: import("zod").ZodNumber;
|
|
36
|
+
allTime: import("zod").ZodObject<{
|
|
37
|
+
totalTokens: import("zod").ZodNumber;
|
|
38
|
+
totalTools: import("zod").ZodNumber;
|
|
39
|
+
totalMessages: import("zod").ZodNumber;
|
|
40
|
+
sessionCount: import("zod").ZodNumber;
|
|
41
|
+
}, import("zod/v4/core").$strip>;
|
|
42
|
+
}, import("zod/v4/core").$strip>;
|
|
43
|
+
}, import("zod/v4/core").$strip>;
|
|
44
|
+
};
|
|
45
|
+
readonly manual: {
|
|
46
|
+
readonly input: import("zod").ZodObject<{
|
|
47
|
+
sessionID: import("zod").ZodString;
|
|
48
|
+
enabled: import("zod").ZodBoolean;
|
|
49
|
+
}, import("zod/v4/core").$strip>;
|
|
50
|
+
readonly output: import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
readonly events: {};
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../lib/v2/rpc.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBN,CAAA"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Theme } from "../tui/types";
|
|
2
|
+
type Color = Theme["text"];
|
|
3
|
+
type Feedback = "success" | "warning" | "error";
|
|
4
|
+
type Action = "primary" | "secondary";
|
|
5
|
+
type CurrentTheme = {
|
|
6
|
+
surface(name: "dialog"): {
|
|
7
|
+
text: {
|
|
8
|
+
base: Color;
|
|
9
|
+
muted: Color;
|
|
10
|
+
action: Record<Action, {
|
|
11
|
+
base: Color;
|
|
12
|
+
}>;
|
|
13
|
+
feedback: Record<Feedback, {
|
|
14
|
+
base: Color;
|
|
15
|
+
}>;
|
|
16
|
+
};
|
|
17
|
+
background: {
|
|
18
|
+
base: Color;
|
|
19
|
+
raised: {
|
|
20
|
+
base: Color;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
border: {
|
|
24
|
+
base: Color;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
type EarlierTheme = {
|
|
29
|
+
contextual: {
|
|
30
|
+
overlay: {
|
|
31
|
+
text: {
|
|
32
|
+
default: Color;
|
|
33
|
+
subdued: Color;
|
|
34
|
+
action: Record<Action, {
|
|
35
|
+
default: Color;
|
|
36
|
+
}>;
|
|
37
|
+
feedback: Record<Feedback, {
|
|
38
|
+
default: Color;
|
|
39
|
+
}>;
|
|
40
|
+
};
|
|
41
|
+
background: {
|
|
42
|
+
default: Color;
|
|
43
|
+
surface: {
|
|
44
|
+
offset: Color;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
border: {
|
|
48
|
+
default: Color;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export declare function panelTheme(source: CurrentTheme | EarlierTheme): Theme;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../lib/v2/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,KAAK,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;AAC1B,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAC/C,KAAK,MAAM,GAAG,SAAS,GAAG,WAAW,CAAA;AAErC,KAAK,YAAY,GAAG;IAChB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG;QACrB,IAAI,EAAE;YACF,IAAI,EAAE,KAAK,CAAA;YACX,KAAK,EAAE,KAAK,CAAA;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,KAAK,CAAA;aAAE,CAAC,CAAA;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAAE,IAAI,EAAE,KAAK,CAAA;aAAE,CAAC,CAAA;SAC9C,CAAA;QACD,UAAU,EAAE;YAAE,IAAI,EAAE,KAAK,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,KAAK,CAAA;aAAE,CAAA;SAAE,CAAA;QACpD,MAAM,EAAE;YAAE,IAAI,EAAE,KAAK,CAAA;SAAE,CAAA;KAC1B,CAAA;CACJ,CAAA;AAED,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE;QACR,OAAO,EAAE;YACL,IAAI,EAAE;gBACF,OAAO,EAAE,KAAK,CAAA;gBACd,OAAO,EAAE,KAAK,CAAA;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;oBAAE,OAAO,EAAE,KAAK,CAAA;iBAAE,CAAC,CAAA;gBAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAAE,OAAO,EAAE,KAAK,CAAA;iBAAE,CAAC,CAAA;aACjD,CAAA;YACD,UAAU,EAAE;gBAAE,OAAO,EAAE,KAAK,CAAC;gBAAC,OAAO,EAAE;oBAAE,MAAM,EAAE,KAAK,CAAA;iBAAE,CAAA;aAAE,CAAA;YAC1D,MAAM,EAAE;gBAAE,OAAO,EAAE,KAAK,CAAA;aAAE,CAAA;SAC7B,CAAA;KACJ,CAAA;CACJ,CAAA;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,GAAG,KAAK,CAgCrE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../../lib/v2/tui.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAMlD,wBAAsB,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,iBA2G9C"}
|
package/dist/tui.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../tui.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;;;;;AAEpC,wBAG6B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { CompressionBlock, PruneMessagesState } from "../state"
|
|
2
|
+
|
|
3
|
+
export interface CompressionTarget {
|
|
4
|
+
displayId: number
|
|
5
|
+
runId: number
|
|
6
|
+
topic: string
|
|
7
|
+
compressedTokens: number
|
|
8
|
+
durationMs: number
|
|
9
|
+
blocks: CompressionBlock[]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function byBlockId(a: CompressionBlock, b: CompressionBlock): number {
|
|
13
|
+
return a.blockId - b.blockId
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function buildTarget(block: CompressionBlock): CompressionTarget {
|
|
17
|
+
return {
|
|
18
|
+
displayId: block.blockId,
|
|
19
|
+
runId: block.runId,
|
|
20
|
+
topic: block.topic,
|
|
21
|
+
compressedTokens: block.compressedTokens,
|
|
22
|
+
durationMs: block.durationMs,
|
|
23
|
+
blocks: [block],
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function getActiveCompressionTargets(
|
|
28
|
+
messagesState: PruneMessagesState,
|
|
29
|
+
): CompressionTarget[] {
|
|
30
|
+
return Array.from(messagesState.activeBlockIds)
|
|
31
|
+
.map((blockId) => messagesState.blocksById.get(blockId))
|
|
32
|
+
.filter((block): block is CompressionBlock => !!block && block.active)
|
|
33
|
+
.sort(byBlockId)
|
|
34
|
+
.map(buildTarget)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function getRecompressibleCompressionTargets(
|
|
38
|
+
messagesState: PruneMessagesState,
|
|
39
|
+
availableMessageIds: Set<string>,
|
|
40
|
+
): CompressionTarget[] {
|
|
41
|
+
return Array.from(messagesState.blocksById.values())
|
|
42
|
+
.filter((block) => availableMessageIds.has(block.compressMessageId))
|
|
43
|
+
.filter((block) => block.deactivatedByUser && !block.active)
|
|
44
|
+
.sort(byBlockId)
|
|
45
|
+
.map(buildTarget)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function resolveCompressionTarget(
|
|
49
|
+
messagesState: PruneMessagesState,
|
|
50
|
+
blockId: number,
|
|
51
|
+
): CompressionTarget | null {
|
|
52
|
+
const block = messagesState.blocksById.get(blockId)
|
|
53
|
+
return block ? buildTarget(block) : null
|
|
54
|
+
}
|