@superblocksteam/vite-plugin-file-sync 2.0.105-next.0 → 2.0.105-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +33 -0
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.d.ts +3 -3
- package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/api-prompts.js +254 -60
- 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 +14 -0
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +3 -0
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-testing-state.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-testing-state.js +1 -2
- package/dist/ai-service/agent/tools/apis/api-testing-state.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/sdk-registry.d.ts +11 -0
- package/dist/ai-service/agent/tools/apis/sdk-registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/sdk-registry.js +41 -1
- package/dist/ai-service/agent/tools/apis/sdk-registry.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +34 -4
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +11 -13
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +12 -0
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +1 -0
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +1 -0
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/index.d.ts +1 -0
- package/dist/ai-service/agent/tools/integrations/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/index.js +1 -0
- package/dist/ai-service/agent/tools/integrations/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts +85 -0
- package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/integrations/integration-setup.js +343 -0
- package/dist/ai-service/agent/tools/integrations/integration-setup.js.map +1 -0
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +19 -2
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +5 -2
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +7 -4
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +2 -2
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.d.ts +18 -0
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js +82 -0
- package/dist/ai-service/agent/tools2/tools/ask-searchable-dropdown.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +13 -1
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +12 -0
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +3 -1
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +57 -0
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +14 -1
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +12 -2
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +0 -1
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +11 -26
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +21 -0
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +50 -0
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +11 -1
- package/dist/ai-service/llm/error.d.ts.map +1 -1
- package/dist/ai-service/llm/error.js +9 -0
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +2 -0
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +2 -1
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/errors.d.ts +13 -1
- package/dist/ai-service/llm/stream/errors.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/errors.js +17 -1
- package/dist/ai-service/llm/stream/errors.js.map +1 -1
- package/dist/ai-service/llm/stream/idle-monitor.d.ts +63 -0
- package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/idle-monitor.js +106 -0
- package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -0
- package/dist/ai-service/llm/stream/managed-stream.d.ts +4 -1
- package/dist/ai-service/llm/stream/managed-stream.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/managed-stream.js +14 -2
- package/dist/ai-service/llm/stream/managed-stream.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +1 -0
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +47 -6
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +23 -2
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +4 -11
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js +10 -3
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js.map +1 -1
- 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 +107 -19
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +4 -0
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +105 -5
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +8 -24
- package/dist/ai-service/state-machine/handlers/awaiting-user.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 +64 -4
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +9 -0
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/git-service/azure-devops-workflow.d.ts +6 -0
- package/dist/git-service/azure-devops-workflow.d.ts.map +1 -0
- package/dist/git-service/azure-devops-workflow.js +12 -0
- package/dist/git-service/azure-devops-workflow.js.map +1 -0
- package/dist/parsing/index.d.ts +1 -1
- package/dist/parsing/index.d.ts.map +1 -1
- package/dist/parsing/index.js +1 -1
- package/dist/parsing/index.js.map +1 -1
- package/dist/parsing/sdk-registry.d.ts +12 -0
- package/dist/parsing/sdk-registry.d.ts.map +1 -1
- package/dist/parsing/sdk-registry.js +78 -22
- package/dist/parsing/sdk-registry.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +12 -2
- package/dist/socket-manager.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/middleware.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/middleware.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAWnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,GAAE,MAAiC,GAC1C,cAAc,CA0BhB;AA4DD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,cAAc,CAsCjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KAEjB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAiBhE;AA0ND;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA0BpE"}
|
|
@@ -3,6 +3,7 @@ import { scanContentForSecrets, SecretRedactor } from "../security/index.js";
|
|
|
3
3
|
import { getApiDocsToolFactory } from "./tools/apis/get-api-docs.js";
|
|
4
4
|
import { testApiToolFactory } from "./tools/apis/test-api.js";
|
|
5
5
|
import { buildCaptureScreenshotToolFactory } from "./tools/build-capture-screenshot.js";
|
|
6
|
+
import { buildDebugToolFactory } from "./tools/build-debug.js";
|
|
6
7
|
import { buildReadFileToolFactory } from "./tools/build-read-file.js";
|
|
7
8
|
import { executeRequestToIntegrationToolFactory } from "./tools/index.js";
|
|
8
9
|
import { grepToolFactory } from "./tools2/tools/grep.js";
|
|
@@ -62,6 +63,7 @@ const SECRET_SCAN_ENABLED_TOOLS = new Set([
|
|
|
62
63
|
]);
|
|
63
64
|
const TOOL_LOG_SUMMARY_NAMES = {
|
|
64
65
|
buildCaptureScreenshot: buildCaptureScreenshotToolFactory.name,
|
|
66
|
+
buildDebug: buildDebugToolFactory.name,
|
|
65
67
|
buildReadFile: buildReadFileToolFactory.name,
|
|
66
68
|
executeRequestToIntegration: executeRequestToIntegrationToolFactory.name,
|
|
67
69
|
getApiDocs: getApiDocsToolFactory.name,
|
|
@@ -69,6 +71,34 @@ const TOOL_LOG_SUMMARY_NAMES = {
|
|
|
69
71
|
testApi: testApiToolFactory.name,
|
|
70
72
|
webFetch: webFetchToolFactory.name,
|
|
71
73
|
};
|
|
74
|
+
function summarizeBuildDebugResult(result) {
|
|
75
|
+
if (!result || typeof result !== "object" || Array.isArray(result)) {
|
|
76
|
+
const outputChars = typeof result === "string"
|
|
77
|
+
? result.length
|
|
78
|
+
: safeJsonStringify(result).length;
|
|
79
|
+
return {
|
|
80
|
+
fallback: true,
|
|
81
|
+
outputChars,
|
|
82
|
+
type: Array.isArray(result) ? "array" : typeof result,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const root = result;
|
|
86
|
+
const typeErrors = typeof root.typeErrors === "string" ? root.typeErrors : undefined;
|
|
87
|
+
const buildSystemErrors = Array.isArray(root.buildSystemErrors)
|
|
88
|
+
? root.buildSystemErrors
|
|
89
|
+
: undefined;
|
|
90
|
+
const runtimeErrors = Array.isArray(root.runtimeErrors)
|
|
91
|
+
? root.runtimeErrors
|
|
92
|
+
: undefined;
|
|
93
|
+
const message = typeof root.message === "string" ? root.message : undefined;
|
|
94
|
+
return {
|
|
95
|
+
status: root.status,
|
|
96
|
+
typeErrorChars: typeErrors?.length ?? 0,
|
|
97
|
+
buildErrorCount: buildSystemErrors?.length ?? 0,
|
|
98
|
+
runtimeErrorCount: runtimeErrors?.length ?? 0,
|
|
99
|
+
messageChars: message?.length ?? 0,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
72
102
|
/**
|
|
73
103
|
* Middleware to scan and redact secrets from tool outputs.
|
|
74
104
|
*
|
|
@@ -166,6 +196,9 @@ function summarizeToolResultForLogs(toolName, result) {
|
|
|
166
196
|
if (toolName === TOOL_LOG_SUMMARY_NAMES.buildCaptureScreenshot) {
|
|
167
197
|
return summarizeScreenshotResult(result);
|
|
168
198
|
}
|
|
199
|
+
if (toolName === TOOL_LOG_SUMMARY_NAMES.buildDebug) {
|
|
200
|
+
return summarizeBuildDebugResult(result);
|
|
201
|
+
}
|
|
169
202
|
const sanitizedResult = sanitizeLogObject(result);
|
|
170
203
|
const serializedSanitizedResult = JSON.stringify(sanitizedResult);
|
|
171
204
|
const fallbackSummary = (type) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/ai-service/agent/middleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/ai-service/agent/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* YAML-based API prompt section (legacy experience).
|
|
9
9
|
*
|
|
10
10
|
* Uses:
|
|
11
|
-
* - useApi from @superblocksteam/library
|
|
11
|
+
* - useApi / useApiData / executeApi from @superblocksteam/library
|
|
12
12
|
* - APIs in apis/ApiName/api.yaml
|
|
13
13
|
* - getApiDocs tool is mandatory before API work
|
|
14
14
|
*/
|
|
@@ -17,8 +17,8 @@ export declare function buildYamlApiSection(): string;
|
|
|
17
17
|
* SDK-based API prompt section (new experience).
|
|
18
18
|
*
|
|
19
19
|
* Uses:
|
|
20
|
-
* - useApi from @/hooks/useApi.js
|
|
21
|
-
* -
|
|
20
|
+
* - useApi from @/hooks/useApi.js, useApiData from @/hooks/useApiData.js, executeApi from @/lib/executeApi.js
|
|
21
|
+
* - API modules under server/apis/ (group by domain or feature, e.g. server/apis/users/get-users.ts; paths are flexible)
|
|
22
22
|
* - SDK READMEs for documentation
|
|
23
23
|
* - Zod schemas and integration IDs
|
|
24
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-prompts.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/api-prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"api-prompts.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/api-prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAkO5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAse3C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAiChE"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* YAML-based API prompt section (legacy experience).
|
|
9
9
|
*
|
|
10
10
|
* Uses:
|
|
11
|
-
* - useApi from @superblocksteam/library
|
|
11
|
+
* - useApi / useApiData / executeApi from @superblocksteam/library
|
|
12
12
|
* - APIs in apis/ApiName/api.yaml
|
|
13
13
|
* - getApiDocs tool is mandatory before API work
|
|
14
14
|
*/
|
|
@@ -66,36 +66,41 @@ If the user requests checking user data, like email, ID, this information cannot
|
|
|
66
66
|
You must NEVER attempt to rely on frontend data for security-critical operations, rely on the injected \`Global\` object in APIs instead.
|
|
67
67
|
</permissions>
|
|
68
68
|
|
|
69
|
-
APIs MUST be loaded using
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
69
|
+
APIs MUST be loaded using hooks and utilities from \`@superblocksteam/library\` with the exact API name based on its folder name under apis/. Having apis/<ApiName>/api.yaml, the first argument should be \`<ApiName>\`.
|
|
70
|
+
|
|
71
|
+
**Three primitives for three use cases:**
|
|
72
|
+
- **\`useApiData\`** — React hook for data loading (reads). Auto-fetches on mount and when inputs change. Has shared cache, stale-while-revalidate, retry, and auto-refetch.
|
|
73
|
+
- **\`useApi\`** — React hook for mutations/actions (writes). Call \`run()\` manually on button click, form submit, etc. No auto-fetch, no cache.
|
|
74
|
+
- **\`executeApi\`** — Plain function for calling APIs outside React (utility functions, event handlers, initialization logic). Returns a Promise.
|
|
75
75
|
|
|
76
|
-
**
|
|
77
|
-
- **Imperative** — \`const { run, loading, data } = useApi("CreateOrder")\` — call \`run()\` manually
|
|
78
|
-
- **Declarative** — \`const { loading, data } = useApi("GetUsers", { email, name })\` — auto-fetches on mount and when inputs change
|
|
76
|
+
**CRITICAL: Use \`useApiData\` for data loading, \`useApi\` for mutations, and \`executeApi\` outside React components. Do NOT use \`useApi\` with a second argument for data loading — that pattern is deprecated.**
|
|
79
77
|
|
|
80
|
-
**CRITICAL: Do NOT create custom wrapper hooks around
|
|
78
|
+
**CRITICAL: Do NOT create custom wrapper hooks around these hooks. Do NOT manage loading or data state with separate useState — the hooks handle this for you.**
|
|
81
79
|
|
|
82
80
|
**CRITICAL: When a user says that an API is not working or has an error, ALWAYS check the API call sites in the application and ensure the inputs are correct! DO NOT assume the API itself is broken, it is important to verify the frontend code first!**
|
|
83
81
|
|
|
84
82
|
\`\`\`typescript
|
|
85
|
-
//
|
|
86
|
-
import {
|
|
83
|
+
// Data loading — auto-fetches when inputs change (preferred for reads)
|
|
84
|
+
import { useApiData } from "@superblocksteam/library";
|
|
87
85
|
|
|
88
|
-
const { loading,
|
|
89
|
-
// \`data\` updates automatically, \`loading\`
|
|
86
|
+
const { data, loading, isError, error, fetching } = useApiData("GetUsers", { email: email ?? null, name: name ?? null });
|
|
87
|
+
// \`data\` updates automatically, \`loading\` is true on first fetch with no cached data
|
|
88
|
+
// \`fetching\` is true during any fetch (including background refetch)
|
|
89
|
+
// \`error\` is populated if the fetch fails — no try/catch needed
|
|
90
90
|
// Re-fetches when email or name changes — no useEffect needed
|
|
91
|
+
// IMPORTANT: Always use \`fetching\` to show a loading indicator during refetches
|
|
92
|
+
|
|
93
|
+
if (loading) return <Skeleton />;
|
|
94
|
+
if (isError) return <ErrorBanner error={error} />;
|
|
95
|
+
return <UserList users={data.users} />;
|
|
91
96
|
\`\`\`
|
|
92
97
|
|
|
93
98
|
\`\`\`typescript
|
|
94
|
-
//
|
|
99
|
+
// Mutations — for event-driven actions (button clicks, form submissions)
|
|
95
100
|
import { useApi } from "@superblocksteam/library";
|
|
96
101
|
import { toast } from "sonner";
|
|
97
102
|
|
|
98
|
-
const { run: createOrder, loading } = useApi("CreateOrder");
|
|
103
|
+
const { run: createOrder, loading, error } = useApi("CreateOrder");
|
|
99
104
|
|
|
100
105
|
const handleSubmit = useCallback(async () => {
|
|
101
106
|
try {
|
|
@@ -110,16 +115,71 @@ const handleSubmit = useCallback(async () => {
|
|
|
110
115
|
}, [item, qty, createOrder]);
|
|
111
116
|
\`\`\`
|
|
112
117
|
|
|
118
|
+
\`\`\`typescript
|
|
119
|
+
// Refetch after a mutation — combine useApiData + useApi
|
|
120
|
+
import { useApiData, useApi } from "@superblocksteam/library";
|
|
121
|
+
|
|
122
|
+
const { data: todos, refetch } = useApiData("GetTodos", {});
|
|
123
|
+
const { run: createTodo } = useApi("CreateTodo");
|
|
124
|
+
|
|
125
|
+
const handleCreate = async (title: string) => {
|
|
126
|
+
await createTodo({ title });
|
|
127
|
+
await refetch(); // Refresh the list after mutation
|
|
128
|
+
};
|
|
129
|
+
\`\`\`
|
|
130
|
+
|
|
131
|
+
\`\`\`typescript
|
|
132
|
+
// Outside React — utility functions, event handlers, initialization logic
|
|
133
|
+
import { executeApi } from "@superblocksteam/library";
|
|
134
|
+
|
|
135
|
+
// Simple call — returns a Promise
|
|
136
|
+
const users = await executeApi("GetUsers", { email: "a@b.com" });
|
|
137
|
+
|
|
138
|
+
// With cancellation
|
|
139
|
+
const controller = new AbortController();
|
|
140
|
+
const data = await executeApi("GetUser", { id: userId }, { signal: controller.signal });
|
|
141
|
+
|
|
142
|
+
// In a utility function (no React hooks needed)
|
|
143
|
+
async function syncUserData(userId: string) {
|
|
144
|
+
const user = await executeApi("GetUser", { id: userId });
|
|
145
|
+
const orders = await executeApi("GetOrders", { userId: user.id });
|
|
146
|
+
return { user, orders };
|
|
147
|
+
}
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
**\`useApiData\` returns \`{ data, error, status, fetchStatus, loading, fetching, isError, isSuccess, isStale, refetch, cancel }\`:**
|
|
151
|
+
- \`data\` — cached/fetched response (persists across background refetches)
|
|
152
|
+
- \`error\` — error from the last failed fetch (cleared on success)
|
|
153
|
+
- \`loading\` — true when fetching for the first time with no cached data
|
|
154
|
+
- \`fetching\` — true when any fetch is in progress (including background refetch)
|
|
155
|
+
- \`isError\` / \`isSuccess\` — boolean status helpers
|
|
156
|
+
- \`refetch()\` — manually trigger a fresh fetch
|
|
157
|
+
- \`cancel()\` — abort the current in-flight fetch
|
|
158
|
+
|
|
159
|
+
**\`useApi\` returns \`{ run, cancel, loading, data, error, status, variables, reset }\`:**
|
|
160
|
+
- \`run(inputs)\` — execute the API imperatively
|
|
161
|
+
- \`cancel()\` — cancel in-flight requests
|
|
162
|
+
- \`loading\` — boolean, true while the most recent call is in flight
|
|
163
|
+
- \`data\` — last successful response (persists across re-runs)
|
|
164
|
+
- \`error\` — error from the last failed run (cleared on next success)
|
|
165
|
+
- \`status\` — \`"idle" | "pending" | "success" | "error"\`
|
|
166
|
+
- \`reset()\` — reset state back to idle
|
|
167
|
+
|
|
168
|
+
**\`executeApi(apiName, inputs?, options?)\` returns \`Promise<TOutput>\`:**
|
|
169
|
+
- Plain async function — no React hooks, no caching, no reactive state
|
|
170
|
+
- Use for utility functions, event handlers, initialization logic, and non-component code
|
|
171
|
+
- Supports \`{ signal: AbortSignal }\` option for cancellation
|
|
172
|
+
- Errors are thrown as exceptions — use try/catch or .catch()
|
|
173
|
+
|
|
113
174
|
### Critical Rules
|
|
114
175
|
|
|
115
176
|
1. **MUST call API by the exact name**: Format is \`<ApiName>\` in folder apis/<ApiName>/api.yaml
|
|
116
|
-
2. **Always pass parameters to the function**: \`await run({ param1: value1, param2: value2 })\`
|
|
117
|
-
3. **Use \`loading\`
|
|
118
|
-
4. **
|
|
119
|
-
5. **
|
|
120
|
-
6. **ALWAYS
|
|
121
|
-
7. **ALWAYS include
|
|
122
|
-
8. **ALWAYS include error handling**: In imperative mode, wrap \`run()\` in try/catch. In declarative mode, check the \`error\` field for failure details.
|
|
177
|
+
2. **Always pass parameters to the function**: \`await run({ param1: value1, param2: value2 })\` for useApi, or as the second argument for useApiData / executeApi
|
|
178
|
+
3. **Use \`useApiData\` for data loading, \`useApi\` for mutations, \`executeApi\` outside React**: Do NOT create separate useState for loading, response data, or error state
|
|
179
|
+
4. **Do NOT create wrapper hooks**: Use the hooks directly in components — no \`useGetUsers\` pattern needed
|
|
180
|
+
5. **ALWAYS check API input/output interfaces**: NEVER guess the response structure - use the actual interface defined by the API
|
|
181
|
+
6. **ALWAYS include all parameters in the function call**: NEVER omit parameters the API expects, even if they are optional, they should be included and passed as null
|
|
182
|
+
7. **ALWAYS include error handling**: In useApi, wrap \`run()\` in try/catch. In useApiData, check the \`error\` or \`isError\` fields. For executeApi, use try/catch or .catch().
|
|
123
183
|
|
|
124
184
|
### File Handling
|
|
125
185
|
|
|
@@ -145,13 +205,34 @@ Efficiency is key when building applications for production. You should always b
|
|
|
145
205
|
when it comes to loading data from APIs.
|
|
146
206
|
|
|
147
207
|
Here are some examples (not exhaustive) that you should consider when building applications:
|
|
148
|
-
1. **
|
|
208
|
+
1. **Always show loading indicators on refetch**: When inputs change (e.g. filters, search), show a visual loading indicator while new data loads. Use \`fetching\` from useApiData.
|
|
149
209
|
2. **Loading State Hierarchy**:
|
|
150
|
-
-
|
|
151
|
-
- Has data → Keep showing data
|
|
152
|
-
- Error state → Show error with retry option, optionally keep stale data
|
|
210
|
+
- No data yet (\`loading\`) → Full skeleton placeholder
|
|
211
|
+
- Has data, refetching (\`fetching\` && !\`loading\`) → Keep showing current data with a loading overlay (e.g. reduced opacity, inline spinner)
|
|
212
|
+
- Error state (\`isError\`) → Show error with retry option, optionally keep stale data visible
|
|
153
213
|
3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession
|
|
154
|
-
4. **Use
|
|
214
|
+
4. **Use useApiData for automatic refetching**: \`useApiData\` auto-refetches when inputs change and supports \`staleTime\`, \`refetchOnWindowFocus\`, and \`refetchOnReconnect\` options.
|
|
215
|
+
|
|
216
|
+
\`\`\`tsx
|
|
217
|
+
// ✅ CORRECT — loading indicator when filters change
|
|
218
|
+
const { data, loading, fetching, isError, error } = useApiData("GetOrders", { status: statusFilter, search });
|
|
219
|
+
|
|
220
|
+
if (loading) return <Skeleton />; // First load: full skeleton
|
|
221
|
+
if (isError) return <ErrorBanner error={error} />;
|
|
222
|
+
return (
|
|
223
|
+
<div className={fetching ? "opacity-50 pointer-events-none" : ""}>
|
|
224
|
+
<OrderTable orders={data.orders} /> {/* Keep showing data during refetch */}
|
|
225
|
+
</div>
|
|
226
|
+
);
|
|
227
|
+
\`\`\`
|
|
228
|
+
|
|
229
|
+
\`\`\`tsx
|
|
230
|
+
// ❌ WRONG — no loading indicator when filters change. User sees stale data with no feedback.
|
|
231
|
+
const { data, loading } = useApiData("GetOrders", { status: statusFilter, search });
|
|
232
|
+
|
|
233
|
+
if (loading) return <Skeleton />;
|
|
234
|
+
return <OrderTable orders={data.orders} />;
|
|
235
|
+
\`\`\`
|
|
155
236
|
|
|
156
237
|
### Interpreting testApi Results
|
|
157
238
|
|
|
@@ -162,8 +243,8 @@ Here are some examples (not exhaustive) that you should consider when building a
|
|
|
162
243
|
* SDK-based API prompt section (new experience).
|
|
163
244
|
*
|
|
164
245
|
* Uses:
|
|
165
|
-
* - useApi from @/hooks/useApi.js
|
|
166
|
-
* -
|
|
246
|
+
* - useApi from @/hooks/useApi.js, useApiData from @/hooks/useApiData.js, executeApi from @/lib/executeApi.js
|
|
247
|
+
* - API modules under server/apis/ (group by domain or feature, e.g. server/apis/users/get-users.ts; paths are flexible)
|
|
167
248
|
* - SDK READMEs for documentation
|
|
168
249
|
* - Zod schemas and integration IDs
|
|
169
250
|
*/
|
|
@@ -181,11 +262,13 @@ Before writing ANY API, you MUST:
|
|
|
181
262
|
- This is REQUIRED before creating or modifying any API
|
|
182
263
|
|
|
183
264
|
2. **Read the integration-specific README** for EACH integration you plan to use:
|
|
184
|
-
- Path: \`node_modules/@superblocksteam/sdk-api/src/integrations/<
|
|
265
|
+
- Path: \`node_modules/@superblocksteam/sdk-api/src/integrations/<pluginId>/README.md\`
|
|
266
|
+
- The \`<pluginId>\` is the integration's plugin type (e.g. \`postgres\`, \`redshift\`, \`openai_v2\`) — the same value returned in the \`plugin.id\` field from \`searchIntegrations\`
|
|
185
267
|
- Example: For Postgres, read \`node_modules/@superblocksteam/sdk-api/src/integrations/postgres/README.md\`
|
|
186
268
|
- Example: For OpenAI, read \`node_modules/@superblocksteam/sdk-api/src/integrations/openai_v2/README.md\`
|
|
187
269
|
- These contain integration-specific methods, parameters, and usage examples
|
|
188
270
|
- Do NOT guess or hallucinate integration methods - the README is the source of truth
|
|
271
|
+
- **Important:** \`node_modules\` is excluded from file listing and glob results. Use \`grep\` to find files in \`node_modules\` (e.g. \`grep("redshift", path="node_modules/@superblocksteam/sdk-api/src", files_with_matches)\`), then \`build_readFile\` to read them
|
|
189
272
|
|
|
190
273
|
**Trace Metadata:**
|
|
191
274
|
All integration client methods accept an optional \`metadata\` parameter as the last argument: \`{ label?: string, description?: string }\`. When \`includeDiagnostics\` is enabled, this metadata appears in the trace view. Always include a \`label\` on each integration call to make traces readable. Example: \`ctx.integrations.db.query(sql, Schema, params, { label: "Fetch active users" })\`.
|
|
@@ -193,7 +276,7 @@ All integration client methods accept an optional \`metadata\` parameter as the
|
|
|
193
276
|
**CRITICAL - Method Validation:**
|
|
194
277
|
Before calling ANY integration client method, you MUST:
|
|
195
278
|
1. Read the integration's README to understand available methods and their signatures
|
|
196
|
-
2. Check the client's TypeScript type definition in \`node_modules/@superblocksteam/sdk-api/src/integrations/<
|
|
279
|
+
2. Check the client's TypeScript type definition in \`node_modules/@superblocksteam/sdk-api/src/integrations/<pluginId>/types.ts\` if needed (use \`grep\` to find files, then \`build_readFile\` to read — glob/listing exclude \`node_modules\`)
|
|
197
280
|
3. Verify the method exists and review its exact signature
|
|
198
281
|
4. Do NOT hallucinate methods based on the real service's API (e.g., \`openai.createChatCompletion()\` doesn't exist - check the README for actual methods)
|
|
199
282
|
</sdk>
|
|
@@ -277,12 +360,16 @@ If the user requests checking user data, like email, ID, this information cannot
|
|
|
277
360
|
You must NEVER attempt to rely on frontend data for security-critical operations, rely on the injected \`Global\` object in APIs instead.
|
|
278
361
|
</permissions>
|
|
279
362
|
|
|
363
|
+
**First argument to \`useApi\` / \`useApiData\` / \`executeApi\`:** each key on the default export in \`server/apis/index.ts\` — not the \`name\` field inside \`api({ … })\` when those differ. Use \`index.ts\` and existing call sites;
|
|
364
|
+
|
|
280
365
|
**CRITICAL: When debugging data issues:**
|
|
281
366
|
- If the UI is showing no data, ALWAYS test the relevant APIs first to verify they are actually returning data
|
|
282
367
|
- DO NOT assume the API itself is correct or broken without testing it - verify both the API response AND the frontend code
|
|
283
368
|
|
|
369
|
+
**File layout:** Group APIs under \`server/apis/\` by domain or feature (e.g. \`users/\`, \`orders/\`, \`billing/\`). Use descriptive file names (\`get-users.ts\`, \`create-order.ts\`) instead of repeating \`api.ts\` inside a folder named after the registry key. The path is independent of the string passed to \`useApi("...")\`—only \`server/apis/index.ts\` maps names to files.
|
|
370
|
+
|
|
284
371
|
\`\`\`typescript
|
|
285
|
-
// API definition in server/apis/
|
|
372
|
+
// API definition in server/apis/users/get-users.ts
|
|
286
373
|
import { api, z, postgres } from "@superblocksteam/sdk-api";
|
|
287
374
|
|
|
288
375
|
// Integration IDs from the integrations panel - store in constants with descriptive names
|
|
@@ -344,21 +431,27 @@ WHERE plan = ANY($1::text[]) -- ❌ WRONG: "operator does not exis
|
|
|
344
431
|
Rule: Before writing \`::type\` casts, check the actual column type via \`grepMetadata\`. Use \`::text\` only for built-in text columns.
|
|
345
432
|
|
|
346
433
|
\`\`\`typescript
|
|
347
|
-
//
|
|
348
|
-
import {
|
|
434
|
+
// Data loading — auto-fetches when inputs change (preferred for reads)
|
|
435
|
+
import { useApiData } from "@/hooks/useApiData.js";
|
|
349
436
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
// \`
|
|
437
|
+
const { data, loading, isError, error, fetching } = useApiData("GetUsers", { email, name });
|
|
438
|
+
// \`data\` updates automatically, \`loading\` is true on first fetch with no cached data
|
|
439
|
+
// \`fetching\` is true during any fetch (including background refetch)
|
|
440
|
+
// \`error\` is populated if the fetch fails — no try/catch needed
|
|
353
441
|
// Re-fetches when email or name changes — no useEffect needed
|
|
442
|
+
// IMPORTANT: Always use \`fetching\` to show a loading indicator during refetches
|
|
443
|
+
|
|
444
|
+
if (loading) return <Skeleton />;
|
|
445
|
+
if (isError) return <ErrorBanner error={error} />;
|
|
446
|
+
return <UserList users={data.users} />;
|
|
354
447
|
\`\`\`
|
|
355
448
|
|
|
356
449
|
\`\`\`typescript
|
|
357
|
-
//
|
|
450
|
+
// Mutations — for event-driven actions (button clicks, form submissions)
|
|
358
451
|
import { useApi } from "@/hooks/useApi.js";
|
|
359
452
|
import { toast } from "sonner";
|
|
360
453
|
|
|
361
|
-
const { run: createOrder, loading } = useApi("CreateOrder");
|
|
454
|
+
const { run: createOrder, loading, error } = useApi("CreateOrder");
|
|
362
455
|
|
|
363
456
|
const handleSubmit = useCallback(async () => {
|
|
364
457
|
try {
|
|
@@ -373,24 +466,93 @@ const handleSubmit = useCallback(async () => {
|
|
|
373
466
|
}, [item, qty, createOrder]);
|
|
374
467
|
\`\`\`
|
|
375
468
|
|
|
376
|
-
|
|
469
|
+
\`\`\`typescript
|
|
470
|
+
// Refetch after a mutation — combine useApiData + useApi
|
|
471
|
+
import { useApiData } from "@/hooks/useApiData.js";
|
|
472
|
+
import { useApi } from "@/hooks/useApi.js";
|
|
473
|
+
|
|
474
|
+
const { data: todos, refetch } = useApiData("GetTodos", {});
|
|
475
|
+
const { run: createTodo } = useApi("CreateTodo");
|
|
476
|
+
|
|
477
|
+
const handleCreate = async (title: string) => {
|
|
478
|
+
await createTodo({ title });
|
|
479
|
+
await refetch(); // Refresh the list after mutation
|
|
480
|
+
};
|
|
481
|
+
\`\`\`
|
|
482
|
+
|
|
483
|
+
\`\`\`typescript
|
|
484
|
+
// Conditional fetching and stale-while-revalidate
|
|
485
|
+
import { useApiData } from "@/hooks/useApiData.js";
|
|
486
|
+
|
|
487
|
+
// Only fetch when userId is available
|
|
488
|
+
const { data } = useApiData("GetUser", { id: userId }, { enabled: !!userId });
|
|
489
|
+
|
|
490
|
+
// Show cached data while refreshing in background
|
|
491
|
+
const { data, fetching } = useApiData("GetMetrics", {}, { staleTime: 30_000 });
|
|
492
|
+
\`\`\`
|
|
493
|
+
|
|
494
|
+
\`\`\`typescript
|
|
495
|
+
// Outside React — utility functions, event handlers, initialization logic
|
|
496
|
+
import { executeApi } from "@/lib/executeApi.js";
|
|
497
|
+
|
|
498
|
+
// Simple call — returns a Promise
|
|
499
|
+
const users = await executeApi("GetUsers", { email: "a@b.com" });
|
|
500
|
+
|
|
501
|
+
// With cancellation
|
|
502
|
+
const controller = new AbortController();
|
|
503
|
+
const data = await executeApi("GetUser", { id: userId }, { signal: controller.signal });
|
|
504
|
+
|
|
505
|
+
// In a utility function (no React hooks needed)
|
|
506
|
+
async function syncUserData(userId: string) {
|
|
507
|
+
const user = await executeApi("GetUser", { id: userId });
|
|
508
|
+
const orders = await executeApi("GetOrders", { userId: user.id });
|
|
509
|
+
return { user, orders };
|
|
510
|
+
}
|
|
511
|
+
\`\`\`
|
|
512
|
+
|
|
513
|
+
**Three primitives for three use cases:**
|
|
514
|
+
- **\`useApiData\`** — React hook for data loading (reads). Auto-fetches on mount and when inputs change.
|
|
515
|
+
- **\`useApi\`** — React hook for mutations/actions (writes). Call \`run()\` manually.
|
|
516
|
+
- **\`executeApi\`** — Plain function for calling APIs outside React (utility functions, event handlers, initialization logic).
|
|
517
|
+
|
|
518
|
+
**\`useApiData\` returns \`{ data, error, status, fetchStatus, loading, fetching, isError, isSuccess, isStale, refetch, cancel }\`:**
|
|
519
|
+
- \`data\` — cached/fetched response (persists across background refetches)
|
|
520
|
+
- \`error\` — error from the last failed fetch (cleared on success)
|
|
521
|
+
- \`loading\` — true when fetching for the first time with no cached data
|
|
522
|
+
- \`fetching\` — true when any fetch is in progress (including background refetch)
|
|
523
|
+
- \`isError\` / \`isSuccess\` — boolean status helpers
|
|
524
|
+
- \`refetch()\` — manually trigger a fresh fetch
|
|
525
|
+
- \`cancel()\` — abort the current in-flight fetch
|
|
526
|
+
- Options: \`enabled\`, \`staleTime\`, \`gcTime\`, \`retry\`, \`refetchOnWindowFocus\`, \`refetchOnReconnect\`, \`refetchInterval\`, \`placeholderData\`
|
|
527
|
+
|
|
528
|
+
**\`useApi\` returns \`{ run, cancel, loading, data, error, status, variables, reset }\`:**
|
|
377
529
|
- \`run(inputs)\` — execute the API imperatively
|
|
378
530
|
- \`cancel()\` — cancel in-flight requests
|
|
379
531
|
- \`loading\` — boolean, true while the most recent call is in flight
|
|
380
|
-
- \`data\` — last successful response (persists across re-runs
|
|
381
|
-
- \`error\` —
|
|
532
|
+
- \`data\` — last successful response (persists across re-runs)
|
|
533
|
+
- \`error\` — error from the last failed run (cleared on next success)
|
|
534
|
+
- \`status\` — \`"idle" | "pending" | "success" | "error"\`
|
|
535
|
+
- \`reset()\` — reset state back to idle
|
|
536
|
+
|
|
537
|
+
**\`executeApi(apiName, inputs?, options?)\` returns \`Promise<TOutput>\`:**
|
|
538
|
+
- Plain async function — no React hooks, no caching, no reactive state
|
|
539
|
+
- Use for utility functions, event handlers, initialization logic, and non-component code
|
|
540
|
+
- Supports \`{ signal: AbortSignal }\` option for cancellation
|
|
541
|
+
- Errors are thrown as exceptions — use try/catch or .catch()
|
|
382
542
|
|
|
383
|
-
**CRITICAL:
|
|
543
|
+
**CRITICAL: Use \`useApiData\` for data loading, \`useApi\` for mutations, and \`executeApi\` outside React components. Do NOT use \`useApi\` with a second argument for data loading — that pattern is deprecated.**
|
|
544
|
+
|
|
545
|
+
**CRITICAL: Do NOT create custom wrapper hooks around these hooks. Do NOT manage loading or data state with separate useState — the hooks handle this for you.**
|
|
384
546
|
|
|
385
547
|
### Critical Rules
|
|
386
548
|
|
|
387
|
-
1. **Import
|
|
388
|
-
2. **
|
|
389
|
-
3. **
|
|
390
|
-
4. **Do NOT create wrapper hooks**: Use
|
|
549
|
+
1. **Import from the app wrappers**: \`useApi\` from \`@/hooks/useApi.js\`, \`useApiData\` from \`@/hooks/useApiData.js\`, \`executeApi\` from \`@/lib/executeApi.js\` — not from \`@superblocksteam/library\` (those wrappers wire \`createTypedApi\` / \`createTypedExecuteApi\` to your registry).
|
|
550
|
+
2. **MUST use the exact property name from \`server/apis/index.ts\`** as the first hook argument.
|
|
551
|
+
3. **Use \`useApiData\` for data loading, \`useApi\` for mutations, \`executeApi\` outside React**: Do NOT create separate useState for loading, response data, or error state
|
|
552
|
+
4. **Do NOT create wrapper hooks**: Use the hooks directly in components — no \`useGetUsers\` pattern needed
|
|
391
553
|
5. **ALWAYS check API input/output interfaces**: NEVER guess the response structure - use the actual interface defined by the API
|
|
392
554
|
6. **ALWAYS include all parameters in the function call**: NEVER omit parameters the API expects, even if they are optional, they should be included and passed as null
|
|
393
|
-
7. **ALWAYS include error handling**: In
|
|
555
|
+
7. **ALWAYS include error handling**: In useApi, wrap \`run()\` in try/catch. In useApiData, check the \`error\` or \`isError\` fields. For executeApi, use try/catch or .catch().
|
|
394
556
|
|
|
395
557
|
### File Handling
|
|
396
558
|
|
|
@@ -539,13 +701,34 @@ Efficiency is key when building applications for production. You should always b
|
|
|
539
701
|
when it comes to loading data from APIs.
|
|
540
702
|
|
|
541
703
|
Here are some examples (not exhaustive) that you should consider when building applications:
|
|
542
|
-
1. **
|
|
704
|
+
1. **Always show loading indicators on refetch**: When inputs change (e.g. filters, search), show a visual loading indicator while new data loads. Use \`fetching\` from useApiData.
|
|
543
705
|
2. **Loading State Hierarchy**:
|
|
544
|
-
-
|
|
545
|
-
- Has data → Keep showing data
|
|
546
|
-
- Error state → Show error with retry option, optionally keep stale data
|
|
706
|
+
- No data yet (\`loading\`) → Full skeleton placeholder
|
|
707
|
+
- Has data, refetching (\`fetching\` && !\`loading\`) → Keep showing current data with a loading overlay (e.g. reduced opacity, inline spinner)
|
|
708
|
+
- Error state (\`isError\`) → Show error with retry option, optionally keep stale data visible
|
|
547
709
|
3. **Debounce Rapid Requests**: Prevent multiple API calls in short succession
|
|
548
|
-
4. **Use
|
|
710
|
+
4. **Use useApiData for automatic refetching**: \`useApiData\` auto-refetches when inputs change and supports \`staleTime\`, \`refetchOnWindowFocus\`, and \`refetchOnReconnect\` options.
|
|
711
|
+
|
|
712
|
+
\`\`\`tsx
|
|
713
|
+
// ✅ CORRECT — loading indicator when filters change
|
|
714
|
+
const { data, loading, fetching, isError, error } = useApiData("GetOrders", { status: statusFilter, search });
|
|
715
|
+
|
|
716
|
+
if (loading) return <Skeleton />; // First load: full skeleton
|
|
717
|
+
if (isError) return <ErrorBanner error={error} />;
|
|
718
|
+
return (
|
|
719
|
+
<div className={fetching ? "opacity-50 pointer-events-none" : ""}>
|
|
720
|
+
<OrderTable orders={data.orders} /> {/* Keep showing data during refetch */}
|
|
721
|
+
</div>
|
|
722
|
+
);
|
|
723
|
+
\`\`\`
|
|
724
|
+
|
|
725
|
+
\`\`\`tsx
|
|
726
|
+
// ❌ WRONG — no loading indicator when filters change. User sees stale data with no feedback.
|
|
727
|
+
const { data, loading } = useApiData("GetOrders", { status: statusFilter, search });
|
|
728
|
+
|
|
729
|
+
if (loading) return <Skeleton />;
|
|
730
|
+
return <OrderTable orders={data.orders} />;
|
|
731
|
+
\`\`\`
|
|
549
732
|
|
|
550
733
|
### Interpreting testApi Results
|
|
551
734
|
|
|
@@ -560,14 +743,25 @@ Here are some examples (not exhaustive) that you should consider when building a
|
|
|
560
743
|
*/
|
|
561
744
|
export function buildApiToolGuidance(sdkEnabled) {
|
|
562
745
|
if (sdkEnabled) {
|
|
563
|
-
return `**Deleting APIs:**
|
|
746
|
+
return `**Deleting APIs:** Remove the API from \`server/apis/index.ts\`, then delete its implementation. If the API is part of a larger feature, leave the rest of the code alone.
|
|
747
|
+
|
|
748
|
+
**Creating APIs:** Register every API in \`server/apis/index.ts\` so \`useApi\` gets types and the runtime can resolve entry points. Use \`.js\` extensions in import specifiers (ESM). Prefer domain folders and descriptive file names, not \`server/apis/SomeApi/api.ts\` by default.
|
|
749
|
+
|
|
750
|
+
\`\`\`typescript
|
|
751
|
+
// server/apis/index.ts — one module per API (default export)
|
|
752
|
+
import CreateOrder from './orders/create-order.js';
|
|
753
|
+
import GetUsers from './users/get-users.js';
|
|
754
|
+
const apis = { CreateOrder, GetUsers } as const;
|
|
755
|
+
export default apis;
|
|
756
|
+
export type ApiRegistry = typeof apis;
|
|
757
|
+
\`\`\`
|
|
758
|
+
|
|
759
|
+
**Multiple APIs in one module** — use named imports when several \`api({...})\` definitions share a file (e.g. related mutations):
|
|
564
760
|
|
|
565
|
-
**Creating APIs:** When creating a new API, also add it to the registry at \`server/apis/index.ts\`. This enables type inference for \`useApi\`:
|
|
566
761
|
\`\`\`typescript
|
|
567
762
|
// server/apis/index.ts
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
const apis = { ..., NewApi } as const;
|
|
763
|
+
import { ArchiveUser, UpdateProfile } from './users/account-mutations.js';
|
|
764
|
+
const apis = { ..., ArchiveUser, UpdateProfile } as const;
|
|
571
765
|
export default apis;
|
|
572
766
|
export type ApiRegistry = typeof apis;
|
|
573
767
|
\`\`\`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-prompts.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/api-prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO
|
|
1
|
+
{"version":3,"file":"api-prompts.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/api-prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgOD,CAAC;AACT,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoeD,CAAC;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAmB;IACtD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;uCA2B4B,CAAC;IACtC,CAAC;IAED,OAAO,oRAAoR,CAAC;AAC9R,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-base-system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/build-base-system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAKpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAStD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,eAAe,EACvB,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,sBAAsB,MAAM,EAC5B,yBAAyB,MAAM,
|
|
1
|
+
{"version":3,"file":"build-base-system-prompt.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/prompts/build-base-system-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAKpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAStD,eAAO,MAAM,qBAAqB,GAChC,QAAQ,eAAe,EACvB,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,sBAAsB,MAAM,EAC5B,yBAAyB,MAAM,WAqQhC,CAAC"}
|