@kb-labs/commit-entry 2.119.0 → 2.119.1-canary.b53bbee1d
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/cli/commands/apply.js.map +1 -1
- package/dist/cli/commands/flags.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +1 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/open.d.ts +1 -1
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/push.js.map +1 -1
- package/dist/cli/commands/reset.js.map +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lifecycle/index.js.map +1 -1
- package/dist/lifecycle/setup.js.map +1 -1
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +415 -0
- package/dist/rest/handlers/actions-handler.js.map +1 -1
- package/dist/rest/handlers/apply-handler.js.map +1 -1
- package/dist/rest/handlers/diff-handler.d.ts +2 -2
- package/dist/rest/handlers/diff-handler.js.map +1 -1
- package/dist/rest/handlers/files-handler.js.map +1 -1
- package/dist/rest/handlers/generate-handler.d.ts +2 -2
- package/dist/rest/handlers/generate-handler.js.map +1 -1
- package/dist/rest/handlers/git-status-handler.js.map +1 -1
- package/dist/rest/handlers/patch-plan-handler.js.map +1 -1
- package/dist/rest/handlers/plan-handler.d.ts +1 -1
- package/dist/rest/handlers/plan-handler.js.map +1 -1
- package/dist/rest/handlers/push-handler.js.map +1 -1
- package/dist/rest/handlers/regenerate-handler.d.ts +1 -1
- package/dist/rest/handlers/regenerate-handler.js.map +1 -1
- package/dist/rest/handlers/reset-handler.d.ts +1 -1
- package/dist/rest/handlers/reset-handler.js.map +1 -1
- package/dist/rest/handlers/scope-resolver.js.map +1 -1
- package/dist/rest/handlers/scopes-handler.js.map +1 -1
- package/dist/rest/handlers/status-handler.js.map +1 -1
- package/dist/rest/handlers/summarize-handler.d.ts +1 -1
- package/dist/rest/handlers/summarize-handler.js.map +1 -1
- package/dist/widgets/117.js +32 -0
- package/dist/widgets/165.js +1 -0
- package/dist/widgets/326.js +1 -0
- package/dist/widgets/370.js +1 -0
- package/dist/widgets/405.js +1 -0
- package/dist/widgets/46.js +445 -0
- package/dist/widgets/50.js +1 -0
- package/dist/widgets/546.js +1 -0
- package/dist/widgets/648.js +1 -0
- package/dist/widgets/669.js +1 -0
- package/dist/widgets/707.js +1 -0
- package/dist/widgets/775.js +1 -0
- package/dist/widgets/78.js +1 -0
- package/dist/widgets/832.js +96 -0
- package/dist/widgets/875.js +25 -0
- package/dist/widgets/945.js +1 -0
- package/dist/widgets/968.js +9 -0
- package/dist/widgets/__federation_expose_CommitOverview.js +1 -0
- package/dist/widgets/mf-manifest.json +229 -0
- package/dist/widgets/mf-stats.json +253 -0
- package/dist/widgets/remoteEntry.js +7 -0
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts","../../../src/rest/handlers/git-status-handler.ts"],"names":[],"mappings":";;;;;;AAaO,SAAS,gBAAA,CACd,OAAA,EACA,OAAA,GAAkB,MAAA,EAClB,MAAA,EACQ;AACR,EAAA,MAAM,WAAW,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,MAAM,YAAA,GAAe,QAAA,EAAU,IAAA,KAAS,OAAA,KAAY,SAAS,GAAA,GAAM,OAAA,CAAA;AACnE,EAAA,OAAO,YAAA,KAAiB,GAAA,GAAM,OAAA,GAAe,IAAA,CAAA,IAAA,CAAK,SAAS,YAAY,CAAA;AACzE;;;ACXA,IAAO,6BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAA0D;AAC5F,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,IAAS,MAAA;AAEpC,IAAA,IAAI;AAEF,MAAA,MAAM,UAAA,GAAa,MAAM,SAAA,EAAuC;AAChE,MAAA,MAAM,MAAA,GAAS,mBAAA,CAAoB,UAAA,IAAc,EAAE,CAAA;AACnD,MAAA,MAAM,WAAW,gBAAA,CAAiB,GAAA,CAAI,KAAK,KAAA,EAAO,MAAA,CAAO,OAAO,MAAM,CAAA;AAEtE,MAAA,GAAA,CAAI,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,yBAAA,EAA2B;AAAA,QAClD,KAAK,GAAA,CAAI,GAAA;AAAA,QACT,KAAA;AAAA,QACA;AAAA,OACD,CAAA;AAGD,MAAA,MAAM,MAAA,GAAS,MAAM,YAAA,CAAa,QAAQ,CAAA;AAG1C,MAAA,MAAM,OAAmB,EAAC;AAG1B,MAAA,KAAA,MAAW,QAAA,IAAY,OAAO,MAAA,EAAQ;AACpC,QAAA,IAAA,CAAK,IAAA,CAAK;AAAA,UACR,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAGA,MAAA,KAAA,MAAW,QAAA,IAAY,OAAO,QAAA,EAAU;AACtC,QAAA,IAAA,CAAK,IAAA,CAAK;AAAA,UACR,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAGA,MAAA,KAAA,MAAW,QAAA,IAAY,OAAO,SAAA,EAAW;AACvC,QAAA,IAAA,CAAK,IAAA,CAAK;AAAA,UACR,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAEA,MAAA,OAAO;AAAA,QACL,IAAA;AAAA,QACA,OAAO,IAAA,CAAK;AAAA,OACd;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"git-status-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type PluginContextV3, type RestInput, type TableData, type TableRow, rethrowForRest } from '@kb-labs/sdk';\nimport { getGitStatus } from '@kb-labs/commit-core/analyzer';\nimport { type CommitPluginConfig, resolveCommitConfig } from '@kb-labs/commit-contracts';\nimport { resolveScopePath } from './scope-resolver';\n\n/**\n * GET /git-status handler\n *\n * Returns git status as table data for Studio table widget.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<{ scope?: string }>): Promise<TableData> {\n const scope = input.query?.scope || 'root';\n\n try {\n // Resolve scope to actual directory path\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n\n ctx.platform.logger.info('[git-status] Resolution', {\n cwd: ctx.cwd,\n scope,\n scopeCwd,\n });\n\n // Get git status (git runs FROM scopeCwd, no filtering)\n const status = await getGitStatus(scopeCwd);\n\n // Convert git status to table rows\n const rows: TableRow[] = [];\n\n // Add staged files\n for (const filePath of status.staged) {\n rows.push({\n path: filePath,\n status: 'staged',\n });\n }\n\n // Add unstaged files\n for (const filePath of status.unstaged) {\n rows.push({\n path: filePath,\n status: 'modified',\n });\n }\n\n // Add untracked files\n for (const filePath of status.untracked) {\n rows.push({\n path: filePath,\n status: 'untracked',\n });\n }\n\n return {\n rows,\n total: rows.length,\n };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/patch-plan-handler.ts"],"names":[],"mappings":";;;;;AAeA,IAAO,6BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAyE;AAC3G,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,KAAA,GAAQ,MAAA,EAAQ,QAAA,EAAU,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,WAAA,EAAa,IAAA,EAAK,GAAI,KAAA,CAAM,IAAA,IAAQ,EAAC;AAE9F,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,MACxC;AAEA,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,GAAA,CAAI,KAAK,KAAK,CAAA;AAC1C,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,MAChE;AAEA,MAAA,MAAM,cAAc,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,QAAQ,CAAA;AACjE,MAAA,IAAI,gBAAgB,CAAA,CAAA,EAAI;AACtB,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,QAAA,EAAW,QAAQ,CAAA,mBAAA,CAAqB,CAAA;AAAA,MAC1D;AAEA,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA;AAEvC,MAAA,IAAI,YAAY,KAAA,CAAA,EAAW;AACzB,QAAA,MAAA,CAAO,OAAA,GAAU,OAAA;AAAA,MACnB;AACA,MAAA,IAAI,SAAS,KAAA,CAAA,EAAW;AACtB,QAAA,MAAM,MAAA,GAAS,sBAAA,CAAuB,SAAA,CAAU,IAAI,CAAA;AACpD,QAAA,IAAI,OAAO,OAAA,EAAS;AAClB,UAAA,MAAA,CAAO,OAAO,MAAA,CAAO,IAAA;AAAA,QACvB;AAAA,MACF;AACA,MAAA,IAAI,gBAAgB,KAAA,CAAA,EAAW;AAC7B,QAAA,MAAA,CAAO,QAAQ,WAAA,IAAe,KAAA,CAAA;AAAA,MAChC;AACA,MAAA,IAAI,SAAS,KAAA,CAAA,EAAW;AACtB,QAAA,MAAA,CAAO,OAAO,IAAA,IAAQ,KAAA,CAAA;AAAA,MACxB;AAEA,MAAA,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA,GAAI,MAAA;AAC5B,MAAA,MAAM,QAAA,CAAS,GAAA,CAAI,GAAA,EAAK,IAAA,EAAM,KAAK,CAAA;AAGnC,MAAA,MAAM,eAAA,GAAkB,CAAA,EAAG,mBAAmB,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA;AACnE,MAAA,MAAM,GAAA,CAAI,QAAA,CAAS,KAAA,CAAM,MAAA,CAAO,eAAe,CAAA;AAE/C,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,KAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,cAAA,CAAe,GAAG,CAAA;AAAA,IACpB;AAAA,EACF;AACF,CAAC","file":"patch-plan-handler.js","sourcesContent":["import { defineHandler, type PluginContextV3, type RestInput, rethrowForRest } from '@kb-labs/sdk';\nimport {\n COMMIT_CACHE_PREFIX,\n type PatchPlanRequest,\n type PatchPlanResponse,\n ConventionalTypeSchema,\n} from '@kb-labs/commit-contracts';\nimport { loadPlan, savePlan } from '@kb-labs/commit-core/storage';\n\n/**\n * PATCH /plan handler\n *\n * Edits a single commit's message, type, scope, or body in the stored plan\n * without triggering LLM regeneration.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, PatchPlanRequest>): Promise<PatchPlanResponse> {\n try {\n const { scope = 'root', commitId, message, type, scope_: commitScope, body } = input.body ?? {};\n\n if (!commitId) {\n throw new Error('commitId is required');\n }\n\n const plan = await loadPlan(ctx.cwd, scope);\n if (!plan) {\n throw new Error('No commit plan found. Generate a plan first.');\n }\n\n const commitIndex = plan.commits.findIndex(c => c.id === commitId);\n if (commitIndex === -1) {\n throw new Error(`Commit \"${commitId}\" not found in plan`);\n }\n\n const commit = plan.commits[commitIndex]!;\n\n if (message !== undefined) {\n commit.message = message;\n }\n if (type !== undefined) {\n const parsed = ConventionalTypeSchema.safeParse(type);\n if (parsed.success) {\n commit.type = parsed.data;\n }\n }\n if (commitScope !== undefined) {\n commit.scope = commitScope || undefined;\n }\n if (body !== undefined) {\n commit.body = body || undefined;\n }\n\n plan.commits[commitIndex] = commit;\n await savePlan(ctx.cwd, plan, scope);\n\n // Plan content changed => previously applied state is stale.\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n await ctx.platform.cache.delete(appliedCacheKey);\n\n return {\n success: true,\n scope,\n commitId,\n };\n } catch (err) {\n rethrowForRest(err);\n }\n },\n});\n"]}
|
|
@@ -25,7 +25,7 @@ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<{
|
|
|
25
25
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
26
26
|
id: string;
|
|
27
27
|
files: string[];
|
|
28
|
-
releaseHint: "
|
|
28
|
+
releaseHint: "none" | "patch" | "minor" | "major";
|
|
29
29
|
breaking: boolean;
|
|
30
30
|
scope?: string | undefined;
|
|
31
31
|
body?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/plan-handler.ts"],"names":[],"mappings":";;;;AASA,IAAO,uBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAsE;AACxG,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,IAAS,MAAA;AAEpC,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,GAAA,CAAI,KAAK,KAAK,CAAA;AAE1C,MAAA,IAAI,CAAC,IAAA,IAAQ,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA,EAAG;AACtC,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,KAAA;AAAA,UACT;AAAA,SACF;AAAA,MACF;AAEA,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"plan-handler.js","sourcesContent":["import { defineHandler, type PluginContextV3, type RestInput, rethrowForRest } from '@kb-labs/sdk';\nimport { loadPlan } from '@kb-labs/commit-core/storage';\nimport type { PlanResponse } from '@kb-labs/commit-contracts';\n\n/**\n * GET /plan handler\n *\n * Returns the current commit plan for Studio.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<{ scope?: string }, unknown>): Promise<PlanResponse> {\n const scope = input.query?.scope || 'root';\n\n try {\n const plan = await loadPlan(ctx.cwd, scope);\n\n if (!plan || plan.commits.length === 0) {\n return {\n hasPlan: false,\n scope,\n };\n }\n\n return {\n hasPlan: true,\n plan,\n scope,\n };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts","../../../src/rest/handlers/push-handler.ts"],"names":[],"mappings":"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","file":"push-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type PluginContextV3, type RestInput, rethrowForRest } from '@kb-labs/sdk';\nimport {\n COMMIT_CACHE_PREFIX,\n type PushRequest,\n type PushResponse,\n type CommitPluginConfig,\n resolveCommitConfig,\n} from '@kb-labs/commit-contracts';\nimport { pushCommits } from '@kb-labs/commit-core/applier';\nimport { loadPlan, saveToHistory, clearPlan } from '@kb-labs/commit-core/storage';\nimport { resolveScopePath } from './scope-resolver';\n\n/**\n * POST /push handler\n *\n * Pushes commits to the remote repository.\n * After successful push, saves plan to history and clears current plan.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, PushRequest>): Promise<PushResponse> {\n const { scope = 'root', remote, force } = input.body ?? {};\n const startTime = Date.now();\n\n try {\n // Load the plan before pushing (we'll need it for history)\n const plan = await loadPlan(ctx.cwd, scope);\n\n // Resolve scope to actual directory path\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n\n // Push commits (git runs FROM scopeCwd)\n const result = await pushCommits(scopeCwd, { remote, force, scope });\n\n // After successful push, save to history and clear the plan\n if (result.success && plan) {\n // Save to history with push result\n await saveToHistory(ctx.cwd, plan, {\n success: true,\n appliedCommits: [],\n errors: []\n }, scope);\n\n // Clear current plan\n await clearPlan(ctx.cwd, scope);\n\n // Clear applied status cache\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n await ctx.platform.cache.delete(appliedCacheKey);\n }\n\n // Track success/failure\n if (ctx.platform.analytics) {\n if (result.success) {\n await ctx.platform.analytics.track('commit.push.success', {\n scope,\n remote,\n force,\n commitsPushed: plan?.commits.length || 0,\n durationMs: Date.now() - startTime,\n });\n } else {\n await ctx.platform.analytics.track('commit.push.failed', {\n scope,\n remote,\n force,\n error: result.error,\n durationMs: Date.now() - startTime,\n });\n }\n }\n\n return {\n result,\n scope,\n };\n } catch (error) {\n // Track error\n if (ctx.platform.analytics) {\n await ctx.platform.analytics.track('commit.push.error', {\n scope,\n remote,\n force,\n error: error instanceof Error ? error.message : String(error),\n durationMs: Date.now() - startTime,\n });\n }\n\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -20,7 +20,7 @@ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<u
|
|
|
20
20
|
type: "feat" | "fix" | "refactor" | "chore" | "docs" | "test" | "build" | "ci" | "perf";
|
|
21
21
|
id: string;
|
|
22
22
|
files: string[];
|
|
23
|
-
releaseHint: "
|
|
23
|
+
releaseHint: "none" | "patch" | "minor" | "major";
|
|
24
24
|
breaking: boolean;
|
|
25
25
|
scope?: string | undefined;
|
|
26
26
|
body?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../home/runner/work/kb-labs/kb-labs/plugins/commit/entry/src/rest/handlers/scope-resolver.ts","../../../../home/runner/work/kb-labs/kb-labs/plugins/commit/entry/src/rest/handlers/regenerate-handler.ts"],"names":[],"mappings":"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","file":"regenerate-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type PluginContextV3, type RestInput, useLLM, useLogger, rethrowForRest } from '@kb-labs/sdk';\nimport type { LLMMessage } from '@kb-labs/sdk';\nimport {\n COMMIT_CACHE_PREFIX,\n type RegenerateCommitRequest,\n type RegenerateCommitResponse,\n type CommitGroup,\n type CommitPluginConfig,\n resolveCommitConfig,\n} from '@kb-labs/commit-contracts';\nimport { loadPlan, savePlan } from '@kb-labs/commit-core/storage';\nimport { getFileSummaries, getFileDiffs } from '@kb-labs/commit-core/analyzer';\nimport { COMMIT_PLAN_TOOL, SYSTEM_PROMPT_WITH_DIFF } from '@kb-labs/commit-core/generator';\nimport { resolveScopePath } from './scope-resolver';\n\n/**\n * POST /regenerate-commit handler\n *\n * Re-analyzes files from a single commit using LLM and replaces it in the plan.\n * Uses Phase 2 approach (with diff context) for best results.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, RegenerateCommitRequest>): Promise<RegenerateCommitResponse> {\n const logger = useLogger();\n const { scope = 'root', commitId, instruction } = input.body ?? {};\n\n if (!commitId) {\n throw new Error('commitId is required');\n }\n\n const plan = await loadPlan(ctx.cwd, scope);\n if (!plan) {\n throw new Error('No commit plan found. Generate a plan first.');\n }\n\n const commitIndex = plan.commits.findIndex(c => c.id === commitId);\n if (commitIndex === -1) {\n throw new Error(`Commit \"${commitId}\" not found in plan`);\n }\n\n const existingCommit = plan.commits[commitIndex]!;\n const files = existingCommit.files;\n\n if (files.length === 0) {\n throw new Error('Commit has no files to regenerate');\n }\n\n const llm = useLLM();\n if (!llm || !llm.chatWithTools) {\n throw new Error('LLM is not available for regeneration');\n }\n\n try {\n // Resolve scope for file operations\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n\n // Get fresh file summaries and diffs\n const summaries = await getFileSummaries(scopeCwd, files);\n const diffs = await getFileDiffs(scopeCwd, files);\n\n // Build prompt for single commit regeneration\n const fileContext = summaries.map(s => {\n const diff = diffs.get(s.path) || '';\n return `File: ${s.path} (${s.status}, +${s.additions}/-${s.deletions})${diff ? `\\nDiff:\\n${diff}` : ''}`;\n }).join('\\n\\n');\n\n const instructionText = instruction\n ? `\\n\\nUser instruction: ${instruction}`\n : '';\n\n const userPrompt = `Analyze these files and generate exactly ONE commit following conventional commit conventions.\nThese files were previously grouped as: ${existingCommit.type}(${existingCommit.scope || ''}): ${existingCommit.message}\n\nRe-analyze them and generate an improved commit message.${instructionText}\n\nFiles to analyze:\n${fileContext}`;\n\n const messages: LLMMessage[] = [\n { role: 'system', content: SYSTEM_PROMPT_WITH_DIFF },\n { role: 'user', content: userPrompt },\n ];\n\n const response = await llm.chatWithTools(messages, {\n tools: [COMMIT_PLAN_TOOL],\n toolChoice: {\n type: 'function',\n function: { name: 'generate_commit_plan' },\n },\n temperature: 0.3,\n });\n\n const toolCall = response.toolCalls?.[0];\n if (!toolCall || toolCall.name !== 'generate_commit_plan') {\n throw new Error('LLM did not call generate_commit_plan tool');\n }\n\n const toolArgs = toolCall.input as { commits: CommitGroup[] };\n\n // Take the first commit from LLM output (we asked for exactly one)\n const regeneratedCommit = toolArgs.commits[0];\n if (!regeneratedCommit) {\n throw new Error('LLM returned no commits');\n }\n\n // Preserve the original commit ID and files\n regeneratedCommit.id = existingCommit.id;\n regeneratedCommit.files = existingCommit.files;\n\n // Replace in plan\n plan.commits[commitIndex] = regeneratedCommit;\n await savePlan(ctx.cwd, plan, scope);\n\n // Regenerated plan is no longer considered applied.\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n await ctx.platform.cache.delete(appliedCacheKey);\n\n await logger.info('[regenerate-handler] Commit regenerated', {\n scope,\n commitId,\n oldMessage: `${existingCommit.type}: ${existingCommit.message}`,\n newMessage: `${regeneratedCommit.type}: ${regeneratedCommit.message}`,\n });\n\n // Track analytics\n if (ctx.platform.analytics) {\n await ctx.platform.analytics.track('commit.regenerate.success', {\n scope,\n commitId,\n hadInstruction: !!instruction,\n filesCount: files.length,\n });\n }\n\n return {\n success: true,\n scope,\n commitId,\n commit: regeneratedCommit,\n };\n } catch (error) {\n if (ctx.platform.analytics) {\n await ctx.platform.analytics.track('commit.regenerate.error', {\n scope,\n commitId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts","../../../src/rest/handlers/regenerate-handler.ts"],"names":[],"mappings":";;;;;;;;AAaO,SAAS,gBAAA,CACd,OAAA,EACA,OAAA,GAAkB,MAAA,EAClB,MAAA,EACQ;AACR,EAAA,MAAM,WAAW,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,MAAM,YAAA,GAAe,QAAA,EAAU,IAAA,KAAS,OAAA,KAAY,SAAS,GAAA,GAAM,OAAA,CAAA;AACnE,EAAA,OAAO,YAAA,KAAiB,GAAA,GAAM,OAAA,GAAe,IAAA,CAAA,IAAA,CAAK,SAAS,YAAY,CAAA;AACzE;;;ACAA,IAAO,6BAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAuF;AACzH,IAAA,MAAM,SAAS,SAAA,EAAU;AACzB,IAAA,MAAM,EAAE,QAAQ,MAAA,EAAQ,QAAA,EAAU,aAAY,GAAI,KAAA,CAAM,QAAQ,EAAC;AAEjE,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AAEA,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,GAAA,CAAI,KAAK,KAAK,CAAA;AAC1C,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,MAAM,8CAA8C,CAAA;AAAA,IAChE;AAEA,IAAA,MAAM,cAAc,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,QAAQ,CAAA;AACjE,IAAA,IAAI,gBAAgB,EAAA,EAAI;AACtB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,QAAA,EAAW,QAAQ,CAAA,mBAAA,CAAqB,CAAA;AAAA,IAC1D;AAEA,IAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA;AAC/C,IAAA,MAAM,QAAQ,cAAA,CAAe,KAAA;AAE7B,IAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAAA,IACrD;AAEA,IAAA,MAAM,MAAM,MAAA,EAAO;AACnB,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,GAAA,CAAI,aAAA,EAAe;AAC9B,MAAA,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAAA,IACzD;AAEA,IAAA,IAAI;AAEF,MAAA,MAAM,UAAA,GAAa,MAAM,SAAA,EAAuC;AAChE,MAAA,MAAM,MAAA,GAAS,mBAAA,CAAoB,UAAA,IAAc,EAAE,CAAA;AACnD,MAAA,MAAM,WAAW,gBAAA,CAAiB,GAAA,CAAI,KAAK,KAAA,EAAO,MAAA,CAAO,OAAO,MAAM,CAAA;AAGtE,MAAA,MAAM,SAAA,GAAY,MAAM,gBAAA,CAAiB,QAAA,EAAU,KAAK,CAAA;AACxD,MAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,CAAa,QAAA,EAAU,KAAK,CAAA;AAGhD,MAAA,MAAM,WAAA,GAAc,SAAA,CAAU,GAAA,CAAI,CAAA,CAAA,KAAK;AACrC,QAAA,MAAM,IAAA,GAAO,KAAA,CAAM,GAAA,CAAI,CAAA,CAAE,IAAI,CAAA,IAAK,EAAA;AAClC,QAAA,OAAO,CAAA,MAAA,EAAS,CAAA,CAAE,IAAI,CAAA,EAAA,EAAK,CAAA,CAAE,MAAM,CAAA,GAAA,EAAM,CAAA,CAAE,SAAS,CAAA,EAAA,EAAK,CAAA,CAAE,SAAS,IAAI,IAAA,GAAO;AAAA;AAAA,EAAY,IAAI,KAAK,EAAE,CAAA,CAAA;AAAA,MACxG,CAAC,CAAA,CAAE,IAAA,CAAK,MAAM,CAAA;AAEd,MAAA,MAAM,kBAAkB,WAAA,GACpB;;AAAA,kBAAA,EAAyB,WAAW,CAAA,CAAA,GACpC,EAAA;AAEJ,MAAA,MAAM,UAAA,GAAa,CAAA;AAAA,wCAAA,EACiB,cAAA,CAAe,IAAI,CAAA,CAAA,EAAI,cAAA,CAAe,SAAS,EAAE,CAAA,GAAA,EAAM,eAAe,OAAO;;AAAA,wDAAA,EAE7D,eAAe;;AAAA;AAAA,EAGvE,WAAW,CAAA,CAAA;AAEP,MAAA,MAAM,QAAA,GAAyB;AAAA,QAC7B,EAAE,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,uBAAA,EAAwB;AAAA,QACnD,EAAE,IAAA,EAAM,MAAA,EAAQ,OAAA,EAAS,UAAA;AAAW,OACtC;AAEA,MAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CAAI,aAAA,CAAc,QAAA,EAAU;AAAA,QACjD,KAAA,EAAO,CAAC,gBAAgB,CAAA;AAAA,QACxB,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,UAAA;AAAA,UACN,QAAA,EAAU,EAAE,IAAA,EAAM,sBAAA;AAAuB,SAC3C;AAAA,QACA,WAAA,EAAa;AAAA,OACd,CAAA;AAED,MAAA,MAAM,QAAA,GAAW,QAAA,CAAS,SAAA,GAAY,CAAC,CAAA;AACvC,MAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,IAAA,KAAS,sBAAA,EAAwB;AACzD,QAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,MAC9D;AAEA,MAAA,MAAM,WAAW,QAAA,CAAS,KAAA;AAG1B,MAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,CAAC,CAAA;AAC5C,MAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,QAAA,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAAA,MAC3C;AAGA,MAAA,iBAAA,CAAkB,KAAK,cAAA,CAAe,EAAA;AACtC,MAAA,iBAAA,CAAkB,QAAQ,cAAA,CAAe,KAAA;AAGzC,MAAA,IAAA,CAAK,OAAA,CAAQ,WAAW,CAAA,GAAI,iBAAA;AAC5B,MAAA,MAAM,QAAA,CAAS,GAAA,CAAI,GAAA,EAAK,IAAA,EAAM,KAAK,CAAA;AAGnC,MAAA,MAAM,eAAA,GAAkB,CAAA,EAAG,mBAAmB,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA;AACnE,MAAA,MAAM,GAAA,CAAI,QAAA,CAAS,KAAA,CAAM,MAAA,CAAO,eAAe,CAAA;AAE/C,MAAA,MAAM,MAAA,CAAO,KAAK,yCAAA,EAA2C;AAAA,QAC3D,KAAA;AAAA,QACA,QAAA;AAAA,QACA,YAAY,CAAA,EAAG,cAAA,CAAe,IAAI,CAAA,EAAA,EAAK,eAAe,OAAO,CAAA,CAAA;AAAA,QAC7D,YAAY,CAAA,EAAG,iBAAA,CAAkB,IAAI,CAAA,EAAA,EAAK,kBAAkB,OAAO,CAAA;AAAA,OACpE,CAAA;AAGD,MAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,QAAA,MAAM,GAAA,CAAI,QAAA,CAAS,SAAA,CAAU,KAAA,CAAM,2BAAA,EAA6B;AAAA,UAC9D,KAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA,EAAgB,CAAC,CAAC,WAAA;AAAA,UAClB,YAAY,KAAA,CAAM;AAAA,SACnB,CAAA;AAAA,MACH;AAEA,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,KAAA;AAAA,QACA,QAAA;AAAA,QACA,MAAA,EAAQ;AAAA,OACV;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,GAAA,CAAI,SAAS,SAAA,EAAW;AAC1B,QAAA,MAAM,GAAA,CAAI,QAAA,CAAS,SAAA,CAAU,KAAA,CAAM,yBAAA,EAA2B;AAAA,UAC5D,KAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,SAC7D,CAAA;AAAA,MACH;AAEA,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"regenerate-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type PluginContextV3, type RestInput, useLLM, useLogger, rethrowForRest } from '@kb-labs/sdk';\nimport type { LLMMessage } from '@kb-labs/sdk';\nimport {\n COMMIT_CACHE_PREFIX,\n type RegenerateCommitRequest,\n type RegenerateCommitResponse,\n type CommitGroup,\n type CommitPluginConfig,\n resolveCommitConfig,\n} from '@kb-labs/commit-contracts';\nimport { loadPlan, savePlan } from '@kb-labs/commit-core/storage';\nimport { getFileSummaries, getFileDiffs } from '@kb-labs/commit-core/analyzer';\nimport { COMMIT_PLAN_TOOL, SYSTEM_PROMPT_WITH_DIFF } from '@kb-labs/commit-core/generator';\nimport { resolveScopePath } from './scope-resolver';\n\n/**\n * POST /regenerate-commit handler\n *\n * Re-analyzes files from a single commit using LLM and replaces it in the plan.\n * Uses Phase 2 approach (with diff context) for best results.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, RegenerateCommitRequest>): Promise<RegenerateCommitResponse> {\n const logger = useLogger();\n const { scope = 'root', commitId, instruction } = input.body ?? {};\n\n if (!commitId) {\n throw new Error('commitId is required');\n }\n\n const plan = await loadPlan(ctx.cwd, scope);\n if (!plan) {\n throw new Error('No commit plan found. Generate a plan first.');\n }\n\n const commitIndex = plan.commits.findIndex(c => c.id === commitId);\n if (commitIndex === -1) {\n throw new Error(`Commit \"${commitId}\" not found in plan`);\n }\n\n const existingCommit = plan.commits[commitIndex]!;\n const files = existingCommit.files;\n\n if (files.length === 0) {\n throw new Error('Commit has no files to regenerate');\n }\n\n const llm = useLLM();\n if (!llm || !llm.chatWithTools) {\n throw new Error('LLM is not available for regeneration');\n }\n\n try {\n // Resolve scope for file operations\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n\n // Get fresh file summaries and diffs\n const summaries = await getFileSummaries(scopeCwd, files);\n const diffs = await getFileDiffs(scopeCwd, files);\n\n // Build prompt for single commit regeneration\n const fileContext = summaries.map(s => {\n const diff = diffs.get(s.path) || '';\n return `File: ${s.path} (${s.status}, +${s.additions}/-${s.deletions})${diff ? `\\nDiff:\\n${diff}` : ''}`;\n }).join('\\n\\n');\n\n const instructionText = instruction\n ? `\\n\\nUser instruction: ${instruction}`\n : '';\n\n const userPrompt = `Analyze these files and generate exactly ONE commit following conventional commit conventions.\nThese files were previously grouped as: ${existingCommit.type}(${existingCommit.scope || ''}): ${existingCommit.message}\n\nRe-analyze them and generate an improved commit message.${instructionText}\n\nFiles to analyze:\n${fileContext}`;\n\n const messages: LLMMessage[] = [\n { role: 'system', content: SYSTEM_PROMPT_WITH_DIFF },\n { role: 'user', content: userPrompt },\n ];\n\n const response = await llm.chatWithTools(messages, {\n tools: [COMMIT_PLAN_TOOL],\n toolChoice: {\n type: 'function',\n function: { name: 'generate_commit_plan' },\n },\n temperature: 0.3,\n });\n\n const toolCall = response.toolCalls?.[0];\n if (!toolCall || toolCall.name !== 'generate_commit_plan') {\n throw new Error('LLM did not call generate_commit_plan tool');\n }\n\n const toolArgs = toolCall.input as { commits: CommitGroup[] };\n\n // Take the first commit from LLM output (we asked for exactly one)\n const regeneratedCommit = toolArgs.commits[0];\n if (!regeneratedCommit) {\n throw new Error('LLM returned no commits');\n }\n\n // Preserve the original commit ID and files\n regeneratedCommit.id = existingCommit.id;\n regeneratedCommit.files = existingCommit.files;\n\n // Replace in plan\n plan.commits[commitIndex] = regeneratedCommit;\n await savePlan(ctx.cwd, plan, scope);\n\n // Regenerated plan is no longer considered applied.\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n await ctx.platform.cache.delete(appliedCacheKey);\n\n await logger.info('[regenerate-handler] Commit regenerated', {\n scope,\n commitId,\n oldMessage: `${existingCommit.type}: ${existingCommit.message}`,\n newMessage: `${regeneratedCommit.type}: ${regeneratedCommit.message}`,\n });\n\n // Track analytics\n if (ctx.platform.analytics) {\n await ctx.platform.analytics.track('commit.regenerate.success', {\n scope,\n commitId,\n hadInstruction: !!instruction,\n filesCount: files.length,\n });\n }\n\n return {\n success: true,\n scope,\n commitId,\n commit: regeneratedCommit,\n };\n } catch (error) {\n if (ctx.platform.analytics) {\n await ctx.platform.analytics.track('commit.regenerate.error', {\n scope,\n commitId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/reset-handler.ts"],"names":[],"mappings":";;;;;AAYA,IAAO,wBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,GAAA,EAAsB,KAAA,EAAuE;AACzG,IAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,EAAO,KAAA,IAAS,MAAA;AAEpC,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,CAAU,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA;AAC9B,MAAA,MAAM,eAAA,GAAkB,CAAA,EAAG,mBAAmB,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAA;AACnE,MAAA,MAAM,GAAA,CAAI,QAAA,CAAS,KAAA,CAAM,MAAA,CAAO,eAAe,CAAA;AAE/C,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,OAAA,EAAS,kCAAA;AAAA,QACT;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAAA,EACF;AACF,CAAC","file":"reset-handler.js","sourcesContent":["import { defineHandler, type PluginContextV3, type RestInput, rethrowForRest } from '@kb-labs/sdk';\nimport {\n COMMIT_CACHE_PREFIX,\n type ResetResponse,\n} from '@kb-labs/commit-contracts';\nimport { clearPlan } from '@kb-labs/commit-core/storage';\n\n/**\n * DELETE /plan handler\n *\n * Deletes the current commit plan.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<{ scope?: string }, unknown>): Promise<ResetResponse> {\n const scope = input.query?.scope || 'root';\n\n try {\n await clearPlan(ctx.cwd, scope);\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n await ctx.platform.cache.delete(appliedCacheKey);\n\n return {\n success: true,\n message: 'Commit plan deleted successfully',\n scope,\n };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts"],"names":[],"mappings":";;;AAaO,SAAS,gBAAA,CACd,OAAA,EACA,OAAA,GAAkB,MAAA,EAClB,MAAA,EACQ;AACR,EAAA,MAAM,WAAW,MAAA,EAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AACrD,EAAA,MAAM,YAAA,GAAe,QAAA,EAAU,IAAA,KAAS,OAAA,KAAY,SAAS,GAAA,GAAM,OAAA,CAAA;AACnE,EAAA,OAAO,YAAA,KAAiB,GAAA,GAAM,OAAA,GAAe,IAAA,CAAA,IAAA,CAAK,SAAS,YAAY,CAAA;AACzE","file":"scope-resolver.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scopes-handler.ts"],"names":[],"mappings":";;;;AASA,IAAO,yBAAQ,aAAA,CAAc;AAAA,EAC3B,MAAM,OAAA,CAAQ,IAAA,EAAuB,MAAA,EAAsC;AACzE,IAAA,IAAI;AACF,MAAA,MAAM,UAAA,GAAa,MAAM,SAAA,EAAuC;AAChE,MAAA,MAAM,MAAA,GAAS,mBAAA,CAAoB,UAAA,IAAc,EAAE,CAAA;AAEnD,MAAA,MAAM,MAAA,GAAS,MAAA,CAAO,KAAA,EAAO,MAAA,IAAU,CAAC,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAK,CAAA;AAChF,MAAA,MAAM,YAAY,MAAA,CAAO,KAAA,EAAO,WAAW,MAAA,CAAO,CAAC,GAAG,EAAA,IAAM,MAAA;AAE5D,MAAA,OAAO;AAAA,QACL,KAAA,EAAO,SAAA;AAAA,QACP,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UAC1B,OAAO,CAAA,CAAE,EAAA;AAAA,UACT,OAAO,CAAA,CAAE,KAAA;AAAA,UACT,aAAa,CAAA,CAAE;AAAA,SACjB,CAAE;AAAA,OACJ;AAAA,IACF,SAAS,GAAA,EAAK;AACZ,MAAA,cAAA,CAAe,GAAG,CAAA;AAAA,IACpB;AAAA,EACF;AACF,CAAC","file":"scopes-handler.js","sourcesContent":["import { defineHandler, useConfig, type PluginContextV3, type SelectData, rethrowForRest } from '@kb-labs/sdk';\nimport { type CommitPluginConfig, resolveCommitConfig } from '@kb-labs/commit-contracts';\n\n/**\n * GET /scopes handler\n *\n * Returns available scopes from kb.config.json (plugins.commit.scope.scopes).\n * Falls back to a single \"root\" scope if not configured.\n */\nexport default defineHandler({\n async execute(_ctx: PluginContextV3, _input: unknown): Promise<SelectData> {\n try {\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n\n const scopes = config.scope?.scopes ?? [{ id: 'root', label: 'root', path: '.' }];\n const defaultId = config.scope?.default ?? scopes[0]?.id ?? 'root';\n\n return {\n value: defaultId,\n options: scopes.map((s) => ({\n value: s.id,\n label: s.label,\n description: s.description,\n })),\n };\n } catch (err) {\n rethrowForRest(err);\n }\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts","../../../src/rest/handlers/status-handler.ts"],"names":[],"mappings":"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","file":"status-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type RestInput, type PluginContextV3, rethrowForRest } from '@kb-labs/sdk';\nimport { loadPlan } from '@kb-labs/commit-core/storage';\nimport { getGitStatus, getCurrentBranch } from '@kb-labs/commit-core/analyzer';\nimport { checkPlanStaleness } from '@kb-labs/commit-core/validator';\nimport { COMMIT_CACHE_PREFIX, type StatusResponse, type PlanStatus, type CommitPluginConfig, resolveCommitConfig } from '@kb-labs/commit-contracts';\nimport { resolveScopePath } from './scope-resolver';\n\nconst STATUS_CACHE_TTL = 5000; // 5 seconds\n\n/**\n * GET /status handler\n *\n * Returns current status for a scope according to StatusResponse contract.\n * Uses ctx.platform.cache for git status caching.\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<{ scope?: string }>): Promise<StatusResponse> {\n const scope = input.query?.scope || 'root';\n\n ctx.platform.logger.info(`[status-handler] Fetching status for scope: ${scope}`);\n\n try {\n // Load current plan\n const plan = await loadPlan(ctx.cwd, scope);\n ctx.platform.logger.info(`[status-handler] Plan loaded: ${!!plan}`);\n\n // Resolve scope to actual directory path (same as files-handler) — needed\n // for git status, branch lookup, and disambiguating which checkout/worktree\n // this Studio instance is pointed at.\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n\n // Get git status (with platform cache)\n let filesChanged = 0;\n let gitStatus: { staged: string[]; unstaged: string[]; untracked: string[] } | null = null;\n const cacheKey = `${COMMIT_CACHE_PREFIX}git-status:${scope}`;\n ctx.platform.logger.info(`[status-handler] Cache key: ${cacheKey}`);\n\n // Try to get from cache\n const cached = await ctx.platform.cache.get(cacheKey);\n ctx.platform.logger.info(`[status-handler] Cache hit: ${!!cached}`);\n\n if (cached !== null && cached !== undefined) {\n // Use cached value\n const cachedData = cached as { count: number; status: { staged: string[]; unstaged: string[]; untracked: string[] } | null };\n filesChanged = cachedData.count;\n gitStatus = cachedData.status;\n } else {\n ctx.platform.logger.info(`[status-handler] Resolved scope CWD: ${scopeCwd}`);\n\n gitStatus = await getGitStatus(scopeCwd);\n ctx.platform.logger.info(`[status-handler] Git status fetched - staged: ${gitStatus.staged.length}, unstaged: ${gitStatus.unstaged.length}, untracked: ${gitStatus.untracked.length}`);\n\n filesChanged =\n gitStatus.staged.length +\n gitStatus.unstaged.length +\n gitStatus.untracked.length;\n\n ctx.platform.logger.info(`[status-handler] Total files changed: ${filesChanged}`);\n\n // Cache the result\n await ctx.platform.cache.set(\n cacheKey,\n { count: filesChanged, status: gitStatus },\n STATUS_CACHE_TTL\n );\n }\n\n // Determine plan status\n let planStatus: PlanStatus = 'idle';\n let commitsApplied = 0;\n\n if (plan) {\n // Check if commits were applied (stored in cache after apply)\n const appliedCacheKey = `${COMMIT_CACHE_PREFIX}plan-applied:${scope}`;\n const appliedData = await ctx.platform.cache.get(appliedCacheKey);\n\n if (appliedData) {\n const applied = appliedData as { commitsApplied: number; planCreatedAt?: string };\n // Only trust applied marker if it belongs to the current plan version.\n if (!applied.planCreatedAt || applied.planCreatedAt === plan.createdAt) {\n commitsApplied = applied.commitsApplied;\n planStatus = 'applied';\n } else {\n await ctx.platform.cache.delete(appliedCacheKey);\n planStatus = 'ready';\n }\n } else {\n planStatus = 'ready';\n }\n }\n\n const branch = await getCurrentBranch(scopeCwd).catch(() => undefined);\n\n // Proactively surface plan staleness — the same check `applyCommitPlan`\n // runs as a last-second guard, but here it's informational so Studio/CLI/MCP\n // can warn the user before they even attempt Apply.\n let planStale: boolean | undefined;\n let planStaleReason: string | undefined;\n if (plan) {\n const staleness = await checkPlanStaleness(scopeCwd, plan, scope);\n planStale = staleness.isStale;\n planStaleReason = staleness.isStale ? staleness.reason : undefined;\n }\n\n return {\n scope,\n hasPlan: !!plan,\n planStatus,\n filesChanged,\n commitsInPlan: plan?.commits.length || 0,\n commitsApplied,\n planTimestamp: plan?.createdAt,\n gitStatus: gitStatus || undefined,\n branch,\n workingDir: ctx.cwd,\n planStale,\n planStaleReason,\n };\n } catch (error) {\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -14,8 +14,8 @@ declare const _default: _kb_labs_shared_command_kit.Handler<unknown, RestInput<u
|
|
|
14
14
|
}, unknown>, {
|
|
15
15
|
scope: string;
|
|
16
16
|
summary: string;
|
|
17
|
-
file?: string | undefined;
|
|
18
17
|
tokensUsed?: number | undefined;
|
|
18
|
+
file?: string | undefined;
|
|
19
19
|
}>;
|
|
20
20
|
|
|
21
21
|
export { _default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/handlers/scope-resolver.ts","../../../src/rest/handlers/summarize-handler.ts"],"names":[],"mappings":"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","file":"summarize-handler.js","sourcesContent":["import * as path from 'node:path';\nimport type { CommitScope } from '@kb-labs/commit-contracts';\n\n/**\n * Resolves a scope id to an absolute filesystem path.\n *\n * Looks up the scope in the provided scopes array by id.\n * Falls back to treating the id as a relative path from baseCwd (legacy compat).\n *\n * @param baseCwd - Workspace root (ctx.cwd)\n * @param scopeId - Scope identifier, e.g. \"root\", \"public/kb-labs\"\n * @param scopes - Configured scopes from CommitPluginConfig.scope.scopes\n */\nexport function resolveScopePath(\n baseCwd: string,\n scopeId: string = 'root',\n scopes?: CommitScope[],\n): string {\n const scopeDef = scopes?.find((s) => s.id === scopeId);\n const relativePath = scopeDef?.path ?? (scopeId === 'root' ? '.' : scopeId);\n return relativePath === '.' ? baseCwd : path.join(baseCwd, relativePath);\n}\n","import { defineHandler, useConfig, type PluginContextV3, type RestInput, useLogger, useLLM, rethrowForRest } from '@kb-labs/sdk';\nimport { type SummarizeRequest, type SummarizeResponse, type CommitPluginConfig, resolveCommitConfig } from '@kb-labs/commit-contracts';\nimport { getFileDiff, getAllChangedFiles, getGitStatus } from '@kb-labs/commit-core/analyzer';\nimport { resolveScopePath } from './scope-resolver';\n\n/**\n * POST /summarize handler\n *\n * Summarizes changes using LLM. Can summarize:\n * - All changes in scope (if no file specified)\n * - Specific file changes (if file specified)\n */\nexport default defineHandler({\n async execute(ctx: PluginContextV3, input: RestInput<unknown, SummarizeRequest>): Promise<SummarizeResponse> {\n const logger = useLogger();\n const llm = useLLM();\n\n if (!llm) {\n throw new Error('LLM is not available. Please configure an LLM adapter.');\n }\n\n const { scope = 'root', file } = input.body || {};\n\n logger.info('[summarize-handler] Request received', { scope, file });\n\n try {\n // Resolve scope to actual directory path\n const fileConfig = await useConfig<Partial<CommitPluginConfig>>();\n const config = resolveCommitConfig(fileConfig ?? {});\n const scopeCwd = resolveScopePath(ctx.cwd, scope, config.scope?.scopes);\n logger.info('[summarize-handler] Resolved scope', { scope, scopeCwd });\n\n let prompt: string;\n\n if (file) {\n // Summarize specific file\n logger.info('[summarize-handler] Summarizing file', { file });\n\n // Get file diff (git runs FROM scopeCwd)\n const diffResult = await getFileDiff(scopeCwd, file);\n\n prompt = `Analyze this git diff and provide a concise summary of what changed in this file.\n\nFile: ${file}\n\nDiff:\n\\`\\`\\`diff\n${diffResult.diff}\n\\`\\`\\`\n\nProvide a 2-3 sentence summary focusing on:\n- What was added, modified, or removed\n- The purpose/intent of the changes\n- Any notable impacts\n\nKeep it concise and technical.`;\n } else {\n // Summarize all changes\n logger.info('[summarize-handler] Summarizing all changes');\n\n // Get git status (git runs FROM scopeCwd)\n const gitStatus = await getGitStatus(scopeCwd);\n const files = getAllChangedFiles(gitStatus);\n\n if (files.length === 0) {\n return {\n scope,\n summary: 'No changes detected in this scope.',\n };\n }\n\n // Get diffs for all files (limit to first 10 to avoid token overflow)\n const filesToSummarize = files.slice(0, 10);\n const diffs = await Promise.all(\n filesToSummarize.map(async (f) => {\n const diff = await getFileDiff(scopeCwd, f);\n return { file: f, diff: diff.diff, additions: diff.additions, deletions: diff.deletions };\n })\n );\n\n const diffsText = diffs\n .map((d) => `### ${d.file} (+${d.additions} -${d.deletions})\\n\\`\\`\\`diff\\n${d.diff}\\n\\`\\`\\``)\n .join('\\n\\n');\n\n prompt = `Analyze these git diffs and provide a high-level summary of all changes in this scope.\n\nTotal files changed: ${files.length}\n${files.length > 10 ? `(Showing first 10 files)` : ''}\n\n${diffsText}\n\nProvide a 3-5 sentence summary covering:\n- Overall theme of the changes\n- Key features added, bugs fixed, or refactorings done\n- Any notable architectural changes\n\nKeep it concise and at a high level.`;\n }\n\n // Call LLM\n logger.info('[summarize-handler] Calling LLM');\n const result = await llm.complete(prompt, {\n systemPrompt: 'You are a technical code reviewer. Provide concise, accurate summaries of code changes.',\n temperature: 0.3,\n maxTokens: 500,\n });\n\n logger.info('[summarize-handler] LLM response received', {\n tokensUsed: result.usage.promptTokens + result.usage.completionTokens,\n });\n\n return {\n scope,\n file,\n summary: result.content.trim(),\n tokensUsed: result.usage.promptTokens + result.usage.completionTokens,\n };\n } catch (error) {\n logger.error('[summarize-handler] Error', error as Error);\n rethrowForRest(error);\n }\n },\n});\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_commit_entry=self.rspackChunk_kb_labs_commit_entry||[]).push([[117],{2924(e,r,o){o.r(r);var n=o(9497),t=o(7899),i=o(4552),l=o(92),a=o(1882),s=o(5505),c=o(5793),d=o(7346),u=o(1499),m=o(3292),g=o(6911),f=o(5963),p=o(3781),x=o(7e3),{useToken:h}=n.theme;function y({children:e,size:r="base",weight:o="normal",color:n="primary",as:l="span",className:a,style:s}){let{token:c}=h(),d={primary:c.colorText,secondary:c.colorTextSecondary,success:c.colorSuccess,warning:c.colorWarning,error:c.colorError,info:c.colorInfo},u={...{fontSize:t.typography.fontSize[r][0],lineHeight:t.typography.fontSize[r][1].lineHeight,fontWeight:t.typography.fontWeight[o],color:d[n]},...s};return(0,i.jsx)(l,{style:u,className:a,children:e})}function b({children:e,p:r,pt:o,pr:n,pb:l,pl:a,m:s,mt:c,mr:d,mb:u,ml:m,as:g="div",className:f,style:p}){let x={...void 0!==r&&{padding:t.spacing[r]},...void 0!==o&&{paddingTop:t.spacing[o]},...void 0!==n&&{paddingRight:t.spacing[n]},...void 0!==l&&{paddingBottom:t.spacing[l]},...void 0!==a&&{paddingLeft:t.spacing[a]},...void 0!==s&&{margin:t.spacing[s]},...void 0!==c&&{marginTop:t.spacing[c]},...void 0!==d&&{marginRight:t.spacing[d]},...void 0!==u&&{marginBottom:t.spacing[u]},...void 0!==m&&{marginLeft:t.spacing[m]},...p};return(0,i.jsx)(g,{style:x,className:f,children:e})}function j({children:e,direction:r="row",justify:o="start",align:n="stretch",gap:l,wrap:a="nowrap",as:s="div",className:c,style:d}){let u={display:"flex",flexDirection:r,justifyContent:{start:"flex-start",end:"flex-end",center:"center",between:"space-between",around:"space-around",evenly:"space-evenly"}[o],alignItems:{start:"flex-start",end:"flex-end",center:"center",baseline:"baseline",stretch:"stretch"}[n],flexWrap:a,...void 0!==l&&{gap:t.spacing[l]},...d};return(0,i.jsx)(s,{style:u,className:c,children:e})}function I(e){return(0,i.jsx)(n.Typography.Text,{...e})}function k(e){return(0,i.jsx)(n.Typography.Paragraph,{...e})}function S(e){return(0,i.jsx)(n.Typography.Link,{...e})}function v({direction:e="vertical",spacing:r=2,align:o,children:n,as:t,className:l,style:a}){return(0,i.jsx)(j,{direction:"vertical"===e?"column":"row",gap:r,align:o,as:t,className:l,style:a,children:n})}function U(e){return(0,i.jsx)(n.Space,{...e})}function T(e){return(0,i.jsx)(n.Space.Compact,{...e})}function w(e){return(0,i.jsx)(n.Row,{...e})}function C(e){return(0,i.jsx)(n.Col,{...e})}function B(e){return(0,i.jsx)(n.Divider,{...e})}var{useToken:z}=n.theme;function M({variant:e="default",children:r,...o}){let{token:t}=z(),l={success:t.colorSuccess,warning:t.colorWarning,error:t.colorError,info:t.colorInfo,default:t.colorTextSecondary};return r?(0,i.jsx)(n.Badge,{color:l[e],text:r,...o}):(0,i.jsx)(n.Badge,{status:{success:"success",warning:"warning",error:"error",info:"processing",default:"default"}[e],...o})}var $=l.forwardRef(function({variant:e="default",className:r,...o},t){let l=["uiButton_3Yg7B",r].filter(Boolean).join(" ");return(0,i.jsx)(n.Button,{ref:t,type:e,className:l,...o})}),{useToken:F}=n.theme,E={default:{accent:"var(--border-primary)"},success:{accent:"var(--success)"},warning:{accent:"var(--warning)"},error:{accent:"var(--error)"},info:{accent:"var(--info)"}};function P({title:e,subtitle:r,extra:o,footer:t,children:l,size:s="default",bordered:c=!0,hoverable:d=!1,loading:u=!1,status:m="default",...g}){let{token:f}=F(),p=E[m],x=e||r?(0,i.jsxs)(b,{children:[e&&("string"==typeof e?(0,i.jsx)(y,{size:"lg",weight:"semibold",as:"div",children:e}):e),r&&(0,i.jsx)(y,{size:"sm",color:"secondary",as:"div",style:{marginTop:f.marginXXS},children:r})]}):void 0;return(0,i.jsxs)(n.Card,{title:x,extra:o,size:s,variant:c?"outlined":"borderless",hoverable:!1,loading:u,...g,className:(0,a.A)("card_0vX7-",d&&"hoverable_NBVEA","default"!==m&&"accented_yICrq",g.className),style:{borderColor:f.colorBorder,overflow:"hidden","--card-accent":p.accent,...g.style},children:[l,t&&(0,i.jsx)(b,{mt:3,pt:3,style:{borderTop:`1px solid ${f.colorBorder}`},children:t})]})}function _({variant:e="default",color:r,children:o,closable:t,onClose:l,icon:s,className:c,onClick:d,...u}){let m=(0,a.A)("kb-ui-tag_D2ji0",d&&"kb-ui-tag--clickable_FGDC8",c);return(0,i.jsx)(n.Tag,{color:r??({success:"success",warning:"warning",error:"error",info:"processing",default:void 0,neutral:void 0})[e],closable:t,onClose:l,icon:s,className:m,onClick:d,...u,children:o})}var{Title:A}=n.Typography,{useToken:D}=n.theme;function R({level:e=1,children:r,subtitle:o,className:n,style:l}){let{token:a}=D();return o?(0,i.jsxs)(b,{mb:o?2:3,children:[(0,i.jsx)(A,{level:e,className:n,style:{margin:0,...l},children:r}),(0,i.jsx)(y,{size:"base",color:"secondary",as:"div",style:{marginTop:t.spacing["1"]},children:o})]}):(0,i.jsx)(A,{level:e,className:n,style:{marginBottom:t.spacing["3"],...l},children:r})}var L={uiIcon:"uiIcon_k0ec4",clickable:"clickable_OssZj","size-xs":"size-xs_M79Cj","size-sm":"size-sm_10jDl","size-base":"size-base_h9Lkp","size-lg":"size-lg_O0C5x","size-xl":"size-xl_WXfPC","size-2xl":"size-2xl_32DCm","color-primary":"color-primary_h3CLu","color-secondary":"color-secondary_4pb5w","color-success":"color-success_O8h6-","color-warning":"color-warning_dYWdv","color-error":"color-error_adjhG","color-info":"color-info_TwzBK","color-inherit":"color-inherit_YCf-Z",spin:"spin_rwV9G",uiIconSpin:"uiIconSpin_JA9h9",disabled:"disabled_sSgts"},N=null;function W(e){N=e}function H({icon:e,name:r,size:o="base",color:n="inherit",spin:t=!1,onClick:s,className:c,style:d}){let u=(0,a.A)(L.uiIcon,"anticon",L[`size-${o}`],L[`color-${n}`],t&&L.spin,s&&L.clickable,c),m=null,g=r||("string"==typeof e?e:null);return(g?N?m=N(g):(console.warn(`Icon "${g}" could not be loaded. Call registerIconRenderer() at app startup.`),m=null):l.isValidElement(e)&&(m=e),m)?(0,i.jsx)("span",{className:u,style:d,onClick:s,role:s?"button":void 0,tabIndex:s?0:void 0,onKeyDown:s?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),s())}:void 0,children:m}):null}var G=({icon:e,name:r,onClick:o,size:n="base",color:t="primary",...l})=>(0,i.jsx)(H,{icon:e,name:r,size:n,color:t,onClick:o,style:{cursor:"pointer",transition:"opacity 0.2s",...l.style},...l});function O(e){return(0,i.jsx)(n.Avatar,{...e})}function X(e){return(0,i.jsx)(n.Avatar.Group,{...e})}function V(){return n.theme.useToken()}function Y({children:e,color:r="var(--text-secondary, #9CA3AF)",highlight:o="var(--text-primary, #111827)",duration:n="2s",className:t,style:l}){return(0,i.jsx)("span",{className:(0,a.A)("shimmer_Vu6DO",t),style:{"--shimmer-color-1":r,"--shimmer-color-2":r,"--shimmer-highlight":o,"--shimmer-duration":n,...l},children:e})}function K({value:e,size:r="small",label:o,style:n,...t}){let[a,s]=l.useState(!1);return(0,i.jsx)($,{variant:"text",size:r,icon:(0,i.jsx)(H,{name:a?"CheckOutlined":"CopyOutlined",style:{color:a?"#52c41a":void 0,transition:"color 150ms ease"}}),onClick:r=>{r.stopPropagation(),navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),1500)})},style:{transition:"opacity 150ms ease",...n},...t,children:o})}var{useToken:J}=n.theme;function q({label:e,value:r,icon:o,status:t="default",trend:l="neutral",delta:a,unit:s,size:c="default",showDelta:d=!0,loading:u=!1}){let{token:m}=J(),g={default:m.colorFillSecondary,info:m.colorInfoBg,success:m.colorSuccessBg,warning:m.colorWarningBg,error:m.colorErrorBg},f={default:m.colorTextSecondary,info:m.colorInfo,success:m.colorSuccess,warning:m.colorWarning,error:m.colorError};return"up"===l?m.colorSuccess:"down"===l?m.colorError:m.colorTextSecondary,(0,i.jsx)(n.Card,{size:c,loading:u,style:{height:"100%"},children:(0,i.jsxs)(b,{children:[o&&(0,i.jsx)("div",{style:{width:36,height:36,borderRadius:m.borderRadiusSM,backgroundColor:g[t],display:"flex",alignItems:"center",justifyContent:"center",color:f[t],fontSize:16,marginBottom:m.marginSM},children:o}),(0,i.jsx)(y,{size:"sm",color:"secondary",as:"div",children:e}),(0,i.jsx)(n.Tooltip,{title:String(r),mouseEnterDelay:.6,children:(0,i.jsxs)(j,{align:"baseline",gap:2,style:{marginTop:4,overflow:"hidden"},children:[(0,i.jsx)(y,{size:"2xl",weight:"bold",as:"div",style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:r}),s&&(0,i.jsx)(y,{size:"base",color:"secondary",style:{flexShrink:0},children:s})]})}),d&&void 0!==a&&(0,i.jsx)(j,{align:"center",gap:1,style:{marginTop:m.marginXS},children:(0,i.jsxs)(y,{size:"sm",style:{color:a>=0?m.colorSuccess:m.colorError},children:["up"===l?"↑":"down"===l?"↓":""," ",Math.abs(a),"%"]})})]})})}function Q({columns:e,dataSource:r,rowKey:o="id",loading:t,pagination:l,rowSelection:a,onRow:s,size:c="middle",bordered:d=!1,expandable:u,className:m,style:g,scroll:f}){return(0,i.jsx)(n.Table,{columns:e,dataSource:r,rowKey:o,loading:t,pagination:l,rowSelection:a,onRow:s,size:c,bordered:d,expandable:u,className:m,style:g,scroll:f})}function Z(){return(0,l.useMemo)(()=>{let e=["#1677ff","#52c41a","#faad14","#ff4d4f","#1890ff","#722ed1","#eb2f96","#13c2c2","#fa8c16","#2f54eb"];console.log("[useChartColors] Created palette:",{colors:e});let r=[...e,"#e6f4ff","#f6ffed","#fffbe6","#fff2f0","#e6f4ff","#f759ab","#9254de","#40a9ff","#73d13d","#ffc53d"],o=r=>e[r%e.length]||"#1890ff";return{colors:e,extendedColors:r,getColor:o,mapColors:(e,r)=>{let n=Array.from(new Set(e.map(e=>String(e[r]??"")))),t={};return n.forEach((e,r)=>{t[e]=o(r)}),t}}},[])}function ee(e,r){return o=>{let n=String(o[r]??""),t=Object.keys(e)[0];return e[n]||(t?e[t]:"#1890ff")||"#1890ff"}}var{useToken:er}=n.theme;function eo({colors:e,disableAutoColors:r,...o}){let n=function(){let{token:e}=er();return l.useMemo(()=>({defaultColor:e.colorPrimary,styleSheet:{backgroundColor:e.colorBgContainer,fontFamily:e.fontFamily,fontSize:e.fontSize,color:e.colorText}}),[e])}(),t=Z(),a=l.useMemo(()=>{let n=o.colorField||o.seriesField;if(console.log("[UILineChart] Debug info:",{hasColorField:n,colorField:o.colorField,seriesField:o.seriesField,disableAutoColors:r,hasData:!!o.data,dataLength:o.data?.length,customColors:e,paletteColors:t.colors}),r||!n||!o.data)return console.log("[UILineChart] Skipping auto-colors:",{disableAutoColors:r,hasColorField:n,hasData:!!o.data}),o;let i=e||t.colors;return console.log("[UILineChart] Applying colors:",{source:e?"custom":"palette",colors:i}),{...o,scale:{...o.scale,color:{range:i}}}},[o,e,t.colors,r]);return(0,i.jsx)(s.A,{...a,theme:n})}var{useToken:en}=n.theme;function et({colors:e,...r}){let o=function(){let{token:e}=en();return l.useMemo(()=>({defaultColor:e.colorPrimary,colors10:[e.colorInfo,e.colorSuccess,e.colorWarning,e.colorError,e.colorPrimary,e.colorInfoBg,e.colorSuccessBg,e.colorWarningBg,e.colorErrorBg,e.colorPrimaryBg],colors20:[e.colorInfo,e.colorSuccess,e.colorWarning,e.colorError,e.colorPrimary,e.colorInfoBg,e.colorSuccessBg,e.colorWarningBg,e.colorErrorBg,e.colorPrimaryBg,e.colorInfoBorder,e.colorSuccessBorder,e.colorWarningBorder,e.colorErrorBorder,e.colorPrimaryBorder,e.colorInfoText,e.colorSuccessText,e.colorWarningText,e.colorErrorText,e.colorPrimaryText],styleSheet:{backgroundColor:e.colorBgContainer,fontFamily:e.fontFamily,fontSize:e.fontSize,color:e.colorText}}),[e])}(),n=e?{...o,colors10:e,colors20:e}:o;return(0,i.jsx)(c.A,{...r,theme:n})}var{useToken:ei}=n.theme;function el({colors:e,disableAutoColors:r,...o}){let n=function(){let{token:e}=ei();return l.useMemo(()=>({defaultColor:e.colorPrimary,styleSheet:{backgroundColor:e.colorBgContainer,fontFamily:e.fontFamily,fontSize:e.fontSize,color:e.colorText}}),[e])}(),t=Z(),a=l.useMemo(()=>{if(r||!o.colorField||!o.data)return o;let n=e||t.colors;return{...o,scale:{...o.scale,color:{range:n}}}},[o,e,t.colors,r]);return(0,i.jsx)(d.A,{...a,theme:n})}var{useToken:ea}=n.theme;function es({colors:e,disableAutoColors:r,...o}){let n=function(){let{token:e}=ea();return l.useMemo(()=>({defaultColor:e.colorPrimary,styleSheet:{backgroundColor:e.colorBgContainer,fontFamily:e.fontFamily,fontSize:e.fontSize,color:e.colorText}}),[e])}(),t=Z(),a=l.useMemo(()=>{if(r||!o.colorField||!o.data)return o;let n=e||t.colors;return{...o,scale:{...o.scale,color:{range:n}}}},[o,e,t.colors,r]);return(0,i.jsx)(u.A,{...a,theme:n})}var{useToken:ec}=n.theme;function ed({colors:e,disableAutoColors:r,...o}){let n=function(){let{token:e}=ec();return l.useMemo(()=>({defaultColor:e.colorPrimary,styleSheet:{backgroundColor:e.colorBgContainer,fontFamily:e.fontFamily,fontSize:e.fontSize,color:e.colorText}}),[e])}(),t=Z(),a=l.useMemo(()=>{if(r||!o.seriesField||!o.data)return o;let n=e||t.colors;return{...o,scale:{...o.scale,color:{range:n}}}},[o,e,t.colors,r]);return(0,i.jsx)(m.A,{...a,theme:n})}function eu({data:e,loading:r=!1,title:o,metrics:t=[],xField:a="date",yField:s="value",colorField:c="category",style:d,height:u=350,showLegend:m=!0,chartProps:f}){let p=Z(),x=l.useMemo(()=>p.colors.slice(0,Math.max(t.length,3)),[p.colors,t.length]),h=l.useMemo(()=>e?0===t.length?e:e.flatMap(e=>{let r=[];for(let o of t){let n;n=o.key in e&&"number"==typeof e[o.key]?e[o.key]:e.metrics&&o.key in e.metrics?e.metrics[o.key]:0,o.transform&&(n=o.transform(n)),r.push({[a]:e.date?g(e.date).format("YYYY-MM-DD"):e[a],[c]:o.label,[s]:n})}return r}):[],[e,t,a,s,c]),b=()=>(0,i.jsxs)(i.Fragment,{children:[r&&(0,i.jsx)("div",{style:{textAlign:"center",padding:"40px 0"},children:(0,i.jsx)(y,{color:"secondary",children:"Loading chart data..."})}),!r&&(!h||0===h.length)&&(0,i.jsx)("div",{style:{textAlign:"center",padding:"40px 0"},children:(0,i.jsx)(y,{color:"secondary",children:"No data available for the selected date range"})}),!r&&h&&h.length>0&&(0,i.jsxs)("div",{children:[m&&0!==t.length?(0,i.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:12,gap:16},children:t.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6},children:[(0,i.jsx)("span",{style:{display:"inline-block",width:10,height:10,borderRadius:"50%",backgroundColor:x[r%x.length]}}),(0,i.jsx)("span",{style:{fontSize:13,fontWeight:500},children:e.label})]},e.label))}):null,(0,i.jsx)(eo,{data:h,xField:a,yField:s,colorField:c,height:u,colors:x,scale:{color:{range:x}},axis:{x:{label:{autoRotate:!1}},y:{label:{formatter:e=>{let r=Number(e);return r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${(r/1e3).toFixed(1)}K`:r.toLocaleString()}}}},style:{shape:"smooth",lineWidth:2},legend:!1,tooltip:{title:e=>e[a],items:[e=>{let r=t.find(r=>r.label===e[c]),o=t.findIndex(r=>r.label===e[c]),n=e[s]?.toLocaleString()||"0";return r?.format&&null!=e[s]&&(n=r.format(e[s])),{name:e[c],value:n,color:x[o>=0?o:0]}}]},...f})]})]});return o?(0,i.jsx)(n.Card,{title:o,style:{marginTop:16,...d},children:b()}):(0,i.jsx)("div",{style:d,children:b()})}function em(e){return(0,i.jsx)(n.Statistic,{...e})}function eg(e){return(0,i.jsx)(n.Statistic.Countdown,{...e})}function ef(e){return(0,i.jsx)(n.Progress,{...e})}function ep(e){return(0,i.jsx)(n.Descriptions,{...e})}function ex(e){return(0,i.jsx)(n.Descriptions.Item,{...e})}function eh(e){return(0,i.jsx)(n.Timeline,{...e})}function ey(e){return(0,i.jsx)(n.Timeline.Item,{...e})}function eb(e){return(0,i.jsx)(n.Tree,{...e})}function ej(e){return(0,i.jsx)(n.Tree.DirectoryTree,{...e})}function eI(e){return(0,i.jsx)(n.Tree.TreeNode,{...e})}function ek(e){return(0,i.jsx)(n.List,{...e})}function eS(e){return(0,i.jsx)(n.List.Item,{...e})}function ev(e){return(0,i.jsx)(n.List.Item.Meta,{...e})}function eU({value:e,defaultValue:r,placeholder:o,disabled:t,prefix:l,suffix:a,maxLength:s,showCount:c,allowClear:d,onChange:u,onPressEnter:m,...g}){return(0,i.jsx)(n.Input,{value:e,defaultValue:r,placeholder:o,disabled:t,prefix:l,suffix:a,maxLength:s,showCount:c,allowClear:d,onChange:e=>{u?.(e.target.value)},onPressEnter:m,...g})}function eT(e){return(0,i.jsx)(n.Input.Password,{...e})}function ew(e){return(0,i.jsx)(n.Input.TextArea,{...e})}function eC(e){return(0,i.jsx)(n.Input.Search,{...e})}function eB({options:e=[],value:r,defaultValue:o,placeholder:t,disabled:l,loading:a,allowClear:s,showSearch:c,mode:d,onChange:u,...m}){let g=e.map(e=>({label:e.icon||e.description?(0,i.jsxs)(j,{align:"center",gap:2,style:{width:"100%"},children:[e.icon&&(0,i.jsx)("span",{children:e.icon}),(0,i.jsx)("span",{style:{flex:1},children:e.label}),e.description&&(0,i.jsx)("span",{style:{fontSize:"0.85em",opacity:.7},children:e.description})]}):e.label,value:e.value,disabled:e.disabled}));return(0,i.jsx)(n.Select,{options:g,value:r,defaultValue:o,placeholder:t,disabled:l,loading:a,allowClear:s,showSearch:c,mode:d,onChange:u,...m})}function ez({layout:e="vertical",onFinish:r,onFinishFailed:o,initialValues:t,children:l,...a}){return(0,i.jsx)(n.Form,{layout:e,onFinish:r,onFinishFailed:o,initialValues:t,...a,children:l})}function eM(e){return(0,i.jsx)(n.Form.Item,{...e})}var e$=n.Form.useForm;function eF(e){return(0,i.jsx)(n.Form.List,{...e})}function eE({children:e,checked:r,defaultChecked:o,disabled:t,indeterminate:l,onChange:a,...s}){return(0,i.jsx)(n.Checkbox,{checked:r,defaultChecked:o,disabled:t,indeterminate:l,onChange:e=>{a?.(e.target.checked)},...s,children:e})}function eP({options:e,value:r,defaultValue:o,disabled:l,gap:a=2,onChange:s}){return(0,i.jsx)(n.Checkbox.Group,{value:r,defaultValue:o,disabled:l,onChange:s,children:(0,i.jsx)(b,{children:e.map((r,o)=>(0,i.jsxs)(b,{mb:o<e.length-1?a:0,children:[(0,i.jsx)(n.Checkbox,{value:r.value,disabled:r.disabled,children:r.label}),r.description&&(0,i.jsx)(y,{size:"sm",color:"secondary",as:"div",style:{marginLeft:t.spacing["6"],marginTop:t.spacing["1"]},children:r.description})]},r.value))})})}function e_({checked:e,defaultChecked:r,disabled:o,loading:t,size:l="default",label:a,labelPosition:s="right",checkedChildren:c,unCheckedChildren:d,onChange:u,...m}){let g=(0,i.jsx)(n.Switch,{checked:e,defaultChecked:r,disabled:o,loading:t,size:l,checkedChildren:c,unCheckedChildren:d,onChange:u,...m});return a?(0,i.jsxs)(j,{align:"center",gap:2,children:["left"===s&&(0,i.jsx)(y,{children:a}),g,"right"===s&&(0,i.jsx)(y,{children:a})]}):g}function eA({value:e,defaultValue:r,placeholder:o,disabled:t,format:l,allowClear:a=!0,showTime:s,onChange:c,...d}){return(0,i.jsx)(n.DatePicker,{value:e,defaultValue:r,placeholder:o,disabled:t,format:l,allowClear:a,showTime:s,onChange:c,...d})}function eD({value:e,defaultValue:r,placeholder:o,disabled:t,format:l,allowClear:a=!0,onChange:s,...c}){return(0,i.jsx)(n.TimePicker,{value:e,defaultValue:r,placeholder:o,disabled:t,format:l,allowClear:a,onChange:s,...c})}function eR(e){return(0,i.jsx)(n.DatePicker.RangePicker,{...e})}function eL(e){return(0,i.jsx)(n.InputNumber,{...e})}function eN(e){return(0,i.jsx)(n.Radio,{...e})}function eW(e){return(0,i.jsx)(n.Radio.Group,{...e})}function eH(e){return(0,i.jsx)(n.Upload,{...e})}function eG(e){return(0,i.jsx)(n.Upload.Dragger,{...e})}function eO(e){return(0,i.jsx)(n.Slider,{...e})}function eX({items:e,separator:r,className:o}){let t=(0,f.useNavigate)(),l=e.map(e=>({title:e.icon?(0,i.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[e.icon,(0,i.jsx)("span",{children:e.title})]}):e.title,href:e.href,onClick:e.href?r=>{r.preventDefault(),t(e.href)}:e.onClick}));return(0,i.jsx)(n.Breadcrumb,{items:l,separator:r,className:o})}function eV({items:e,syncUrl:r,activeKey:o,defaultActiveKey:t,tabPosition:l="top",type:a="line",size:s="middle",onChange:c,onEdit:d,className:u,style:m}){let[g,p]=(0,f.useSearchParams)(),x=(0,f.useNavigate)(),h=(0,f.useParams)(),y=e[0]?.key??"",b=o,j=!0===r||"search"===r,I=r&&"object"==typeof r&&"path"===r.mode;j?b=g.get("tab")??y:I&&(b=h.tab??y);let k=e.map(e=>({key:e.key,label:e.icon?(0,i.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[e.icon,(0,i.jsx)("span",{children:e.label})]}):e.label,children:e.children,disabled:e.disabled,closable:e.closable}));return(0,i.jsx)(n.Tabs,{items:k,activeKey:b,defaultActiveKey:r?void 0:t,tabPosition:l,type:a,size:s,onChange:e=>{j?p(e===y?{}:{tab:e}):I&&"object"==typeof r&&x(e===y?r.basePath:`${r.basePath}/${e}`),c?.(e)},onEdit:d?(e,r)=>{d("string"==typeof e?e:"",r)}:void 0,className:u,style:m})}function eY(e){return(0,i.jsx)(eV,{...e})}function eK({items:e,activeKey:r,defaultActiveKey:o,accordion:t=!1,bordered:l=!0,ghost:a=!1,size:s="middle",onChange:c,className:d,style:u}){let m=e.map(e=>({key:e.key,label:e.label,children:e.children,extra:e.extra,showArrow:e.showArrow,collapsible:e.collapsible}));return(0,i.jsx)(n.Collapse,{items:m,activeKey:r,defaultActiveKey:o,accordion:t,bordered:l,ghost:a,size:s,onChange:c,className:d,style:u})}function eJ(e){return(0,i.jsx)(n.Dropdown,{...e})}function eq(e){return(0,i.jsx)(n.Dropdown.Button,{...e})}function eQ(e){return(0,i.jsx)(n.Segmented,{...e})}function eZ(e){return(0,i.jsx)(n.Steps,{...e})}function e0(e){return(0,i.jsx)(n.Menu,{...e})}var{useToken:e1}=n.theme;function e2({children:e,width:r="default",variant:o="default",className:n,style:t}){let{token:l}=e1(),a="document"===o,s={maxWidth:{default:"1280px",wide:"1600px",full:"100%"}[r],margin:"0 auto",padding:l.padding,...a&&{backgroundColor:l.colorBgContainer,borderRadius:l.borderRadiusLG,boxShadow:l.boxShadow},minHeight:a?void 0:"100%",...t};return(0,i.jsx)(b,{as:"main",className:n,style:s,children:e})}var{useToken:e6}=n.theme;function e4({title:e,subtitle:r,breadcrumb:o,actions:n,className:l,style:a}){let{token:s}=e6(),c={borderBottom:`1px solid ${s.colorBorder}`,paddingBottom:t.spacing["4"],marginBottom:t.spacing["6"],...a};return(0,i.jsxs)(b,{className:l,style:c,children:[o&&(0,i.jsx)(b,{mb:2,children:o}),(0,i.jsxs)(j,{justify:"between",align:"start",gap:4,children:[(0,i.jsxs)(b,{style:{flex:1},children:[(0,i.jsx)(R,{level:1,style:{marginBottom:r?t.spacing["2"]:0},children:e}),r&&(0,i.jsx)(y,{size:"base",color:"secondary",children:r})]}),n&&(0,i.jsx)(b,{style:{flexShrink:0},children:n})]})]})}var{useToken:e3}=n.theme;function e5({title:e,description:r,icon:o,breadcrumbs:n,actions:t,tabs:l,onBack:a,children:s}){let{token:c}=e3(),d=!!l;return(0,i.jsxs)("div",{style:{marginBottom:24*!d},children:[(a||n&&n.length>0)&&(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:c.marginXS,marginBottom:c.marginXS},children:[a&&(0,i.jsx)($,{variant:"text",size:"small",icon:(0,i.jsx)(H,{name:"ArrowLeftOutlined"}),onClick:a,style:{padding:"0 4px"}}),n&&n.length>0&&(0,i.jsx)(eX,{items:n.map(e=>({title:e.title,...e.href?{href:e.href}:{}}))})]}),(0,i.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:c.marginSM},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:c.marginSM,minWidth:0},children:[o&&(0,i.jsx)("span",{style:{fontSize:24,color:c.colorPrimary,flexShrink:0,display:"flex",alignItems:"center"},children:o}),(0,i.jsxs)("div",{style:{minWidth:0},children:["string"==typeof e?(0,i.jsx)("h2",{style:{margin:0,fontFamily:"var(--font-heading)",fontSize:c.fontSizeHeading3,fontWeight:700,letterSpacing:"-0.02em",color:c.colorTextHeading,lineHeight:1.2},children:e}):e,r&&(0,i.jsx)("div",{style:{marginTop:4},children:"string"==typeof r?(0,i.jsx)(y,{color:"secondary",size:"sm",children:r}):r})]})]}),t&&(0,i.jsx)("div",{style:{display:"flex",alignItems:"center",gap:c.marginXS,flexShrink:0},children:t})]}),s&&(0,i.jsx)("div",{style:{marginTop:c.marginSM},children:s}),d&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(B,{style:{marginBottom:0}}),l]})]})}function e9({children:e,gap:r=24,style:o,...n}){return(0,i.jsx)("div",{style:{marginBottom:r,...o},...n,children:e})}function e7({variant:e="info",title:r,message:o,description:t,showIcon:l,closable:a,onClose:s,action:c,icon:d,className:u,style:m}){return(0,i.jsx)(n.Alert,{type:e,message:r||o,description:r?t||o:t,showIcon:l,closable:a,onClose:s,action:c,icon:d,className:u,style:m})}var{useToken:e8}=n.theme;function re({icon:e,title:r,description:o,action:l,children:a,useDefaultImage:s,image:c,className:d,style:u}){let{token:m}=e8(),g=a??l;if(s||void 0!==c)return(0,i.jsx)(n.Empty,{description:o,image:c,className:d,style:u,children:g});let f={padding:t.spacing["8"],textAlign:"center",...u};return(0,i.jsx)(b,{className:d,style:f,children:(0,i.jsxs)(j,{direction:"column",align:"center",gap:3,children:[e&&(0,i.jsx)(b,{style:{fontSize:"48px",color:m.colorTextSecondary},children:e}),r&&(0,i.jsx)(y,{size:"lg",weight:"semibold",children:r}),o&&(0,i.jsx)(y,{size:"base",color:"secondary",children:o}),g&&(0,i.jsx)(b,{mt:2,children:g})]})})}re.PRESENTED_IMAGE_SIMPLE=n.Empty.PRESENTED_IMAGE_SIMPLE,re.PRESENTED_IMAGE_DEFAULT=n.Empty.PRESENTED_IMAGE_DEFAULT;var{useToken:rr}=n.theme;function ro({icon:e,title:r="Something went wrong",description:o,details:n,showRetry:l=!1,retryText:a="Try again",onRetry:s,action:c,className:d,style:u}){let{token:m}=rr(),g={padding:t.spacing["8"],textAlign:"center",...u};return(0,i.jsx)(b,{className:d,style:g,children:(0,i.jsxs)(j,{direction:"column",align:"center",gap:3,children:[e&&(0,i.jsx)(b,{style:{fontSize:"48px",color:m.colorError},children:e}),(0,i.jsx)(y,{size:"lg",weight:"semibold",color:"error",children:r}),o&&(0,i.jsx)(y,{size:"base",color:"secondary",children:o}),n&&(0,i.jsx)(b,{p:3,style:{backgroundColor:m.colorErrorBg,borderRadius:m.borderRadius,maxWidth:"600px",width:"100%"},children:(0,i.jsx)(y,{size:"sm",as:"pre",style:{margin:0,textAlign:"left",whiteSpace:"pre-wrap"},children:n})}),(l||c)&&(0,i.jsx)(b,{mt:2,children:c||(0,i.jsx)($,{variant:"primary",onClick:s,children:a})})]})})}function rn({loading:e=!0,children:r,avatar:o,avatarShape:t="circle",lines:l=3,title:a=!0,active:s=!0,className:c,style:d}){return(0,i.jsx)(n.Skeleton,{loading:e,avatar:!!o&&{shape:t},paragraph:{rows:l},title:a,active:s,className:c,style:d,children:r})}function rt(e){return(0,i.jsx)(n.Skeleton.Button,{...e})}function ri(e){return(0,i.jsx)(n.Skeleton.Input,{...e})}function rl(e){return(0,i.jsx)(n.Skeleton.Image,{...e})}function ra(e){return(0,i.jsx)(n.Skeleton.Node,{...e})}function rs({width:e="100%",height:r="1em",gap:o=6,className:t,style:l}){let{token:s}=n.theme.useToken(),c=Array.isArray(e),d=c?e:[e],u=c?"100%":"number"==typeof e?`${e}px`:e;return(0,i.jsx)("span",{className:t,style:{display:"inline-flex",flexDirection:"column",gap:o,width:u,...l},children:d.map((e,o)=>(0,i.jsx)("span",{className:(0,a.A)("skeletonText_D4KLj"),style:{display:"block",width:c?"number"==typeof e?`${e}px`:e:"100%",height:"number"==typeof r?`${r}px`:r,borderRadius:s.borderRadiusSM,flexShrink:0,backgroundImage:`linear-gradient(90deg, ${s.colorBorder} 25%, ${s.colorBgLayout} 50%, ${s.colorBorder} 75%)`,backgroundSize:"400% 100%"}},o))})}function rc(e){return(0,i.jsx)(n.Spin,{...e})}function rd(e){return(0,i.jsx)(n.Result,{...e})}var ru=n.message;function rm(){return n.message.useMessage()}var rg=n.notification;function rf(){return n.notification.useNotification()}function rp({open:e,title:r,children:o,width:t="default",closable:l=!0,maskClosable:a=!0,footer:s,okText:c,cancelText:d,confirmLoading:u,onOk:m,onCancel:g,onClose:f,className:p,style:x}){let h={small:416,default:520,large:800,full:window.innerWidth-64},y="number"==typeof t?t:h[t];return(0,i.jsx)(n.Modal,{open:e,title:r,width:y,closable:l,maskClosable:a,footer:s,okText:c,cancelText:d,confirmLoading:u,onOk:m,onCancel:g||f,className:p,style:x,children:o})}var rx=n.Modal.confirm,rh=n.Modal.info,ry=n.Modal.success,rb=n.Modal.error,rj=n.Modal.warning;function rI({title:e,children:r,placement:o="top",arrow:t=!0,trigger:l="hover",open:a,className:s}){return(0,i.jsx)(n.Tooltip,{title:e,placement:o,arrow:t,trigger:l,open:a,className:s,children:r})}function rk(e){return(0,i.jsx)(n.Drawer,{...e})}function rS(e){return(0,i.jsx)(n.Popconfirm,{...e})}function rv(e){return(0,i.jsx)(n.Popover,{...e})}var{useToken:rU}=n.theme;function rT({content:e,className:r,style:o}){let{token:n}=rU(),t=`
|
|
2
|
+
.kb-md { font-size: ${n.fontSize}px; line-height: 1.6; color: ${n.colorText}; font-family: ${n.fontFamily}; }
|
|
3
|
+
.kb-md > *:first-child { margin-top: 0; }
|
|
4
|
+
.kb-md > *:last-child { margin-bottom: 0; }
|
|
5
|
+
.kb-md h1,.kb-md h2,.kb-md h3,.kb-md h4,.kb-md h5,.kb-md h6 { font-weight:600; line-height:1.3; margin:1.2em 0 0.4em; color:${n.colorTextHeading}; }
|
|
6
|
+
.kb-md h1:first-child,.kb-md h2:first-child,.kb-md h3:first-child { margin-top:0; }
|
|
7
|
+
.kb-md h1 { font-size:1.5em; padding-bottom:0.3em; border-bottom:1px solid ${n.colorBorderSecondary}; }
|
|
8
|
+
.kb-md h2 { font-size:1.25em; padding-bottom:0.2em; border-bottom:1px solid ${n.colorBorderSecondary}; }
|
|
9
|
+
.kb-md h3 { font-size:1.1em; }
|
|
10
|
+
.kb-md h4 { font-size:1em; }
|
|
11
|
+
.kb-md p { margin:0.6em 0; }
|
|
12
|
+
.kb-md a { color:${n.colorPrimary}; text-decoration:none; }
|
|
13
|
+
.kb-md a:hover { text-decoration:underline; }
|
|
14
|
+
.kb-md code { font-family:${n.fontFamilyCode}; font-size:0.875em; background:${n.colorFillTertiary}; color:${n.colorTextSecondary}; padding:0.15em 0.4em; border-radius:${n.borderRadiusSM}px; }
|
|
15
|
+
.kb-md pre { background:${n.colorFillQuaternary}; border:1px solid ${n.colorBorderSecondary}; border-radius:${n.borderRadius}px; padding:12px 16px; overflow-x:auto; margin:0.75em 0; }
|
|
16
|
+
.kb-md pre code { background:none; padding:0; font-size:0.85em; color:${n.colorText}; }
|
|
17
|
+
.kb-md ul,.kb-md ol { padding-left:1.5em; margin:0.6em 0; }
|
|
18
|
+
.kb-md ul { list-style: disc; }
|
|
19
|
+
.kb-md ol { list-style: decimal; }
|
|
20
|
+
.kb-md ul ul { list-style: circle; }
|
|
21
|
+
.kb-md ol ol, .kb-md ul ol { list-style: decimal; }
|
|
22
|
+
.kb-md li { margin:0.2em 0; list-style: inherit; }
|
|
23
|
+
.kb-md li::marker { color:${n.colorTextTertiary}; }
|
|
24
|
+
.kb-md blockquote { margin:0.75em 0; padding:0.4em 1em; border-left:4px solid ${n.colorPrimaryBorder}; background:${n.colorFillQuaternary}; color:${n.colorTextSecondary}; border-radius:0 ${n.borderRadiusSM}px ${n.borderRadiusSM}px 0; }
|
|
25
|
+
.kb-md blockquote p { margin:0; }
|
|
26
|
+
.kb-md hr { border:none; border-top:1px solid ${n.colorBorderSecondary}; margin:1.2em 0; }
|
|
27
|
+
.kb-md table { width:100%; border-collapse:collapse; margin:0.75em 0; font-size:0.9em; }
|
|
28
|
+
.kb-md th,.kb-md td { border:1px solid ${n.colorBorderSecondary}; padding:6px 10px; text-align:left; }
|
|
29
|
+
.kb-md th { background:${n.colorFillTertiary}; font-weight:600; }
|
|
30
|
+
.kb-md tr:nth-child(even) td { background:${n.colorFillQuaternary}; }
|
|
31
|
+
.kb-md img { max-width:100%; border-radius:${n.borderRadius}px; }
|
|
32
|
+
`,l=x.A.sanitize(p.xI.parse(e));return(0,i.jsxs)(b,{className:r,style:{padding:n.padding,...o},children:[(0,i.jsx)("style",{children:t}),(0,i.jsx)("div",{className:"kb-md",dangerouslySetInnerHTML:{__html:l}})]})}var{useToken:rw}=n.theme;function rC({data:e,collapsed:r=!1,indent:o=2,showLineNumbers:n=!1,className:t,style:a}){let{token:s}=rw(),c=l.useMemo(()=>{try{return JSON.stringify(e,null,o)}catch(e){return`Error: ${e instanceof Error?e.message:"Invalid JSON"}`}},[e,o]),d=c.split("\n"),u={backgroundColor:s.colorBgContainer,borderRadius:s.borderRadius,border:`1px solid ${s.colorBorder}`,overflow:"auto",maxHeight:"600px",...a},m={display:"block",fontFamily:'Consolas, Monaco, "Courier New", monospace',fontSize:"13px",lineHeight:"1.6",padding:s.padding,margin:0,whiteSpace:"pre",color:s.colorText},g={display:"inline-block",width:"40px",color:s.colorTextSecondary,userSelect:"none",textAlign:"right",marginRight:s.marginSM},f=rB(c,s);return(0,i.jsx)(b,{className:t,style:u,children:(0,i.jsx)("pre",{style:m,children:n?d.map((e,r)=>(0,i.jsxs)("div",{children:[(0,i.jsx)("span",{style:g,children:r+1}),(0,i.jsx)("span",{dangerouslySetInnerHTML:{__html:rB(e,s)}})]},r)):(0,i.jsx)("span",{dangerouslySetInnerHTML:{__html:f}})})})}function rB(e,r){return(e=(e=(e=(e=(e=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")).replace(/"([^"]+)":/g,`<span style="color: ${r.colorPrimary}">"$1"</span>:`)).replace(/: "([^"]*)"/g,`: <span style="color: ${r.colorSuccess}">"$1"</span>`)).replace(/: (\d+)/g,`: <span style="color: ${r.colorWarning}">$1</span>`)).replace(/: (true|false)/g,`: <span style="color: ${r.colorInfo}">$1</span>`)).replace(/: (null)/g,`: <span style="color: ${r.colorTextSecondary}">$1</span>`)}var rz={add:{bg:"rgba(22, 163, 74, 0.12)",border:"var(--success, #16a34a)",color:"var(--success, #16a34a)"},remove:{bg:"rgba(220, 38, 38, 0.12)",border:"var(--error, #dc2626)",color:"var(--error, #dc2626)"},header:{bg:"var(--bg-tertiary, rgba(0,0,0,0.04))",border:"transparent",color:"var(--text-secondary, #6b7280)"},context:{bg:"transparent",border:"transparent",color:"inherit"}};function rM({diff:e,showLineNumbers:r=!0,maxHeight:o=500,className:n,style:t}){if(!e||""===e.trim())return(0,i.jsx)("div",{style:{padding:16,textAlign:"center"},children:(0,i.jsx)(I,{type:"secondary",children:"No changes to display"})});let l=e.split("\n");return(0,i.jsx)("div",{className:n,style:{background:"var(--bg-tertiary, rgba(0,0,0,0.02))",border:"1px solid var(--border-primary, rgba(0,0,0,0.1))",borderRadius:"var(--radius-md, 6px)",fontFamily:'Monaco, Menlo, "Courier New", monospace',fontSize:13,lineHeight:1.5,maxHeight:o,overflow:"auto",...t},children:l.map((e,o)=>{let n=e.startsWith("@@")?"header":e.startsWith("+")?"add":e.startsWith("-")?"remove":"context",t=rz[n],l="add"===n||"remove"===n;return(0,i.jsxs)("div",{style:{display:"flex",background:t.bg,borderLeft:l?`3px solid ${t.border}`:"none",paddingLeft:l?8:11},children:[r&&(0,i.jsx)("span",{style:{minWidth:44,textAlign:"right",paddingRight:12,userSelect:"none",color:"var(--text-secondary, #6c757d)",fontSize:12},children:o+1}),(0,i.jsx)("pre",{style:{margin:0,padding:0,color:t.color,whiteSpace:"pre",flex:1},children:e})]},o)})})}o.d(r,{UIAccordion:()=>eK,UIAlert:()=>e7,UIAreaChart:()=>el,UIAvatar:()=>O,UIAvatarGroup:()=>X,UIBadge:()=>M,UIBarChart:()=>ed,UIBox:()=>b,UIBreadcrumb:()=>eX,UIButton:()=>$,UICard:()=>P,UICheckbox:()=>eE,UICheckboxGroup:()=>eP,UICol:()=>C,UIColumnChart:()=>et,UICopyButton:()=>K,UIDatePicker:()=>eA,UIDescriptions:()=>ep,UIDescriptionsItem:()=>ex,UIDiffViewer:()=>rM,UIDivider:()=>B,UIDrawer:()=>rk,UIDropdown:()=>eJ,UIDropdownButton:()=>eq,UIEmptyState:()=>re,UIErrorState:()=>ro,UIFlex:()=>j,UIForm:()=>ez,UIFormItem:()=>eM,UIFormList:()=>eF,UIHeader:()=>e4,UIIcon:()=>H,UIIconButton:()=>G,UIInput:()=>eU,UIInputNumber:()=>eL,UIInputPassword:()=>eT,UIInputSearch:()=>eC,UIInputTextArea:()=>ew,UIJsonViewer:()=>rC,UILineChart:()=>eo,UIList:()=>ek,UIListItem:()=>eS,UIListItemMeta:()=>ev,UIMarkdownViewer:()=>rT,UIMenu:()=>e0,UIMessage:()=>ru,UIMetricCard:()=>q,UIModal:()=>rp,UIModalConfirm:()=>rx,UIModalError:()=>rb,UIModalInfo:()=>rh,UIModalSuccess:()=>ry,UIModalWarning:()=>rj,UINotification:()=>rg,UIPage:()=>e2,UIPageHeader:()=>e5,UIPageSection:()=>e9,UIPieChart:()=>es,UIPopconfirm:()=>rS,UIPopover:()=>rv,UIProgress:()=>ef,UIRadio:()=>eN,UIRadioGroup:()=>eW,UIRangePicker:()=>eR,UIResult:()=>rd,UIRow:()=>w,UISegmented:()=>eQ,UISelect:()=>eB,UIShimmerText:()=>Y,UISkeleton:()=>rn,UISkeletonButton:()=>rt,UISkeletonImage:()=>rl,UISkeletonInput:()=>ri,UISkeletonNode:()=>ra,UISkeletonText:()=>rs,UISlider:()=>eO,UISpace:()=>U,UISpaceCompact:()=>T,UISpin:()=>rc,UIStack:()=>v,UIStatistic:()=>em,UIStatisticCountdown:()=>eg,UIStatisticsChart:()=>eu,UISteps:()=>eZ,UISwitch:()=>e_,UITable:()=>Q,UITabs:()=>eY,UITag:()=>_,UIText:()=>y,UITimePicker:()=>eD,UITimeline:()=>eh,UITimelineItem:()=>ey,UITitle:()=>R,UITooltip:()=>rI,UITree:()=>eb,UITreeDirectoryTree:()=>ej,UITreeNode:()=>eI,UITypographyLink:()=>S,UITypographyParagraph:()=>k,UITypographyText:()=>I,UIUpload:()=>eH,UIUploadDragger:()=>eG,createFillFunction:()=>ee,registerIconRenderer:()=>W,useChartColors:()=>Z,useUIForm:()=>e$,useUIMessage:()=>rm,useUINotification:()=>rf,useUITheme:()=>V})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_commit_entry=self.rspackChunk_kb_labs_commit_entry||[]).push([[165],{1597(e,t,i){var r=i(92);function n(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var i=2;i<arguments.length;i++)t+="&args[]="+encodeURIComponent(arguments[i])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(){}var s={d:{f:o,r:function(){throw Error(n(522))},D:o,C:o,L:o,m:o,X:o,S:o,M:o},p:0,findDOMNode:null},f=Symbol.for("react.portal"),c=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function y(e,t){return"font"===e?"":"string"==typeof t?"use-credentials"===t?t:"":void 0}t.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,t.createPortal=function(e,t){var i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!t||1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType)throw Error(n(299));return function(e,t,i){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:f,key:null==r?null:""+r,children:e,containerInfo:t,implementation:i}}(e,t,null,i)},t.flushSync=function(e){var t=c.T,i=s.p;try{if(c.T=null,s.p=2,e)return e()}finally{c.T=t,s.p=i,s.d.f()}},t.preconnect=function(e,t){"string"==typeof e&&(t=t?"string"==typeof(t=t.crossOrigin)?"use-credentials"===t?t:"":void 0:null,s.d.C(e,t))},t.prefetchDNS=function(e){"string"==typeof e&&s.d.D(e)},t.preinit=function(e,t){if("string"==typeof e&&t&&"string"==typeof t.as){var i=t.as,r=y(i,t.crossOrigin),n="string"==typeof t.integrity?t.integrity:void 0,o="string"==typeof t.fetchPriority?t.fetchPriority:void 0;"style"===i?s.d.S(e,"string"==typeof t.precedence?t.precedence:void 0,{crossOrigin:r,integrity:n,fetchPriority:o}):"script"===i&&s.d.X(e,{crossOrigin:r,integrity:n,fetchPriority:o,nonce:"string"==typeof t.nonce?t.nonce:void 0})}},t.preinitModule=function(e,t){if("string"==typeof e)if("object"==typeof t&&null!==t){if(null==t.as||"script"===t.as){var i=y(t.as,t.crossOrigin);s.d.M(e,{crossOrigin:i,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0})}}else null==t&&s.d.M(e)},t.preload=function(e,t){if("string"==typeof e&&"object"==typeof t&&null!==t&&"string"==typeof t.as){var i=t.as,r=y(i,t.crossOrigin);s.d.L(e,i,{crossOrigin:r,integrity:"string"==typeof t.integrity?t.integrity:void 0,nonce:"string"==typeof t.nonce?t.nonce:void 0,type:"string"==typeof t.type?t.type:void 0,fetchPriority:"string"==typeof t.fetchPriority?t.fetchPriority:void 0,referrerPolicy:"string"==typeof t.referrerPolicy?t.referrerPolicy:void 0,imageSrcSet:"string"==typeof t.imageSrcSet?t.imageSrcSet:void 0,imageSizes:"string"==typeof t.imageSizes?t.imageSizes:void 0,media:"string"==typeof t.media?t.media:void 0})}},t.preloadModule=function(e,t){if("string"==typeof e)if(t){var i=y(t.as,t.crossOrigin);s.d.m(e,{as:"string"==typeof t.as&&"script"!==t.as?t.as:void 0,crossOrigin:i,integrity:"string"==typeof t.integrity?t.integrity:void 0})}else s.d.m(e)},t.requestFormReset=function(e){s.d.r(e)},t.unstable_batchedUpdates=function(e,t){return e(t)},t.useFormState=function(e,t,i){return c.H.useFormState(e,t,i)},t.useFormStatus=function(){return c.H.useHostTransitionStatus()},t.version="19.2.5"},1297(e,t,i){!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=i(1597)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_commit_entry=self.rspackChunk_kb_labs_commit_entry||[]).push([[326],{6026(e,r){var t=Symbol.for("react.transitional.element");function n(e,r,n){var s=null;if(void 0!==n&&(s=""+n),void 0!==r.key&&(s=""+r.key),"key"in r)for(var o in n={},r)"key"!==o&&(n[o]=r[o]);else n=r;return{$$typeof:t,type:e,key:s,ref:void 0!==(r=n.ref)?r:null,props:n}}r.Fragment=Symbol.for("react.fragment"),r.jsx=n,r.jsxs=n},4552(e,r,t){e.exports=t(6026)}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_commit_entry=self.rspackChunk_kb_labs_commit_entry||[]).push([[370],{3481(r,e,o){o.r(e);var t=o(92),a=o(4552),n=o(5699),c=o(9312),i=o(5963),l=o(9497),v=o(7899),s=(0,t.createContext)(null);function d({children:r,value:e}){return(0,a.jsx)(s.Provider,{value:e,children:r})}function g(){let r=(0,t.useContext)(s);if(!r)throw Error("usePage() must be used inside a PageContextProvider (are you inside a Studio page?)");return r}function u(){return g()}function y(){let r=(0,n.useEventBusContext)(),{pluginId:e,pageId:o}=g(),a=(0,t.useRef)([]);return(0,t.useEffect)(()=>()=>{for(let r of a.current)r();a.current=[]},[]),{publish:(0,t.useCallback)((t,a)=>{r.publish(t,a,e,o)},[r,e,o]),subscribe:(0,t.useCallback)((t,n)=>{let c=r.subscribe(t,n,e,o);return a.current.push(c),c},[r,e,o])}}function b(r,e){let o=function(r,e){if(!e||0===Object.keys(e).length)return r;let o=new URLSearchParams;for(let[r,t]of Object.entries(e))null!=t&&o.set(r,String(t));let t=r.includes("?")?"&":"?";return`${r}${t}${o.toString()}`}(r,e?.params),t=(0,c.useQuery)({queryKey:["studio-data",o],queryFn:()=>p(o),enabled:e?.enabled,staleTime:e?.staleTime,refetchInterval:e?.pollingMs||void 0,select:e?.select});return{data:t.data,isLoading:t.isLoading,isError:t.isError,error:t.error,refetch:t.refetch,isFetching:t.isFetching}}function m(r,e="POST"){let o="string"==typeof e?{method:e}:e,t=o.method??"POST",a=o.mapBody,n=(0,c.useMutation)({mutationFn:async e=>{let o="function"==typeof r?r(e):r,n=a?a(e):e,c=null!=n,i=await fetch(`${x()}/api${o}`,{method:t,headers:c?{"Content-Type":"application/json"}:{},body:c?JSON.stringify(n):void 0});if(!i.ok)throw Error(`${t} ${o} failed: ${i.status} ${i.statusText}`);let l=await i.json();return l&&"object"==typeof l&&"ok"in l&&"data"in l?l.data:l}});return{mutate:n.mutate,mutateAsync:n.mutateAsync,isLoading:n.isPending,isError:n.isError,error:n.error,data:n.data}}function x(){if("u">typeof window){let r=window.__KB_STUDIO_CONFIG__,e=r?.KB_API_BASE_URL;if(e)try{return new URL(e).origin}catch{}}return""}async function p(r){let e=await fetch(`${x()}/api${r}`);if(!e.ok)throw Error(`GET ${r} failed: ${e.status} ${e.statusText}`);let o=await e.json();return o&&"object"==typeof o&&"ok"in o&&"data"in o?o.data:o}function B(r,e={}){let{events:o="message",doneEvent:a,terminalEvents:n,enabled:c=!0,reconnect:i=!1,maxReconnects:l=5,reconnectIntervalMs:v=2e3,maxEvents:s=0,parse:d=f,params:g,onEvent:u,onOpen:y,onError:b,onDone:m}=e,[x,p]=(0,t.useState)([]),[S,h]=(0,t.useState)(void 0),[k,C]=(0,t.useState)(null),[T,F]=(0,t.useState)(!1),[E,H]=(0,t.useState)("closed"),[w,A]=(0,t.useState)(!1),[P,I]=(0,t.useState)(0),D=(0,t.useRef)(null),L=(0,t.useRef)(null),R=(0,t.useRef)(!1),W=(0,t.useRef)(!1),$=(0,t.useRef)(u),M=(0,t.useRef)(y),O=(0,t.useRef)(b),_=(0,t.useRef)(m),N=(0,t.useRef)(d);$.current=u,M.current=y,O.current=b,_.current=m,N.current=d;let z=JSON.stringify(o),G=JSON.stringify(g),j=JSON.stringify(n),X=(0,t.useCallback)(()=>{R.current=!0,L.current&&(clearTimeout(L.current),L.current=null),D.current&&(D.current.close(),D.current=null),F(!1),H("closed"),A(!0)},[]),U=(0,t.useCallback)(()=>{p([]),h(void 0)},[]);return(0,t.useEffect)(()=>{if(!r||!c){D.current&&(D.current.close(),D.current=null),F(!1);return}R.current=!1,W.current=!1,p([]),h(void 0),C(null),A(!1),I(0),H("connecting");let e=0;return!function t(){let c=new EventSource(function(r,e){let o=r.startsWith("http")?r:`/api${r}`;if(!e||0===Object.keys(e).length)return o;let t=new URLSearchParams;for(let[r,o]of Object.entries(e))null!=o&&t.set(r,String(o));let a=o.includes("?")?"&":"?";return`${o}${a}${t.toString()}`}(r,g));D.current=c;let d=Array.isArray(o)?o:[o],u=r=>{try{let e=N.current(r.data);h(e),p(r=>{let o=[...r,e];return s>0&&o.length>s?o.slice(-s):o}),$.current?.(e)}catch(e){let r=e instanceof Error?e:Error("Failed to parse SSE event data");C(r),O.current?.(r)}};for(let r of d)c.addEventListener(r,u);for(let r of[...n??[],...a?[a]:[]])c.addEventListener(r,()=>{W.current=!0,c.close(),D.current=null,F(!1),H("closed"),A(!0),_.current?.()});c.onopen=()=>{e=0,I(0),F(!0),H("live"),C(null),M.current?.()},c.onerror=()=>{if(c.close(),D.current=null,F(!1),R.current||W.current)return void H("closed");let r=Error("SSE connection lost");C(r),O.current?.(r),i&&e<l?(I(++e),H("reconnecting"),L.current=setTimeout(t,v*Math.pow(2,e-1))):H("closed")}}(),()=>{R.current=!0,L.current&&(clearTimeout(L.current),L.current=null),D.current&&(D.current.close(),D.current=null)}},[r,c,a,i,l,v,s,z,G,j]),{events:x,latest:S,isConnected:T,connectionStatus:E,closedClean:w,error:k,close:X,clear:U,reconnectCount:P}}function f(r){return JSON.parse(r)}function S(r){let[e,o]=(0,t.useState)(()=>r?h(r):null);return(0,t.useEffect)(()=>{if(!r)return void o(null);o(h(r));let e=setInterval(()=>{o(h(r))},1e3);return()=>clearInterval(e)},[r]),e}function h(r){let e=Math.max(0,Math.floor((Date.now()-new Date(r).getTime())/1e3));if(e<60)return`${e}s`;let o=Math.floor(e/60);if(o<60)return`${o}m ${(e%60).toString().padStart(2,"0")}s`;let t=Math.floor(o/60);return`${t}h ${(o%60).toString().padStart(2,"0")}m`}function k(r,e){let{getNextCursor:o,params:t,enabled:a,staleTime:n,cursorParam:i="cursor",initialCursor:l}=e,v=(0,c.useInfiniteQuery)({queryKey:["studio-infinite",r,t],queryFn:async({pageParam:e})=>C(function(r,e,o,t){let a=new URLSearchParams;if(e)for(let[r,o]of Object.entries(e))null!=o&&a.set(r,String(o));null!=t&&a.set(o,String(t));let n=a.toString(),c=r.startsWith("http")?r:`/api${r}`;return n?`${c}?${n}`:c}(r,t,i,e)),initialPageParam:l,getNextPageParam:o,enabled:a,staleTime:n}),s=v.data?.pages??[],d=s.flatMap(r=>Array.isArray(r)?r:[r]);return{pages:s,data:d,isLoading:v.isLoading,isFetching:v.isFetching,isFetchingNextPage:v.isFetchingNextPage,hasNextPage:v.hasNextPage,fetchNextPage:v.fetchNextPage,error:v.error,isError:v.isError,refetch:v.refetch}}async function C(r){let e=await fetch(r);if(!e.ok)throw Error(`GET ${r} failed: ${e.status} ${e.statusText}`);let o=await e.json();return o&&"object"==typeof o&&"ok"in o&&"data"in o?o.data:o}function T(r,e={}){let{enabled:o=!0,reconnect:a=!1,maxReconnects:n=5,reconnectIntervalMs:c=2e3,protocols:i,parse:l=F,serialize:v=E,maxMessages:s=100,onMessage:d,onOpen:g,onClose:u,onError:y}=e,[b,m]=(0,t.useState)([]),[x,p]=(0,t.useState)(void 0),[B,f]=(0,t.useState)("disconnected"),[S,h]=(0,t.useState)(null),[k,C]=(0,t.useState)(0),H=(0,t.useRef)(null),w=(0,t.useRef)(null),A=(0,t.useRef)(!1),P=(0,t.useRef)(d),I=(0,t.useRef)(g),D=(0,t.useRef)(u),L=(0,t.useRef)(y),R=(0,t.useRef)(l),W=(0,t.useRef)(v);P.current=d,I.current=g,D.current=u,L.current=y,R.current=l,W.current=v;let $=(0,t.useCallback)(()=>{w.current&&(clearTimeout(w.current),w.current=null),H.current&&(H.current.close(),H.current=null)},[]),M=(0,t.useCallback)(()=>{if(!r)return;$(),A.current=!1,f("connecting"),h(null);let e=0;!function o(){let t=function(r){if(r.startsWith("ws://")||r.startsWith("wss://"))return r;let e=r.startsWith("/")?r:`/${r}`;if("u">typeof window){let r=window.__KB_STUDIO_CONFIG__,o=r?.KB_API_BASE_URL;if(o)try{let r=new URL(o).origin,t=r.startsWith("https")?"wss:":"ws:";return`${t}//${new URL(r).host}${e}`}catch{}}let o="https:"===window.location.protocol?"wss:":"ws:";return`${o}//${window.location.host}${e}`}(r),l=i?new WebSocket(t,i):new WebSocket(t);H.current=l,l.onopen=r=>{e=0,C(0),f("connected"),h(null),I.current?.(r)},l.onmessage=r=>{try{let e=R.current(r.data);p(e),m(r=>{let o=[...r,e];return s>0&&o.length>s?o.slice(-s):o}),P.current?.(e)}catch{}},l.onclose=r=>{H.current=null,f("disconnected"),D.current?.(r),!A.current&&a&&e<n&&1e3!==r.code&&(C(++e),w.current=setTimeout(o,c*Math.pow(2,e-1)))},l.onerror=r=>{f("error"),h(r),L.current?.(r)}}()},[r,i,a,n,c,s,$]),O=(0,t.useCallback)((r,e)=>{A.current=!0,w.current&&(clearTimeout(w.current),w.current=null),H.current&&(H.current.close(r,e),H.current=null),f("disconnected")},[]),_=(0,t.useCallback)(r=>{H.current?.readyState===WebSocket.OPEN&&H.current.send(W.current(r))},[]),N=(0,t.useCallback)(r=>{H.current?.readyState===WebSocket.OPEN&&H.current.send(r)},[]),z=(0,t.useCallback)(()=>{m([]),p(void 0)},[]);return(0,t.useEffect)(()=>{if(!r||!o){$(),f("disconnected");return}return m([]),p(void 0),M(),()=>{A.current=!0,$()}},[r,o]),{send:_,sendRaw:N,messages:b,latest:x,status:B,isConnected:"connected"===B,error:S,connect:M,disconnect:O,clear:z,reconnectCount:k}}function F(r){return JSON.parse(r)}function E(r){return JSON.stringify(r)}function H(){let{permissions:r}=g();return{hasPermission:(0,t.useCallback)(e=>r.includes(e),[r]),permissions:r}}function w(){let r=(0,i.useNavigate)(),e=(0,i.useLocation)(),o=(0,t.useCallback)(e=>r(e),[r]),a=(0,t.useCallback)(()=>r(-1),[r]),n=(0,t.useCallback)(r=>window.open(r,"_blank","noopener"),[]);return{navigate:o,currentPath:e.pathname,goBack:a,openExternal:n}}function A(){let r=(0,t.useCallback)(r=>{l.notification[r.type]({message:r.message,description:r.description,duration:r.duration??4.5})},[]),e=(0,t.useCallback)((e,o)=>r({type:"success",message:e,description:o}),[r]),o=(0,t.useCallback)((e,o)=>r({type:"error",message:e,description:o}),[r]),a=(0,t.useCallback)((e,o)=>r({type:"warning",message:e,description:o}),[r]),n=(0,t.useCallback)((e,o)=>r({type:"info",message:e,description:o}),[r]);return{notify:r,success:e,error:o,warning:a,info:n}}var P={bgPrimary:v.lightSemanticColors["bg-primary"],bgSecondary:v.lightSemanticColors["bg-secondary"],bgTertiary:v.lightSemanticColors["bg-tertiary"],textPrimary:v.lightSemanticColors["text-primary"],textSecondary:v.lightSemanticColors["text-secondary"],textTertiary:v.lightSemanticColors["text-tertiary"],textInverse:v.lightSemanticColors["text-inverse"],borderPrimary:v.lightSemanticColors["border-primary"],borderSecondary:v.lightSemanticColors["border-secondary"],link:v.lightSemanticColors.link,linkHover:v.lightSemanticColors["link-hover"],accentSubtle:v.lightSemanticColors["accent-subtle"],success:v.lightSemanticColors.success,warning:v.lightSemanticColors.warning,error:v.lightSemanticColors.error,info:v.lightSemanticColors.info,disabled:v.lightSemanticColors.disabled,shadow:v.lightSemanticColors.shadow},I={bgPrimary:v.darkSemanticColors["bg-primary"],bgSecondary:v.darkSemanticColors["bg-secondary"],bgTertiary:v.darkSemanticColors["bg-tertiary"],textPrimary:v.darkSemanticColors["text-primary"],textSecondary:v.darkSemanticColors["text-secondary"],textTertiary:v.darkSemanticColors["text-tertiary"],textInverse:v.darkSemanticColors["text-inverse"],borderPrimary:v.darkSemanticColors["border-primary"],borderSecondary:v.darkSemanticColors["border-secondary"],link:v.darkSemanticColors.link,linkHover:v.darkSemanticColors["link-hover"],accentSubtle:v.darkSemanticColors["accent-subtle"],success:v.darkSemanticColors.success,warning:v.darkSemanticColors.warning,error:v.darkSemanticColors.error,info:v.darkSemanticColors.info,disabled:v.darkSemanticColors.disabled,shadow:v.darkSemanticColors.shadow};function D(){return"u"<typeof document?"light":document.documentElement.classList.contains("dark")?"dark":"light"}function L(){let{token:r}=l.theme.useToken(),[e,o]=t.useState(D);return t.useEffect(()=>{let r=new MutationObserver(()=>{o(D())});return r.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>r.disconnect()},[]),{mode:e,antdToken:r,semantic:"dark"===e?I:P,tokens:{colors:v.colors,spacing:v.spacing,typography:v.typography,radius:v.radius,shadows:v.shadows}}}function R(){return{colorPrimary:"var(--link, #0c66ff)",colorPrimaryHover:"var(--link-hover, #0050cc)",colorPrimaryActive:"var(--link-hover, #0050cc)",colorPrimaryBg:"var(--accent-subtle, #dbeafe)",colorPrimaryBgHover:"var(--accent-subtle, #dbeafe)",colorPrimaryBorder:"var(--link, #0c66ff)",colorPrimaryBorderHover:"var(--link-hover, #0050cc)",colorPrimaryText:"var(--link, #0c66ff)",colorPrimaryTextHover:"var(--link-hover, #0050cc)",colorPrimaryTextActive:"var(--link-hover, #0050cc)",colorSuccess:"var(--success, #16A34A)",colorSuccessHover:"var(--success, #16A34A)",colorSuccessActive:"var(--success, #16A34A)",colorSuccessBg:"var(--bg-tertiary, #F3F4F6)",colorSuccessBgHover:"var(--bg-tertiary, #F3F4F6)",colorSuccessBorder:"var(--success, #16A34A)",colorSuccessBorderHover:"var(--success, #16A34A)",colorSuccessText:"var(--success, #16A34A)",colorSuccessTextHover:"var(--success, #16A34A)",colorSuccessTextActive:"var(--success, #16A34A)",colorWarning:"var(--warning, #F59E0B)",colorWarningHover:"var(--warning, #F59E0B)",colorWarningActive:"var(--warning, #F59E0B)",colorWarningBg:"var(--bg-tertiary, #F3F4F6)",colorWarningBgHover:"var(--bg-tertiary, #F3F4F6)",colorWarningBorder:"var(--warning, #F59E0B)",colorWarningBorderHover:"var(--warning, #F59E0B)",colorWarningText:"var(--warning, #F59E0B)",colorWarningTextHover:"var(--warning, #F59E0B)",colorWarningTextActive:"var(--warning, #F59E0B)",colorWarningOutline:"rgba(245, 158, 11, 0.2)",colorError:"var(--error, #DC2626)",colorErrorHover:"var(--error, #DC2626)",colorErrorActive:"var(--error, #DC2626)",colorErrorBg:"var(--bg-tertiary, #F3F4F6)",colorErrorBgHover:"var(--bg-tertiary, #F3F4F6)",colorErrorBorder:"var(--error, #DC2626)",colorErrorBorderHover:"var(--error, #DC2626)",colorErrorText:"var(--error, #DC2626)",colorErrorTextHover:"var(--error, #DC2626)",colorErrorTextActive:"var(--error, #DC2626)",colorErrorOutline:"rgba(220, 38, 38, 0.2)",colorInfo:"var(--info, #0EA5E9)",colorInfoHover:"var(--info, #0EA5E9)",colorInfoActive:"var(--info, #0EA5E9)",colorInfoBg:"var(--bg-tertiary, #F3F4F6)",colorInfoBgHover:"var(--bg-tertiary, #F3F4F6)",colorInfoBorder:"var(--info, #0EA5E9)",colorInfoBorderHover:"var(--info, #0EA5E9)",colorInfoText:"var(--info, #0EA5E9)",colorInfoTextHover:"var(--info, #0EA5E9)",colorInfoTextActive:"var(--info, #0EA5E9)",colorBgContainer:"var(--bg-secondary, #FFFFFF)",colorBgBase:"var(--bg-primary, #F9FAFB)",colorBgElevated:"var(--bg-secondary, #FFFFFF)",colorBgLayout:"var(--bg-primary, #F9FAFB)",colorBgSpotlight:"var(--bg-tertiary, #F3F4F6)",colorBgMask:"rgba(0, 0, 0, 0.45)",colorBgTextHover:"var(--bg-hover, #F3F4F6)",colorBgTextActive:"var(--bg-hover, #F3F4F6)",colorBgContainerDisabled:"var(--bg-tertiary, #F3F4F6)",colorText:"var(--text-primary, #111827)",colorTextBase:"var(--text-primary, #111827)",colorTextSecondary:"var(--text-secondary, #6B7280)",colorTextTertiary:"var(--text-tertiary, #6B7280)",colorTextQuaternary:"var(--text-tertiary, #6B7280)",colorTextDisabled:"var(--disabled, #9CA3AF)",colorTextHeading:"var(--text-primary, #111827)",colorTextLabel:"var(--text-secondary, #6B7280)",colorTextDescription:"var(--text-secondary, #6B7280)",colorTextPlaceholder:"var(--text-tertiary, #6B7280)",colorTextLightSolid:"var(--text-inverse, #FFFFFF)",colorBorder:"var(--border-primary, #E5E7EB)",colorBorderSecondary:"var(--border-secondary, #D4D4D4)",colorBorderBg:"var(--bg-secondary, #FFFFFF)",colorSplit:"var(--border-primary, #E5E7EB)",colorFill:"var(--bg-tertiary, #F3F4F6)",colorFillSecondary:"var(--bg-tertiary, #F3F4F6)",colorFillTertiary:"var(--bg-primary, #F9FAFB)",colorFillQuaternary:"var(--bg-primary, #F9FAFB)",colorFillContent:"var(--bg-hover, #F3F4F6)",colorFillContentHover:"var(--bg-hover, #F3F4F6)",colorFillAlter:"var(--bg-tertiary, #F3F4F6)",colorWhite:"#FFFFFF",boxShadow:"0 2px 24px rgba(0,0,0,0.07)",boxShadowSecondary:"0 4px 32px rgba(0,0,0,0.08)",boxShadowTertiary:"0 8px 48px rgba(0,0,0,0.10)",borderRadius:10,borderRadiusLG:16,borderRadiusSM:8,borderRadiusXS:6,borderRadiusOuter:8,controlHeight:36,controlHeightLG:40,controlHeightSM:28,controlHeightXS:22,fontFamily:"var(--font-body, 'Geist Sans', 'Segoe UI', sans-serif)",fontSize:14,fontSizeLG:16,fontSizeSM:12,fontSizeXL:20,fontSizeHeading1:38,fontSizeHeading2:30,fontSizeHeading3:24,fontSizeHeading4:20,fontSizeHeading5:16,fontSizeIcon:12,fontWeightStrong:600,lineHeight:1.5714285714285714,lineHeightLG:1.5,lineHeightSM:1.6666666666666667,padding:16,paddingLG:24,paddingSM:12,paddingXS:8,paddingXXS:4,margin:16,marginLG:24,marginSM:12,marginXS:8,marginXXS:4,motionDurationFast:"0.1s",motionDurationMid:"0.2s",motionDurationSlow:"0.3s",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",colorLink:"var(--link, #0c66ff)",colorLinkHover:"var(--link-hover, #0050cc)",colorLinkActive:"var(--link-hover, #0050cc)",colorIcon:"var(--text-secondary, #6B7280)",colorIconHover:"var(--text-primary, #111827)",colorHighlight:"var(--link, #0c66ff)",controlOutline:"rgba(12, 102, 255, 0.15)",controlOutlineWidth:2,controlInteractiveSize:16,controlItemBgHover:"var(--bg-hover, #F3F4F6)",controlItemBgActive:"var(--accent-subtle, #dbeafe)",controlItemBgActiveHover:"var(--accent-subtle, #dbeafe)",controlItemBgActiveDisabled:"var(--bg-tertiary, #F3F4F6)",controlTmpOutline:"rgba(12, 102, 255, 0.08)",screenXS:480,screenSM:576,screenMD:768,screenLG:992,screenXL:1200,screenXXL:1600}}function W(){return{Table:{headerBg:"var(--bg-tertiary)",headerColor:"var(--text-primary)",borderColor:"var(--border-primary)",colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",rowHoverBg:"var(--bg-hover)",rowSelectedBg:"var(--accent-subtle)",rowSelectedHoverBg:"var(--accent-subtle)",rowExpandedBg:"var(--bg-secondary)",bodySortBg:"var(--bg-tertiary)",headerSortActiveBg:"var(--bg-tertiary)",headerSortHoverBg:"var(--bg-tertiary)",headerFilterHoverBg:"var(--bg-tertiary)",fixedHeaderSortActiveBg:"var(--bg-tertiary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)",expandIconBg:"var(--bg-secondary)",footerBg:"var(--bg-tertiary)",footerColor:"var(--text-primary)",selectionColumnWidth:60,stickyScrollBarBg:"var(--bg-tertiary)",stickyScrollBarBorderRadius:4},Tag:{defaultBg:"var(--bg-tertiary)",defaultColor:"var(--text-primary)",colorBorder:"var(--border-primary)",colorSuccess:"var(--success)",colorError:"var(--error)",colorWarning:"var(--warning)",colorInfo:"var(--info)"},Badge:{colorError:"var(--error)",colorSuccess:"var(--success)",colorWarning:"var(--warning)",colorInfo:"var(--info)",colorText:"var(--text-primary)"},Alert:{colorSuccess:"var(--success)",colorError:"var(--error)",colorWarning:"var(--warning)",colorInfo:"var(--info)",colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)",colorSuccessBg:"var(--bg-tertiary)",colorErrorBg:"var(--bg-tertiary)",colorWarningBg:"var(--bg-tertiary)",colorInfoBg:"var(--bg-tertiary)",colorSuccessBorder:"var(--success)",colorErrorBorder:"var(--error)",colorWarningBorder:"var(--warning)",colorInfoBorder:"var(--info)"},Card:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorBorderSecondary:"var(--border-primary)",headerBg:"var(--bg-secondary)",actionsBg:"var(--bg-tertiary)",extraColor:"var(--text-secondary)"},Descriptions:{colorText:"var(--text-primary)",colorTextLabel:"var(--text-secondary)",colorBorder:"var(--border-primary)"},Button:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorPrimary:"var(--link)",colorPrimaryHover:"var(--link-hover)",colorPrimaryActive:"var(--link-hover)",primaryColor:"var(--text-inverse)",primaryShadow:"0 2px 0 rgba(12, 102, 255, 0.15)",defaultBg:"var(--bg-secondary)",defaultColor:"var(--text-primary)",defaultBorderColor:"var(--border-primary)",defaultShadow:"0 2px 0 rgba(0, 0, 0, 0.015)",defaultHoverBg:"var(--bg-hover)",defaultHoverColor:"var(--text-primary)",defaultHoverBorderColor:"var(--border-secondary)",defaultActiveBg:"var(--bg-hover)",defaultActiveColor:"var(--text-primary)",defaultActiveBorderColor:"var(--border-secondary)",ghostBg:"transparent",defaultGhostColor:"var(--text-primary)",defaultGhostBorderColor:"var(--border-primary)",borderColorDisabled:"var(--border-primary)",colorBgContainerDisabled:"var(--bg-tertiary)",textTextColor:"var(--text-secondary)",textTextHoverColor:"var(--text-primary)",textTextActiveColor:"var(--text-primary)",textHoverBg:"var(--accent-subtle)",linkHoverBg:"transparent",colorLink:"var(--link)",colorLinkHover:"var(--link-hover)",colorLinkActive:"var(--link-hover)",solidTextColor:"var(--text-primary)",dangerColor:"var(--error)",dangerShadow:"0 2px 0 rgba(220, 38, 38, 0.1)",colorErrorBg:"transparent",colorErrorBgHover:"var(--bg-hover)",colorErrorBorder:"var(--error)",colorErrorBorderHover:"var(--error)",colorErrorHover:"var(--error)",colorErrorActive:"var(--error)"},Input:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorTextPlaceholder:"var(--text-tertiary)",hoverBorderColor:"var(--border-secondary)",activeBorderColor:"var(--link)",activeShadow:"0 0 0 3px rgba(12, 102, 255, 0.12)",errorActiveShadow:"0 0 0 2px rgba(220, 38, 38, 0.1)",warningActiveShadow:"0 0 0 2px rgba(245, 158, 11, 0.1)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)"},Select:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorBgElevated:"var(--bg-secondary)",colorTextPlaceholder:"var(--text-tertiary)",colorPrimary:"var(--link)",colorPrimaryHover:"var(--link-hover)",optionSelectedBg:"var(--accent-subtle)",optionSelectedColor:"var(--link)",optionActiveBg:"var(--bg-hover)",optionSelectedFontWeight:600,multipleItemBg:"var(--bg-tertiary)",multipleItemBorderColor:"var(--border-primary)",multipleItemColorDisabled:"var(--disabled)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)",selectorBg:"var(--bg-secondary)"},Dropdown:{colorText:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorTextDisabled:"var(--disabled)",controlItemBgHover:"var(--bg-hover)",controlItemBgActive:"var(--accent-subtle)",controlItemBgActiveHover:"var(--accent-subtle)",colorPrimary:"var(--link)",colorPrimaryHover:"var(--link-hover)",colorBgContainer:"var(--bg-secondary)",colorSplit:"var(--border-primary)",paddingBlock:8,controlPaddingHorizontal:12},Menu:{colorText:"var(--text-primary)",colorTextSecondary:"var(--text-secondary)",colorBgContainer:"var(--bg-sidebar)",colorBorder:"var(--border-primary)",colorSplit:"var(--border-primary)",itemColor:"var(--text-primary)",itemBg:"var(--bg-secondary)",itemHoverBg:"var(--bg-hover)",itemHoverColor:"var(--link)",itemSelectedBg:"transparent",itemSelectedColor:"var(--link)",itemActiveBg:"transparent",darkItemBg:"var(--bg-secondary)",darkItemColor:"var(--text-primary)",darkItemHoverBg:"var(--bg-hover)",darkItemSelectedBg:"transparent",darkItemSelectedColor:"var(--link)",darkSubMenuItemBg:"var(--bg-secondary)",subMenuItemBg:"var(--bg-secondary)",popupBg:"var(--bg-secondary)",colorPrimary:"var(--link)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)",groupTitleColor:"var(--text-tertiary)",groupTitleFontSize:11,itemBorderRadius:8,subMenuItemBorderRadius:6,itemPaddingInline:12},Tabs:{colorText:"var(--text-secondary)",colorTextHeading:"var(--text-primary)",colorBorder:"var(--border-primary)",colorBorderSecondary:"var(--border-primary)",colorPrimary:"var(--link)",itemHoverColor:"var(--link)",itemSelectedColor:"var(--link)",itemActiveColor:"var(--link)",inkBarColor:"var(--link)"},Modal:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",colorBorder:"var(--border-primary)",headerBg:"var(--bg-secondary)",footerBg:"var(--bg-tertiary)",contentBg:"var(--bg-secondary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)"},Drawer:{colorText:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)"},Popover:{colorText:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",colorBorder:"var(--border-primary)"},Tooltip:{colorText:"var(--text-primary)",colorBgSpotlight:"var(--bg-secondary)",colorTextLightSolid:"var(--text-primary)"},List:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBorder:"var(--border-primary)",colorSplit:"var(--border-primary)",metaMarginBottom:8,avatarMarginRight:16},Switch:{colorPrimary:"var(--link)",colorPrimaryHover:"var(--link-hover)"},Radio:{colorPrimary:"var(--link)",colorText:"var(--text-primary)",buttonCheckedBg:"var(--link)",buttonCheckedBgDisabled:"var(--disabled)",buttonColor:"var(--text-primary)",buttonSolidCheckedColor:"var(--text-inverse)",buttonSolidCheckedBg:"var(--link)",buttonSolidCheckedHoverBg:"var(--link-hover)",buttonSolidCheckedActiveBg:"var(--link-hover)"},Checkbox:{colorPrimary:"var(--link)",colorText:"var(--text-primary)"},DatePicker:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorBgElevated:"var(--bg-secondary)",colorTextPlaceholder:"var(--text-tertiary)",colorTextDisabled:"var(--disabled)",colorLink:"var(--link)",colorLinkHover:"var(--link-hover)",cellHoverBg:"var(--bg-hover)",cellActiveWithRangeBg:"var(--accent-subtle)",cellBgDisabled:"var(--bg-tertiary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)"},Form:{colorText:"var(--text-primary)",colorTextLabel:"var(--text-secondary)",colorError:"var(--error)",colorWarning:"var(--warning)"},Pagination:{colorText:"var(--text-primary)",colorTextDisabled:"var(--disabled)",colorBgContainer:"var(--bg-secondary)",colorPrimary:"var(--link)",colorPrimaryHover:"var(--link-hover)",itemBg:"var(--bg-secondary)",itemActiveBg:"var(--link)",itemActiveBgDisabled:"var(--bg-tertiary)",itemInputBg:"var(--bg-secondary)",itemLinkBg:"var(--bg-secondary)",colorBgTextHover:"var(--bg-hover)"},Steps:{colorText:"var(--text-primary)",colorTextDescription:"var(--text-secondary)",colorPrimary:"var(--link)",colorBorder:"var(--border-primary)"},Breadcrumb:{colorText:"var(--text-secondary)",colorTextDescription:"var(--text-tertiary)",linkColor:"var(--link)",linkHoverColor:"var(--link-hover)",separatorColor:"var(--text-tertiary)"},Progress:{colorText:"var(--text-primary)",colorSuccess:"var(--success)",colorError:"var(--error)",remainingColor:"var(--bg-tertiary)"},Skeleton:{colorFill:"var(--bg-tertiary)",colorFillContent:"var(--bg-hover)"},Spin:{colorPrimary:"var(--link)",colorBgContainer:"var(--bg-secondary)"},Divider:{colorSplit:"var(--border-primary)",colorText:"var(--text-secondary)"},Layout:{headerBg:"var(--bg-secondary)",bodyBg:"var(--bg-primary)",triggerBg:"var(--bg-tertiary)",colorText:"var(--text-primary)"},Collapse:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBorder:"var(--border-primary)",colorBgContainer:"var(--bg-secondary)",headerBg:"var(--bg-tertiary)"},Carousel:{colorBgContainer:"var(--bg-secondary)",dotActiveWidth:24},Anchor:{colorPrimary:"var(--link)",colorText:"var(--text-secondary)",linkPaddingBlock:4},Timeline:{colorText:"var(--text-primary)",colorTextDescription:"var(--text-secondary)",tailColor:"var(--border-primary)",dotBg:"var(--bg-secondary)"},Transfer:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",controlItemBgActive:"var(--bg-hover)"},Tree:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorPrimary:"var(--link)",nodeHoverBg:"var(--bg-hover)",nodeSelectedBg:"var(--accent-subtle)"},TreeSelect:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorBgElevated:"var(--bg-secondary)",nodeHoverBg:"var(--bg-hover)",nodeSelectedBg:"var(--accent-subtle)"},Cascader:{colorText:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorBgElevated:"var(--bg-secondary)",optionSelectedBg:"var(--bg-hover)"},Segmented:{colorText:"var(--text-primary)",colorTextLabel:"var(--text-secondary)",colorBgLayout:"var(--bg-tertiary)",itemSelectedBg:"var(--bg-secondary)",itemSelectedColor:"var(--link)",itemHoverBg:"var(--bg-hover)"},Rate:{colorText:"var(--warning)"},Slider:{colorPrimary:"var(--link)",colorPrimaryBorder:"var(--link)",trackBg:"var(--bg-tertiary)",trackHoverBg:"var(--bg-hover)"},Upload:{colorText:"var(--text-primary)",colorTextDescription:"var(--text-secondary)",colorBorder:"var(--border-primary)",colorFillAlter:"var(--bg-tertiary)",colorPrimary:"var(--link)"},Calendar:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBgContainer:"var(--bg-secondary)",colorBorder:"var(--border-primary)",itemActiveBg:"var(--accent-subtle)"},Image:{colorTextLightSolid:"var(--text-primary)",colorBgMask:"rgba(0, 0, 0, 0.45)"},Statistic:{colorText:"var(--text-primary)",colorTextDescription:"var(--text-secondary)"},Result:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorTextDescription:"var(--text-secondary)"},Empty:{colorText:"var(--text-secondary)",colorTextDescription:"var(--text-tertiary)"},Message:{colorText:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",contentBg:"var(--bg-secondary)",contentPadding:"10px 16px",colorSuccess:"var(--success)",colorError:"var(--error)",colorWarning:"var(--warning)",colorInfo:"var(--info)"},Notification:{colorText:"var(--text-primary)",colorTextHeading:"var(--text-primary)",colorBgElevated:"var(--bg-secondary)",colorBorder:"var(--border-primary)",colorIcon:"var(--text-secondary)",colorIconHover:"var(--text-primary)",colorSuccess:"var(--success)",colorError:"var(--error)",colorWarning:"var(--warning)",colorInfo:"var(--info)"}}}o.d(e,{PageContextProvider:()=>d,getAntDesignComponents:()=>W,getAntDesignTokens:()=>R,useData:()=>b,useElapsedTimer:()=>S,useEventBus:()=>y,useInfiniteData:()=>k,useMutateData:()=>m,useNavigation:()=>w,useNotification:()=>A,usePage:()=>u,usePageContext:()=>g,usePermissions:()=>H,useSSE:()=>B,useTheme:()=>L,useWebSocket:()=>T})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.rspackChunk_kb_labs_commit_entry=self.rspackChunk_kb_labs_commit_entry||[]).push([[405],{101(e,t){var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),u=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),i=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),l=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),d=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,m={};function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function S(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var E=S.prototype=new v;E.constructor=S,_(E,b.prototype),E.isPureReactComponent=!0;var g=Array.isArray;function k(){}var w={H:null,A:null,T:null,S:null},H=Object.prototype.hasOwnProperty;function j(e,t,r){var o=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==o?o:null,props:r}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var R=/\/+/g;function $(e,t){var n,r;return"object"==typeof e&&null!==e&&null!=e.key?(n=""+e.key,r={"=":"=0",":":"=2"},"$"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36)}function T(e,t,o){if(null==e)return e;var u=[],c=0;return!function e(t,o,u,c,s){var i,a,f,l=typeof t;("undefined"===l||"boolean"===l)&&(t=null);var y=!1;if(null===t)y=!0;else switch(l){case"bigint":case"string":case"number":y=!0;break;case"object":switch(t.$$typeof){case n:case r:y=!0;break;case p:return e((y=t._init)(t._payload),o,u,c,s)}}if(y)return s=s(t),y=""===c?"."+$(t,0):c,g(s)?(u="",null!=y&&(u=y.replace(R,"$&/")+"/"),e(s,o,u,"",function(e){return e})):null!=s&&(C(s)&&(i=s,a=u+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(R,"$&/")+"/")+y,s=j(i.type,a,i.props)),o.push(s)),1;y=0;var h=""===c?".":c+":";if(g(t))for(var _=0;_<t.length;_++)l=h+$(c=t[_],_),y+=e(c,o,u,l,s);else if("function"==typeof(_=null===(f=t)||"object"!=typeof f?null:"function"==typeof(f=d&&f[d]||f["@@iterator"])?f:null))for(t=_.call(t),_=0;!(c=t.next()).done;)l=h+$(c=c.value,_++),y+=e(c,o,u,l,s);else if("object"===l){if("function"==typeof t.then)return e(function(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch("string"==typeof e.status?e.then(k,k):(e.status="pending",e.then(function(t){"pending"===e.status&&(e.status="fulfilled",e.value=t)},function(t){"pending"===e.status&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}(t),o,u,c,s);throw Error("Objects are not valid as a React child (found: "+("[object Object]"===(o=String(t))?"object with keys {"+Object.keys(t).join(", ")+"}":o)+"). If you meant to render a collection of children, use an array instead.")}return y}(e,u,"","",function(e){return t.call(o,e,c++)}),u}function x(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){(0===e._status||-1===e._status)&&(e._status=1,e._result=t)},function(t){(0===e._status||-1===e._status)&&(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var A="function"==typeof reportError?reportError:function(e){if("object"==typeof window&&"function"==typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"==typeof e&&null!==e&&"string"==typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"==typeof process&&"function"==typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};t.Activity=y,t.Children={map:T,forEach:function(e,t,n){T(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return T(e,function(){t++}),t},toArray:function(e){return T(e,function(e){return e})||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=c,t.PureComponent=S,t.StrictMode=u,t.Suspense=f,t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,t.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},t.cache=function(e){return function(){return e.apply(null,arguments)}},t.cacheSignal=function(){return null},t.cloneElement=function(e,t,n){if(null==e)throw Error("The argument must be a React element, but you passed "+e+".");var r=_({},e.props),o=e.key;if(null!=t)for(u in void 0!==t.key&&(o=""+t.key),t)H.call(t,u)&&"key"!==u&&"__self"!==u&&"__source"!==u&&("ref"!==u||void 0!==t.ref)&&(r[u]=t[u]);var u=arguments.length-2;if(1===u)r.children=n;else if(1<u){for(var c=Array(u),s=0;s<u;s++)c[s]=arguments[s+2];r.children=c}return j(e.type,o,r)},t.createContext=function(e){return(e={$$typeof:i,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider=e,e.Consumer={$$typeof:s,_context:e},e},t.createElement=function(e,t,n){var r,o={},u=null;if(null!=t)for(r in void 0!==t.key&&(u=""+t.key),t)H.call(t,r)&&"key"!==r&&"__self"!==r&&"__source"!==r&&(o[r]=t[r]);var c=arguments.length-2;if(1===c)o.children=n;else if(1<c){for(var s=Array(c),i=0;i<c;i++)s[i]=arguments[i+2];o.children=s}if(e&&e.defaultProps)for(r in c=e.defaultProps)void 0===o[r]&&(o[r]=c[r]);return j(e,u,o)},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:a,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:x}},t.memo=function(e,t){return{$$typeof:l,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),o=w.S;null!==o&&o(n,r),"object"==typeof r&&null!==r&&"function"==typeof r.then&&r.then(k,A)}catch(e){A(e)}finally{null!==t&&null!==n.types&&(t.types=n.types),w.T=t}},t.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},t.use=function(e){return w.H.use(e)},t.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},t.useCallback=function(e,t){return w.H.useCallback(e,t)},t.useContext=function(e){return w.H.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},t.useEffect=function(e,t){return w.H.useEffect(e,t)},t.useEffectEvent=function(e){return w.H.useEffectEvent(e)},t.useId=function(){return w.H.useId()},t.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},t.useMemo=function(e,t){return w.H.useMemo(e,t)},t.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},t.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},t.useRef=function(e){return w.H.useRef(e)},t.useState=function(e){return w.H.useState(e)},t.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},t.useTransition=function(){return w.H.useTransition()},t.version="19.2.5"},6740(e,t,n){e.exports=n(101)}}]);
|