@superblocksteam/vite-plugin-file-sync 2.0.165-next.0 → 2.0.166-next.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/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.js +3 -1
- package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +43 -7
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-result-metrics.d.ts +12 -0
- package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-result-metrics.js +29 -0
- package/dist/ai-service/agent/tool-result-metrics.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/attachment-file-inputs.d.ts +17 -0
- package/dist/ai-service/agent/tools/apis/attachment-file-inputs.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/attachment-file-inputs.js +208 -0
- package/dist/ai-service/agent/tools/apis/attachment-file-inputs.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +6 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +53 -19
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts +20 -0
- package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js +284 -0
- package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts +77 -0
- package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js +627 -0
- package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js.map +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -0
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +51 -9
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts +50 -6
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +153 -40
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
- package/dist/ai-service/agent/tools/index.d.ts +3 -2
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +3 -2
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +15 -15
- package/dist/ai-service/agent/tools/read-state-trackers.d.ts +33 -0
- package/dist/ai-service/agent/tools/read-state-trackers.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/read-state-trackers.js +67 -0
- package/dist/ai-service/agent/tools/read-state-trackers.js.map +1 -0
- package/dist/ai-service/agent/tools/report-security-findings.d.ts +6 -6
- package/dist/ai-service/agent/tools/report-security-findings.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/report-security-findings.js +4 -2
- package/dist/ai-service/agent/tools/report-security-findings.js.map +1 -1
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts +4 -15
- package/dist/ai-service/agent/tools/subagent-isolation.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/subagent-isolation.js +4 -44
- package/dist/ai-service/agent/tools/subagent-isolation.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +17 -64
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +1 -0
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +23 -5
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.d.ts +9 -0
- package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.js +52 -0
- package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/bash.d.ts +2 -2
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/download-attachments.js +57 -49
- package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +3 -3
- package/dist/ai-service/agent/tools2/tools/git.d.ts +6 -6
- package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts +1 -1
- package/dist/ai-service/app-skills/helpers.d.ts +8 -2
- package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
- package/dist/ai-service/app-skills/helpers.js +184 -4
- package/dist/ai-service/app-skills/helpers.js.map +1 -1
- package/dist/ai-service/attachments/text-upload-artifacts.d.ts.map +1 -1
- package/dist/ai-service/attachments/text-upload-artifacts.js +1 -1
- package/dist/ai-service/attachments/text-upload-artifacts.js.map +1 -1
- package/dist/ai-service/attachments/upload-artifact-paths.d.ts +5 -0
- package/dist/ai-service/attachments/upload-artifact-paths.d.ts.map +1 -0
- package/dist/ai-service/attachments/upload-artifact-paths.js +18 -0
- package/dist/ai-service/attachments/upload-artifact-paths.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store-metrics.d.ts +6 -0
- package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store-metrics.js +23 -1
- package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +25 -1
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +70 -4
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/edit-after-clark.d.ts +58 -0
- package/dist/ai-service/edit-after-clark.d.ts.map +1 -0
- package/dist/ai-service/edit-after-clark.js +143 -0
- package/dist/ai-service/edit-after-clark.js.map +1 -0
- package/dist/ai-service/features.d.ts +5 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +5 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +25 -3
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +123 -18
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +5 -5
- package/dist/ai-service/llm/context-v2/context.d.ts +23 -6
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +48 -13
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
- package/dist/ai-service/llm/stream/abort-reason.d.ts +31 -0
- package/dist/ai-service/llm/stream/abort-reason.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/abort-reason.js +36 -0
- package/dist/ai-service/llm/stream/abort-reason.js.map +1 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts +15 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +88 -12
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/migration-prompt-gating.d.ts +1 -0
- package/dist/ai-service/migration-prompt-gating.d.ts.map +1 -1
- package/dist/ai-service/migration-prompt-gating.js +6 -0
- package/dist/ai-service/migration-prompt-gating.js.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/_registry.generated.js +8 -0
- package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
- package/dist/ai-service/skills/system/resolve.d.ts.map +1 -1
- package/dist/ai-service/skills/system/resolve.js +29 -4
- package/dist/ai-service/skills/system/resolve.js.map +1 -1
- package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js +66 -0
- package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.js +5 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.js +5 -0
- package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.js.map +1 -0
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +2 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +6 -6
- package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts +2 -0
- package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts.map +1 -0
- package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js +29 -0
- package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js.map +1 -0
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +2 -2
- package/dist/ai-service/state-machine/clark-fsm.d.ts +14 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +1 -0
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.d.ts +18 -0
- package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.js +66 -0
- package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/transition.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts +12 -3
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +17 -5
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/template-renderer.js +43 -7
- package/dist/ai-service/template-renderer.js.map +1 -1
- package/dist/ai-service/types.d.ts +2 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts +12 -3
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +57 -17
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/migration/migration-routes.d.ts.map +1 -1
- package/dist/migration/migration-routes.js +42 -23
- package/dist/migration/migration-routes.js.map +1 -1
- package/dist/npm/normalize-workspace-protocol-for-npm.d.ts.map +1 -1
- package/dist/npm/normalize-workspace-protocol-for-npm.js +5 -5
- package/dist/npm/normalize-workspace-protocol-for-npm.js.map +1 -1
- package/dist/npm/rewrite-platform-workspace-deps.d.ts +2 -0
- package/dist/npm/rewrite-platform-workspace-deps.d.ts.map +1 -1
- package/dist/npm/rewrite-platform-workspace-deps.js +2 -2
- package/dist/npm/rewrite-platform-workspace-deps.js.map +1 -1
- package/dist/policy-gate-runner.d.ts.map +1 -1
- package/dist/policy-gate-runner.js +3 -0
- package/dist/policy-gate-runner.js.map +1 -1
- package/dist/socket-manager.d.ts +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +64 -22
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts +14 -1
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +27 -1
- package/dist/sync-service/index.js.map +1 -1
- package/dist/sync-service/list-dir.d.ts.map +1 -1
- package/dist/sync-service/list-dir.js +15 -1
- package/dist/sync-service/list-dir.js.map +1 -1
- package/dist/sync-service/snapshot/take-snapshot.d.ts +6 -0
- package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -1
- package/dist/sync-service/snapshot/take-snapshot.js +21 -0
- package/dist/sync-service/snapshot/take-snapshot.js.map +1 -1
- package/dist/vite-plugin-yaml-types.d.ts +6 -0
- package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
- package/dist/vite-plugin-yaml-types.js +52 -61
- package/dist/vite-plugin-yaml-types.js.map +1 -1
- package/package.json +14 -11
|
@@ -5,6 +5,7 @@ import { z } from "zod";
|
|
|
5
5
|
import { resolveIntegrationDocumentation, } from "@superblocksteam/sdk-api/dist/integrations/documentation.js";
|
|
6
6
|
import { safeJsonStringify } from "../../../../util/log-sanitizer.js";
|
|
7
7
|
import { createToolFactory, ToolCategory } from "../../tools2/types.js";
|
|
8
|
+
import { buildRootDocumentation, } from "./sdk-root-documentation.js";
|
|
8
9
|
/**
|
|
9
10
|
* Stay under the agent outputLimiter (DEFAULT_MAX_OUTPUT_CHARS = 25_000)
|
|
10
11
|
* with headroom for JSON wrapping. Importing middleware would create a cycle.
|
|
@@ -14,7 +15,7 @@ const require = createRequire(import.meta.url);
|
|
|
14
15
|
const SDK_API_PACKAGE_DIRECTORY = dirname(require.resolve("@superblocksteam/sdk-api/package.json"));
|
|
15
16
|
const SDK_API_INTEGRATIONS_DIRECTORY = resolve(SDK_API_PACKAGE_DIRECTORY, "src/integrations");
|
|
16
17
|
const SDK_API_ROOT_README_PATH = resolve(SDK_API_PACKAGE_DIRECTORY, "README.md");
|
|
17
|
-
async function
|
|
18
|
+
async function readInstalledSdkRootReadme() {
|
|
18
19
|
try {
|
|
19
20
|
return await readFile(SDK_API_ROOT_README_PATH, "utf8");
|
|
20
21
|
}
|
|
@@ -44,10 +45,9 @@ const SDK_INTEGRATIONS_KEY_GUIDANCE = [
|
|
|
44
45
|
"In `run()`, access via `ctx.integrations.<key>` (e.g. `ctx.integrations.pokemon_tracker`). Use the integration ID only in the declaration (`postgres(UUID)`), never for access.",
|
|
45
46
|
].join("\n");
|
|
46
47
|
export const SCOPED_SDK_PATTERNS_STUB = [
|
|
47
|
-
"##
|
|
48
|
+
"## Essential shared SDK patterns",
|
|
48
49
|
"",
|
|
49
|
-
"
|
|
50
|
-
"Call `getSdkApiDocs()` with no integrationIds/pluginIds if you need the complete shared SDK root guidance.",
|
|
50
|
+
"Detailed guidance is loaded from the installed SDK README on demand. Call `getSdkApiDocs()` with no IDs for the shared SDK root section index.",
|
|
51
51
|
"",
|
|
52
52
|
"### `api()`",
|
|
53
53
|
"- Every `api()` config requires `name` (unique string), `input`, `output`, and `run`.",
|
|
@@ -146,7 +146,7 @@ function pluginsCoveredByPrefix(plugins, pluginStarts, prefixLength) {
|
|
|
146
146
|
* getSdkApiDocs with the same integrationIds returns the omitted tail —
|
|
147
147
|
* there is no cursor/offset, so that call yields the same prefix.
|
|
148
148
|
*/
|
|
149
|
-
export const SCOPED_DOCS_TRUNCATION_NOTE = "\n\n... [truncated plugin-scoped SDK docs for context budget; this tool has no continuation cursor — repeating getSdkApiDocs with the same pluginIds/integrationIds returns this same prefix, and getSdkApiDocs() with no IDs returns the shared root
|
|
149
|
+
export const SCOPED_DOCS_TRUNCATION_NOTE = "\n\n... [truncated plugin-scoped SDK docs for context budget; this tool has no plugin-doc continuation cursor — repeating getSdkApiDocs with the same pluginIds/integrationIds returns this same prefix, and getSdkApiDocs() with no IDs returns the shared root section index, not the omitted plugin sections. To keep every plugin's docs intact, request fewer plugins per call]";
|
|
150
150
|
export function fitScopedDocsUnderBudget(result, budget = SCOPED_SDK_DOCS_CHAR_BUDGET, pluginStarts = []) {
|
|
151
151
|
if (safeJsonStringify(result).length <= budget) {
|
|
152
152
|
return result;
|
|
@@ -198,12 +198,29 @@ function resolveRequestedPluginIds(integrationIds, pluginIds, services) {
|
|
|
198
198
|
}
|
|
199
199
|
return requestedPluginIds;
|
|
200
200
|
}
|
|
201
|
-
async function unscopedSdkRootDocumentation() {
|
|
201
|
+
async function unscopedSdkRootDocumentation(selector, services, notice) {
|
|
202
|
+
const root = buildRootDocumentation(await (services.readSdkRootReadme?.() ?? readInstalledSdkRootReadme()), selector, SCOPED_SDK_DOCS_CHAR_BUDGET, notice, withIntegrationsKeyGuidance(SCOPED_SDK_PATTERNS_STUB));
|
|
202
203
|
return {
|
|
203
|
-
|
|
204
|
+
...root,
|
|
204
205
|
plugins: [],
|
|
205
206
|
};
|
|
206
207
|
}
|
|
208
|
+
function unresolvedDocumentationNotice(integrationIds, pluginIds) {
|
|
209
|
+
if (integrationIds.length === 0 && pluginIds.length === 0) {
|
|
210
|
+
return undefined;
|
|
211
|
+
}
|
|
212
|
+
const compact = (values) => values
|
|
213
|
+
.slice(0, 10)
|
|
214
|
+
.map((value) => value.slice(0, 80))
|
|
215
|
+
.join(", ");
|
|
216
|
+
const parts = [
|
|
217
|
+
...(integrationIds.length > 0
|
|
218
|
+
? [`integration IDs: ${compact(integrationIds)}`]
|
|
219
|
+
: []),
|
|
220
|
+
...(pluginIds.length > 0 ? [`plugin IDs: ${compact(pluginIds)}`] : []),
|
|
221
|
+
];
|
|
222
|
+
return `No version-aware plugin documentation resolved for ${parts.join("; ")}. Shared SDK root documentation is returned instead. Verify the IDs before implementing integration calls.`;
|
|
223
|
+
}
|
|
207
224
|
export const getSdkApiDocsToolFactory = createToolFactory("getSdkApiDocs", (services) => ({
|
|
208
225
|
category: ToolCategory.API,
|
|
209
226
|
readOnly: true,
|
|
@@ -211,7 +228,8 @@ export const getSdkApiDocsToolFactory = createToolFactory("getSdkApiDocs", (serv
|
|
|
211
228
|
Retrieve SDK API implementation guidance for both generic and integration-specific API development.
|
|
212
229
|
|
|
213
230
|
This tool provides:
|
|
214
|
-
-
|
|
231
|
+
- A compact index of generic SDK guidance when no integration IDs or plugin IDs are provided
|
|
232
|
+
- Root README sections selected by section ID, with advancing continuation tokens for oversized sections
|
|
215
233
|
- Integration-specific method and usage guidance when integration IDs or plugin IDs are provided
|
|
216
234
|
- Version-aware plugin documentation matched to the app's integration versions
|
|
217
235
|
- A returned list of resolved plugin IDs so you can verify coverage
|
|
@@ -230,16 +248,23 @@ ALWAYS call this tool:
|
|
|
230
248
|
.array(z.string())
|
|
231
249
|
.describe("Plugin IDs to include plugin-specific SDK documentation for. Use this when you know plugin types directly.")
|
|
232
250
|
.optional(),
|
|
251
|
+
section: z
|
|
252
|
+
.string()
|
|
253
|
+
.describe("SDK root README section ID from the unscoped index. Do not combine with continuation.")
|
|
254
|
+
.optional(),
|
|
255
|
+
continuation: z
|
|
256
|
+
.string()
|
|
257
|
+
.describe("Opaque continuation token from root.continuation. Pass it exactly and do not combine it with section.")
|
|
258
|
+
.optional(),
|
|
233
259
|
}),
|
|
234
|
-
|
|
235
|
-
execute: async ({ integrationIds = [], pluginIds = [], }) => {
|
|
260
|
+
execute: async ({ integrationIds = [], pluginIds = [], section, continuation, }) => {
|
|
236
261
|
const requestedPluginIds = resolveRequestedPluginIds(integrationIds, pluginIds, services);
|
|
237
262
|
if (requestedPluginIds.length === 0) {
|
|
238
|
-
return unscopedSdkRootDocumentation();
|
|
263
|
+
return unscopedSdkRootDocumentation({ section, continuation }, services, unresolvedDocumentationNotice(integrationIds, pluginIds));
|
|
239
264
|
}
|
|
240
265
|
const { documentation, plugins: resolvedPlugins } = await buildSdkPluginReadmeDocumentation(requestedPluginIds, services);
|
|
241
266
|
if (resolvedPlugins.length === 0) {
|
|
242
|
-
return unscopedSdkRootDocumentation();
|
|
267
|
+
return unscopedSdkRootDocumentation({ section, continuation }, services, unresolvedDocumentationNotice(integrationIds, pluginIds));
|
|
243
268
|
}
|
|
244
269
|
const plugins = resolvedPlugins.map(({ pluginId, version, sdkVersion }) => ({
|
|
245
270
|
pluginId,
|
|
@@ -253,23 +278,32 @@ ALWAYS call this tool:
|
|
|
253
278
|
const integrationIds = input.integrationIds ?? [];
|
|
254
279
|
const pluginIds = input.pluginIds ?? [];
|
|
255
280
|
const plugins = output.plugins.map((plugin) => plugin.pluginId).join(",");
|
|
256
|
-
const argParts = [];
|
|
257
281
|
const labelParts = [];
|
|
282
|
+
const refetchInput = {};
|
|
258
283
|
if (integrationIds.length > 0) {
|
|
259
|
-
|
|
284
|
+
refetchInput.integrationIds = integrationIds;
|
|
260
285
|
labelParts.push(`integrationIds=[${integrationIds.join(",")}]`);
|
|
261
286
|
}
|
|
262
287
|
if (pluginIds.length > 0) {
|
|
263
|
-
|
|
288
|
+
refetchInput.pluginIds = pluginIds;
|
|
264
289
|
labelParts.push(`pluginIds=[${pluginIds.join(",")}]`);
|
|
265
290
|
}
|
|
266
|
-
|
|
291
|
+
if (input.section) {
|
|
292
|
+
refetchInput.section = input.section;
|
|
293
|
+
labelParts.push(`section=${input.section}`);
|
|
294
|
+
}
|
|
295
|
+
if (input.continuation) {
|
|
296
|
+
refetchInput.continuation = input.continuation;
|
|
297
|
+
labelParts.push("continuation=(exact token retained)");
|
|
298
|
+
}
|
|
299
|
+
const refetchArg = JSON.stringify(refetchInput);
|
|
300
|
+
const pluginScoped = integrationIds.length > 0 || pluginIds.length > 0;
|
|
267
301
|
const inputLabel = labelParts.length > 0
|
|
268
|
-
?
|
|
269
|
-
: "unscoped SDK root
|
|
302
|
+
? `${pluginScoped ? "plugin-scoped " : ""}${labelParts.join(" ")}`
|
|
303
|
+
: "unscoped SDK root documentation index";
|
|
270
304
|
return {
|
|
271
305
|
input: inputLabel,
|
|
272
|
-
output: `plugins=[${plugins || "(none)"}]; if these docs are needed after compaction, ALWAYS refetch getSdkApiDocs(${refetchArg}) — a count-only summary is not enough`,
|
|
306
|
+
output: `plugins=[${plugins || "(none)"}]; if these docs are needed after compaction, ALWAYS refetch getSdkApiDocs(${refetchArg}) — preserve section and continuation arguments exactly; a count-only summary is not enough`,
|
|
273
307
|
protected: false,
|
|
274
308
|
};
|
|
275
309
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-sdk-api-docs.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/get-sdk-api-docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,+BAA+B,GAEhC,MAAM,6DAA6D,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-sdk-api-docs.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/get-sdk-api-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type RootDocumentationMetadata = {
|
|
2
|
+
sourceId: string;
|
|
3
|
+
section?: string;
|
|
4
|
+
range?: {
|
|
5
|
+
start: number;
|
|
6
|
+
end: number;
|
|
7
|
+
total: number;
|
|
8
|
+
};
|
|
9
|
+
continuation?: string;
|
|
10
|
+
};
|
|
11
|
+
export type RootDocumentationResult = {
|
|
12
|
+
documentation: string;
|
|
13
|
+
root: RootDocumentationMetadata;
|
|
14
|
+
};
|
|
15
|
+
export type RootDocumentationSelector = {
|
|
16
|
+
section?: string;
|
|
17
|
+
continuation?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function buildRootDocumentation(markdown: string, selector: RootDocumentationSelector, budget: number, notice?: string, orientation?: string): RootDocumentationResult;
|
|
20
|
+
//# sourceMappingURL=sdk-root-documentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-root-documentation.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/sdk-root-documentation.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,yBAAyB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAmXF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,yBAAyB,EACnC,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,uBAAuB,CA2DzB"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
3
|
+
import { safeJsonStringify } from "../../../../util/log-sanitizer.js";
|
|
4
|
+
const EMPTY_SOURCE_ID = "missing";
|
|
5
|
+
const INDEX_SECTION_ID = "@index";
|
|
6
|
+
function nodeOffset(node, edge) {
|
|
7
|
+
return node.position?.[edge].offset;
|
|
8
|
+
}
|
|
9
|
+
function nodeText(node) {
|
|
10
|
+
if ("value" in node && typeof node.value === "string") {
|
|
11
|
+
return node.value;
|
|
12
|
+
}
|
|
13
|
+
if (node.type === "image" || node.type === "imageReference") {
|
|
14
|
+
return node.alt ?? "";
|
|
15
|
+
}
|
|
16
|
+
if ("children" in node) {
|
|
17
|
+
return node.children.map((child) => nodeText(child)).join("");
|
|
18
|
+
}
|
|
19
|
+
return "";
|
|
20
|
+
}
|
|
21
|
+
function sectionSlug(title) {
|
|
22
|
+
return (title
|
|
23
|
+
.normalize("NFKD")
|
|
24
|
+
.replace(/[\u0300-\u036f]/g, "")
|
|
25
|
+
.toLowerCase()
|
|
26
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
27
|
+
.replace(/^-|-$/g, "")
|
|
28
|
+
.slice(0, 80) || "section");
|
|
29
|
+
}
|
|
30
|
+
function parseRootDocumentation(markdown) {
|
|
31
|
+
const tree = fromMarkdown(markdown);
|
|
32
|
+
const sourceId = markdown
|
|
33
|
+
? createHash("sha256").update(markdown).digest("hex").slice(0, 12)
|
|
34
|
+
: EMPTY_SOURCE_ID;
|
|
35
|
+
const headings = tree.children.flatMap((node, childIndex) => {
|
|
36
|
+
if (node.type !== "heading") {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
const start = nodeOffset(node, "start");
|
|
40
|
+
if (start === undefined) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
return [{ node, childIndex, start }];
|
|
44
|
+
});
|
|
45
|
+
const slugCounts = new Map();
|
|
46
|
+
const sections = headings.map(({ node, childIndex, start }, headingIndex) => {
|
|
47
|
+
const title = nodeText(node).trim();
|
|
48
|
+
const slug = sectionSlug(title);
|
|
49
|
+
const occurrence = (slugCounts.get(slug) ?? 0) + 1;
|
|
50
|
+
slugCounts.set(slug, occurrence);
|
|
51
|
+
const nextBoundaryIndex = headings.findIndex((candidate, candidateIndex) => candidateIndex > headingIndex && candidate.node.depth <= node.depth);
|
|
52
|
+
const boundary = nextBoundaryIndex === -1 ? undefined : headings[nextBoundaryIndex];
|
|
53
|
+
return {
|
|
54
|
+
id: occurrence === 1 ? slug : `${slug}-${occurrence}`,
|
|
55
|
+
title,
|
|
56
|
+
depth: node.depth,
|
|
57
|
+
start,
|
|
58
|
+
end: boundary?.start ?? markdown.length,
|
|
59
|
+
childStart: childIndex,
|
|
60
|
+
childEnd: boundary?.childIndex ?? tree.children.length,
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
return { markdown, tree, sourceId, sections };
|
|
64
|
+
}
|
|
65
|
+
function rootResult(documentation, root) {
|
|
66
|
+
return { documentation, root };
|
|
67
|
+
}
|
|
68
|
+
function buildIndex(parsed, notice, orientation, budget = Number.POSITIVE_INFINITY, offset = 0) {
|
|
69
|
+
if (!parsed.markdown) {
|
|
70
|
+
return rootResult([
|
|
71
|
+
orientation,
|
|
72
|
+
"SDK root documentation is unavailable in the installed @superblocksteam/sdk-api package. Do not guess SDK contracts; retry after the package installation is repaired.",
|
|
73
|
+
]
|
|
74
|
+
.filter(Boolean)
|
|
75
|
+
.join("\n\n"), { sourceId: parsed.sourceId });
|
|
76
|
+
}
|
|
77
|
+
const lines = parsed.sections.map((section) => `${" ".repeat(Math.max(0, section.depth - 1))}- \`${section.id}\` — ${section.title.slice(0, 160)}`);
|
|
78
|
+
if (lines.length === 0) {
|
|
79
|
+
return rootResult("The installed SDK README contains no discoverable Markdown headings. Do not guess SDK contracts; repair or update the installed @superblocksteam/sdk-api package.", { sourceId: parsed.sourceId });
|
|
80
|
+
}
|
|
81
|
+
const header = [
|
|
82
|
+
"## SDK root documentation index",
|
|
83
|
+
"",
|
|
84
|
+
...(notice ? [`> ${notice}`, ""] : []),
|
|
85
|
+
...(orientation ? [orientation, ""] : []),
|
|
86
|
+
'Request an ID below with `getSdkApiDocs({ section: "<id>" })`. If `root.continuation` is present, pass it exactly to `getSdkApiDocs({ continuation: "<token>" })`.',
|
|
87
|
+
"",
|
|
88
|
+
];
|
|
89
|
+
let end = offset;
|
|
90
|
+
let best = rootResult(header.join("\n"), {
|
|
91
|
+
sourceId: parsed.sourceId,
|
|
92
|
+
section: INDEX_SECTION_ID,
|
|
93
|
+
range: { start: offset, end, total: lines.length },
|
|
94
|
+
continuation: encodeContinuation({
|
|
95
|
+
sourceId: parsed.sourceId,
|
|
96
|
+
section: INDEX_SECTION_ID,
|
|
97
|
+
offset: Math.max(1, end),
|
|
98
|
+
}),
|
|
99
|
+
});
|
|
100
|
+
while (end < lines.length) {
|
|
101
|
+
const candidateEnd = end + 1;
|
|
102
|
+
const continuation = candidateEnd < lines.length
|
|
103
|
+
? encodeContinuation({
|
|
104
|
+
sourceId: parsed.sourceId,
|
|
105
|
+
section: INDEX_SECTION_ID,
|
|
106
|
+
offset: candidateEnd,
|
|
107
|
+
})
|
|
108
|
+
: undefined;
|
|
109
|
+
const candidate = rootResult([...header, ...lines.slice(offset, candidateEnd)].join("\n"), {
|
|
110
|
+
sourceId: parsed.sourceId,
|
|
111
|
+
section: INDEX_SECTION_ID,
|
|
112
|
+
range: { start: offset, end: candidateEnd, total: lines.length },
|
|
113
|
+
...(continuation ? { continuation } : {}),
|
|
114
|
+
});
|
|
115
|
+
if (!resultFitsBudget(candidate, budget)) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
best = candidate;
|
|
119
|
+
end = candidateEnd;
|
|
120
|
+
}
|
|
121
|
+
return best;
|
|
122
|
+
}
|
|
123
|
+
function encodeContinuation(value) {
|
|
124
|
+
return Buffer.from(JSON.stringify(value)).toString("base64url");
|
|
125
|
+
}
|
|
126
|
+
function decodeContinuation(value) {
|
|
127
|
+
try {
|
|
128
|
+
const parsed = JSON.parse(Buffer.from(value, "base64url").toString("utf8"));
|
|
129
|
+
if (typeof parsed.sourceId !== "string" ||
|
|
130
|
+
typeof parsed.section !== "string" ||
|
|
131
|
+
typeof parsed.offset !== "number" ||
|
|
132
|
+
!Number.isSafeInteger(parsed.offset) ||
|
|
133
|
+
parsed.offset <= 0) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
sourceId: parsed.sourceId,
|
|
138
|
+
section: parsed.section,
|
|
139
|
+
offset: parsed.offset,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
function collectReferenceIdentifiers(node, identifiers) {
|
|
147
|
+
if (node.type === "linkReference" || node.type === "imageReference") {
|
|
148
|
+
identifiers.add(node.identifier.toLowerCase());
|
|
149
|
+
}
|
|
150
|
+
if ("children" in node) {
|
|
151
|
+
for (const child of node.children) {
|
|
152
|
+
collectReferenceIdentifiers(child, identifiers);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function externalDefinitions(parsed, section) {
|
|
157
|
+
const identifiers = new Set();
|
|
158
|
+
for (const node of parsed.tree.children.slice(section.childStart, section.childEnd)) {
|
|
159
|
+
collectReferenceIdentifiers(node, identifiers);
|
|
160
|
+
}
|
|
161
|
+
if (identifiers.size === 0) {
|
|
162
|
+
return "";
|
|
163
|
+
}
|
|
164
|
+
const definitions = parsed.tree.children.flatMap((node) => {
|
|
165
|
+
if (node.type !== "definition") {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
const start = nodeOffset(node, "start");
|
|
169
|
+
const end = nodeOffset(node, "end");
|
|
170
|
+
if (start === undefined ||
|
|
171
|
+
end === undefined ||
|
|
172
|
+
(start >= section.start && end <= section.end) ||
|
|
173
|
+
!identifiers.has(node.identifier.toLowerCase())) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
return [parsed.markdown.slice(start, end)];
|
|
177
|
+
});
|
|
178
|
+
return definitions.length > 0
|
|
179
|
+
? `\n\n<!-- Reference definitions used by this section -->\n${definitions.join("\n")}`
|
|
180
|
+
: "";
|
|
181
|
+
}
|
|
182
|
+
function resultFitsBudget(result, budget) {
|
|
183
|
+
return safeJsonStringify({ ...result, plugins: [] }).length <= budget;
|
|
184
|
+
}
|
|
185
|
+
function pageResult(parsed, section, offset, end, preamble, definitions) {
|
|
186
|
+
const total = section.end - section.start;
|
|
187
|
+
const continuation = end < total
|
|
188
|
+
? encodeContinuation({
|
|
189
|
+
sourceId: parsed.sourceId,
|
|
190
|
+
section: section.id,
|
|
191
|
+
offset: end,
|
|
192
|
+
})
|
|
193
|
+
: undefined;
|
|
194
|
+
return rootResult(preamble +
|
|
195
|
+
parsed.markdown.slice(section.start + offset, section.start + end) +
|
|
196
|
+
definitions, {
|
|
197
|
+
sourceId: parsed.sourceId,
|
|
198
|
+
section: section.id,
|
|
199
|
+
range: { start: offset, end, total },
|
|
200
|
+
...(continuation ? { continuation } : {}),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
function blockBoundaries(parsed, section) {
|
|
204
|
+
const nodes = parsed.tree.children.slice(section.childStart, section.childEnd);
|
|
205
|
+
const boundaries = nodes.slice(1).flatMap((node) => {
|
|
206
|
+
const start = nodeOffset(node, "start");
|
|
207
|
+
return start === undefined ? [] : [start - section.start];
|
|
208
|
+
});
|
|
209
|
+
boundaries.push(section.end - section.start);
|
|
210
|
+
return boundaries;
|
|
211
|
+
}
|
|
212
|
+
function paginateSection(parsed, section, offset, budget, preamble) {
|
|
213
|
+
const total = section.end - section.start;
|
|
214
|
+
const definitions = externalDefinitions(parsed, section);
|
|
215
|
+
const boundaries = blockBoundaries(parsed, section).filter((boundary) => boundary > offset);
|
|
216
|
+
let best = offset;
|
|
217
|
+
for (const boundary of boundaries) {
|
|
218
|
+
if (resultFitsBudget(pageResult(parsed, section, offset, boundary, preamble, definitions), budget)) {
|
|
219
|
+
best = boundary;
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
if (best === offset) {
|
|
225
|
+
let low = offset + 1;
|
|
226
|
+
let high = boundaries[0] ?? total;
|
|
227
|
+
while (low <= high) {
|
|
228
|
+
const candidate = Math.floor((low + high) / 2);
|
|
229
|
+
if (resultFitsBudget(pageResult(parsed, section, offset, candidate, preamble, definitions), budget)) {
|
|
230
|
+
best = candidate;
|
|
231
|
+
low = candidate + 1;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
high = candidate - 1;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (best === offset) {
|
|
239
|
+
return rootResult("This SDK README section cannot fit within the tool response budget. Request a narrower nested section from getSdkApiDocs() instead.", { sourceId: parsed.sourceId, section: section.id });
|
|
240
|
+
}
|
|
241
|
+
return pageResult(parsed, section, offset, best, preamble, definitions);
|
|
242
|
+
}
|
|
243
|
+
export function buildRootDocumentation(markdown, selector, budget, notice, orientation) {
|
|
244
|
+
const parsed = parseRootDocumentation(markdown);
|
|
245
|
+
const invalidSelector = (message) => buildIndex(parsed, [notice, message].filter(Boolean).join(" "), orientation, budget);
|
|
246
|
+
if (!selector.section && !selector.continuation) {
|
|
247
|
+
return buildIndex(parsed, notice, orientation, budget);
|
|
248
|
+
}
|
|
249
|
+
if (selector.section && selector.continuation) {
|
|
250
|
+
return invalidSelector("Pass either section or continuation, not both.");
|
|
251
|
+
}
|
|
252
|
+
let sectionId = selector.section;
|
|
253
|
+
let offset = 0;
|
|
254
|
+
if (selector.continuation) {
|
|
255
|
+
const continuation = decodeContinuation(selector.continuation);
|
|
256
|
+
if (!continuation) {
|
|
257
|
+
return invalidSelector("The continuation token is invalid. Choose a section from the current index and start again.");
|
|
258
|
+
}
|
|
259
|
+
if (continuation.sourceId !== parsed.sourceId) {
|
|
260
|
+
return invalidSelector("The continuation token is stale because the installed SDK README changed. Choose a section from this refreshed index and start again.");
|
|
261
|
+
}
|
|
262
|
+
sectionId = continuation.section;
|
|
263
|
+
offset = continuation.offset;
|
|
264
|
+
}
|
|
265
|
+
if (sectionId === INDEX_SECTION_ID) {
|
|
266
|
+
return buildIndex(parsed, notice, orientation, budget, offset);
|
|
267
|
+
}
|
|
268
|
+
const section = parsed.sections.find((candidate) => candidate.id === sectionId);
|
|
269
|
+
if (!section) {
|
|
270
|
+
return invalidSelector(`Unknown SDK README section \`${sectionId ?? ""}\`. Choose an ID from this index.`);
|
|
271
|
+
}
|
|
272
|
+
const total = section.end - section.start;
|
|
273
|
+
if (offset >= total) {
|
|
274
|
+
return invalidSelector("The continuation token points beyond the current section. Choose a section from the index and start again.");
|
|
275
|
+
}
|
|
276
|
+
// Every page repeats the notice and orientation so a section fetched
|
|
277
|
+
// directly, or refetched after compaction, still carries them.
|
|
278
|
+
const preamble = [notice && `> ${notice}`, orientation]
|
|
279
|
+
.filter(Boolean)
|
|
280
|
+
.map((part) => `${part}\n\n`)
|
|
281
|
+
.join("");
|
|
282
|
+
return paginateSection(parsed, section, offset, budget, preamble);
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=sdk-root-documentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-root-documentation.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/sdk-root-documentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export type SpreadsheetSheetRole = "data table" | "derived report" | "empty";
|
|
2
|
+
export type SpreadsheetFormulaExample = {
|
|
3
|
+
cachedResult: string;
|
|
4
|
+
cell: string;
|
|
5
|
+
formula: string;
|
|
6
|
+
};
|
|
7
|
+
export type SpreadsheetColumnDigest = {
|
|
8
|
+
columnIndex: number;
|
|
9
|
+
/** True when the workbook hides this column from its own readers. */
|
|
10
|
+
hidden?: boolean;
|
|
11
|
+
/** The column's formula with row numbers dropped, e.g. "B#*C#". */
|
|
12
|
+
computed?: string;
|
|
13
|
+
/** How many populated cells follow `computed`, e.g. "5000/5000". */
|
|
14
|
+
coverage?: string;
|
|
15
|
+
errorCellCount?: number;
|
|
16
|
+
example?: SpreadsheetFormulaExample;
|
|
17
|
+
/** The cell number format when the column has one, e.g. "yyyy-mm-dd". */
|
|
18
|
+
format?: string;
|
|
19
|
+
name: string;
|
|
20
|
+
type?: "boolean" | "date" | "number" | "text";
|
|
21
|
+
};
|
|
22
|
+
export type SpreadsheetFooterAggregate = {
|
|
23
|
+
aggregates: string[];
|
|
24
|
+
label: string;
|
|
25
|
+
};
|
|
26
|
+
export type SpreadsheetSheetDigest = {
|
|
27
|
+
/** A title above the header row, which belongs on a page rather than a table. */
|
|
28
|
+
banner?: string;
|
|
29
|
+
columns: SpreadsheetColumnDigest[];
|
|
30
|
+
dataRowCount: number;
|
|
31
|
+
footerAggregates?: SpreadsheetFooterAggregate[];
|
|
32
|
+
headerRowNumber: number;
|
|
33
|
+
/** True when the workbook hides this sheet from its own readers. */
|
|
34
|
+
hidden?: boolean;
|
|
35
|
+
/** Sentences written under the table, kept out of the rows. */
|
|
36
|
+
notes?: string[];
|
|
37
|
+
/** Other sheets this sheet's formulas read from. */
|
|
38
|
+
readsFrom?: string[];
|
|
39
|
+
role: SpreadsheetSheetRole;
|
|
40
|
+
sheetName: string;
|
|
41
|
+
};
|
|
42
|
+
export type SpreadsheetCsvSheet = {
|
|
43
|
+
/** Only a data table exports rows; a derived report is described, not imported. */
|
|
44
|
+
csv?: string;
|
|
45
|
+
digest: SpreadsheetSheetDigest;
|
|
46
|
+
/** The CSV file name, present only for a sheet that exports rows. */
|
|
47
|
+
fileName?: string;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* A small workbook can expand into far more CSV than it occupies on disk, so
|
|
51
|
+
* bound the converted output the same way archive extraction is bounded.
|
|
52
|
+
*/
|
|
53
|
+
export declare const MAX_WORKBOOK_CSV_BYTES: number;
|
|
54
|
+
export declare const MAX_WORKBOOK_CELLS = 1000000;
|
|
55
|
+
/**
|
|
56
|
+
* An `.xlsx` is a zip, so the upload size limit bounds the compressed bytes
|
|
57
|
+
* rather than what the reader builds in memory. A million cells measured out
|
|
58
|
+
* at roughly 40 MiB of sheet XML, so this is the same ceiling as
|
|
59
|
+
* MAX_WORKBOOK_CELLS expressed in the only unit available before the reader
|
|
60
|
+
* has built a grid to count. It covers the whole archive because the reader
|
|
61
|
+
* expands every member it finds.
|
|
62
|
+
*/
|
|
63
|
+
export declare const MAX_WORKBOOK_INFLATED_BYTES: number;
|
|
64
|
+
/**
|
|
65
|
+
* Parse an Excel workbook into what an app needs from it: a structure digest
|
|
66
|
+
* describing every sheet, and CSV rows for the sheets that hold data. Generated
|
|
67
|
+
* SDK APIs can only parse CSV, so this conversion happens before the file
|
|
68
|
+
* reaches testApi or the JavaScript sandbox.
|
|
69
|
+
*/
|
|
70
|
+
export declare function convertWorkbookToCsvSheets(input: {
|
|
71
|
+
bytes: Uint8Array;
|
|
72
|
+
fileName: string;
|
|
73
|
+
maxCells?: number;
|
|
74
|
+
maxCsvBytes?: number;
|
|
75
|
+
maxInflatedBytes?: number;
|
|
76
|
+
}): Promise<SpreadsheetCsvSheet[]>;
|
|
77
|
+
//# sourceMappingURL=spreadsheet-csv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spreadsheet-csv.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools/apis/spreadsheet-csv.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,yBAAyB,CAAC;IACpC,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAoB,CAAC;AACxD,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAC5C;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,QAAmB,CAAC;AAsU5D;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA2DjC"}
|