@aexol/spectral 0.9.230 → 0.9.234
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 +2 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +89 -14
- package/dist/backend/generated-images.d.ts +1 -1
- package/dist/backend/generated-images.d.ts.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +12 -1
- package/dist/designer/data/skills/blog-post.d.ts +3 -0
- package/dist/designer/data/skills/blog-post.d.ts.map +1 -0
- package/dist/designer/data/skills/blog-post.js +84 -0
- package/dist/designer/data/skills/blog-post.ts +87 -0
- package/dist/designer/data/skills/critique.d.ts +3 -0
- package/dist/designer/data/skills/critique.d.ts.map +1 -0
- package/dist/designer/data/skills/critique.js +109 -0
- package/dist/designer/data/skills/critique.ts +112 -0
- package/dist/designer/data/skills/dashboard.d.ts +3 -0
- package/dist/designer/data/skills/dashboard.d.ts.map +1 -0
- package/dist/designer/data/skills/dashboard.js +165 -0
- package/dist/designer/data/skills/dashboard.ts +168 -0
- package/dist/designer/data/skills/design-brief.d.ts +3 -0
- package/dist/designer/data/skills/design-brief.d.ts.map +1 -0
- package/dist/designer/data/skills/design-brief.js +141 -0
- package/dist/designer/data/skills/design-brief.ts +144 -0
- package/dist/designer/data/skills/design-skill.d.ts +10 -0
- package/dist/designer/data/skills/design-skill.d.ts.map +1 -0
- package/dist/designer/data/skills/design-skill.js +1 -0
- package/dist/designer/data/skills/design-skill.ts +9 -0
- package/dist/designer/data/skills/docs-page.d.ts +3 -0
- package/dist/designer/data/skills/docs-page.d.ts.map +1 -0
- package/dist/designer/data/skills/docs-page.js +68 -0
- package/dist/designer/data/skills/docs-page.ts +71 -0
- package/dist/designer/data/skills/index.d.ts +3 -0
- package/dist/designer/data/skills/index.d.ts.map +1 -0
- package/dist/designer/data/skills/index.js +28 -0
- package/dist/designer/data/skills/index.ts +30 -0
- package/dist/designer/data/skills/magazine-poster.d.ts +3 -0
- package/dist/designer/data/skills/magazine-poster.d.ts.map +1 -0
- package/dist/designer/data/skills/magazine-poster.js +70 -0
- package/dist/designer/data/skills/magazine-poster.ts +73 -0
- package/dist/designer/data/skills/mobile-app.d.ts +3 -0
- package/dist/designer/data/skills/mobile-app.d.ts.map +1 -0
- package/dist/designer/data/skills/mobile-app.js +229 -0
- package/dist/designer/data/skills/mobile-app.ts +232 -0
- package/dist/designer/data/skills/motion-frames.d.ts +3 -0
- package/dist/designer/data/skills/motion-frames.d.ts.map +1 -0
- package/dist/designer/data/skills/motion-frames.js +121 -0
- package/dist/designer/data/skills/motion-frames.ts +124 -0
- package/dist/designer/data/skills/pricing-page.d.ts +3 -0
- package/dist/designer/data/skills/pricing-page.d.ts.map +1 -0
- package/dist/designer/data/skills/pricing-page.js +76 -0
- package/dist/designer/data/skills/pricing-page.ts +79 -0
- package/dist/designer/data/skills/saas-landing.d.ts +3 -0
- package/dist/designer/data/skills/saas-landing.d.ts.map +1 -0
- package/dist/designer/data/skills/saas-landing.js +71 -0
- package/dist/designer/data/skills/saas-landing.ts +74 -0
- package/dist/designer/data/skills/slide-deck.d.ts +3 -0
- package/dist/designer/data/skills/slide-deck.d.ts.map +1 -0
- package/dist/designer/data/skills/slide-deck.js +213 -0
- package/dist/designer/data/skills/slide-deck.ts +216 -0
- package/dist/designer/data/skills/social-carousel.d.ts +3 -0
- package/dist/designer/data/skills/social-carousel.d.ts.map +1 -0
- package/dist/designer/data/skills/social-carousel.js +135 -0
- package/dist/designer/data/skills/social-carousel.ts +138 -0
- package/dist/designer/data/skills/web-prototype.d.ts +3 -0
- package/dist/designer/data/skills/web-prototype.d.ts.map +1 -0
- package/dist/designer/data/skills/web-prototype.js +159 -0
- package/dist/designer/data/skills/web-prototype.ts +162 -0
- package/dist/designer/skills.d.ts +4 -10
- package/dist/designer/skills.d.ts.map +1 -1
- package/dist/designer/skills.js +2 -1643
- package/dist/extensions/logic-trace.d.ts +1 -1
- package/dist/extensions/logic-trace.d.ts.map +1 -1
- package/dist/extensions/logic-trace.js +199 -70
- package/dist/extensions/video-generation/index.d.ts +3 -0
- package/dist/extensions/video-generation/index.d.ts.map +1 -0
- package/dist/extensions/video-generation/index.js +299 -0
- package/dist/extensions/wizard/index.js +9 -1
- package/dist/generated/parser/ast/nodes.d.ts +115 -0
- package/dist/generated/parser/ast/nodes.d.ts.map +1 -0
- package/dist/generated/parser/ast/nodes.js +8 -0
- package/dist/generated/parser/lexer/lexer.d.ts +28 -0
- package/dist/generated/parser/lexer/lexer.d.ts.map +1 -0
- package/dist/generated/parser/{lexer.js → lexer/lexer.js} +1 -180
- package/dist/generated/parser/{lexer.d.ts → lexer/tokens.d.ts} +5 -24
- package/dist/generated/parser/lexer/tokens.d.ts.map +1 -0
- package/dist/generated/parser/lexer/tokens.js +187 -0
- package/dist/generated/parser/mod.d.ts +5 -7
- package/dist/generated/parser/mod.d.ts.map +1 -1
- package/dist/generated/parser/mod.js +2 -1
- package/dist/generated/parser/parser/cursor.d.ts +47 -0
- package/dist/generated/parser/parser/cursor.d.ts.map +1 -0
- package/dist/generated/parser/parser/cursor.js +12 -0
- package/dist/generated/parser/parser/definitions.d.ts +16 -0
- package/dist/generated/parser/parser/definitions.d.ts.map +1 -0
- package/dist/generated/parser/parser/definitions.js +353 -0
- package/dist/generated/parser/parser/expressions.d.ts +17 -0
- package/dist/generated/parser/parser/expressions.d.ts.map +1 -0
- package/dist/generated/parser/parser/expressions.js +165 -0
- package/dist/generated/parser/parser.d.ts +18 -133
- package/dist/generated/parser/parser.d.ts.map +1 -1
- package/dist/generated/parser/parser.js +9 -505
- package/dist/generated/parser/tokenizer.d.ts +1 -2
- package/dist/generated/parser/tokenizer.d.ts.map +1 -1
- package/dist/generated/parser/tokenizer.js +2 -1
- package/dist/generated/parser/validator.d.ts +1 -1
- package/dist/generated/parser/validator.d.ts.map +1 -1
- package/dist/generated/zeus/const.d.ts.map +1 -1
- package/dist/generated/zeus/const.js +30 -0
- package/dist/generated/zeus/index.d.ts +140 -0
- package/dist/generated/zeus/index.d.ts.map +1 -1
- package/dist/generated/zeus/index.js +5 -0
- package/dist/mcp/glimpse-ui.js +9 -1
- package/dist/relay/dispatcher.d.ts +23 -104
- package/dist/relay/dispatcher.d.ts.map +1 -1
- package/dist/relay/dispatcher.js +21 -1130
- package/dist/relay/rest.d.ts +31 -0
- package/dist/relay/rest.d.ts.map +1 -0
- package/dist/relay/rest.js +85 -0
- package/dist/relay/routing.d.ts +109 -0
- package/dist/relay/routing.d.ts.map +1 -0
- package/dist/relay/routing.js +669 -0
- package/dist/relay/wizard-login.d.ts +17 -0
- package/dist/relay/wizard-login.d.ts.map +1 -0
- package/dist/relay/wizard-login.js +419 -0
- package/dist/sdk/agent-core/agent-loop.d.ts +2 -9
- package/dist/sdk/agent-core/agent-loop.d.ts.map +1 -1
- package/dist/sdk/agent-core/agent-loop.js +17 -291
- package/dist/sdk/agent-core/agent.d.ts +11 -4
- package/dist/sdk/agent-core/agent.d.ts.map +1 -1
- package/dist/sdk/agent-core/agent.js +16 -4
- package/dist/sdk/agent-core/tool-call-registry.d.ts +75 -0
- package/dist/sdk/agent-core/tool-call-registry.d.ts.map +1 -0
- package/dist/sdk/agent-core/tool-call-registry.js +131 -0
- package/dist/sdk/agent-core/tool-execution.d.ts +33 -0
- package/dist/sdk/agent-core/tool-execution.d.ts.map +1 -0
- package/dist/sdk/agent-core/tool-execution.js +399 -0
- package/dist/sdk/agent-core/types.d.ts +15 -4
- package/dist/sdk/agent-core/types.d.ts.map +1 -1
- package/dist/sdk/ai/env-api-keys.js +9 -1
- package/dist/sdk/ai/index.d.ts +3 -0
- package/dist/sdk/ai/index.d.ts.map +1 -1
- package/dist/sdk/ai/index.js +3 -0
- package/dist/sdk/ai/providers/faux.d.ts.map +1 -1
- package/dist/sdk/ai/providers/faux.js +3 -0
- package/dist/sdk/ai/providers/leaked-tool-call-parser.d.ts +39 -6
- package/dist/sdk/ai/providers/leaked-tool-call-parser.d.ts.map +1 -1
- package/dist/sdk/ai/providers/leaked-tool-call-parser.js +159 -18
- package/dist/sdk/ai/providers/openai/reasoning-replay.d.ts +48 -0
- package/dist/sdk/ai/providers/openai/reasoning-replay.d.ts.map +1 -0
- package/dist/sdk/ai/providers/openai/reasoning-replay.js +209 -0
- package/dist/sdk/ai/providers/openai-completions.d.ts.map +1 -1
- package/dist/sdk/ai/providers/openai-completions.js +23 -211
- package/dist/sdk/ai/providers/openrouter-videos.d.ts +3 -0
- package/dist/sdk/ai/providers/openrouter-videos.d.ts.map +1 -0
- package/dist/sdk/ai/providers/openrouter-videos.js +412 -0
- package/dist/sdk/ai/providers/register-builtins.d.ts.map +1 -1
- package/dist/sdk/ai/providers/register-builtins.js +6 -0
- package/dist/sdk/ai/providers/simple-options.d.ts +1 -6
- package/dist/sdk/ai/providers/simple-options.d.ts.map +1 -1
- package/dist/sdk/ai/providers/simple-options.js +0 -22
- package/dist/sdk/ai/providers/transform-messages.d.ts.map +1 -1
- package/dist/sdk/ai/providers/transform-messages.js +52 -1
- package/dist/sdk/ai/types.d.ts +91 -10
- package/dist/sdk/ai/types.d.ts.map +1 -1
- package/dist/sdk/ai/video-models.d.ts +10 -0
- package/dist/sdk/ai/video-models.d.ts.map +1 -0
- package/dist/sdk/ai/video-models.generated.d.ts +440 -0
- package/dist/sdk/ai/video-models.generated.d.ts.map +1 -0
- package/dist/sdk/ai/video-models.generated.js +441 -0
- package/dist/sdk/ai/video-models.js +22 -0
- package/dist/sdk/ai/videos-api-registry.d.ts +14 -0
- package/dist/sdk/ai/videos-api-registry.d.ts.map +1 -0
- package/dist/sdk/ai/videos-api-registry.js +21 -0
- package/dist/sdk/ai/videos.d.ts +4 -0
- package/dist/sdk/ai/videos.d.ts.map +1 -0
- package/dist/sdk/ai/videos.js +13 -0
- package/dist/sdk/coding-agent/core/agent-session.d.ts +8 -0
- package/dist/sdk/coding-agent/core/agent-session.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/agent-session.js +11 -0
- package/dist/sdk/coding-agent/core/compaction/compaction.d.ts +6 -118
- package/dist/sdk/coding-agent/core/compaction/compaction.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/compaction/compaction.js +11 -733
- package/dist/sdk/coding-agent/core/compaction/cut-points.d.ts +58 -0
- package/dist/sdk/coding-agent/core/compaction/cut-points.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/cut-points.js +191 -0
- package/dist/sdk/coding-agent/core/compaction/dedupe.d.ts +28 -0
- package/dist/sdk/coding-agent/core/compaction/dedupe.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/dedupe.js +156 -0
- package/dist/sdk/coding-agent/core/compaction/summarize.d.ts +21 -0
- package/dist/sdk/coding-agent/core/compaction/summarize.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/summarize.js +181 -0
- package/dist/sdk/coding-agent/core/compaction/tokens.d.ts +47 -0
- package/dist/sdk/coding-agent/core/compaction/tokens.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/compaction/tokens.js +224 -0
- package/dist/sdk/coding-agent/core/extensions/loader.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/extensions/loader.js +14 -0
- package/dist/sdk/coding-agent/core/extensions/native-extensions.d.ts +26 -0
- package/dist/sdk/coding-agent/core/extensions/native-extensions.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/extensions/native-extensions.js +23 -0
- package/dist/sdk/coding-agent/core/extensions/session-events.d.ts +157 -0
- package/dist/sdk/coding-agent/core/extensions/session-events.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/session-events.js +13 -0
- package/dist/sdk/coding-agent/core/extensions/types.d.ts +10 -367
- package/dist/sdk/coding-agent/core/extensions/types.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/extensions/types.js +2 -10
- package/dist/sdk/coding-agent/core/extensions/ui-types.d.ts +219 -0
- package/dist/sdk/coding-agent/core/extensions/ui-types.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/extensions/ui-types.js +4 -0
- package/dist/sdk/coding-agent/core/messages.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/messages.js +42 -2
- package/dist/sdk/coding-agent/core/package/default-package-manager.d.ts +115 -0
- package/dist/sdk/coding-agent/core/package/default-package-manager.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package/default-package-manager.js +1184 -0
- package/dist/sdk/coding-agent/core/package/discovery.d.ts +20 -0
- package/dist/sdk/coding-agent/core/package/discovery.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package/discovery.js +283 -0
- package/dist/sdk/coding-agent/core/package/ignore.d.ts +29 -0
- package/dist/sdk/coding-agent/core/package/ignore.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package/ignore.js +235 -0
- package/dist/sdk/coding-agent/core/package/types.d.ts +128 -0
- package/dist/sdk/coding-agent/core/package/types.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package/types.js +18 -0
- package/dist/sdk/coding-agent/core/package/update-check.d.ts +43 -0
- package/dist/sdk/coding-agent/core/package/update-check.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/package/update-check.js +253 -0
- package/dist/sdk/coding-agent/core/package-manager.d.ts +2 -188
- package/dist/sdk/coding-agent/core/package-manager.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/package-manager.js +1 -1940
- package/dist/sdk/coding-agent/core/resource-loader.d.ts +11 -0
- package/dist/sdk/coding-agent/core/resource-loader.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/resource-loader.js +23 -6
- package/dist/sdk/coding-agent/core/sdk.d.ts +24 -2
- package/dist/sdk/coding-agent/core/sdk.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/sdk.js +15 -3
- package/dist/sdk/coding-agent/core/session/migrate.d.ts +18 -0
- package/dist/sdk/coding-agent/core/session/migrate.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/session/migrate.js +78 -0
- package/dist/sdk/coding-agent/core/session/types.d.ts +165 -0
- package/dist/sdk/coding-agent/core/session/types.d.ts.map +1 -0
- package/dist/sdk/coding-agent/core/session/types.js +4 -0
- package/dist/sdk/coding-agent/core/session-manager.d.ts +3 -161
- package/dist/sdk/coding-agent/core/session-manager.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/session-manager.js +4 -72
- package/dist/sdk/coding-agent/core/settings-manager.d.ts +0 -8
- package/dist/sdk/coding-agent/core/settings-manager.d.ts.map +1 -1
- package/dist/sdk/coding-agent/core/settings-manager.js +3 -3
- package/dist/sdk/coding-agent/index.d.ts +2 -2
- package/dist/sdk/coding-agent/index.d.ts.map +1 -1
- package/dist/sdk/coding-agent/index.js +1 -1
- package/dist/sdk-public.d.ts +96 -0
- package/dist/sdk-public.d.ts.map +1 -0
- package/dist/sdk-public.js +109 -0
- package/dist/server/agent-bridge/rehydrate.d.ts +2 -2
- package/dist/server/agent-bridge/rehydrate.d.ts.map +1 -1
- package/dist/server/agent-bridge/rehydrate.js +14 -0
- package/dist/server/agent-bridge.d.ts +8 -2
- package/dist/server/agent-bridge.d.ts.map +1 -1
- package/dist/server/agent-bridge.js +25 -2
- package/dist/server/session-stream.d.ts +19 -0
- package/dist/server/session-stream.d.ts.map +1 -1
- package/dist/server/session-stream.js +35 -0
- package/dist/server/wire.d.ts +13 -0
- package/dist/server/wire.d.ts.map +1 -1
- package/package.json +8 -2
- package/dist/generated/parser/lexer.d.ts.map +0 -1
|
@@ -4,6 +4,7 @@ export type { ResourceCollision, ResourceDiagnostic } from "./diagnostics.js";
|
|
|
4
4
|
import { type EventBus } from "./event-bus.js";
|
|
5
5
|
import type { ExtensionFactory, LoadExtensionsResult } from "./extensions/types.js";
|
|
6
6
|
import { type PathMetadata } from "./package-manager.js";
|
|
7
|
+
import { type NativeExtensionsOption } from "./extensions/native-extensions.js";
|
|
7
8
|
import type { PromptTemplate } from "./prompt-templates.js";
|
|
8
9
|
import { SettingsManager } from "./settings-manager.js";
|
|
9
10
|
import type { Skill } from "./skills.js";
|
|
@@ -63,6 +64,15 @@ export interface DefaultResourceLoaderOptions {
|
|
|
63
64
|
additionalPromptTemplatePaths?: string[];
|
|
64
65
|
additionalThemePaths?: string[];
|
|
65
66
|
extensionFactories?: ExtensionFactory[];
|
|
67
|
+
/**
|
|
68
|
+
* Native extension selection for this loader. See `NativeExtensionsOption`.
|
|
69
|
+
*
|
|
70
|
+
* When omitted, selection follows Settings.disabledNativeExtensions /
|
|
71
|
+
* Settings.enabledNativeExtensions (CLI default: native extensions are on
|
|
72
|
+
* by default and togglable from settings). On the programmatic SDK path
|
|
73
|
+
* the default is "none" (opt-in only).
|
|
74
|
+
*/
|
|
75
|
+
nativeExtensions?: NativeExtensionsOption;
|
|
66
76
|
noExtensions?: boolean;
|
|
67
77
|
noSkills?: boolean;
|
|
68
78
|
noPromptTemplates?: boolean;
|
|
@@ -117,6 +127,7 @@ export declare class DefaultResourceLoader implements ResourceLoader {
|
|
|
117
127
|
private additionalPromptTemplatePaths;
|
|
118
128
|
private additionalThemePaths;
|
|
119
129
|
private extensionFactories;
|
|
130
|
+
private nativeExtensions?;
|
|
120
131
|
private noExtensions;
|
|
121
132
|
private noSkills;
|
|
122
133
|
private noPromptTemplates;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-loader.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/resource-loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,KAAK,EAAa,gBAAgB,EAAoB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACjH,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-loader.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/resource-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { canonicalizePath, isLocalPath, resolvePath } from "../utils/paths.js";
|
|
|
9
9
|
import { createEventBus } from "./event-bus.js";
|
|
10
10
|
import { createExtensionRuntime, loadExtensionFromFactory, loadExtensions } from "./extensions/loader.js";
|
|
11
11
|
import { DefaultPackageManager } from "./package-manager.js";
|
|
12
|
-
import { getEnabledNativeExtensionPaths, } from "./extensions/native-extensions.js";
|
|
12
|
+
import { getExplicitNativeExtensionPaths, getEnabledNativeExtensionPaths, NATIVE_EXTENSIONS, } from "./extensions/native-extensions.js";
|
|
13
13
|
import { loadPromptTemplates } from "./prompt-templates.js";
|
|
14
14
|
import { SettingsManager } from "./settings-manager.js";
|
|
15
15
|
import { loadSkills } from "./skills.js";
|
|
@@ -87,6 +87,7 @@ export class DefaultResourceLoader {
|
|
|
87
87
|
additionalPromptTemplatePaths;
|
|
88
88
|
additionalThemePaths;
|
|
89
89
|
extensionFactories;
|
|
90
|
+
nativeExtensions;
|
|
90
91
|
noExtensions;
|
|
91
92
|
noSkills;
|
|
92
93
|
noPromptTemplates;
|
|
@@ -132,6 +133,7 @@ export class DefaultResourceLoader {
|
|
|
132
133
|
this.additionalPromptTemplatePaths = options.additionalPromptTemplatePaths ?? [];
|
|
133
134
|
this.additionalThemePaths = options.additionalThemePaths ?? [];
|
|
134
135
|
this.extensionFactories = options.extensionFactories ?? [];
|
|
136
|
+
this.nativeExtensions = options.nativeExtensions;
|
|
135
137
|
this.noExtensions = options.noExtensions ?? false;
|
|
136
138
|
this.noSkills = options.noSkills ?? false;
|
|
137
139
|
this.noPromptTemplates = options.noPromptTemplates ?? false;
|
|
@@ -230,11 +232,26 @@ export class DefaultResourceLoader {
|
|
|
230
232
|
};
|
|
231
233
|
const getEnabledPaths = (resources) => getEnabledResources(resources).map((r) => r.path);
|
|
232
234
|
let enabledExtensions = getEnabledPaths(resolvedPaths.extensions);
|
|
233
|
-
// --- Native extensions
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
// --- Native extensions ---
|
|
236
|
+
// Default: enabled by default and togglable from landing settings.
|
|
237
|
+
// When `nativeExtensions` is set, the caller takes full control (used by
|
|
238
|
+
// the programmatic SDK path, where native extensions are opt-in only).
|
|
239
|
+
let nativePaths;
|
|
240
|
+
if (this.nativeExtensions === "all") {
|
|
241
|
+
nativePaths = getExplicitNativeExtensionPaths(new Set(NATIVE_EXTENSIONS.map((e) => e.id)), new Set());
|
|
242
|
+
}
|
|
243
|
+
else if (this.nativeExtensions === "none") {
|
|
244
|
+
nativePaths = [];
|
|
245
|
+
}
|
|
246
|
+
else if (this.nativeExtensions) {
|
|
247
|
+
nativePaths = getExplicitNativeExtensionPaths(new Set(this.nativeExtensions.enabled ?? []), new Set(this.nativeExtensions.disabled ?? []));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
const settings = this.settingsManager.getSettings();
|
|
251
|
+
const disabledNative = new Set(settings.disabledNativeExtensions ?? []);
|
|
252
|
+
const enabledNative = new Set(settings.enabledNativeExtensions ?? []);
|
|
253
|
+
nativePaths = getEnabledNativeExtensionPaths(disabledNative, enabledNative);
|
|
254
|
+
}
|
|
238
255
|
// Resolve native paths relative to the CLI package root.
|
|
239
256
|
// resource-loader.ts lives at cli-node/src/sdk/coding-agent/core/.
|
|
240
257
|
// Going up 4 levels (core → coding-agent → sdk → src → cli-node) reaches the package root.
|
|
@@ -3,12 +3,21 @@ import { type Model } from "../../ai/index.js";
|
|
|
3
3
|
import { AgentSession } from "./agent-session.js";
|
|
4
4
|
import { AuthStorage } from "./auth-storage.js";
|
|
5
5
|
import type { LoadExtensionsResult, SessionStartEvent, ToolDefinition } from "./extensions/index.js";
|
|
6
|
+
import type { NativeExtensionsOption } from "./extensions/native-extensions.js";
|
|
6
7
|
import { ModelRegistry } from "./model-registry.js";
|
|
7
8
|
import type { ResourceLoader } from "./resource-loader.js";
|
|
8
9
|
import { SessionManager } from "./session-manager.js";
|
|
9
10
|
import { SettingsManager } from "./settings-manager.js";
|
|
10
11
|
import type { BashJobRegistry } from "./bash-jobs.js";
|
|
11
12
|
import { createBashTool, createCodingTools, createReadOnlyTools, createReadTool, withFileMutationQueue } from "./tools/index.js";
|
|
13
|
+
/**
|
|
14
|
+
* Native (built-in) extension selection for the default resource loader.
|
|
15
|
+
*
|
|
16
|
+
* Re-exported from `./extensions/native-extensions.js` (single source of
|
|
17
|
+
* truth shared with `DefaultResourceLoaderOptions`) so the public SDK
|
|
18
|
+
* surface keeps exporting it.
|
|
19
|
+
*/
|
|
20
|
+
export type { NativeExtensionsOption };
|
|
12
21
|
export interface CreateAgentSessionOptions {
|
|
13
22
|
/** Working directory for project-local discovery. Default: process.cwd() */
|
|
14
23
|
cwd?: string;
|
|
@@ -31,14 +40,14 @@ export interface CreateAgentSessionOptions {
|
|
|
31
40
|
* Optional default tool suppression mode when no explicit allowlist is provided.
|
|
32
41
|
*
|
|
33
42
|
* - "all": start with no tools enabled
|
|
34
|
-
* - "builtin": disable the default built-in tools (read, bash,
|
|
43
|
+
* - "builtin": disable the default built-in tools (read, bash, bash_status, bash_kill, apply_patch)
|
|
35
44
|
* but keep extension/custom tools enabled
|
|
36
45
|
*/
|
|
37
46
|
noTools?: "all" | "builtin";
|
|
38
47
|
/**
|
|
39
48
|
* Optional allowlist of tool names.
|
|
40
49
|
*
|
|
41
|
-
* When omitted, spectral enables the default built-in tools (read, bash,
|
|
50
|
+
* When omitted, spectral enables the default built-in tools (read, bash, bash_status, bash_kill, apply_patch)
|
|
42
51
|
* and leaves extension/custom tools enabled unless `noTools` changes that default.
|
|
43
52
|
* When provided, only the listed tool names are enabled.
|
|
44
53
|
*/
|
|
@@ -47,6 +56,19 @@ export interface CreateAgentSessionOptions {
|
|
|
47
56
|
customTools?: ToolDefinition[];
|
|
48
57
|
/** Resource loader. When omitted, DefaultResourceLoader is used. */
|
|
49
58
|
resourceLoader?: ResourceLoader;
|
|
59
|
+
/**
|
|
60
|
+
* Native extension selection for the default resource loader (used only
|
|
61
|
+
* when `resourceLoader` is omitted). Default: "none" — native extensions
|
|
62
|
+
* are opt-in for programmatic SDK usage. Ignored entirely when
|
|
63
|
+
* `resourceLoader` is provided.
|
|
64
|
+
*/
|
|
65
|
+
nativeExtensions?: NativeExtensionsOption;
|
|
66
|
+
/**
|
|
67
|
+
* Explicit extension entry paths, always loaded by the default resource
|
|
68
|
+
* loader (used only when `resourceLoader` is omitted). Ignored entirely
|
|
69
|
+
* when `resourceLoader` is provided.
|
|
70
|
+
*/
|
|
71
|
+
extensions?: string[];
|
|
50
72
|
/** Session manager. Default: SessionManager.create(cwd) */
|
|
51
73
|
sessionManager?: SessionManager;
|
|
52
74
|
/** Settings manager. Default: SettingsManager.create(cwd, agentDir) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/sdk.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAoC,KAAK,KAAK,EAAgB,MAAM,mBAAmB,CAAC;AAG/F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAmB,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../../src/sdk/coding-agent/core/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,16 @@ export async function createAgentSession(options = {}) {
|
|
|
93
93
|
const settingsManager = options.settingsManager ?? SettingsManager.create(cwd, agentDir);
|
|
94
94
|
const sessionManager = options.sessionManager ?? SessionManager.create(cwd, getDefaultSessionDir(cwd, agentDir));
|
|
95
95
|
if (!resourceLoader) {
|
|
96
|
-
|
|
96
|
+
// Default loader honors the nativeExtensions/extensions options. Native
|
|
97
|
+
// extensions default to OFF on the SDK path (unlike the CLI/serve path,
|
|
98
|
+
// where the settings-driven default enables them).
|
|
99
|
+
resourceLoader = new DefaultResourceLoader({
|
|
100
|
+
cwd,
|
|
101
|
+
agentDir,
|
|
102
|
+
settingsManager,
|
|
103
|
+
nativeExtensions: options.nativeExtensions ?? "none",
|
|
104
|
+
additionalExtensionPaths: options.extensions ?? [],
|
|
105
|
+
});
|
|
97
106
|
await resourceLoader.reload();
|
|
98
107
|
time("resourceLoader.reload");
|
|
99
108
|
}
|
|
@@ -172,7 +181,11 @@ export async function createAgentSession(options = {}) {
|
|
|
172
181
|
const hasImages = content.some((c) => c.type === "image");
|
|
173
182
|
if (hasImages) {
|
|
174
183
|
const filteredContent = content
|
|
175
|
-
.map((c) => c.type === "image"
|
|
184
|
+
.map((c) => c.type === "image"
|
|
185
|
+
? { type: "text", text: "Image reading is disabled." }
|
|
186
|
+
: c.type === "video"
|
|
187
|
+
? { type: "text", text: "Video reading is disabled." }
|
|
188
|
+
: c)
|
|
176
189
|
.filter((c, i, arr) =>
|
|
177
190
|
// Dedupe consecutive "Image reading is disabled." texts
|
|
178
191
|
!(c.type === "text" &&
|
|
@@ -242,7 +255,6 @@ export async function createAgentSession(options = {}) {
|
|
|
242
255
|
steeringMode: settingsManager.getSteeringMode(),
|
|
243
256
|
followUpMode: settingsManager.getFollowUpMode(),
|
|
244
257
|
transport: settingsManager.getTransport(),
|
|
245
|
-
thinkingBudgets: settingsManager.getThinkingBudgets(),
|
|
246
258
|
maxRetryDelayMs: settingsManager.getProviderRetrySettings().maxRetryDelayMs,
|
|
247
259
|
});
|
|
248
260
|
// Restore messages if session has existing data
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session file migrations (v1 → v3).
|
|
3
|
+
*
|
|
4
|
+
* Migrations mutate entries in place when loading older session files.
|
|
5
|
+
*/
|
|
6
|
+
import { type FileEntry } from "./types.js";
|
|
7
|
+
/** Generate a unique short ID (8 hex chars, collision-checked) */
|
|
8
|
+
export declare function generateId(byId: {
|
|
9
|
+
has(id: string): boolean;
|
|
10
|
+
}): string;
|
|
11
|
+
/**
|
|
12
|
+
* Run all necessary migrations to bring entries to current version.
|
|
13
|
+
* Mutates entries in place. Returns true if any migration was applied.
|
|
14
|
+
*/
|
|
15
|
+
export declare function migrateToCurrentVersion(entries: FileEntry[]): boolean;
|
|
16
|
+
/** Exported for testing */
|
|
17
|
+
export declare function migrateSessionEntries(entries: FileEntry[]): void;
|
|
18
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/session/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,KAAK,SAAS,EAGf,MAAM,YAAY,CAAC;AAEpB,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,MAAM,CAOrE;AAoDD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAWrE;AAED,2BAA2B;AAC3B,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAEhE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session file migrations (v1 → v3).
|
|
3
|
+
*
|
|
4
|
+
* Migrations mutate entries in place when loading older session files.
|
|
5
|
+
*/
|
|
6
|
+
import { randomUUID } from "crypto";
|
|
7
|
+
import { CURRENT_SESSION_VERSION, } from "./types.js";
|
|
8
|
+
/** Generate a unique short ID (8 hex chars, collision-checked) */
|
|
9
|
+
export function generateId(byId) {
|
|
10
|
+
for (let i = 0; i < 100; i++) {
|
|
11
|
+
const id = randomUUID().slice(0, 8);
|
|
12
|
+
if (!byId.has(id))
|
|
13
|
+
return id;
|
|
14
|
+
}
|
|
15
|
+
// Fallback to full UUID if somehow we have collisions
|
|
16
|
+
return randomUUID();
|
|
17
|
+
}
|
|
18
|
+
/** Migrate v1 → v2: add id/parentId tree structure. Mutates in place. */
|
|
19
|
+
function migrateV1ToV2(entries) {
|
|
20
|
+
const ids = new Set();
|
|
21
|
+
let prevId = null;
|
|
22
|
+
for (const entry of entries) {
|
|
23
|
+
if (entry.type === "session") {
|
|
24
|
+
entry.version = 2;
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
entry.id = generateId(ids);
|
|
28
|
+
entry.parentId = prevId;
|
|
29
|
+
prevId = entry.id;
|
|
30
|
+
// Convert firstKeptEntryIndex to firstKeptEntryId for compaction
|
|
31
|
+
if (entry.type === "compaction") {
|
|
32
|
+
const comp = entry;
|
|
33
|
+
if (typeof comp.firstKeptEntryIndex === "number") {
|
|
34
|
+
const targetEntry = entries[comp.firstKeptEntryIndex];
|
|
35
|
+
if (targetEntry && targetEntry.type !== "session") {
|
|
36
|
+
comp.firstKeptEntryId = targetEntry.id;
|
|
37
|
+
}
|
|
38
|
+
delete comp.firstKeptEntryIndex;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Migrate v2 → v3: rename hookMessage role to custom. Mutates in place. */
|
|
44
|
+
function migrateV2ToV3(entries) {
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
if (entry.type === "session") {
|
|
47
|
+
entry.version = 3;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
// Update message entries with hookMessage role
|
|
51
|
+
if (entry.type === "message") {
|
|
52
|
+
const msgEntry = entry;
|
|
53
|
+
if (msgEntry.message &&
|
|
54
|
+
msgEntry.message.role === "hookMessage") {
|
|
55
|
+
msgEntry.message.role = "custom";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Run all necessary migrations to bring entries to current version.
|
|
62
|
+
* Mutates entries in place. Returns true if any migration was applied.
|
|
63
|
+
*/
|
|
64
|
+
export function migrateToCurrentVersion(entries) {
|
|
65
|
+
const header = entries.find((e) => e.type === "session");
|
|
66
|
+
const version = header?.version ?? 1;
|
|
67
|
+
if (version >= CURRENT_SESSION_VERSION)
|
|
68
|
+
return false;
|
|
69
|
+
if (version < 2)
|
|
70
|
+
migrateV1ToV2(entries);
|
|
71
|
+
if (version < 3)
|
|
72
|
+
migrateV2ToV3(entries);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/** Exported for testing */
|
|
76
|
+
export function migrateSessionEntries(entries) {
|
|
77
|
+
migrateToCurrentVersion(entries);
|
|
78
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session entry types for the session manager.
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentMessage } from "../../../agent-core/index.js";
|
|
5
|
+
import type { ImageContent, TextContent } from "../../../ai/index.js";
|
|
6
|
+
import type { SessionManager } from "../session-manager.js";
|
|
7
|
+
export declare const CURRENT_SESSION_VERSION = 3;
|
|
8
|
+
export interface SessionHeader {
|
|
9
|
+
type: "session";
|
|
10
|
+
version?: number;
|
|
11
|
+
id: string;
|
|
12
|
+
timestamp: string;
|
|
13
|
+
cwd: string;
|
|
14
|
+
parentSession?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface NewSessionOptions {
|
|
17
|
+
id?: string;
|
|
18
|
+
parentSession?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SessionEntryBase {
|
|
21
|
+
type: string;
|
|
22
|
+
id: string;
|
|
23
|
+
parentId: string | null;
|
|
24
|
+
timestamp: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionMessageEntry extends SessionEntryBase {
|
|
27
|
+
type: "message";
|
|
28
|
+
message: AgentMessage;
|
|
29
|
+
}
|
|
30
|
+
export interface ThinkingLevelChangeEntry extends SessionEntryBase {
|
|
31
|
+
type: "thinking_level_change";
|
|
32
|
+
thinkingLevel: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ModelChangeEntry extends SessionEntryBase {
|
|
35
|
+
type: "model_change";
|
|
36
|
+
provider: string;
|
|
37
|
+
modelId: string;
|
|
38
|
+
}
|
|
39
|
+
export interface CompactionEntry<T = unknown> extends SessionEntryBase {
|
|
40
|
+
type: "compaction";
|
|
41
|
+
summary: string;
|
|
42
|
+
firstKeptEntryId: string;
|
|
43
|
+
tokensBefore: number;
|
|
44
|
+
/** Extension-specific data (e.g., ArtifactIndex, version markers for structured compaction) */
|
|
45
|
+
details?: T;
|
|
46
|
+
/** True if generated by an extension, undefined/false if spectral-generated (backward compatible) */
|
|
47
|
+
fromHook?: boolean;
|
|
48
|
+
snapshot?: CompactionSnapshotMetadata;
|
|
49
|
+
}
|
|
50
|
+
/** Durable metadata for an asynchronous request-time compaction overlay. */
|
|
51
|
+
export interface CompactionSnapshotMetadata {
|
|
52
|
+
compactionId: string;
|
|
53
|
+
branchId: string;
|
|
54
|
+
leafId: string | null;
|
|
55
|
+
baseRevision: number;
|
|
56
|
+
targetTurnId: string;
|
|
57
|
+
/** The overlay is a request-time result, rather than a traditional prune. */
|
|
58
|
+
mode: "request_time";
|
|
59
|
+
}
|
|
60
|
+
export type RequestTimeCompactionStatus = "pending" | "running" | "committed" | "aborted" | "failed" | "stale";
|
|
61
|
+
export interface RequestTimeSnapshot {
|
|
62
|
+
compactionId: string;
|
|
63
|
+
branchId: string;
|
|
64
|
+
leafId: string | null;
|
|
65
|
+
baseRevision: number;
|
|
66
|
+
targetTurnId: string;
|
|
67
|
+
/** Immutable copies of the completed branch at the snapshot boundary. */
|
|
68
|
+
entries: readonly SessionEntry[];
|
|
69
|
+
}
|
|
70
|
+
export interface RequestTimeCompactionJob {
|
|
71
|
+
snapshot: RequestTimeSnapshot;
|
|
72
|
+
status: RequestTimeCompactionStatus;
|
|
73
|
+
}
|
|
74
|
+
export interface BranchSummaryEntry<T = unknown> extends SessionEntryBase {
|
|
75
|
+
type: "branch_summary";
|
|
76
|
+
fromId: string;
|
|
77
|
+
summary: string;
|
|
78
|
+
/** Extension-specific data (not sent to LLM) */
|
|
79
|
+
details?: T;
|
|
80
|
+
/** True if generated by an extension, false if spectral-generated */
|
|
81
|
+
fromHook?: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Custom entry for extensions to store extension-specific data in the session.
|
|
85
|
+
* Use customType to identify your extension's entries.
|
|
86
|
+
*
|
|
87
|
+
* Purpose: Persist extension state across session reloads. On reload, extensions can
|
|
88
|
+
* scan entries for their customType and reconstruct internal state.
|
|
89
|
+
*
|
|
90
|
+
* Does NOT participate in LLM context (ignored by buildSessionContext).
|
|
91
|
+
* For injecting content into context, see CustomMessageEntry.
|
|
92
|
+
*/
|
|
93
|
+
export interface CustomEntry<T = unknown> extends SessionEntryBase {
|
|
94
|
+
type: "custom";
|
|
95
|
+
customType: string;
|
|
96
|
+
data?: T;
|
|
97
|
+
}
|
|
98
|
+
/** Label entry for user-defined bookmarks/markers on entries. */
|
|
99
|
+
export interface LabelEntry extends SessionEntryBase {
|
|
100
|
+
type: "label";
|
|
101
|
+
targetId: string;
|
|
102
|
+
label: string | undefined;
|
|
103
|
+
}
|
|
104
|
+
/** Session metadata entry (e.g., user-defined display name). */
|
|
105
|
+
export interface SessionInfoEntry extends SessionEntryBase {
|
|
106
|
+
type: "session_info";
|
|
107
|
+
name?: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Custom message entry for extensions to inject messages into LLM context.
|
|
111
|
+
* Use customType to identify your extension's entries.
|
|
112
|
+
*
|
|
113
|
+
* Unlike CustomEntry, this DOES participate in LLM context.
|
|
114
|
+
* The content is converted to a user message in buildSessionContext().
|
|
115
|
+
* Use details for extension-specific metadata (not sent to LLM).
|
|
116
|
+
*
|
|
117
|
+
* display controls TUI rendering:
|
|
118
|
+
* - false: hidden entirely
|
|
119
|
+
* - true: rendered with distinct styling (different from user messages)
|
|
120
|
+
*/
|
|
121
|
+
export interface CustomMessageEntry<T = unknown> extends SessionEntryBase {
|
|
122
|
+
type: "custom_message";
|
|
123
|
+
customType: string;
|
|
124
|
+
content: string | (TextContent | ImageContent)[];
|
|
125
|
+
details?: T;
|
|
126
|
+
display: boolean;
|
|
127
|
+
}
|
|
128
|
+
/** Session entry - has id/parentId for tree structure (returned by "read" methods in SessionManager) */
|
|
129
|
+
export type SessionEntry = SessionMessageEntry | ThinkingLevelChangeEntry | ModelChangeEntry | CompactionEntry | BranchSummaryEntry | CustomEntry | CustomMessageEntry | LabelEntry | SessionInfoEntry;
|
|
130
|
+
/** Raw file entry (includes header) */
|
|
131
|
+
export type FileEntry = SessionHeader | SessionEntry;
|
|
132
|
+
/** Tree node for getTree() - defensive copy of session structure */
|
|
133
|
+
export interface SessionTreeNode {
|
|
134
|
+
entry: SessionEntry;
|
|
135
|
+
children: SessionTreeNode[];
|
|
136
|
+
/** Resolved label for this entry, if any */
|
|
137
|
+
label?: string;
|
|
138
|
+
/** Timestamp of the latest label change for this entry, if any */
|
|
139
|
+
labelTimestamp?: string;
|
|
140
|
+
}
|
|
141
|
+
export interface SessionContext {
|
|
142
|
+
messages: AgentMessage[];
|
|
143
|
+
thinkingLevel: string;
|
|
144
|
+
model: {
|
|
145
|
+
provider: string;
|
|
146
|
+
modelId: string;
|
|
147
|
+
} | null;
|
|
148
|
+
}
|
|
149
|
+
export interface SessionInfo {
|
|
150
|
+
path: string;
|
|
151
|
+
id: string;
|
|
152
|
+
/** Working directory where the session was started. Empty string for old sessions. */
|
|
153
|
+
cwd: string;
|
|
154
|
+
/** User-defined display name from session_info entries. */
|
|
155
|
+
name?: string;
|
|
156
|
+
/** Path to the parent session (if this session was forked). */
|
|
157
|
+
parentSessionPath?: string;
|
|
158
|
+
created: Date;
|
|
159
|
+
modified: Date;
|
|
160
|
+
messageCount: number;
|
|
161
|
+
firstMessage: string;
|
|
162
|
+
allMessagesText: string;
|
|
163
|
+
}
|
|
164
|
+
export type ReadonlySessionManager = Pick<SessionManager, "getCwd" | "getSessionDir" | "getSessionId" | "getSessionFile" | "getLeafId" | "getLeafEntry" | "getEntry" | "getLabel" | "getBranch" | "getHeader" | "getEntries" | "getTree" | "getSessionName">;
|
|
165
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/coding-agent/core/session/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,gBAAgB;IACpE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,qGAAqG;IACrG,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC;AAED,4EAA4E;AAC5E,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,MAAM,2BAA2B,GACrC,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,2BAA2B,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,gBAAgB;IACvE,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,gBAAgB;IAChE,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,gBAAgB;IACvE,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wGAAwG;AACxG,MAAM,MAAM,YAAY,GACpB,mBAAmB,GACnB,wBAAwB,GACxB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,kBAAkB,GAClB,UAAU,GACV,gBAAgB,CAAC;AAErB,uCAAuC;AACvC,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;AAErD,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,cAAc,EACZ,QAAQ,GACR,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,UAAU,GACV,UAAU,GACV,WAAW,GACX,WAAW,GACX,YAAY,GACZ,SAAS,GACT,gBAAgB,CACnB,CAAC"}
|