@pikku/cli 0.12.57 → 0.12.58
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/cli.schema.json +1 -1
- package/console-app/assets/{index-xN8LW0II.js → index-CcpTZVoP.js} +1 -1
- package/console-app/index.html +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +6 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +19 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +18 -3
- package/dist/.pikku/function/pikku-functions.gen.js +3 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -0
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +3 -1
- package/dist/.pikku/schemas/schemas/DevInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/ServeInput.schema.json +1 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/src/cli.wiring.js +19 -1
- package/dist/src/deploy/bundler/bundler.js +11 -1
- package/dist/src/fabric/functions/validate.function.js +23 -3
- package/dist/src/functions/commands/dev.d.ts +3 -0
- package/dist/src/functions/commands/dev.js +22 -8
- package/dist/src/functions/commands/serve-console.d.ts +4 -0
- package/dist/src/functions/commands/serve-console.js +62 -0
- package/dist/src/functions/commands/serve.d.ts +10 -0
- package/dist/src/functions/commands/serve.js +143 -0
- package/dist/src/functions/commands/tests-init.js +6 -3
- package/dist/src/functions/db/db-codegen.d.ts +1 -1
- package/dist/src/functions/db/db-codegen.js +6 -4
- package/dist/src/functions/db/local-db.js +1 -1
- package/dist/src/functions/db/zod-codegen.d.ts +1 -1
- package/dist/src/functions/validate/workspace-validate.js +1 -1
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +6 -0
- package/dist/src/utils/parse-cli-filters.d.ts +3 -0
- package/dist/src/utils/parse-cli-filters.js +8 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/cli.schema.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"properties":{"configFile":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"wires":{"type":"array","items":{"type":"string"}},"excludeWires":{"type":"array","items":{"type":"string"}},"userSessionType":{"type":"string"},"singletonServicesFactoryType":{"type":"string"},"wireServicesFactoryType":{"type":"string"},"outDir":{"type":"string"},"schemaDirectory":{"type":"string"},"typesDeclarationFile":{"type":"string"},"functionsFile":{"type":"string"},"functionsMetaFile":{"type":"string"},"functionsMetaJsonFile":{"type":"string"},"functionTypesFile":{"type":"string"},"httpWiringsFile":{"type":"string"},"httpWiringMetaFile":{"type":"string"},"httpWiringMetaJsonFile":{"type":"string"},"httpContractsMetaJsonFile":{"type":"string"},"httpContractsMetaFile":{"type":"string"},"httpMapDeclarationFile":{"type":"string"},"httpTypesFile":{"type":"string"},"gatewaysWiringFile":{"type":"string"},"gatewaysWiringMetaFile":{"type":"string"},"gatewaysWiringMetaJsonFile":{"type":"string"},"channelsWiringFile":{"type":"string"},"channelsWiringMetaFile":{"type":"string"},"channelsWiringMetaJsonFile":{"type":"string"},"channelContractsMetaJsonFile":{"type":"string"},"channelContractsMetaFile":{"type":"string"},"channelsMapDeclarationFile":{"type":"string"},"channelsTypesFile":{"type":"string"},"rpcInternalWiringMetaFile":{"type":"string"},"rpcInternalWiringMetaJsonFile":{"type":"string"},"rpcInternalMapDeclarationFile":{"type":"string"},"rpcMapDeclarationFile":{"type":"string"},"remoteRpcWorkersFile":{"type":"string"},"publicRpcFile":{"type":"string"},"publicAgentFile":{"type":"string"},"consoleFunctionsFile":{"type":"string"},"workflowRoutesFile":{"type":"string"},"eventsChannelFile":{"type":"string"},"triggersTypesFile":{"type":"string"},"triggersWiringFile":{"type":"string"},"triggersWiringMetaFile":{"type":"string"},"triggersWiringMetaJsonFile":{"type":"string"},"triggerSourcesMetaFile":{"type":"string"},"triggerSourcesMetaJsonFile":{"type":"string"},"schedulersWiringFile":{"type":"string"},"schedulersWiringMetaFile":{"type":"string"},"schedulersWiringMetaJsonFile":{"type":"string"},"schedulersTypesFile":{"type":"string"},"queueWorkersWiringFile":{"type":"string"},"queueWorkersWiringMetaFile":{"type":"string"},"queueWorkersWiringMetaJsonFile":{"type":"string"},"queueMapDeclarationFile":{"type":"string"},"queueTypesFile":{"type":"string"},"workflowsWiringFile":{"type":"string"},"workflowsWiringMetaFile":{"type":"string"},"workflowsWorkersFile":{"type":"string"},"workflowMapDeclarationFile":{"type":"string"},"workflowTypesFile":{"type":"string"},"workflowMetaDir":{"type":"string"},"mcpWiringsFile":{"type":"string"},"mcpWiringsMetaFile":{"type":"string"},"mcpWiringsMetaJsonFile":{"type":"string"},"mcpTypesFile":{"type":"string"},"mcpJsonFile":{"type":"string"},"agentWiringsFile":{"type":"string"},"agentWiringMetaFile":{"type":"string"},"agentWiringMetaJsonFile":{"type":"string"},"agentTypesFile":{"type":"string"},"agentMapDeclarationFile":{"type":"string"},"cliWiringsFile":{"type":"string"},"cliWiringMetaFile":{"type":"string"},"cliWiringMetaJsonFile":{"type":"string"},"cliContractsMetaJsonFile":{"type":"string"},"cliContractsMetaFile":{"type":"string"},"cliBootstrapFile":{"type":"string"},"cliTypesFile":{"type":"string"},"servicesFile":{"type":"string"},"middlewareFile":{"type":"string"},"middlewareGroupsMetaJsonFile":{"type":"string"},"permissionsFile":{"type":"string"},"permissionsGroupsMetaJsonFile":{"type":"string"},"bootstrapFile":{"type":"string"},"packageFile":{"type":"string"},"addonTypesFile":{"type":"string"},"nodeTypesFile":{"type":"string"},"secretTypesFile":{"type":"string"},"secretsFile":{"type":"string"},"secretsMetaJsonFile":{"type":"string"},"credentialsFile":{"type":"string"},"credentialsMetaJsonFile":{"type":"string"},"variableTypesFile":{"type":"string"},"variablesFile":{"type":"string"},"variablesMetaJsonFile":{"type":"string"},"$schema":{"type":"string"},"extends":{"type":"string"},"rootDir":{"type":"string"},"runtimeDir":{"type":"string","description":"Runtime artifacts directory (dev.db, content, tmp). Resolved relative to rootDir. Defaults to <rootDir>/.pikku-runtime."},"srcDirectories":{"type":"array","items":{"type":"string"}},"ignoreFiles":{"type":"array","items":{"type":"string"}},"packageMappings":{"type":"object","additionalProperties":{"type":"string"}},"addon":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}},"icon":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"openapi":{"type":"object","properties":{"version":{"type":"string"},"hash":{"type":"string"}},"required":["version","hash"],"additionalProperties":false}},"additionalProperties":false}]},"addonName":{"type":"string"},"configDir":{"type":"string"},"tsconfig":{"type":"string"},"clientFiles":{"type":"object","properties":{"fetchFile":{"type":"string"},"websocketFile":{"type":"string"},"rpcWiringsFile":{"type":"string"},"reactQueryFile":{"type":"string"},"realtimeFile":{"type":"string"},"realtimeEventHubTopicsImport":{"type":"string","description":"Optional import for the EventHubTopics type so the realtime client is fully typed. Format: `<path>#<TypeName>` resolved relative to `realtimeFile`. Example: `../types/eventhub-topics.js#EventHubTopics`. If unset, the generated client treats topics as `Record<string, unknown>`."},"queueWiringsFile":{"type":"string"},"mcpJsonFile":{"type":"string"},"nextBackendFile":{"type":"string"},"nextHTTPFile":{"type":"string"},"nextBackendTransport":{"type":"string","enum":["local","worker-rpc","http"],"description":"Transport used by the generated nextBackendFile wrapper.\n- `'local'` (default): function code is loaded in-process via bootstrap + createSingletonServices. Required for Node/dev runs.\n- `'worker-rpc'`: SSR dispatches every call through an injected `Fetcher` ({ fetch(req): Promise<Response> }). Function code is NOT bundled into the SSR worker. Pair with `nextBackendFetcherImport` to point at your resolver module.\n- `'http'`: SSR dispatches every call through the generated `PikkuFetch` client. Use this when your Next app should call a separately running local/server API instead of importing function code in-process."},"nextBackendFetcherImport":{"type":"string","description":"Module that exports a `fetcher: Fetcher` (or default export) used by the worker-RPC variant of the next backend wrapper. Resolved relative to `nextBackendFile`. Required when `nextBackendTransport === 'worker-rpc'`."},"startServerFnsFile":{"type":"string","description":"Emit a TanStack Start server-function shim into this file. The shim exports `makeApi(): PikkuRPC` — a typed caller over the generated RPC map for use in Start loaders, actions and components. It reads the API base URL from `import.meta.env.VITE_API_URL` (throws if unset). Requires `rpcWiringsFile` (where the `PikkuRPC` class is generated)."}},"additionalProperties":false},"emailTemplatesDir":{"type":"string","description":"Directory containing email templates, locales, partials, and theme.json."},"authFile":{"type":"string","description":"Path to write the generated Better Auth wiring file (auth.gen.ts). Must be within srcDirectories so wireSecret calls are picked up by the inspector. Example: \"src/auth.gen.ts\""},"authTypesFile":{"type":"string","description":"Path to write the generated typed `pikkuBetterAuth` re-export (auth.types.ts). Defaults to `{outDir}/auth/auth.types.ts`. Re-exported from `#pikku` so user code can `import { pikkuBetterAuth } from '#pikku'` with project-typed services."},"authMetaJsonFile":{"type":"string","description":"Path to write the generated Better Auth metadata (auth-meta.gen.json) — the enabled social providers and plugins the console SSO page reads via getAuthProviders. Defaults to `{outDir}/auth/pikku-auth-meta.gen.json`."},"openAPI":{"type":"object","properties":{"outputFile":{"type":"string"},"additionalInfo":{"$ref":"#/definitions/OpenAPISpecInfo"}},"required":["outputFile","additionalInfo"],"additionalProperties":false},"schema":{"type":"object","properties":{"additionalProperties":{"type":"boolean"},"supportsImportAttributes":{"type":"boolean"}},"additionalProperties":false},"db":{"type":"object","properties":{"engine":{"type":"string","enum":["sqlite","postgres"]},"pgVersion":{"type":"number"}},"additionalProperties":false},"cli":{"type":"object","properties":{"entrypoints":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"local"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false},{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"local"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false}]}}]}}},"additionalProperties":false},"workflows":{"type":"object","properties":{"orchestratorQueue":{"type":"string"},"workerQueue":{"type":"string"}},"additionalProperties":false},"scaffold":{"type":"object","properties":{"addonDir":{"type":"string"},"functionDir":{"type":"string"},"wiringDir":{"type":"string"},"middlewareDir":{"type":"string"},"permissionDir":{"type":"string"},"pikkuDir":{"type":"string"},"rpc":{"$ref":"#/definitions/PikkuScaffoldFeature"},"console":{"$ref":"#/definitions/PikkuScaffoldFeature"},"agent":{"$ref":"#/definitions/PikkuScaffoldFeature"},"workflow":{"$ref":"#/definitions/PikkuScaffoldFeature"},"events":{"$ref":"#/definitions/PikkuScaffoldFeature"},"remoteRpc":{"$ref":"#/definitions/PikkuScaffoldFeature"}},"additionalProperties":false},"addons":{"type":"object","properties":{"addonDir":{"type":"string"}},"additionalProperties":false,"description":"Community-registry addons installed via `pikku fabric addon add`. The source is copied into the project shadcn-style; each lands in `<addonDir>/<name>/` and the dir is registered as a yarn workspace so `wireAddon({ package })` resolves it by name. `addonDir` defaults to `addons` (top-level, outside the app's TS scan). Install provenance is tracked in pikku-addons.json."},"tests":{"type":"object","properties":{"outputDir":{"type":"string"}},"additionalProperties":false},"forceRequiredServices":{"type":"array","items":{"type":"string"}},"schemasFromTypes":{"type":"array","items":{"type":"string"}},"stateOutput":{"type":"string"},"stateInput":{"type":"string"},"verboseMeta":{"type":"boolean"},"security":{"type":"boolean","description":"Run the data-classification security lint (scans function return types for Private/Pii/Secret leaks). Off by default — it forces expensive return-type inference on every function and is not part of codegen. Enable here to always run it, or per-invocation via `pikku all --security`. Pair with `failOnError` to gate a build/CI on leaks."},"lint":{"type":"object","properties":{"servicesNotDestructured":{"type":"string","enum":["off","warn","error"]},"wiresNotDestructured":{"type":"string","enum":["off","warn","error"]}},"additionalProperties":false},"addonMetaJsonFile":{"type":"string"},"globalHTTPPrefix":{"type":"string"},"binary":{"type":"object","properties":{"entrypoint":{"type":"string"},"output":{"type":"string"},"targets":{"type":"array","items":{"type":"string"}}},"required":["entrypoint","output"],"additionalProperties":false},"deploy":{"type":"object","properties":{"providers":{"type":"object","additionalProperties":{"type":"string"}},"defaultProvider":{"type":"string"},"serverlessIncompatible":{"type":"array","items":{"type":"string"}},"defaultTarget":{"type":"string","enum":["serverless","server"],"description":"Default deploy target for functions that don't declare an explicit `deploy` flag and don't use a serverless-incompatible service. Defaults to 'serverless'."}},"required":["providers"],"additionalProperties":false},"namedFilters":{"type":"object","additionalProperties":{"$ref":"#/definitions/InspectorFilters"},"description":"Named filter presets keyed by name, used via CLI --filter <name>."},"filters":{"$ref":"#/definitions/InspectorFilters"}},"required":["addonTypesFile","agentMapDeclarationFile","agentTypesFile","agentWiringMetaFile","agentWiringMetaJsonFile","agentWiringsFile","bootstrapFile","channelContractsMetaFile","channelContractsMetaJsonFile","channelsMapDeclarationFile","channelsTypesFile","channelsWiringFile","channelsWiringMetaFile","channelsWiringMetaJsonFile","cliBootstrapFile","cliContractsMetaFile","cliContractsMetaJsonFile","cliTypesFile","cliWiringMetaFile","cliWiringMetaJsonFile","cliWiringsFile","configDir","consoleFunctionsFile","credentialsFile","credentialsMetaJsonFile","eventsChannelFile","filters","functionTypesFile","functionsFile","functionsMetaFile","functionsMetaJsonFile","gatewaysWiringFile","gatewaysWiringMetaFile","gatewaysWiringMetaJsonFile","httpContractsMetaFile","httpContractsMetaJsonFile","httpMapDeclarationFile","httpTypesFile","httpWiringMetaFile","httpWiringMetaJsonFile","httpWiringsFile","mcpJsonFile","mcpTypesFile","mcpWiringsFile","mcpWiringsMetaFile","mcpWiringsMetaJsonFile","middlewareFile","middlewareGroupsMetaJsonFile","nodeTypesFile","outDir","packageFile","packageMappings","permissionsFile","permissionsGroupsMetaJsonFile","publicAgentFile","publicRpcFile","queueMapDeclarationFile","queueTypesFile","queueWorkersWiringFile","queueWorkersWiringMetaFile","queueWorkersWiringMetaJsonFile","rootDir","rpcInternalMapDeclarationFile","rpcInternalWiringMetaFile","rpcInternalWiringMetaJsonFile","rpcMapDeclarationFile","schedulersTypesFile","schedulersWiringFile","schedulersWiringMetaFile","schedulersWiringMetaJsonFile","schemaDirectory","secretTypesFile","secretsFile","secretsMetaJsonFile","servicesFile","srcDirectories","triggerSourcesMetaFile","triggerSourcesMetaJsonFile","triggersTypesFile","triggersWiringFile","triggersWiringMetaFile","triggersWiringMetaJsonFile","tsconfig","typesDeclarationFile","variableTypesFile","variablesFile","variablesMetaJsonFile","workflowMapDeclarationFile","workflowMetaDir","workflowRoutesFile","workflowTypesFile","workflowsWiringFile","workflowsWiringMetaFile","workflowsWorkersFile"],"definitions":{"OpenAPISpecInfo":{"type":"object","properties":{"info":{"type":"object","properties":{"title":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"},"termsOfService":{"type":"string"},"contact":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"email":{"type":"string"}},"additionalProperties":false},"license":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"additionalProperties":false}},"required":["title","version","description"],"additionalProperties":false},"servers":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"description":{"type":"string"}},"required":["url"],"additionalProperties":false}},"tags":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name"],"additionalProperties":false}},"externalDocs":{"type":"object","properties":{"description":{"type":"string"},"url":{"type":"string"}},"required":["url"],"additionalProperties":false},"securitySchemes":{"type":"object"},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{}}}}},"required":["info","servers"],"additionalProperties":false},"PikkuScaffoldFeature":{"type":["string","boolean"],"enum":["auth","no-auth",false]},"InspectorFilters":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"wires":{"type":"array","items":{"type":"string"}},"directories":{"type":"array","items":{"type":"string"}},"httpRoutes":{"type":"array","items":{"type":"string"}},"httpMethods":{"type":"array","items":{"type":"string"}},"excludeNames":{"type":"array","items":{"type":"string"}},"excludeTags":{"type":"array","items":{"type":"string"}},"excludeWires":{"type":"array","items":{"type":"string"}},"excludeDirectories":{"type":"array","items":{"type":"string"}},"excludeHttpRoutes":{"type":"array","items":{"type":"string"}},"excludeHttpMethods":{"type":"array","items":{"type":"string"}},"target":{"type":"array","items":{"type":"string","enum":["serverless","server"]}},"excludeTarget":{"type":"array","items":{"type":"string","enum":["serverless","server"]}},"serverlessIncompatible":{"type":"array","items":{"type":"string"}},"defaultTarget":{"type":"string","enum":["serverless","server"]}},"additionalProperties":false}}}
|
|
1
|
+
{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","additionalProperties":false,"properties":{"configFile":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"wires":{"type":"array","items":{"type":"string"}},"excludeWires":{"type":"array","items":{"type":"string"}},"userSessionType":{"type":"string"},"singletonServicesFactoryType":{"type":"string"},"wireServicesFactoryType":{"type":"string"},"outDir":{"type":"string"},"schemaDirectory":{"type":"string"},"typesDeclarationFile":{"type":"string"},"functionsFile":{"type":"string"},"functionsMetaFile":{"type":"string"},"functionsMetaJsonFile":{"type":"string"},"functionTypesFile":{"type":"string"},"httpWiringsFile":{"type":"string"},"httpWiringMetaFile":{"type":"string"},"httpWiringMetaJsonFile":{"type":"string"},"httpContractsMetaJsonFile":{"type":"string"},"httpContractsMetaFile":{"type":"string"},"httpMapDeclarationFile":{"type":"string"},"httpTypesFile":{"type":"string"},"gatewaysWiringFile":{"type":"string"},"gatewaysWiringMetaFile":{"type":"string"},"gatewaysWiringMetaJsonFile":{"type":"string"},"channelsWiringFile":{"type":"string"},"channelsWiringMetaFile":{"type":"string"},"channelsWiringMetaJsonFile":{"type":"string"},"channelContractsMetaJsonFile":{"type":"string"},"channelContractsMetaFile":{"type":"string"},"channelsMapDeclarationFile":{"type":"string"},"channelsTypesFile":{"type":"string"},"rpcInternalWiringMetaFile":{"type":"string"},"rpcInternalWiringMetaJsonFile":{"type":"string"},"rpcInternalMapDeclarationFile":{"type":"string"},"rpcMapDeclarationFile":{"type":"string"},"remoteRpcWorkersFile":{"type":"string"},"publicRpcFile":{"type":"string"},"publicAgentFile":{"type":"string"},"consoleFunctionsFile":{"type":"string"},"workflowRoutesFile":{"type":"string"},"eventsChannelFile":{"type":"string"},"triggersTypesFile":{"type":"string"},"triggersWiringFile":{"type":"string"},"triggersWiringMetaFile":{"type":"string"},"triggersWiringMetaJsonFile":{"type":"string"},"triggerSourcesMetaFile":{"type":"string"},"triggerSourcesMetaJsonFile":{"type":"string"},"schedulersWiringFile":{"type":"string"},"schedulersWiringMetaFile":{"type":"string"},"schedulersWiringMetaJsonFile":{"type":"string"},"schedulersTypesFile":{"type":"string"},"queueWorkersWiringFile":{"type":"string"},"queueWorkersWiringMetaFile":{"type":"string"},"queueWorkersWiringMetaJsonFile":{"type":"string"},"queueMapDeclarationFile":{"type":"string"},"queueTypesFile":{"type":"string"},"workflowsWiringFile":{"type":"string"},"workflowsWiringMetaFile":{"type":"string"},"workflowsWorkersFile":{"type":"string"},"workflowMapDeclarationFile":{"type":"string"},"workflowTypesFile":{"type":"string"},"workflowMetaDir":{"type":"string"},"mcpWiringsFile":{"type":"string"},"mcpWiringsMetaFile":{"type":"string"},"mcpWiringsMetaJsonFile":{"type":"string"},"mcpTypesFile":{"type":"string"},"mcpJsonFile":{"type":"string"},"agentWiringsFile":{"type":"string"},"agentWiringMetaFile":{"type":"string"},"agentWiringMetaJsonFile":{"type":"string"},"agentTypesFile":{"type":"string"},"agentMapDeclarationFile":{"type":"string"},"cliWiringsFile":{"type":"string"},"cliWiringMetaFile":{"type":"string"},"cliWiringMetaJsonFile":{"type":"string"},"cliContractsMetaJsonFile":{"type":"string"},"cliContractsMetaFile":{"type":"string"},"cliBootstrapFile":{"type":"string"},"cliTypesFile":{"type":"string"},"servicesFile":{"type":"string"},"middlewareFile":{"type":"string"},"middlewareGroupsMetaJsonFile":{"type":"string"},"permissionsFile":{"type":"string"},"permissionsGroupsMetaJsonFile":{"type":"string"},"bootstrapFile":{"type":"string"},"packageFile":{"type":"string"},"addonTypesFile":{"type":"string"},"nodeTypesFile":{"type":"string"},"secretTypesFile":{"type":"string"},"secretsFile":{"type":"string"},"secretsMetaJsonFile":{"type":"string"},"credentialsFile":{"type":"string"},"credentialsMetaJsonFile":{"type":"string"},"variableTypesFile":{"type":"string"},"variablesFile":{"type":"string"},"variablesMetaJsonFile":{"type":"string"},"$schema":{"type":"string"},"extends":{"type":"string"},"rootDir":{"type":"string"},"runtimeDir":{"type":"string","description":"Runtime artifacts directory (dev.db, content, tmp). Resolved relative to rootDir. Defaults to <rootDir>/.pikku-runtime."},"srcDirectories":{"type":"array","items":{"type":"string"}},"ignoreFiles":{"type":"array","items":{"type":"string"}},"packageMappings":{"type":"object","additionalProperties":{"type":"string"}},"addon":{"anyOf":[{"type":"boolean"},{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}},"icon":{"type":"string"},"displayName":{"type":"string"},"description":{"type":"string"},"serverlessIncompatible":{"type":"array","items":{"type":"string"}},"openapi":{"type":"object","properties":{"version":{"type":"string"},"hash":{"type":"string"}},"required":["version","hash"],"additionalProperties":false}},"additionalProperties":false}]},"addonName":{"type":"string"},"configDir":{"type":"string"},"tsconfig":{"type":"string"},"clientFiles":{"type":"object","properties":{"fetchFile":{"type":"string"},"websocketFile":{"type":"string"},"rpcWiringsFile":{"type":"string"},"reactQueryFile":{"type":"string"},"realtimeFile":{"type":"string"},"realtimeEventHubTopicsImport":{"type":"string","description":"Optional import for the EventHubTopics type so the realtime client is fully typed. Format: `<path>#<TypeName>` resolved relative to `realtimeFile`. Example: `../types/eventhub-topics.js#EventHubTopics`. If unset, the generated client treats topics as `Record<string, unknown>`."},"queueWiringsFile":{"type":"string"},"mcpJsonFile":{"type":"string"},"nextBackendFile":{"type":"string"},"nextHTTPFile":{"type":"string"},"nextBackendTransport":{"type":"string","enum":["local","worker-rpc","http"],"description":"Transport used by the generated nextBackendFile wrapper.\n- `'local'` (default): function code is loaded in-process via bootstrap + createSingletonServices. Required for Node/dev runs.\n- `'worker-rpc'`: SSR dispatches every call through an injected `Fetcher` ({ fetch(req): Promise<Response> }). Function code is NOT bundled into the SSR worker. Pair with `nextBackendFetcherImport` to point at your resolver module.\n- `'http'`: SSR dispatches every call through the generated `PikkuFetch` client. Use this when your Next app should call a separately running local/server API instead of importing function code in-process."},"nextBackendFetcherImport":{"type":"string","description":"Module that exports a `fetcher: Fetcher` (or default export) used by the worker-RPC variant of the next backend wrapper. Resolved relative to `nextBackendFile`. Required when `nextBackendTransport === 'worker-rpc'`."},"startServerFnsFile":{"type":"string","description":"Emit a TanStack Start server-function shim into this file. The shim exports `makeApi(): PikkuRPC` — a typed caller over the generated RPC map for use in Start loaders, actions and components. It reads the API base URL from `import.meta.env.VITE_API_URL` (throws if unset). Requires `rpcWiringsFile` (where the `PikkuRPC` class is generated)."}},"additionalProperties":false},"emailTemplatesDir":{"type":"string","description":"Directory containing email templates, locales, partials, and theme.json."},"authFile":{"type":"string","description":"Path to write the generated Better Auth wiring file (auth.gen.ts). Must be within srcDirectories so wireSecret calls are picked up by the inspector. Example: \"src/auth.gen.ts\""},"authTypesFile":{"type":"string","description":"Path to write the generated typed `pikkuBetterAuth` re-export (auth.types.ts). Defaults to `{outDir}/auth/auth.types.ts`. Re-exported from `#pikku` so user code can `import { pikkuBetterAuth } from '#pikku'` with project-typed services."},"authMetaJsonFile":{"type":"string","description":"Path to write the generated Better Auth metadata (auth-meta.gen.json) — the enabled social providers and plugins the console SSO page reads via getAuthProviders. Defaults to `{outDir}/auth/pikku-auth-meta.gen.json`."},"openAPI":{"type":"object","properties":{"outputFile":{"type":"string"},"additionalInfo":{"$ref":"#/definitions/OpenAPISpecInfo"}},"required":["outputFile","additionalInfo"],"additionalProperties":false},"schema":{"type":"object","properties":{"additionalProperties":{"type":"boolean"},"supportsImportAttributes":{"type":"boolean"}},"additionalProperties":false},"db":{"type":"object","properties":{"engine":{"type":"string","enum":["sqlite","postgres"]},"pgVersion":{"type":"number"}},"additionalProperties":false},"cli":{"type":"object","properties":{"entrypoints":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"local"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false},{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"type":{"type":"string","const":"local"},"path":{"type":"string"}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"channel"},"name":{"type":"string"},"route":{"type":"string"},"wirePath":{"type":"string"},"path":{"type":"string"}},"required":["type","wirePath"],"additionalProperties":false}]}}]}}},"additionalProperties":false},"workflows":{"type":"object","properties":{"orchestratorQueue":{"type":"string"},"workerQueue":{"type":"string"}},"additionalProperties":false},"scaffold":{"type":"object","properties":{"addonDir":{"type":"string"},"functionDir":{"type":"string"},"wiringDir":{"type":"string"},"middlewareDir":{"type":"string"},"permissionDir":{"type":"string"},"pikkuDir":{"type":"string"},"rpc":{"$ref":"#/definitions/PikkuScaffoldFeature"},"console":{"$ref":"#/definitions/PikkuScaffoldFeature"},"agent":{"$ref":"#/definitions/PikkuScaffoldFeature"},"workflow":{"$ref":"#/definitions/PikkuScaffoldFeature"},"events":{"$ref":"#/definitions/PikkuScaffoldFeature"},"remoteRpc":{"$ref":"#/definitions/PikkuScaffoldFeature"}},"additionalProperties":false},"addons":{"type":"object","properties":{"addonDir":{"type":"string"}},"additionalProperties":false,"description":"Community-registry addons installed via `pikku fabric addon add`. The source is copied into the project shadcn-style; each lands in `<addonDir>/<name>/` and the dir is registered as a yarn workspace so `wireAddon({ package })` resolves it by name. `addonDir` defaults to `addons` (top-level, outside the app's TS scan). Install provenance is tracked in pikku-addons.json."},"tests":{"type":"object","properties":{"outputDir":{"type":"string"}},"additionalProperties":false},"forceRequiredServices":{"type":"array","items":{"type":"string"}},"schemasFromTypes":{"type":"array","items":{"type":"string"}},"stateOutput":{"type":"string"},"stateInput":{"type":"string"},"verboseMeta":{"type":"boolean"},"security":{"type":"boolean","description":"Run the data-classification security lint (scans function return types for Private/Pii/Secret leaks). Off by default — it forces expensive return-type inference on every function and is not part of codegen. Enable here to always run it, or per-invocation via `pikku all --security`. Pair with `failOnError` to gate a build/CI on leaks."},"lint":{"type":"object","properties":{"servicesNotDestructured":{"type":"string","enum":["off","warn","error"]},"wiresNotDestructured":{"type":"string","enum":["off","warn","error"]}},"additionalProperties":false},"addonMetaJsonFile":{"type":"string"},"globalHTTPPrefix":{"type":"string"},"binary":{"type":"object","properties":{"entrypoint":{"type":"string"},"output":{"type":"string"},"targets":{"type":"array","items":{"type":"string"}}},"required":["entrypoint","output"],"additionalProperties":false},"deploy":{"type":"object","properties":{"providers":{"type":"object","additionalProperties":{"type":"string"}},"defaultProvider":{"type":"string"},"serverlessIncompatible":{"type":"array","items":{"type":"string"}},"defaultTarget":{"type":"string","enum":["serverless","server"],"description":"Default deploy target for functions that don't declare an explicit `deploy` flag and don't use a serverless-incompatible service. Defaults to 'serverless'."}},"required":["providers"],"additionalProperties":false},"namedFilters":{"type":"object","additionalProperties":{"$ref":"#/definitions/InspectorFilters"},"description":"Named filter presets keyed by name, used via CLI --filter <name>."},"filters":{"$ref":"#/definitions/InspectorFilters"}},"required":["addonTypesFile","agentMapDeclarationFile","agentTypesFile","agentWiringMetaFile","agentWiringMetaJsonFile","agentWiringsFile","bootstrapFile","channelContractsMetaFile","channelContractsMetaJsonFile","channelsMapDeclarationFile","channelsTypesFile","channelsWiringFile","channelsWiringMetaFile","channelsWiringMetaJsonFile","cliBootstrapFile","cliContractsMetaFile","cliContractsMetaJsonFile","cliTypesFile","cliWiringMetaFile","cliWiringMetaJsonFile","cliWiringsFile","configDir","consoleFunctionsFile","credentialsFile","credentialsMetaJsonFile","eventsChannelFile","filters","functionTypesFile","functionsFile","functionsMetaFile","functionsMetaJsonFile","gatewaysWiringFile","gatewaysWiringMetaFile","gatewaysWiringMetaJsonFile","httpContractsMetaFile","httpContractsMetaJsonFile","httpMapDeclarationFile","httpTypesFile","httpWiringMetaFile","httpWiringMetaJsonFile","httpWiringsFile","mcpJsonFile","mcpTypesFile","mcpWiringsFile","mcpWiringsMetaFile","mcpWiringsMetaJsonFile","middlewareFile","middlewareGroupsMetaJsonFile","nodeTypesFile","outDir","packageFile","packageMappings","permissionsFile","permissionsGroupsMetaJsonFile","publicAgentFile","publicRpcFile","queueMapDeclarationFile","queueTypesFile","queueWorkersWiringFile","queueWorkersWiringMetaFile","queueWorkersWiringMetaJsonFile","rootDir","rpcInternalMapDeclarationFile","rpcInternalWiringMetaFile","rpcInternalWiringMetaJsonFile","rpcMapDeclarationFile","schedulersTypesFile","schedulersWiringFile","schedulersWiringMetaFile","schedulersWiringMetaJsonFile","schemaDirectory","secretTypesFile","secretsFile","secretsMetaJsonFile","servicesFile","srcDirectories","triggerSourcesMetaFile","triggerSourcesMetaJsonFile","triggersTypesFile","triggersWiringFile","triggersWiringMetaFile","triggersWiringMetaJsonFile","tsconfig","typesDeclarationFile","variableTypesFile","variablesFile","variablesMetaJsonFile","workflowMapDeclarationFile","workflowMetaDir","workflowRoutesFile","workflowTypesFile","workflowsWiringFile","workflowsWiringMetaFile","workflowsWorkersFile"],"definitions":{"OpenAPISpecInfo":{"type":"object","properties":{"info":{"type":"object","properties":{"title":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"},"termsOfService":{"type":"string"},"contact":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"},"email":{"type":"string"}},"additionalProperties":false},"license":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"required":["name"],"additionalProperties":false}},"required":["title","version","description"],"additionalProperties":false},"servers":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"description":{"type":"string"}},"required":["url"],"additionalProperties":false}},"tags":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name"],"additionalProperties":false}},"externalDocs":{"type":"object","properties":{"description":{"type":"string"},"url":{"type":"string"}},"required":["url"],"additionalProperties":false},"securitySchemes":{"type":"object"},"security":{"type":"array","items":{"type":"object","additionalProperties":{"type":"array","items":{}}}}},"required":["info","servers"],"additionalProperties":false},"PikkuScaffoldFeature":{"type":["string","boolean"],"enum":["auth","no-auth",false]},"InspectorFilters":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"wires":{"type":"array","items":{"type":"string"}},"directories":{"type":"array","items":{"type":"string"}},"httpRoutes":{"type":"array","items":{"type":"string"}},"httpMethods":{"type":"array","items":{"type":"string"}},"excludeNames":{"type":"array","items":{"type":"string"}},"excludeTags":{"type":"array","items":{"type":"string"}},"excludeWires":{"type":"array","items":{"type":"string"}},"excludeDirectories":{"type":"array","items":{"type":"string"}},"excludeHttpRoutes":{"type":"array","items":{"type":"string"}},"excludeHttpMethods":{"type":"array","items":{"type":"string"}},"target":{"type":"array","items":{"type":"string","enum":["serverless","server"]}},"excludeTarget":{"type":"array","items":{"type":"string","enum":["serverless","server"]}},"serverlessIncompatible":{"type":"array","items":{"type":"string"}},"defaultTarget":{"type":"string","enum":["serverless","server"]}},"additionalProperties":false}}}
|
|
@@ -122,7 +122,7 @@ Tool usage rules:
|
|
|
122
122
|
- Never stuff unrelated information into the wrong field.
|
|
123
123
|
- Keep responses concise.`),n?.agents?.length&&(i+=`
|
|
124
124
|
|
|
125
|
-
When calling a sub-agent, provide a short session name that describes the task. Use the same session name to continue a previous conversation with that agent. Use a new session name for a new independent task. When a request involves multiple actions for the same domain, combine them into a single sub-agent call rather than making separate calls.`),i}function wZe(e,t,n){let r=[];return{channelId:`${e.channelId}:${t}:${n}`,openingData:e.openingData,get state(){return e.state},get approvals(){return r},close:()=>{},sendBinary:t=>e.sendBinary(t),send:i=>{if(i.type!==`done`){if(i.type===`approval-request`){r.push({toolCallId:i.toolCallId,toolName:i.toolName,args:i.args,runId:i.runId});return}i.type===`step-start`||i.type===`text-delta`||i.type===`reasoning-delta`||i.type===`tool-call`||i.type===`tool-result`||i.type===`usage`||i.type===`error`||i.type===`workflow-created`?e.send({...i,agent:t,session:n}):e.send(i)}},setState:t=>e.setState(t),getState:()=>e.getState(),clearState:()=>e.clearState()}}async function Hk(e,t,n,r,i,a,o,s){let c=fk(),l=[],u=[],d=a?.options?.requiresToolApproval??`explicit`,f=dk(i,`agent`,`agentsMeta`)[r];if(!f)return{tools:l,missingRpcs:u};let p=e.sessionService?await e.sessionService.get():null,m=f.tools,h=f.agents;if(m?.length)for(let t of m){let n,r=null,i,a=t.includes(`:`)?AZe(t):null,o;if(a)r=a.package,o=a.function,n=dk(r,`function`,`meta`)[o],i=dk(r,`misc`,`schemas`);else{if(o=dk(null,`rpc`,`meta`)[t],!o){u.push(t);continue}n=dk(null,`function`,`meta`)[o],i=dk(null,`misc`,`schemas`)}if(!n){u.push(t);continue}if(n.permissions?.length&&(!p||!await JXe(n.permissions,p,c,r)))continue;let s=n?.inputSchemaName,f=s?i.get(s):void 0;(!f||typeof f==`object`&&f.type===`object`&&!f.properties)&&(f={type:`object`,properties:{}});let m=d===`all`||d===`explicit`&&n?.approvalRequired,h;if(m&&o){let e=dk(r,`function`,`functions`).get(o);if(e?.approvalDescription){let t=e.approvalDescription,n=r;h=async e=>{let r=c;if(n){let e=dk(n,`package`,`singletonServices`);e&&(r=e)}return t(r,e)}}}l.push({name:t.replaceAll(`@`,`_`).replaceAll(`:`,`__`),description:n?.description||n?.title||t,inputSchema:f,needsApproval:m||void 0,approvalDescriptionFn:h,execute:async n=>new MZe(c,e.sessionService?{...eZe(e.sessionService)}:{},{sessionService:e.sessionService}).rpc(t,n)})}if(h?.length){let r=dk(null,`agent`,`agentsMeta`);for(let i of h){let o=r[i];if(!o){c.logger.warn(`Sub-agent '${i}' not found in agent registry`);continue}o.permissions?.length&&(!p||!await JXe(o.permissions,p,c))||l.push({name:i,description:o.description,inputSchema:{type:`object`,properties:{message:{type:`string`},session:{type:`string`,description:`Short session label for thread continuity`}},required:[`message`,`session`]},execute:async r=>{let{message:o,session:c}=r,l=`${i}::${c}`,u=t.get(l);if(u||(u=Mk(),t.set(l,u)),a){let l=s!==`supervise`;l&&a.delegateState&&(a.delegateState.delegated=!0);let{channel:d}=a;d.send({type:`agent-call`,agentName:i,session:c,input:o});let f=wZe(d,i,c),p=l?f:{...f,send:e=>{e.type===`text-delta`||e.type===`reasoning-delta`||f.send(e)}},m=await yZe(i,{message:o,threadId:u,resourceId:n},p,e,t,a.options);return f.approvals.length>0?{__approvalRequired:!0,toolName:i,args:r,agentRunId:f.approvals[0].runId,subApprovals:f.approvals}:(d.send({type:`agent-result`,agentName:i,session:c,result:m}),m)}let d=await DZe(i,{message:o,threadId:u,resourceId:n},e,t);return d.status===`suspended`&&d.pendingApprovals?.length?{__approvalRequired:!0,toolName:i,args:r,agentRunId:d.runId,subApprovals:d.pendingApprovals.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,runId:e.runId}))}:d.object??d.text}})}}if(o?.some(e=>e.beforeToolCall||e.afterToolCall))for(let e of l){let t=e.execute;e.execute=async n=>{let r=Mk(),i=n??{};for(let t of o)if(t.beforeToolCall){let n=await t.beforeToolCall(c,{toolName:e.name,toolCallId:r,args:i});n&&`args`in n&&(i=n.args)}let a=Date.now(),s,l;try{s=await t(i)}catch(e){if(l=e,e?.payload?.error===`missing_credential`)throw e;s=e instanceof Error?e.message:String(e)}let u=Date.now()-a;for(let t=o.length-1;t>=0;t--){let n=o[t];if(n.afterToolCall){let t=await n.afterToolCall(c,{toolName:e.name,toolCallId:r,args:i,result:s,durationMs:u});t&&`result`in t&&(s=t.result)}}if(l)throw l;return s}}return{tools:l,missingRpcs:u}}async function TZe(e,t,n,r,i){let a=fk(),{agent:o,packageName:s,resolvedName:c}=CZe(e),l=a.aiAgentRunner;if(!l)throw new wk;if(n.getCredential&&l.withApiKey){let e=await n.getCredential(`AI_API_KEY`);e?.apiKey?.trim()&&(l=l.withApiKey(e.apiKey))}let{storage:u}=Dk(o,a),d=o.memory,f=t.threadId,p=dk(s,`agent`,`agentsMeta`)[c],m=p?.outputSchema,h=m?dk(s,`misc`,`schemas`).get(m):void 0,g=p?.workingMemorySchema??null,_=g?dk(s,`misc`,`schemas`).get(g):void 0;if(u)try{await u.getThread(f)}catch{await u.createThread(t.resourceId,{threadId:f})}let v=[];u&&(v=await u.getMessages(f,{lastN:d?.lastMessages??20}));let y=await kk(d,u,t,_),b=t.attachments?.length?[{type:`text`,text:t.message},...t.attachments.map(e=>({type:e.type,data:e.data,url:e.url,mediaType:e.mediaType,...e.filename?{filename:e.filename}:{}}))]:t.message,x={id:Mk(),role:`user`,content:b,createdAt:new Date},S=lZe([...y,...v,x]),C=o.aiMiddleware??[],{tools:w,missingRpcs:T}=await Hk(n,r,t.resourceId,c,s,i,C,o.agentMode),E=await Vk(c,s);t.context&&(E=`${E}\n\nCurrent context (use these identifiers directly in tool calls — do not ask the user for them):\n${t.context}`);let D=Nk(c,o);t.model&&(D.model=Nk(c,{...o,model:t.model}).model),t.temperature!==void 0&&(D.temperature=t.temperature);let O=D.maxSteps??10,ee={model:D.model,temperature:D.temperature,instructions:E,messages:S,tools:w,maxSteps:1,toolChoice:o.toolChoice??`auto`,outputSchema:h};return{agent:o,packageName:s,resolvedName:c,agentRunner:l,storage:u,memoryConfig:d,threadId:f,userMessage:x,runnerParams:ee,maxSteps:O,missingRpcs:T,workingMemoryJsonSchema:_,workingMemorySchemaName:g}}function Uk(e){if(e===null)return;if(Array.isArray(e))return e.map(Uk);if(typeof e!=`object`)return e;let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=Uk(r));return t}function EZe(e){if(!e||typeof e!=`object`)return{text:null,uiSpec:null};let t=e;return{text:typeof t.text==`string`?t.text:null,uiSpec:t.ui??null}}async function DZe(e,t,n,r){let{agent:i,agentRunner:a,storage:o,memoryConfig:s,threadId:c,userMessage:l,runnerParams:u,maxSteps:d,missingRpcs:f,workingMemorySchemaName:p}=await TZe(e,t,n,r??new Map);u.agentId=e;let m=fk(),{aiRunState:h}=m;if(!h)throw Error(`AIRunStateService not available in singletonServices`);if(f.length>0)return{runId:await h.createRun({agentName:e,threadId:c,resourceId:t.resourceId,status:`suspended`,suspendReason:`rpc-missing`,missingRpcs:f,usage:{inputTokens:0,outputTokens:0,model:i.model},createdAt:new Date,updatedAt:new Date}),text:``,threadId:c,steps:[],usage:{inputTokens:0,outputTokens:0}};let g=[...jk(s,o,{threadId:c,workingMemorySchemaName:p,logger:m.logger,schemaService:m.schema}),...i.aiMiddleware??[]],_=u.messages,v=u.instructions;for(let e of g)if(e.modifyInput){let t=await e.modifyInput(m,{messages:_,instructions:v});_=t.messages,v=t.instructions}u.messages=_,u.instructions=v;let y=await h.createRun({agentName:e,threadId:c,resourceId:t.resourceId,status:`running`,usage:{inputTokens:0,outputTokens:0,model:i.model},createdAt:new Date,updatedAt:new Date});try{let e=[],n={inputTokens:0,outputTokens:0},r=null;for(let f=0;f<d;f++){if(i.prepareStep){let e=!1;if(await i.prepareStep({stepNumber:f,messages:u.messages,tools:u.tools,toolChoice:u.toolChoice,model:u.model,stop:()=>{e=!0}}),e)break}let d=await a.run(u);r=d,n.inputTokens+=d.usage.inputTokens,n.outputTokens+=d.usage.outputTokens;for(let e of g)e.afterStep&&await e.afterStep(m,{stepNumber:f,text:d.text,toolCalls:d.toolCalls,toolResults:d.toolResults,usage:d.usage,finishReason:d.finishReason});if(e.push({usage:d.usage,toolCalls:d.toolCalls.map(e=>{let t=d.toolResults.find(t=>t.toolCallId===e.toolCallId);return{name:e.toolName,args:e.args,result:typeof t?.result==`string`?t.result:JSON.stringify(t?.result??``)}})}),d.toolCalls.length===0)break;let p=Lk(d,u.tools,y);if(p.length>0){for(let e of p){let t=u.tools.find(t=>t.name===e.toolName);if(t?.approvalDescriptionFn&&!e.reason)try{e.reason=await t.approvalDescriptionFn(e.args)}catch{}}let a=p.map(e=>e.agentRunId?{type:`agent-call`,toolCallId:e.toolCallId,agentName:e.toolName,agentRunId:e.agentRunId,displayToolName:e.displayToolName??e.toolName,displayArgs:e.displayArgs??e.args}:{type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,args:e.args}),f=e.slice(0,-1);return await cZe(o,c,t.resourceId,s,l,{text:``,steps:f}),o&&await o.saveMessages(c,[{id:Mk(),role:`assistant`,toolCalls:d.toolCalls.map(e=>({id:e.toolCallId,name:e.toolName,args:e.args})),createdAt:new Date}]),await h.updateRun(y,{status:`suspended`,suspendReason:`approval`,pendingApprovals:a,usage:{...n,model:i.model}}),{runId:y,text:r?.text??``,threadId:c,steps:e,usage:n,status:`suspended`,pendingApprovals:p.map(e=>({toolCallId:e.toolCallId,toolName:e.displayToolName??e.toolName,args:e.displayArgs??e.args,reason:e.reason,runId:y}))}}zk(u,d)}let f=r?.object,p=EZe(f),_=p.text??r?.text??``,v={text:_,steps:e},b=_,x=u.messages;for(let e=g.length-1;e>=0;e--){let t=g[e];if(t.modifyOutput){let e=await t.modifyOutput(m,{text:b,messages:x,usage:n});b=e.text,x=e.messages}}return await cZe(o,c,t.resourceId,s,l,{...v,text:b,uiSpec:p.uiSpec}),await h.updateRun(y,{status:`completed`,usage:{...n,model:i.model}}),{runId:y,text:b,object:f,threadId:c,steps:e,usage:n}}catch(e){for(let t of g)if(t.onError)try{await t.onError(m,{error:e instanceof Error?e:Error(String(e)),stepNumber:-1,messages:u.messages})}catch{}throw await h.updateRun(y,{status:`failed`,errorMessage:e instanceof Error?e.message:String(e)}),e}}async function OZe(e,t,n,r){let i=fk(),{aiRunState:a}=i;if(!a)throw Error(`AIRunStateService not available in singletonServices`);let o=await a.getRun(e);if(!o)throw Error(`No run found for runId ${e}`);if(r&&o.agentName!==r)throw Error(`Run ${e} belongs to agent '${o.agentName}', not '${r}'`);if(o.status!==`suspended`)throw Error(`Run ${e} is not suspended (status: ${o.status})`);let{agent:s,packageName:c,resolvedName:l}=CZe(o.agentName),{storage:u}=Dk(s,i),d=s.memory,f=i.aiAgentRunner;if(!f)throw new wk;let p=new Set(t.filter(e=>e.approved).map(e=>e.toolCallId)),m=new Set(t.filter(e=>!e.approved).map(e=>e.toolCallId)),h=[...o.pendingApprovals??[]];for(let{toolCallId:e,approved:n}of t)await a.resolveApproval(e,n?`approved`:`denied`);let{tools:g}=await Hk(n,new Map,o.resourceId,l,c,void 0,s.aiMiddleware??[]),_=[];for(let e of h){if(e.type!==`tool-call`)continue;let t=e.toolCallId,n;if(m.has(t))n=`The user explicitly declined this action. Inform them that it was declined and do not retry.`;else if(p.has(t)){let t=g.find(t=>t.name===e.toolName);if(!t)throw Error(`Tool "${e.toolName}" not found in agent definition`);let r=Uk(typeof e.args==`string`?JSON.parse(e.args):e.args)??{};try{let e=await t.execute(r);n=typeof e==`string`?e:JSON.stringify(e)}catch(e){n=e?.payload?.error===`missing_credential`?JSON.stringify(e.payload):`Error: ${e instanceof Error?e.message:String(e)}`}}else continue;_.push({toolCallId:t,toolName:e.toolName,args:typeof e.args==`string`?JSON.parse(e.args):e.args,result:n})}return u&&_.length>0&&await u.saveMessages(o.threadId,[{id:Mk(),role:`tool`,toolResults:_.map(e=>({id:e.toolCallId,name:e.toolName,result:e.result})),createdAt:new Date}]),await a.updateRun(e,{status:`running`}),kZe(o,s,c,l,u,d,f,n,a)}async function kZe(e,t,n,r,i,a,o,s,c){let l=fk(),u=dk(n,`agent`,`agentsMeta`)[r],d=u?.workingMemorySchema??null,f=i?await i.getMessages(e.threadId,{lastN:a?.lastMessages??20}):[],p=d?dk(n,`misc`,`schemas`).get(d):void 0,m=lZe([...await kk(a,i,{message:``,threadId:e.threadId,resourceId:e.resourceId},p),...f]),h=await Vk(r,n),g=[...jk(a,i,{threadId:e.threadId,workingMemorySchemaName:d,logger:l.logger,schemaService:l.schema}),...t.aiMiddleware??[]],_=m,v=h;for(let e of g)if(e.modifyInput){let t=await e.modifyInput(l,{messages:_,instructions:v});_=t.messages,v=t.instructions}let{tools:y}=await Hk(s,new Map,e.resourceId,r,n,void 0,g),b=Nk(r,t),x=b.maxSteps??10,S={model:b.model,temperature:b.temperature,instructions:v,messages:_,tools:y,maxSteps:1,toolChoice:t.toolChoice??`auto`,outputSchema:u?.outputSchema?dk(n,`misc`,`schemas`).get(u.outputSchema):void 0,agentId:e.agentName};try{let n=[],r={inputTokens:0,outputTokens:0},s=null;for(let u=0;u<x;u++){let d=await o.run(S);s=d,r.inputTokens+=d.usage.inputTokens,r.outputTokens+=d.usage.outputTokens;for(let e of g)e.afterStep&&await e.afterStep(l,{stepNumber:u,text:d.text,toolCalls:d.toolCalls,toolResults:d.toolResults,usage:d.usage,finishReason:d.finishReason});if(n.push({usage:d.usage,toolCalls:d.toolCalls.map(e=>{let t=d.toolResults.find(t=>t.toolCallId===e.toolCallId);return{name:e.toolName,args:e.args,result:typeof t?.result==`string`?t.result:JSON.stringify(t?.result??``)}})}),d.toolCalls.length===0)break;let f=Lk(d,S.tools,e.runId);if(f.length>0){for(let e of f){let t=S.tools.find(t=>t.name===e.toolName);if(t?.approvalDescriptionFn&&!e.reason)try{e.reason=await t.approvalDescriptionFn(e.args)}catch{}}let o=f.map(e=>e.agentRunId?{type:`agent-call`,toolCallId:e.toolCallId,agentName:e.toolName,agentRunId:e.agentRunId,displayToolName:e.displayToolName??e.toolName,displayArgs:e.displayArgs??e.args}:{type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,args:e.args}),l=n.slice(0,-1);l.length>0&&await cZe(i,e.threadId,e.resourceId,a,null,{text:``,steps:l}),i&&await i.saveMessages(e.threadId,[{id:Mk(),role:`assistant`,toolCalls:d.toolCalls.map(e=>({id:e.toolCallId,name:e.toolName,args:e.args})),createdAt:new Date}]),await c.updateRun(e.runId,{status:`suspended`,suspendReason:`approval`,pendingApprovals:o,usage:{...r,model:t.model}});let u=s?.text??``;return{runId:e.runId,text:u,threadId:e.threadId,steps:n,usage:r,status:`suspended`,pendingApprovals:f.map(t=>({toolCallId:t.toolCallId,toolName:t.displayToolName??t.toolName,args:t.displayArgs??t.args,reason:t.reason,runId:e.runId}))}}zk(S,d)}let u=s?.text??``,d=s?.object,f={text:u,steps:n},p=u,m=S.messages;for(let e=g.length-1;e>=0;e--){let t=g[e];if(t.modifyOutput){let e=await t.modifyOutput(l,{text:p,messages:m,usage:r});p=e.text,m=e.messages}}return await cZe(i,e.threadId,e.resourceId,a,null,{...f,text:p}),await c.updateRun(e.runId,{status:`completed`,usage:{...r,model:t.model}}),{runId:e.runId,text:p,object:d,threadId:e.threadId,steps:n,usage:r}}catch(t){for(let e of g)if(e.onError)try{await e.onError(l,{error:t instanceof Error?t:Error(String(t)),stepNumber:-1,messages:S.messages})}catch{}throw await c.updateRun(e.runId,{status:`failed`,errorMessage:t instanceof Error?t.message:String(t)}),t}}var Wk=class extends vk{rpcName;constructor(e){super(`RPC function not found: ${e}`),this.rpcName=e}};yk(Wk,{status:404,mcpCode:-32601,message:`RPC function not found.`});var AZe=e=>{let t=e.indexOf(`:`);if(t===-1)return null;let n=e.substring(0,t),r=e.substring(t+1),i=dk(null,`addons`,`packages`).get(n);return i?{package:i.package,function:r,addonConfig:i}:null},jZe=(e,t=null)=>{if(t){let n=dk(t,`function`,`meta`)?.[e];if(n)return{pikkuFuncId:n.pikkuFuncId||e,packageName:t}}let n=dk(null,`rpc`,`meta`),r=n[e];if(!r){let{baseName:t,version:i}=Ek(e);i!==null&&(r=n[t])}if(!r){let t=dk(null,`function`,`meta`)?.[e];if(t)return{pikkuFuncId:t.pikkuFuncId||e,packageName:null}}if(!r)throw new Wk(e);return{pikkuFuncId:r,packageName:null}},MZe=class{services;wire;options;packageName;constructor(e,t,n,r=null){this.services=e,this.wire=t,this.options=n,this.packageName=r}async rpcExposed(e,t){let n;if(e.includes(`:`)){let t=AZe(e);t&&(n=dk(t.package,`function`,`meta`)[t.function])}else{let t=jZe(e,this.packageName);n=dk(t.packageName,`function`,`meta`)[t.pikkuFuncId]}if(!n||!n.expose)throw new Wk(e);return await this.rpc(e,t)}async rpc(e,t){let n=this.wire.rpc?.depth||0,r={...this.wire,rpc:this.wire.rpc?{...this.wire.rpc,depth:n+1,global:!1}:void 0};if(e.includes(`:`))try{return await this.invokeAddonFunction(e,t,r)}catch(e){if(!(e instanceof Wk))throw e}try{let n=jZe(e,this.packageName);return await LZe(`rpc`,e,n.pikkuFuncId,{auth:this.options.requiresAuth,singletonServices:this.services,data:()=>t,wire:r,packageName:n.packageName})}catch(n){if(n instanceof Wk&&this.services.deploymentService){let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}throw n}}async invokeAddonFunction(e,t,n){let r=AZe(e);if(!r)throw new Wk(e);let i=dk(r.package,`function`,`meta`)[r.function];if(!i)throw new Wk(e);let a=i.pikkuFuncId||r.function,o=r.addonConfig?.auth??this.options.requiresAuth,s=[...r.addonConfig?.tags??[],...i.tags??[]];return LZe(`rpc`,e,a,{auth:o,singletonServices:this.services,data:()=>t,wire:n,packageName:r.package,tags:s})}async rpcWithWire(e,t,n){let r=this.wire.rpc?.depth||0,i={...this.wire,...n,rpc:this.wire.rpc?{...this.wire.rpc,depth:r+1,global:!1}:void 0};if(e.includes(`:`))return this.invokeAddonFunction(e,t,i);try{let n=jZe(e,this.packageName);return await LZe(`rpc`,e,n.pikkuFuncId,{auth:this.options.requiresAuth,singletonServices:this.services,data:()=>t,wire:i,packageName:n.packageName})}catch(n){if(n instanceof Wk&&this.services.deploymentService){let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}throw n}}async startWorkflow(e,t,n){if(!this.services.workflowService)throw Error(`WorkflowService service not available`);let r=this.wire.workflowStep?.runId??this.wire.graph?.runId,i=n?.wire??{type:this.wire.wireType??`unknown`,id:this.wire.wireId,...r?{parentRunId:r}:{},...this.wire.pikkuUserId?{pikkuUserId:this.wire.pikkuUserId}:{}};return this.services.workflowService.startWorkflow(e,t,i,this,n)}get agent(){return{run:async(e,t)=>{let n=await DZe(e,t,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)});return{runId:n.runId,result:n.object??n.text,usage:n.usage,...n.status===`suspended`&&{status:`suspended`,pendingApprovals:n.pendingApprovals}}},stream:async(e,t,n)=>{let r=this.wire.channel;if(!r)throw Error(`No channel available for streaming`);await yZe(e,t,r,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)},void 0,n)},resume:async(e,t,n)=>{let r=this.wire.channel;if(!r)throw Error(`No channel available for streaming`);await bZe({runId:e,...t},r,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)},n)},approve:async(e,t,n)=>{let r=await OZe(e,t,{sessionService:this.options.sessionService},n);return{runId:r.runId,result:r.object??r.text,usage:r.usage,...r.status===`suspended`&&{status:`suspended`,pendingApprovals:r.pendingApprovals}}}}}async remote(e,t){if(!this.services.deploymentService)throw Error(`No DeploymentService configured for remote RPC: ${e}. Set up a DeploymentService to enable remote function calls.`);let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}},Gk=new class{getContextRPCService(e,t,n,r=0,i=null){let a=new MZe(e,t,typeof n==`object`&&n?n:{requiresAuth:n},i);return{depth:r,global:!1,invoke:a.rpc.bind(a),remote:a.remote.bind(a),exposed:a.rpcExposed.bind(a),startWorkflow:a.startWorkflow.bind(a),get agent(){return a.agent},rpcWithWire:a.rpcWithWire.bind(a)}}};async function NZe(e,t,n){let r=tZe(e);r&&(e.pikkuUserId=r,n instanceof $Xe&&n.setPikkuUserId(r));let{sessionStore:i}=t;if(!(!i||!r))if(e.session)n?.setInitial(e.session);else{let t=await i.get(r);t&&(e.session=t,n?.setInitial(t))}}var PZe=e=>{let t=dk(null,`addons`,`packages`);if(!t)return null;for(let[n,r]of t.entries())if(r?.package===e)return n;return null},FZe=(e,t)=>new Proxy(e,{get(e,n,r){if(n===`startWorkflow`||n===`runToCompletion`){let i=Reflect.get(e,n,r);return function(e,...n){if(typeof e==`string`&&!e.includes(`:`)){let n=PZe(t);n&&(e=`${n}:${e}`)}return i.call(this,e,...n)}}return Reflect.get(e,n,r)}}),IZe=async(e,t)=>{let n=dk(e,`package`,`singletonServices`);if(n)return n;let r=dk(e,`package`,`factories`);if(!r||!r.createSingletonServices)return t;let i=t.config;r.createConfig&&(i=await r.createConfig(t.variables));let a=await r.createSingletonServices(i,t);return a.workflowService&&typeof a.workflowService==`object`&&(a.workflowService=FZe(a.workflowService,e)),dk(e,`package`,`singletonServices`,a),a},LZe=async(e,t,n,{singletonServices:r,createWireServices:i,data:a,auth:o,inheritedMiddleware:s,wireMiddleware:c,inheritedChannelMiddleware:l,wireChannelMiddleware:u,inheritedPermissions:d,wirePermissions:f,coerceDataFromSchema:p,tags:m=[],wire:h,sessionService:g,credentialWireService:_,packageName:v=null})=>{h.wireType??=e,h.wireId??=t;let y=dk(v,`function`,`functions`),b=y.get(n),x=dk(v,`function`,`meta`),S=x[n];if(!b||!S){let{baseName:e,version:t}=Ek(n);t!==null&&(b||=y.get(e),S||=x[e],b&&S&&r.logger.warn(`Version '${n}' not registered, resolved to '${e}'`))}if(!b)throw Error(`Function not found: ${n}`);if(!S)throw Error(`Function meta not found: ${n}`);let C=S.pikkuFuncId??n,w=v?await IZe(v,r):r,T=i;if(v){let e=dk(v,`package`,`factories`);e?.createWireServices&&(T=e.createWireServices)}let E=_k(e,t,{wireInheritedChannelMiddleware:l,wireChannelMiddleware:u,packageName:v}),D=E.length>0&&h.channel?BXe(h,w,E):h;if(!D.getCredentials){let e=_??new nZe(w.credentialService,D);Object.assign(D,rZe(e))}let O=iZe(b.audit),ee=D,k=ee.functionId,te=ee.audit,ne=Object.getOwnPropertyDescriptor(ee,`rpc`);ee.functionId=C,ee.audit=O;let re;re=m&&m.length>0?[...d||[],...m.map(e=>({type:`tag`,tag:e}))]:d||[];let ie=async()=>{await NZe(ee,w,g),g&&(ee.session=g.freezeInitial(),ee.setSession=e=>g.set(e),ee.clearSession=()=>g.clear(),ee.getSession=()=>g.get(),ee.hasSessionChanged=()=>g.sessionChanged);let r=ee.session;if(S.sessionless){if((o===!0||b.auth===!0)&&!r)throw new HXe(`Authentication required`)}else if((o===!1||b.auth===!1)&&w.logger.warn(`Function '${n}' requires a session but auth was explicitly disabled — use pikkuSessionlessFunc instead.`),!r)throw new HXe(`Authentication required`);if(r?.readonly&&!S.readonly)throw new UXe;let i=await a(),s=S.inputSchemaName;s&&(p&&XXe(s,i,v),await ZXe(w.logger,w.schema,s,i,v)),(re.length>0||f||S.permissions||b.permissions)&&await qXe(e,t,{wireInheritedPermissions:re,wirePermissions:f,funcInheritedPermissions:S.permissions,funcPermissions:b.permissions,services:w,wire:ee,data:i,packageName:v});let c;try{c=await T?.(w,ee);let e=c&&Object.keys(c).length>0?{...w,...c}:w,t=v;return Object.defineProperty(ee,"rpc",{get(){let n=Gk.getContextRPCService(e,ee,{sessionService:g},0,t);return Object.defineProperty(ee,"rpc",{value:n,writable:!0,configurable:!0}),n},configurable:!0,enumerable:!0}),await b.func(e,i,ee)}finally{c&&Object.keys(c).length>0&&await AXe(w.logger,c)}},ae=hk(e,t,{wireInheritedMiddleware:s,wireMiddleware:c,funcInheritedMiddleware:S.middleware,funcMiddleware:b.middleware,packageName:v});if(ae.length>0)try{return await IXe(w,ee,ae,ie)}finally{ne&&Object.defineProperty(ee,"rpc",ne),k===void 0?delete ee.functionId:ee.functionId=k,te===void 0?delete ee.audit:ee.audit=te}try{return await ie()}finally{ne&&Object.defineProperty(ee,"rpc",ne),k===void 0?delete ee.functionId:ee.functionId=k,te===void 0?delete ee.audit:ee.audit=te}},RZe={pending:0,scheduled:1,running:2,succeeded:3,failed:3};function Kk(e){let t=[];return e.forEach((e,n)=>{let r={stepName:e.stepName,attemptCount:e.attemptCount,order:n};t.push({...r,at:e.createdAt,type:`pending`,fromStepName:e.fromStepName}),e.scheduledAt&&t.push({...r,at:e.scheduledAt,type:`scheduled`}),e.runningAt&&t.push({...r,at:e.runningAt,type:`running`}),e.status===`succeeded`?t.push({...r,at:e.succeededAt??e.updatedAt,type:`succeeded`,result:e.result}):e.status===`failed`&&t.push({...r,at:e.failedAt??e.updatedAt,type:`failed`,error:e.error})}),t.sort((e,t)=>{let n=e.at.getTime(),r=t.at.getTime();if(n!==r)return n-r;let i=RZe[e.type],a=RZe[t.type];return i===a?e.order-t.order:i-a}),t.map(({order:e,...t},n)=>({...t,seq:n}))}var zZe=new Set([`pending`,`scheduled`,`running`]);function BZe(e,t){let n=e=>typeof t==`number`?e.seq<=t:e.at.getTime()<=t.getTime(),r=new Map,i=[],a=-1,o;for(let t of e){if(!n(t))break;a=t.seq,o=t.at;let e=r.get(t.stepName);e||(e={stepName:t.stepName,status:t.type,attemptCount:t.attemptCount,fromStepName:t.fromStepName},r.set(t.stepName,e),i.push(t.stepName)),e.status=t.type,e.attemptCount=t.attemptCount,t.fromStepName!==void 0&&(e.fromStepName=t.fromStepName),t.type===`pending`&&(delete e.result,delete e.error),t.type===`succeeded`&&(e.result=t.result,e.error=void 0),t.type===`failed`&&(e.error=t.error)}let s=i.map(e=>r.get(e)),c={};for(let e of s)e.status===`succeeded`&&(c[e.stepName]=e.result);return{seq:a,at:o,steps:s,results:c,path:i,phase:HZe(s)}}function VZe(e){return BZe(e,e.length-1)}function HZe(e){return e.length===0?`pending`:e.some(e=>zZe.has(e.status))?`running`:e.some(e=>e.status===`failed`)?`failed`:`idle`}yk(class extends vk{constructor(e){super(`Workflow not found: ${e}`)}},{status:404,message:`Workflow not found.`}),yk(class extends vk{constructor(e){super(`Workflow run not found: ${e}`)}},{status:404,message:`Workflow run not found.`}),yk(class extends vk{payload;constructor(e){super(`Workflow run failed: ${e??`unknown`}`),this.payload={message:e}}},{status:422,message:`Workflow run failed.`});var UZe=(0,g.createContext)(void 0),WZe=()=>{let e=(0,g.useContext)(UZe);if(!e)throw Error(`useWorkflowRunContext must be used within WorkflowRunProvider`);return e},qk=()=>(0,g.useContext)(UZe),Jk=e=>{let t=new Map;if(!e)return t;let n=[];for(let r of Object.keys(e))if(t.set(r,r),r.includes("${")){let e=r.split(/\$\{[^}]+\}/).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.+`);n.push([r,RegExp(`^${e}$`)])}return t.__templatePatterns=n,t},GZe=({children:e,workflowName:t,currentGraphHash:n,workflowNodes:r})=>{let[i,a]=l_(),[o,s]=(0,g.useState)(i.get(`runId`)),[c,l]=(0,g.useState)(!1),{data:u,isLoading:d}=EXe(o),{data:f,isLoading:p}=ak(o),{data:m}=ok(o),h=u,_=f,[v,y]=(0,g.useState)(null),b=(0,g.useCallback)(e=>{s(e),e&&l(!1),a(t=>{let n=new URLSearchParams(t);return e?n.set(`runId`,e):n.delete(`runId`),n},{replace:!0})},[a]);(0,g.useEffect)(()=>{let e=i.get(`runId`);e!==o&&s(e)},[i]);let x=(0,g.useMemo)(()=>Jk(r),[r]),S=(0,g.useCallback)(e=>x.get(e)??x.__templatePatterns?.find(([t,n])=>n.test(e))?.[0]??e,[x]),C=(0,g.useMemo)(()=>{if(!m||!Array.isArray(m))return[];let e=e=>e?new Date(e):void 0;return Kk(m.map(t=>({...t,createdAt:new Date(t.createdAt),updatedAt:new Date(t.updatedAt??t.createdAt),scheduledAt:e(t.scheduledAt),runningAt:e(t.runningAt),succeededAt:e(t.succeededAt),failedAt:e(t.failedAt)})))},[m]);(0,g.useEffect)(()=>{y(null)},[o]);let w=(0,g.useCallback)(e=>{if(e===null){y(null);return}let t=C.length-1;y(Math.max(0,Math.min(e,t)))},[C.length]),T=(0,g.useMemo)(()=>v===null||C.length===0?null:BZe(C,v),[C,v]),E=(0,g.useMemo)(()=>{let e=new Map;if(_&&Array.isArray(_))for(let t of _)e.set(S(t.stepName),t);return e},[_,S]),D=(0,g.useMemo)(()=>{if(!T)return null;let e=new Map;for(let t of T.steps)e.set(S(t.stepName),t);return e},[T,S])??E,O=h?.status===`running`,ee=d||p,k=h?.graphHash,te=!!(o&&k&&n&&k!==n),{data:ne,isLoading:re}=DXe(te&&t?t:null,te&&k?k:null),ie=ne?.graph??null;return(0,A.jsx)(UZe.Provider,{value:{selectedRunId:o,setSelectedRunId:b,runData:h,stepStates:D,isRunActive:O,isLoading:ee,isVersionMismatch:te,historicalWorkflow:ie,historicalLoading:re,isCreatingRun:c,setIsCreatingRun:l,timeline:C,timelineSeq:v,setTimelineSeq:w,reconstructed:T},children:e})},KZe=(0,g.createContext)(void 0),Yk=()=>{let e=(0,g.useContext)(KZe);if(!e)throw Error(`useWorkflowContext must be used within WorkflowProvider`);return e},Xk=()=>(0,g.useContext)(KZe),qZe=e=>{let{getNode:t}=Yk();return t(e)},Zk=({children:e,workflow:t})=>{let[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(null),o=(0,g.useCallback)(e=>t?.nodes?.[e],[t]),s=(0,g.useCallback)(e=>{if(t?.nodes){for(let[n,r]of Object.entries(t.nodes))if(r.outputVar===e)return n}},[t]),c=(0,g.useCallback)(e=>{r(e)},[]),l=(0,g.useCallback)(e=>{a(e)},[]);return(0,A.jsx)(KZe.Provider,{value:{workflow:t,getNode:o,findNodeByOutputVar:s,focusedNodeId:n,referencedNodeId:i,setFocusedNode:c,setReferencedNode:l},children:e})};function JZe(e){let t=pg();return Lr({queryKey:[`channel`,`snippets`,e],queryFn:async()=>await t.invoke(`console:getChannelSnippets`,{channelName:e}),enabled:!!e})}function Qk(){let e=pg();return Lr({queryKey:[`functions`,`meta`],queryFn:async()=>await e.invoke(`console:getFunctionsMeta`)})}function $k(e){let{isLoading:t,isError:n,data:r}=Qk();return{data:(0,g.useMemo)(()=>r?.find(t=>t.name===e)||null,[r,e]),isLoading:t,isError:n}}function eA(){let e=pg();return Lr({queryKey:[`addon`,`meta`],queryFn:async()=>await e.invoke(`console:getAddonMeta`)})}function tA(e){let t=pg();return Lr({queryKey:[`schema`,e],queryFn:async()=>e?await t.invoke(`console:getSchema`,{schemaName:e}):null,enabled:!!e})}function YZe(e){let{data:t}=$k(e||``),n=t?.outputSchemaName;return tA(n)}function XZe(e,t,n,r=!0){let i=pg();return Lr({queryKey:[`emails`,`preview`,e,t,JSON.stringify(n)],queryFn:async()=>e?await i.invoke(`console:renderEmailPreview`,{templateName:e,locale:t??void 0,data:n}):null,enabled:r&&!!e})}function ZZe(){let{workflow:e}=Yk(),t=(0,g.useMemo)(()=>{if(e?.source!==`dynamic-workflow`||!e?.nodes)return null;let t=new Set;for(let n of Object.values(e.nodes))if(n.input)for(let e of Object.values(n.input))e&&typeof e==`object`&&e.$ref===`trigger`&&e.path&&t.add(e.path);if(t.size===0)return null;let n={};for(let e of t)n[e]={type:`string`};return{type:`object`,properties:n,required:[...t]}},[e]),n=(0,g.useMemo)(()=>{if(t)return null;if(e?.source===`graph`||e?.source===`dynamic-workflow`){let t=e.entryNodeIds?.[0];return(t?e.nodes?.[t]:null)?.rpcName??null}return e?.pikkuFuncId??null},[e,t]),{data:r,isLoading:i}=$k(n??``),a=r?.inputSchemaName,{data:o,isLoading:s}=tA(a);return{schema:t??o,isLoading:!!n&&i||!!a&&s}}var QZe={root:`m_5cb1b9c8`,codeHighlight:`m_e597c321`,inlineCodeHighlight:`m_dfe9c588`,pre:`m_2c47c4fd`,code:`m_5caae6d3`,controls:`m_be7e9c9c`,control:`m_d498bab7`,controlTooltip:`m_4c3d814c`,scrollarea:`m_f744fd40`,showCodeButton:`m_c9378bc2`,file:`m_5cac2e62`,fileIcon:`m_b46cddfb`,filesScrollarea:`m_7b14120b`,files:`m_38d99e51`},$Ze={getHighlighter:()=>({code:e})=>({highlightedCode:e,isHighlighted:!1})},[eQe,tQe]=Ji({adapter:$Ze,highlight:$Ze.getHighlighter(null)});function nQe({adapter:e,children:t}){let[n,r]=(0,g.useState)(null),i=(0,g.useMemo)(()=>e.getHighlighter(n),[e,n]);return(0,g.useEffect)(()=>{e.loadContext&&e.loadContext().then(r)},[e]),(0,A.jsx)(eQe,{value:{adapter:e,highlight:i},children:t})}function nA(){return tQe()?.highlight||$Ze.getHighlighter(null)}var[rQe,rA]=qi(`CodeHighlightProvider was not found in the component tree`),iQe=Fs((e,t)=>{let{children:n,vars:r,tooltipLabel:i,...a}=Qo(`CodeHighlightControl`,null,e),o=rA(),s=o.getStyles(`controlTooltip`),c=(0,A.jsx)(au,{ref:t,...o.getStyles(`control`),...a,variant:`none`,"data-code-color-scheme":o.codeColorScheme,children:n});return i?(0,A.jsx)(Xf,{label:i,fz:`sm`,position:`bottom`,classNames:{tooltip:s.className},styles:{tooltip:s.style},"data-code-color-scheme":o.codeColorScheme,transitionProps:{duration:0},children:c}):c});iQe.displayName=`@mantine/code-highlight/CodeHighlightControl`;function aQe({copied:e,...t}){return(0,A.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,strokeWidth:`2`,stroke:`currentColor`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`,...t,children:e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M5 12l5 5l10 -10`})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z`}),(0,A.jsx)(`path`,{d:`M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2`})]})})}aQe.displayName=`@mantine/code-highlight/CopyIcon`;function oQe({code:e,copyLabel:t=`Copy`,copiedLabel:n=`Copied`}){let r=ha();return(0,A.jsx)(iQe,{onClick:()=>r.copy(e.trim()),variant:`none`,tooltipLabel:r.copied?n:t,"aria-label":r.copied?n:`${t} code`,children:(0,A.jsx)(aQe,{copied:r.copied})})}oQe.displayName=`@mantine/code-highlight/CopyCodeButton`;function iA({expanded:e,style:t,...n}){return(0,A.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,strokeWidth:`2`,stroke:`currentColor`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`,...n,children:e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M12 13v-8l-3 3m6 0l-3 -3`}),(0,A.jsx)(`path`,{d:`M9 17l1 0`}),(0,A.jsx)(`path`,{d:`M14 17l1 0`}),(0,A.jsx)(`path`,{d:`M19 17l1 0`}),(0,A.jsx)(`path`,{d:`M4 17l1 0`})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M12 11v8l3 -3m-6 0l3 3`}),(0,A.jsx)(`path`,{d:`M9 7l1 0`}),(0,A.jsx)(`path`,{d:`M14 7l1 0`}),(0,A.jsx)(`path`,{d:`M19 7l1 0`}),(0,A.jsx)(`path`,{d:`M4 7l1 0`})]})})}iA.displayName=`@mantine/code-highlight/ExpandIcon`;function sQe({expanded:e,onExpand:t,expandCodeLabel:n=`Expand code`,collapseCodeLabel:r=`Collapse code`}){return(0,A.jsx)(iQe,{onClick:()=>t(!e),tooltipLabel:e?r:n,children:(0,A.jsx)(iA,{expanded:e})})}sQe.displayName=`@mantine/code-highlight/ExpandCodeButton`;var cQe={withCopyButton:!0,expandCodeLabel:`Expand code`},lQe=Ba((e,{maxCollapsedHeight:t,background:n,radius:r})=>({codeHighlight:{"--ch-max-height":Hi(t),"--ch-background":n?so(n,e):void 0,"--ch-radius":r===void 0?void 0:ra(r)}})),aA=Ps((e,t)=>{let n=Qo(`CodeHighlight`,cQe,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,code:l,copiedLabel:u,copyLabel:d,defaultExpanded:f,expanded:p,onExpandedChange:m,maxCollapsedHeight:h,withCopyButton:g,withExpandButton:_,expandCodeLabel:v,collapseCodeLabel:y,radius:b,background:x,withBorder:S,controls:C,language:w,codeColorScheme:T,__withOffset:E,__inline:D,__staticSelector:O,attributes:ee,...k}=n,te=Jo({name:O||`CodeHighlight`,classes:QZe,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:ee,vars:c,varsResolver:lQe,rootSelector:`codeHighlight`}),[ne,re]=Da({value:p,defaultValue:f,finalValue:!0,onChange:m}),ie=C&&C.length>0||_||g,ae=Zo(),oe=nA()({code:l.trim(),language:w,colorScheme:T??ae}),se=oe.isHighlighted?{dangerouslySetInnerHTML:{__html:oe.highlightedCode}}:{children:l.trim()};return D?(0,A.jsx)(j,{component:`code`,ref:t,...k,...oe.codeElementProps,...te(`codeHighlight`,{className:Va(oe.codeElementProps?.className,i),style:[{...oe.codeElementProps?.style},a]}),"data-with-border":S||void 0,...se}):(0,A.jsx)(rQe,{value:{getStyles:te,codeColorScheme:T},children:(0,A.jsxs)(j,{ref:t,...te(`codeHighlight`),...k,dir:`ltr`,"data-code-color-scheme":T,"data-with-border":S||void 0,children:[ie&&(0,A.jsxs)(`div`,{...te(`controls`),"data-with-offset":E||void 0,children:[C,_&&(0,A.jsx)(sQe,{expanded:ne,onExpand:re,expandCodeLabel:v,collapseCodeLabel:y}),g&&(0,A.jsx)(oQe,{code:l,copiedLabel:u,copyLabel:d})]}),(0,A.jsx)(Kl,{type:`hover`,scrollbarSize:4,dir:`ltr`,offsetScrollbars:!1,"data-collapsed":!ne||void 0,styles:{viewport:{overscrollBehaviorInline:`none`}},...te(`scrollarea`),children:(0,A.jsx)(`pre`,{...te(`pre`),"data-with-offset":E||void 0,children:(0,A.jsx)(`code`,{...oe.codeElementProps,...te(`code`,{className:oe.codeElementProps?.className,style:oe.codeElementProps?.style}),...se})})}),(0,A.jsx)(ql,{...te(`showCodeButton`),mod:{hidden:ne},onClick:()=>re(!0),"data-code-color-scheme":T,children:v})]})})});aA.displayName=`@mantine/code-highlight/CodeHighlight`,aA.classes=QZe,aA.Control=iQe;function uQe(e){return{getHighlighter:()=>({code:t,language:n})=>{let r=e.getLanguage(n)?n:`plaintext`;return{highlightedCode:e.highlight(t.trim(),{language:r}).value,isHighlighted:!0,codeElementProps:{className:`hljs ${r}`}}}}}function dQe(e,t,n){let r=pg();return Lr({queryKey:[`function-source`,e,t],queryFn:async()=>await r.invoke(`console:readFunctionSource`,{sourceFile:e,exportedName:t}),enabled:!!e&&!!t&&n})}function fQe(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,changes:r})=>e.invoke(`console:updateFunctionConfig`,{sourceFile:t,exportedName:n,changes:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`functions`]}),t.invalidateQueries({queryKey:[`function-source`]}),t.invalidateQueries({queryKey:[`allMeta`]})}})}function pQe(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,body:r})=>e.invoke(`console:updateFunctionBody`,{sourceFile:t,exportedName:n,body:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`functions`]}),t.invalidateQueries({queryKey:[`function-body`]}),t.invalidateQueries({queryKey:[`function-source`]}),t.invalidateQueries({queryKey:[`allMeta`]})}})}function mQe(){let e=pg(),t=Er();return Rr({mutationFn:({templateName:t,source:n})=>e.invoke(`console:updateEmailTemplate`,{templateName:t,source:n}),onSuccess:()=>{t.invalidateQueries({queryKey:[`emails`]})}})}function hQe(e,t,n){let r=pg();return Lr({queryKey:[`agent-source`,e,t],queryFn:async()=>await r.invoke(`console:readAgentSource`,{sourceFile:e,exportedName:t}),enabled:!!e&&!!t&&n})}function oA(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,changes:r})=>e.invoke(`console:updateAgentConfig`,{sourceFile:t,exportedName:n,changes:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`allMeta`]}),t.invalidateQueries({queryKey:[`agent-source`]})}})}var gQe=e=>e.enum?`enum`:e.type===`array`&&e.items?`${e.items.type||`any`}[]`:e.anyOf||e.oneOf?(e.anyOf||e.oneOf).map(e=>e.type||`any`).join(` | `):e.type||`any`,_Qe=e=>e.enum?iLe(`enum`):iLe(e.type),sA=e=>e.enum?e.enum.join(` | `):e.description?e.description:e.format?e.format:null,cA=({name:e,prop:t,required:n,depth:r})=>{let[i,a]=(0,g.useState)(r<1),o=t.type===`object`&&t.properties,s=t.type===`array`&&t.items?.type===`object`&&t.items?.properties,c=o||s,l=o?t:s?t.items:null,u=sA(t);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(Ap.Tr,{onClick:()=>c&&a(!i),style:{cursor:c?`pointer`:`default`},children:[(0,A.jsx)(Ap.Td,{style:{paddingLeft:r*20+8},children:(0,A.jsxs)(j,{style:{display:`flex`,alignItems:`center`,gap:4},children:[c?i?(0,A.jsx)(bx,{size:12,color:`var(--app-meta-label)`}):(0,A.jsx)(xx,{size:12,color:`var(--app-meta-label)`}):(0,A.jsx)(j,{w:12}),(0,A.jsxs)(R,{size:`sm`,ff:`monospace`,fw:500,c:`var(--app-meta-value)`,children:[z(e),n&&(0,A.jsx)(R,{component:`span`,c:`yellow`,fw:700,children:z(`*`)})]})]})}),(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(f_,{size:`sm`,variant:`light`,color:_Qe(t),tt:`none`,children:z(gQe(t))})}),(0,A.jsx)(Ap.Td,{children:u&&(0,A.jsx)(R,{size:`sm`,c:`var(--app-meta-label)`,children:z(u)})})]}),c&&i&&l?.properties&&(0,A.jsx)(vQe,{properties:l.properties,required:l.required||[],depth:r+1})]})},vQe=({properties:e,required:t,depth:n})=>(0,A.jsx)(A.Fragment,{children:Object.entries(e).map(([e,r])=>(0,A.jsx)(cA,{name:e,prop:r,required:t.includes(e),depth:n},e))}),yQe=({schema:e})=>{if(_e(),!e||typeof e!=`object`)return(0,A.jsx)(R,{c:`dimmed`,size:`sm`,children:W.schema_viewer_no_schema()});let t=t=>{if(!t.startsWith(`#/definitions/`))return null;let n=t.replace(`#/definitions/`,``);return e.definitions?.[n]||null},n=e;if(e.type===`array`&&e.items){let r=e.items.$ref?t(e.items.$ref):e.items;r&&(n=r)}let r=n.properties||(n.type?null:n);return r?(0,A.jsxs)(Ap,{verticalSpacing:6,horizontalSpacing:`sm`,layout:`fixed`,styles:{table:{tableLayout:`fixed`},th:{color:`var(--app-section-label)`,fontFamily:`var(--mantine-font-family-monospace)`,fontSize:9,fontWeight:600,letterSpacing:`0.08em`,textTransform:`uppercase`,borderBottom:`1px solid var(--app-row-border)`},td:{borderBottom:`1px solid var(--app-row-border)`}},children:[(0,A.jsxs)(`colgroup`,{children:[(0,A.jsx)(`col`,{}),(0,A.jsx)(`col`,{style:{width:150}}),(0,A.jsx)(`col`,{})]}),(0,A.jsx)(Ap.Thead,{children:(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Th,{children:`Field`}),(0,A.jsx)(Ap.Th,{children:`Type`}),(0,A.jsx)(Ap.Th,{children:`Notes`})]})}),(0,A.jsx)(Ap.Tbody,{children:(0,A.jsx)(vQe,{properties:r,required:n.required||[],depth:0})})]}):(0,A.jsx)(f_,{size:`sm`,variant:`light`,color:_Qe(n),tt:`none`,children:z(gQe(e))})},bQe=(0,g.createContext)({hasFooter:!1,setHasFooter:()=>{}}),xQe=({children:e})=>{let[t,n]=(0,g.useState)(!1);return(0,A.jsx)(bQe.Provider,{value:{hasFooter:t,setHasFooter:n},children:(0,A.jsx)(j,{className:`${fS.flexColumn} ${fS.overflowHidden}`,style:{position:`relative`,height:`100%`},children:e})})},lA=({title:e,onClose:t,onBack:n,children:r})=>(0,A.jsx)(j,{px:`md`,style:{height:42,display:`flex`,alignItems:`center`,borderBottom:`1px solid var(--mantine-color-default-border)`,background:`var(--app-surface)`,flexShrink:0},children:(0,A.jsxs)(su,{gap:`xs`,wrap:`nowrap`,align:`center`,style:{width:`100%`},children:[n&&(0,A.jsx)(ql,{onClick:n,style:{display:`flex`,alignItems:`center`},children:(0,A.jsx)(NPe,{size:16,color:`var(--mantine-color-dimmed)`})}),(0,A.jsx)(R,{size:`sm`,fw:600,style:{flex:1,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e}),r,(0,A.jsx)(Eve,{size:`sm`,onClick:t})]})}),uA=({children:e})=>{let{hasFooter:t}=(0,g.useContext)(bQe);return(0,A.jsx)(j,{py:`md`,className:`${fS.flexGrow} ${fS.overflowAuto}`,style:{minHeight:0,paddingBottom:t?96:void 0},children:e})},SQe=({children:e})=>{let{setHasFooter:t}=(0,g.useContext)(bQe);return(0,g.useEffect)(()=>(t(!0),()=>t(!1)),[t]),(0,A.jsx)(j,{px:`md`,py:`sm`,style:{position:`absolute`,bottom:0,left:0,right:0,borderTop:`1px solid var(--mantine-color-default-border)`,background:`var(--mantine-color-body)`},children:e})},CQe=({item:e,kind:t})=>{let{meta:n}=uS(),{navigateInPanel:r}=CS(),i=t===`middleware`?`middlewareGroupsMeta`:`permissionsGroupsMeta`;if(e.type!==`wire`){let n=e.tag||e.route,i=e.type===`tag`?`tag: ${e.tag}`:e.route;return(0,A.jsx)(DS,{type:`dynamic`,badge:t,value:i,variant:`outline`,className:fS.clickableText,onClick:()=>r(t,`${e.type}:${n}`,i,{_groupType:e.type,_groupKey:n})})}let a=e.name||t,o=n[i]?.definitions?.[e.name];return(0,A.jsx)(DS,{type:`dynamic`,badge:t,value:a,className:fS.clickableText,onClick:()=>r(t,e.name,a,{...o,_id:e.name})})},dA=({label:e,labelWidth:t=85,align:n=`center`,gap:r,children:i})=>(0,A.jsxs)(j,{className:fS.metaRow,style:n!==`center`||r?{alignItems:n,...r?{gap:r}:{}}:void 0,children:[(0,A.jsx)(R,{size:`sm`,ff:`monospace`,c:`var(--app-meta-label)`,className:fS.metaRowLabel,style:{minWidth:t},children:e}),(0,A.jsx)(j,{className:fS.metaRowContent,children:i})]}),fA=({children:e})=>(0,A.jsx)(R,{size:`sm`,fw:600,ff:`monospace`,c:`var(--app-section-label)`,tt:`uppercase`,className:fS.sectionLabel,children:e}),pA=({children:e})=>(0,A.jsx)(f_,{size:`sm`,variant:`light`,ff:`monospace`,className:fS.tagBadge,children:e}),wQe=({children:e})=>(0,A.jsx)(f_,{size:`sm`,variant:`light`,tt:`none`,className:fS.serviceBadge,children:e}),mA=({children:e})=>(0,A.jsx)(R,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:e}),hA=({label:e,schemaName:t})=>{_e();let{data:n,isLoading:r}=tA(t);return t?(0,A.jsxs)(j,{children:[e&&(0,A.jsx)(mA,{children:e}),r?(0,A.jsx)(ru,{size:`sm`}):n?(0,A.jsx)(yQe,{schema:n}):(0,A.jsx)(R,{size:`sm`,c:`dimmed`,children:W.common_no_schema()})]}):null},TQe=new Set([`session`,`setSession`,`clearSession`,`getSession`,`hasSessionChanged`]),EQe={http:`/apis?tab=http`,channel:`/apis?tab=channels`,mcp:`/apis?tab=mcp`,gateway:`/apis?tab=gateways`,cli:`/apis?tab=cli`,rpc:`/apis?tab=http`,scheduler:`/jobs?tab=schedulers`,queue:`/jobs?tab=queues`,trigger:`/jobs?tab=triggers`,triggerSource:`/jobs?tab=triggers`,agent:`/agents`},gA=({pikkuFuncId:e})=>{let{data:t}=$k(e),{navigateInPanel:n}=CS(),r=t?.name||e;return(0,A.jsx)(R,{size:`sm`,fw:600,ff:`monospace`,c:`var(--app-meta-value)`,className:fS.clickableText,onClick:()=>n(`function`,e,r,t),children:z(r)})},DQe=({functionName:e})=>{_e();let t=s_(),{functionUsedBy:n}=uS(),r=n.get(e),i=r?[...r.transports,...r.jobs]:[];return i.length===0?null:(0,A.jsxs)(j,{children:[(0,A.jsx)(fA,{children:W.common_details_wired_to({count:i.length})}),(0,A.jsxs)(Ap,{verticalSpacing:4,horizontalSpacing:`xs`,children:[(0,A.jsx)(Ap.Thead,{children:(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Th,{c:`var(--app-section-label)`,fw:500,fz:`xs`,ff:`monospace`,children:`Name`}),(0,A.jsx)(Ap.Th,{c:`var(--app-section-label)`,fw:500,fz:`xs`,ff:`monospace`,children:`Type`})]})}),(0,A.jsx)(Ap.Tbody,{children:i.map(e=>(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(d_,{component:t,to:EQe[e.type]||`#`,underline:`never`,size:`sm`,ff:`monospace`,children:z(e.name)})}),(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(DS,{type:`wiringType`,value:e.type})})]},e.id))})]})]})},_A=({description:e,pikkuFuncId:t,functionLinkLabel:n,services:r,wires:i,middleware:a,permissions:o,tags:s,errors:c,functionName:l,inputSchemaName:u,outputSchemaName:d,children:f})=>{_e();let p=!!(u||d),m=i?.wires.filter(e=>!TQe.has(e))||[],h=i?.wires.some(e=>TQe.has(e))||!1;return(0,A.jsxs)(A.Fragment,{children:[e!=null&&e!==``&&(0,A.jsx)(dA,{label:W.common_details_description(),labelWidth:90,children:(0,A.jsx)(R,{size:`sm`,c:`var(--app-meta-value)`,children:z(e)})}),t&&(0,A.jsx)(dA,{label:n??W.common_details_function(),labelWidth:90,children:(0,A.jsx)(gA,{pikkuFuncId:t})}),r&&r.length>0&&(0,A.jsx)(dA,{label:W.common_details_services(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:r.map(e=>(0,A.jsx)(wQe,{children:z(e)},e))})}),i&&i.wires.length>0&&(0,A.jsx)(dA,{label:W.common_details_wires(),labelWidth:90,children:(0,A.jsxs)(su,{gap:4,children:[h&&(0,A.jsx)(DS,{type:`flag`,flag:`session`}),m.map(e=>(0,A.jsx)(DS,{type:`dynamic`,badge:`wire`,value:e},e))]})}),a&&a.length>0&&(0,A.jsx)(dA,{label:W.common_details_middleware(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:a.map((e,t)=>(0,A.jsx)(CQe,{item:e,kind:`middleware`},t))})}),o&&o.length>0&&(0,A.jsx)(dA,{label:W.common_details_permissions(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:o.map((e,t)=>(0,A.jsx)(CQe,{item:e,kind:`permission`},t))})}),s&&s.length>0&&(0,A.jsx)(dA,{label:W.common_details_tags(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:s.map((e,t)=>(0,A.jsx)(pA,{children:z(e)},t))})}),c&&c.length>0&&(0,A.jsx)(dA,{label:W.common_details_errors(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:c.map((e,t)=>(0,A.jsx)(f_,{size:`sm`,color:`red`,variant:`light`,children:z(e)},t))})}),l&&(0,A.jsx)(DQe,{functionName:l}),p&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(g_,{mt:`sm`}),(0,A.jsx)(hA,{label:W.common_details_input(),schemaName:u}),(0,A.jsx)(hA,{label:W.common_details_output(),schemaName:d})]}),f]})};function vA(){return vA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vA.apply(null,arguments)}function OQe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var kQe=[],AQe=[];(()=>{let e=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(e=>e?parseInt(e,36):1);for(let t=0,n=0;t<e.length;t++)(t%2?AQe:kQe).push(n+=e[t])})();function jQe(e){if(e<768)return!1;for(let t=0,n=kQe.length;;){let r=t+n>>1;if(e<kQe[r])n=r;else if(e>=AQe[r])t=r+1;else return!0;if(t==n)return!1}}function MQe(e){return e>=127462&&e<=127487}var NQe=8205;function yA(e,t,n=!0,r=!0){return(n?bA:PQe)(e,t,r)}function bA(e,t,n){if(t==e.length)return t;t&&IQe(e.charCodeAt(t))&&LQe(e.charCodeAt(t-1))&&t--;let r=FQe(e,t);for(t+=xA(r);t<e.length;){let i=FQe(e,t);if(r==NQe||i==NQe||n&&jQe(i))t+=xA(i),r=i;else if(MQe(i)){let n=0,r=t-2;for(;r>=0&&MQe(FQe(e,r));)n++,r-=2;if(n%2==0)break;t+=2}else break}return t}function PQe(e,t,n){for(;t>0;){let r=bA(e,t-2,n);if(r<t)return r;t--}return 0}function FQe(e,t){let n=e.charCodeAt(t);if(!LQe(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return IQe(r)?(n-55296<<10)+(r-56320)+65536:n}function IQe(e){return e>=56320&&e<57344}function LQe(e){return e>=55296&&e<56320}function xA(e){return e<65536?1:2}var SA=class e{lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=DA(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),wA.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=DA(this,e,t);let n=[];return this.decompose(e,t,n,0),wA.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new zQe(this),i=new zQe(e);for(let e=t,a=t;;){if(r.next(e),i.next(e),e=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new zQe(this,e)}iterRange(e,t=this.length){return new BQe(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t??=this.lines+1;let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new VQe(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(t){if(t.length==0)throw RangeError(`A document must have at least one line`);return t.length==1&&!t[0]?e.empty:t.length<=32?new CA(t):wA.from(CA.split(t,[]))}},CA=class e extends SA{constructor(e,t=TA(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.text[i],o=r+a.length;if((t?n:o)>=e)return new HQe(r,o,n,a);r=o+1,n++}}decompose(t,n,r,i){let a=t<=0&&n>=this.length?this:new e(RQe(this.text,t,n),Math.min(n,this.length)-Math.max(0,t));if(i&1){let t=r.pop(),n=EA(a.text,t.text.slice(),0,a.length);if(n.length<=32)r.push(new e(n,t.length+a.length));else{let t=n.length>>1;r.push(new e(n.slice(0,t)),new e(n.slice(t)))}}else r.push(a)}replace(t,n,r){if(!(r instanceof e))return super.replace(t,n,r);[t,n]=DA(this,t,n);let i=EA(this.text,EA(r.text,RQe(this.text,0,t)),n),a=this.length+r.length-(n-t);return i.length<=32?new e(i,a):wA.from(e.split(i,[]),a)}sliceString(e,t=this.length,n=`
|
|
125
|
+
When calling a sub-agent, provide a short session name that describes the task. Use the same session name to continue a previous conversation with that agent. Use a new session name for a new independent task. When a request involves multiple actions for the same domain, combine them into a single sub-agent call rather than making separate calls.`),i}function wZe(e,t,n){let r=[];return{channelId:`${e.channelId}:${t}:${n}`,openingData:e.openingData,get state(){return e.state},get approvals(){return r},close:()=>{},sendBinary:t=>e.sendBinary(t),send:i=>{if(i.type!==`done`){if(i.type===`approval-request`){r.push({toolCallId:i.toolCallId,toolName:i.toolName,args:i.args,runId:i.runId});return}i.type===`step-start`||i.type===`text-delta`||i.type===`reasoning-delta`||i.type===`tool-call`||i.type===`tool-result`||i.type===`usage`||i.type===`error`||i.type===`workflow-created`?e.send({...i,agent:t,session:n}):e.send(i)}},setState:t=>e.setState(t),getState:()=>e.getState(),clearState:()=>e.clearState()}}async function Hk(e,t,n,r,i,a,o,s){let c=fk(),l=[],u=[],d=a?.options?.requiresToolApproval??`explicit`,f=dk(i,`agent`,`agentsMeta`)[r];if(!f)return{tools:l,missingRpcs:u};let p=e.sessionService?await e.sessionService.get():null,m=f.tools,h=f.agents;if(m?.length)for(let t of m){let n,r=null,i,a=t.includes(`:`)?AZe(t):null,o;if(a)r=a.package,o=a.function,n=dk(r,`function`,`meta`)[o],i=dk(r,`misc`,`schemas`);else{if(o=dk(null,`rpc`,`meta`)[t],!o){u.push(t);continue}n=dk(null,`function`,`meta`)[o],i=dk(null,`misc`,`schemas`)}if(!n){u.push(t);continue}if(n.permissions?.length&&(!p||!await JXe(n.permissions,p,c,r)))continue;let s=n?.inputSchemaName,f=s?i.get(s):void 0;(!f||typeof f==`object`&&f.type===`object`&&!f.properties)&&(f={type:`object`,properties:{}});let m=d===`all`||d===`explicit`&&n?.approvalRequired,h;if(m&&o){let e=dk(r,`function`,`functions`).get(o);if(e?.approvalDescription){let t=e.approvalDescription,n=r;h=async e=>{let r=c;if(n){let e=dk(n,`package`,`singletonServices`);e&&(r=e)}return t(r,e)}}}l.push({name:t.replaceAll(`@`,`_`).replaceAll(`:`,`__`),description:n?.description||n?.title||t,inputSchema:f,needsApproval:m||void 0,approvalDescriptionFn:h,execute:async n=>new MZe(c,e.sessionService?{...eZe(e.sessionService)}:{},{sessionService:e.sessionService}).rpc(t,n)})}if(h?.length){let r=dk(null,`agent`,`agentsMeta`);for(let i of h){let o=r[i];if(!o){c.logger.warn(`Sub-agent '${i}' not found in agent registry`);continue}o.permissions?.length&&(!p||!await JXe(o.permissions,p,c))||l.push({name:i,description:o.description,inputSchema:{type:`object`,properties:{message:{type:`string`},session:{type:`string`,description:`Short session label for thread continuity`}},required:[`message`,`session`]},execute:async r=>{let{message:o,session:c}=r,l=`${i}::${c}`,u=t.get(l);if(u||(u=Mk(),t.set(l,u)),a){let l=s!==`supervise`;l&&a.delegateState&&(a.delegateState.delegated=!0);let{channel:d}=a;d.send({type:`agent-call`,agentName:i,session:c,input:o});let f=wZe(d,i,c),p=l?f:{...f,send:e=>{e.type===`text-delta`||e.type===`reasoning-delta`||f.send(e)}},m=await yZe(i,{message:o,threadId:u,resourceId:n},p,e,t,a.options);return f.approvals.length>0?{__approvalRequired:!0,toolName:i,args:r,agentRunId:f.approvals[0].runId,subApprovals:f.approvals}:(d.send({type:`agent-result`,agentName:i,session:c,result:m}),m)}let d=await DZe(i,{message:o,threadId:u,resourceId:n},e,t);return d.status===`suspended`&&d.pendingApprovals?.length?{__approvalRequired:!0,toolName:i,args:r,agentRunId:d.runId,subApprovals:d.pendingApprovals.map(e=>({toolCallId:e.toolCallId,toolName:e.toolName,args:e.args,runId:e.runId}))}:d.object??d.text}})}}if(o?.some(e=>e.beforeToolCall||e.afterToolCall))for(let e of l){let t=e.execute;e.execute=async n=>{let r=Mk(),i=n??{};for(let t of o)if(t.beforeToolCall){let n=await t.beforeToolCall(c,{toolName:e.name,toolCallId:r,args:i});n&&`args`in n&&(i=n.args)}let a=Date.now(),s,l;try{s=await t(i)}catch(e){if(l=e,e?.payload?.error===`missing_credential`)throw e;s=e instanceof Error?e.message:String(e)}let u=Date.now()-a;for(let t=o.length-1;t>=0;t--){let n=o[t];if(n.afterToolCall){let t=await n.afterToolCall(c,{toolName:e.name,toolCallId:r,args:i,result:s,durationMs:u});t&&`result`in t&&(s=t.result)}}if(l)throw l;return s}}return{tools:l,missingRpcs:u}}async function TZe(e,t,n,r,i){let a=fk(),{agent:o,packageName:s,resolvedName:c}=CZe(e),l=a.aiAgentRunner;if(!l)throw new wk;if(n.getCredential&&l.withApiKey){let e=await n.getCredential(`AI_API_KEY`);e?.apiKey?.trim()&&(l=l.withApiKey(e.apiKey))}let{storage:u}=Dk(o,a),d=o.memory,f=t.threadId,p=dk(s,`agent`,`agentsMeta`)[c],m=p?.outputSchema,h=m?dk(s,`misc`,`schemas`).get(m):void 0,g=p?.workingMemorySchema??null,_=g?dk(s,`misc`,`schemas`).get(g):void 0;if(u)try{await u.getThread(f)}catch{await u.createThread(t.resourceId,{threadId:f})}let v=[];u&&(v=await u.getMessages(f,{lastN:d?.lastMessages??20}));let y=await kk(d,u,t,_),b=t.attachments?.length?[{type:`text`,text:t.message},...t.attachments.map(e=>({type:e.type,data:e.data,url:e.url,mediaType:e.mediaType,...e.filename?{filename:e.filename}:{}}))]:t.message,x={id:Mk(),role:`user`,content:b,createdAt:new Date},S=lZe([...y,...v,x]),C=o.aiMiddleware??[],{tools:w,missingRpcs:T}=await Hk(n,r,t.resourceId,c,s,i,C,o.agentMode),E=await Vk(c,s);t.context&&(E=`${E}\n\nCurrent context (use these identifiers directly in tool calls — do not ask the user for them):\n${t.context}`);let D=Nk(c,o);t.model&&(D.model=Nk(c,{...o,model:t.model}).model),t.temperature!==void 0&&(D.temperature=t.temperature);let O=D.maxSteps??10,ee={model:D.model,temperature:D.temperature,instructions:E,messages:S,tools:w,maxSteps:1,toolChoice:o.toolChoice??`auto`,outputSchema:h};return{agent:o,packageName:s,resolvedName:c,agentRunner:l,storage:u,memoryConfig:d,threadId:f,userMessage:x,runnerParams:ee,maxSteps:O,missingRpcs:T,workingMemoryJsonSchema:_,workingMemorySchemaName:g}}function Uk(e){if(e===null)return;if(Array.isArray(e))return e.map(Uk);if(typeof e!=`object`)return e;let t={};for(let[n,r]of Object.entries(e))r!==null&&(t[n]=Uk(r));return t}function EZe(e){if(!e||typeof e!=`object`)return{text:null,uiSpec:null};let t=e;return{text:typeof t.text==`string`?t.text:null,uiSpec:t.ui??null}}async function DZe(e,t,n,r){let{agent:i,agentRunner:a,storage:o,memoryConfig:s,threadId:c,userMessage:l,runnerParams:u,maxSteps:d,missingRpcs:f,workingMemorySchemaName:p}=await TZe(e,t,n,r??new Map);u.agentId=e;let m=fk(),{aiRunState:h}=m;if(!h)throw Error(`AIRunStateService not available in singletonServices`);if(f.length>0)return{runId:await h.createRun({agentName:e,threadId:c,resourceId:t.resourceId,status:`suspended`,suspendReason:`rpc-missing`,missingRpcs:f,usage:{inputTokens:0,outputTokens:0,model:i.model},createdAt:new Date,updatedAt:new Date}),text:``,threadId:c,steps:[],usage:{inputTokens:0,outputTokens:0}};let g=[...jk(s,o,{threadId:c,workingMemorySchemaName:p,logger:m.logger,schemaService:m.schema}),...i.aiMiddleware??[]],_=u.messages,v=u.instructions;for(let e of g)if(e.modifyInput){let t=await e.modifyInput(m,{messages:_,instructions:v});_=t.messages,v=t.instructions}u.messages=_,u.instructions=v;let y=await h.createRun({agentName:e,threadId:c,resourceId:t.resourceId,status:`running`,usage:{inputTokens:0,outputTokens:0,model:i.model},createdAt:new Date,updatedAt:new Date});try{let e=[],n={inputTokens:0,outputTokens:0},r=null;for(let f=0;f<d;f++){if(i.prepareStep){let e=!1;if(await i.prepareStep({stepNumber:f,messages:u.messages,tools:u.tools,toolChoice:u.toolChoice,model:u.model,stop:()=>{e=!0}}),e)break}let d=await a.run(u);r=d,n.inputTokens+=d.usage.inputTokens,n.outputTokens+=d.usage.outputTokens;for(let e of g)e.afterStep&&await e.afterStep(m,{stepNumber:f,text:d.text,toolCalls:d.toolCalls,toolResults:d.toolResults,usage:d.usage,finishReason:d.finishReason});if(e.push({usage:d.usage,toolCalls:d.toolCalls.map(e=>{let t=d.toolResults.find(t=>t.toolCallId===e.toolCallId);return{name:e.toolName,args:e.args,result:typeof t?.result==`string`?t.result:JSON.stringify(t?.result??``)}})}),d.toolCalls.length===0)break;let p=Lk(d,u.tools,y);if(p.length>0){for(let e of p){let t=u.tools.find(t=>t.name===e.toolName);if(t?.approvalDescriptionFn&&!e.reason)try{e.reason=await t.approvalDescriptionFn(e.args)}catch{}}let a=p.map(e=>e.agentRunId?{type:`agent-call`,toolCallId:e.toolCallId,agentName:e.toolName,agentRunId:e.agentRunId,displayToolName:e.displayToolName??e.toolName,displayArgs:e.displayArgs??e.args}:{type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,args:e.args}),f=e.slice(0,-1);return await cZe(o,c,t.resourceId,s,l,{text:``,steps:f}),o&&await o.saveMessages(c,[{id:Mk(),role:`assistant`,toolCalls:d.toolCalls.map(e=>({id:e.toolCallId,name:e.toolName,args:e.args})),createdAt:new Date}]),await h.updateRun(y,{status:`suspended`,suspendReason:`approval`,pendingApprovals:a,usage:{...n,model:i.model}}),{runId:y,text:r?.text??``,threadId:c,steps:e,usage:n,status:`suspended`,pendingApprovals:p.map(e=>({toolCallId:e.toolCallId,toolName:e.displayToolName??e.toolName,args:e.displayArgs??e.args,reason:e.reason,runId:y}))}}zk(u,d)}let f=r?.object,p=EZe(f),_=p.text??r?.text??``,v={text:_,steps:e},b=_,x=u.messages;for(let e=g.length-1;e>=0;e--){let t=g[e];if(t.modifyOutput){let e=await t.modifyOutput(m,{text:b,messages:x,usage:n});b=e.text,x=e.messages}}return await cZe(o,c,t.resourceId,s,l,{...v,text:b,uiSpec:p.uiSpec}),await h.updateRun(y,{status:`completed`,usage:{...n,model:i.model}}),{runId:y,text:b,object:f,threadId:c,steps:e,usage:n}}catch(e){for(let t of g)if(t.onError)try{await t.onError(m,{error:e instanceof Error?e:Error(String(e)),stepNumber:-1,messages:u.messages})}catch{}throw await h.updateRun(y,{status:`failed`,errorMessage:e instanceof Error?e.message:String(e)}),e}}async function OZe(e,t,n,r){let i=fk(),{aiRunState:a}=i;if(!a)throw Error(`AIRunStateService not available in singletonServices`);let o=await a.getRun(e);if(!o)throw Error(`No run found for runId ${e}`);if(r&&o.agentName!==r)throw Error(`Run ${e} belongs to agent '${o.agentName}', not '${r}'`);if(o.status!==`suspended`)throw Error(`Run ${e} is not suspended (status: ${o.status})`);let{agent:s,packageName:c,resolvedName:l}=CZe(o.agentName),{storage:u}=Dk(s,i),d=s.memory,f=i.aiAgentRunner;if(!f)throw new wk;let p=new Set(t.filter(e=>e.approved).map(e=>e.toolCallId)),m=new Set(t.filter(e=>!e.approved).map(e=>e.toolCallId)),h=[...o.pendingApprovals??[]];for(let{toolCallId:e,approved:n}of t)await a.resolveApproval(e,n?`approved`:`denied`);let{tools:g}=await Hk(n,new Map,o.resourceId,l,c,void 0,s.aiMiddleware??[]),_=[];for(let e of h){if(e.type!==`tool-call`)continue;let t=e.toolCallId,n;if(m.has(t))n=`The user explicitly declined this action. Inform them that it was declined and do not retry.`;else if(p.has(t)){let t=g.find(t=>t.name===e.toolName);if(!t)throw Error(`Tool "${e.toolName}" not found in agent definition`);let r=Uk(typeof e.args==`string`?JSON.parse(e.args):e.args)??{};try{let e=await t.execute(r);n=typeof e==`string`?e:JSON.stringify(e)}catch(e){n=e?.payload?.error===`missing_credential`?JSON.stringify(e.payload):`Error: ${e instanceof Error?e.message:String(e)}`}}else continue;_.push({toolCallId:t,toolName:e.toolName,args:typeof e.args==`string`?JSON.parse(e.args):e.args,result:n})}return u&&_.length>0&&await u.saveMessages(o.threadId,[{id:Mk(),role:`tool`,toolResults:_.map(e=>({id:e.toolCallId,name:e.toolName,result:e.result})),createdAt:new Date}]),await a.updateRun(e,{status:`running`}),kZe(o,s,c,l,u,d,f,n,a)}async function kZe(e,t,n,r,i,a,o,s,c){let l=fk(),u=dk(n,`agent`,`agentsMeta`)[r],d=u?.workingMemorySchema??null,f=i?await i.getMessages(e.threadId,{lastN:a?.lastMessages??20}):[],p=d?dk(n,`misc`,`schemas`).get(d):void 0,m=lZe([...await kk(a,i,{message:``,threadId:e.threadId,resourceId:e.resourceId},p),...f]),h=await Vk(r,n),g=[...jk(a,i,{threadId:e.threadId,workingMemorySchemaName:d,logger:l.logger,schemaService:l.schema}),...t.aiMiddleware??[]],_=m,v=h;for(let e of g)if(e.modifyInput){let t=await e.modifyInput(l,{messages:_,instructions:v});_=t.messages,v=t.instructions}let{tools:y}=await Hk(s,new Map,e.resourceId,r,n,void 0,g),b=Nk(r,t),x=b.maxSteps??10,S={model:b.model,temperature:b.temperature,instructions:v,messages:_,tools:y,maxSteps:1,toolChoice:t.toolChoice??`auto`,outputSchema:u?.outputSchema?dk(n,`misc`,`schemas`).get(u.outputSchema):void 0,agentId:e.agentName};try{let n=[],r={inputTokens:0,outputTokens:0},s=null;for(let u=0;u<x;u++){let d=await o.run(S);s=d,r.inputTokens+=d.usage.inputTokens,r.outputTokens+=d.usage.outputTokens;for(let e of g)e.afterStep&&await e.afterStep(l,{stepNumber:u,text:d.text,toolCalls:d.toolCalls,toolResults:d.toolResults,usage:d.usage,finishReason:d.finishReason});if(n.push({usage:d.usage,toolCalls:d.toolCalls.map(e=>{let t=d.toolResults.find(t=>t.toolCallId===e.toolCallId);return{name:e.toolName,args:e.args,result:typeof t?.result==`string`?t.result:JSON.stringify(t?.result??``)}})}),d.toolCalls.length===0)break;let f=Lk(d,S.tools,e.runId);if(f.length>0){for(let e of f){let t=S.tools.find(t=>t.name===e.toolName);if(t?.approvalDescriptionFn&&!e.reason)try{e.reason=await t.approvalDescriptionFn(e.args)}catch{}}let o=f.map(e=>e.agentRunId?{type:`agent-call`,toolCallId:e.toolCallId,agentName:e.toolName,agentRunId:e.agentRunId,displayToolName:e.displayToolName??e.toolName,displayArgs:e.displayArgs??e.args}:{type:`tool-call`,toolCallId:e.toolCallId,toolName:e.toolName,args:e.args}),l=n.slice(0,-1);l.length>0&&await cZe(i,e.threadId,e.resourceId,a,null,{text:``,steps:l}),i&&await i.saveMessages(e.threadId,[{id:Mk(),role:`assistant`,toolCalls:d.toolCalls.map(e=>({id:e.toolCallId,name:e.toolName,args:e.args})),createdAt:new Date}]),await c.updateRun(e.runId,{status:`suspended`,suspendReason:`approval`,pendingApprovals:o,usage:{...r,model:t.model}});let u=s?.text??``;return{runId:e.runId,text:u,threadId:e.threadId,steps:n,usage:r,status:`suspended`,pendingApprovals:f.map(t=>({toolCallId:t.toolCallId,toolName:t.displayToolName??t.toolName,args:t.displayArgs??t.args,reason:t.reason,runId:e.runId}))}}zk(S,d)}let u=s?.text??``,d=s?.object,f={text:u,steps:n},p=u,m=S.messages;for(let e=g.length-1;e>=0;e--){let t=g[e];if(t.modifyOutput){let e=await t.modifyOutput(l,{text:p,messages:m,usage:r});p=e.text,m=e.messages}}return await cZe(i,e.threadId,e.resourceId,a,null,{...f,text:p}),await c.updateRun(e.runId,{status:`completed`,usage:{...r,model:t.model}}),{runId:e.runId,text:p,object:d,threadId:e.threadId,steps:n,usage:r}}catch(t){for(let e of g)if(e.onError)try{await e.onError(l,{error:t instanceof Error?t:Error(String(t)),stepNumber:-1,messages:S.messages})}catch{}throw await c.updateRun(e.runId,{status:`failed`,errorMessage:t instanceof Error?t.message:String(t)}),t}}var Wk=class extends vk{rpcName;constructor(e){super(`RPC function not found: ${e}`),this.rpcName=e}};yk(Wk,{status:404,mcpCode:-32601,message:`RPC function not found.`});var AZe=e=>{let t=e.indexOf(`:`);if(t===-1)return null;let n=e.substring(0,t),r=e.substring(t+1),i=dk(null,`addons`,`packages`).get(n);return i?{package:i.package,function:r,addonConfig:i}:null},jZe=(e,t=null)=>{if(t){let n=dk(t,`function`,`meta`)?.[e];if(n)return{pikkuFuncId:n.pikkuFuncId||e,packageName:t}}let n=dk(null,`rpc`,`meta`),r=n[e];if(!r){let{baseName:t,version:i}=Ek(e);i!==null&&(r=n[t])}if(!r){let t=dk(null,`function`,`meta`)?.[e];if(t)return{pikkuFuncId:t.pikkuFuncId||e,packageName:null}}if(!r)throw new Wk(e);return{pikkuFuncId:r,packageName:null}},MZe=class{services;wire;options;packageName;constructor(e,t,n,r=null){this.services=e,this.wire=t,this.options=n,this.packageName=r}async rpcExposed(e,t){let n;if(e.includes(`:`)){let t=AZe(e);t&&(n=dk(t.package,`function`,`meta`)[t.function])}else{let t=jZe(e,this.packageName);n=dk(t.packageName,`function`,`meta`)[t.pikkuFuncId]}if(!n||!n.expose)throw new Wk(e);return await this.rpc(e,t)}async rpc(e,t){let n={...this.wire};if(e.includes(`:`))try{return await this.invokeAddonFunction(e,t,n)}catch(e){if(!(e instanceof Wk))throw e}try{let r=jZe(e,this.packageName);return await LZe(`rpc`,e,r.pikkuFuncId,{auth:this.options.requiresAuth,singletonServices:this.services,data:()=>t,wire:n,packageName:r.packageName})}catch(n){if(n instanceof Wk&&this.services.deploymentService){let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}throw n}}async invokeAddonFunction(e,t,n){let r=AZe(e);if(!r)throw new Wk(e);let i=dk(r.package,`function`,`meta`)[r.function];if(!i)throw new Wk(e);let a=i.pikkuFuncId||r.function,o=r.addonConfig?.auth??this.options.requiresAuth,s=[...r.addonConfig?.tags??[],...i.tags??[]];return LZe(`rpc`,e,a,{auth:o,singletonServices:this.services,data:()=>t,wire:n,packageName:r.package,tags:s})}async rpcWithWire(e,t,n){let r={...this.wire,...n};if(e.includes(`:`))return this.invokeAddonFunction(e,t,r);try{let n=jZe(e,this.packageName);return await LZe(`rpc`,e,n.pikkuFuncId,{auth:this.options.requiresAuth,singletonServices:this.services,data:()=>t,wire:r,packageName:n.packageName})}catch(n){if(n instanceof Wk&&this.services.deploymentService){let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}throw n}}async startWorkflow(e,t,n){if(!this.services.workflowService)throw Error(`WorkflowService service not available`);let r=this.wire.workflowStep?.runId??this.wire.graph?.runId,i=n?.wire??{type:this.wire.wireType??`unknown`,id:this.wire.wireId,...r?{parentRunId:r}:{},...this.wire.pikkuUserId?{pikkuUserId:this.wire.pikkuUserId}:{}};return this.services.workflowService.startWorkflow(e,t,i,this,n)}get agent(){return{run:async(e,t)=>{let n=await DZe(e,t,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)});return{runId:n.runId,result:n.object??n.text,usage:n.usage,...n.status===`suspended`&&{status:`suspended`,pendingApprovals:n.pendingApprovals}}},stream:async(e,t,n)=>{let r=this.wire.channel;if(!r)throw Error(`No channel available for streaming`);await yZe(e,t,r,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)},void 0,n)},resume:async(e,t,n)=>{let r=this.wire.channel;if(!r)throw Error(`No channel available for streaming`);await bZe({runId:e,...t},r,{sessionService:this.options.sessionService,getCredential:this.wire.getCredential?.bind(this.wire)},n)},approve:async(e,t,n)=>{let r=await OZe(e,t,{sessionService:this.options.sessionService},n);return{runId:r.runId,result:r.object??r.text,usage:r.usage,...r.status===`suspended`&&{status:`suspended`,pendingApprovals:r.pendingApprovals}}}}}async remote(e,t){if(!this.services.deploymentService)throw Error(`No DeploymentService configured for remote RPC: ${e}. Set up a DeploymentService to enable remote function calls.`);let n=this.wire.getSession&&typeof this.wire.getSession==`function`?await this.wire.getSession():this.wire.session;return this.services.deploymentService.invoke(e,t,n,this.wire.traceId)}},Gk=new class{getContextRPCService(e,t,n,r=0,i=null){let a=new MZe(e,t,typeof n==`object`&&n?n:{requiresAuth:n},i);return{depth:r,global:!1,invoke:a.rpc.bind(a),remote:a.remote.bind(a),exposed:a.rpcExposed.bind(a),startWorkflow:a.startWorkflow.bind(a),get agent(){return a.agent},rpcWithWire:a.rpcWithWire.bind(a)}}};async function NZe(e,t,n){let r=tZe(e);r&&(e.pikkuUserId=r,n instanceof $Xe&&n.setPikkuUserId(r));let{sessionStore:i}=t;if(!(!i||!r))if(e.session)n?.setInitial(e.session);else{let t=await i.get(r);t&&(e.session=t,n?.setInitial(t))}}var PZe=e=>{let t=dk(null,`addons`,`packages`);if(!t)return null;for(let[n,r]of t.entries())if(r?.package===e)return n;return null},FZe=(e,t)=>new Proxy(e,{get(e,n,r){if(n===`startWorkflow`||n===`runToCompletion`){let i=Reflect.get(e,n,r);return function(e,...n){if(typeof e==`string`&&!e.includes(`:`)){let n=PZe(t);n&&(e=`${n}:${e}`)}return i.call(this,e,...n)}}return Reflect.get(e,n,r)}}),IZe=async(e,t)=>{let n=dk(e,`package`,`singletonServices`);if(n)return n;let r=dk(e,`package`,`factories`);if(!r||!r.createSingletonServices)return t;let i=t.config;r.createConfig&&(i=await r.createConfig(t.variables));let a=await r.createSingletonServices(i,t);return a.workflowService&&typeof a.workflowService==`object`&&(a.workflowService=FZe(a.workflowService,e)),dk(e,`package`,`singletonServices`,a),a},LZe=async(e,t,n,{singletonServices:r,createWireServices:i,data:a,auth:o,inheritedMiddleware:s,wireMiddleware:c,inheritedChannelMiddleware:l,wireChannelMiddleware:u,inheritedPermissions:d,wirePermissions:f,coerceDataFromSchema:p,tags:m=[],wire:h,sessionService:g,credentialWireService:_,packageName:v=null})=>{h.wireType??=e,h.wireId??=t;let y=dk(v,`function`,`functions`),b=y.get(n),x=dk(v,`function`,`meta`),S=x[n];if(!b||!S){let{baseName:e,version:t}=Ek(n);t!==null&&(b||=y.get(e),S||=x[e],b&&S&&r.logger.warn(`Version '${n}' not registered, resolved to '${e}'`))}if(!b)throw Error(`Function not found: ${n}`);if(!S)throw Error(`Function meta not found: ${n}`);let C=S.pikkuFuncId??n,w=v?await IZe(v,r):r,T=i;if(v){let e=dk(v,`package`,`factories`);e?.createWireServices&&(T=e.createWireServices)}let E=_k(e,t,{wireInheritedChannelMiddleware:l,wireChannelMiddleware:u,packageName:v}),D=E.length>0&&h.channel?BXe(h,w,E):h;if(!D.getCredentials){let e=_??new nZe(w.credentialService,D);Object.assign(D,rZe(e))}let O=iZe(b.audit),ee=D,k=ee.functionId,te=ee.audit,ne=Object.getOwnPropertyDescriptor(ee,`rpc`);ee.functionId=C,ee.audit=O;let re;re=m&&m.length>0?[...d||[],...m.map(e=>({type:`tag`,tag:e}))]:d||[];let ie=async()=>{await NZe(ee,w,g),g&&(ee.session=g.freezeInitial(),ee.setSession=e=>g.set(e),ee.clearSession=()=>g.clear(),ee.getSession=()=>g.get(),ee.hasSessionChanged=()=>g.sessionChanged);let r=ee.session;if(S.sessionless){if((o===!0||b.auth===!0)&&!r)throw new HXe(`Authentication required`)}else if((o===!1||b.auth===!1)&&w.logger.warn(`Function '${n}' requires a session but auth was explicitly disabled — use pikkuSessionlessFunc instead.`),!r)throw new HXe(`Authentication required`);if(r?.readonly&&!S.readonly)throw new UXe;let i=await a(),s=S.inputSchemaName;s&&(p&&XXe(s,i,v),await ZXe(w.logger,w.schema,s,i,v)),(re.length>0||f||S.permissions||b.permissions)&&await qXe(e,t,{wireInheritedPermissions:re,wirePermissions:f,funcInheritedPermissions:S.permissions,funcPermissions:b.permissions,services:w,wire:ee,data:i,packageName:v});let c;try{c=await T?.(w,ee);let e=c&&Object.keys(c).length>0?{...w,...c}:w,t=v;return Object.defineProperty(ee,"rpc",{get(){let n=Gk.getContextRPCService(e,ee,{sessionService:g},0,t);return Object.defineProperty(ee,"rpc",{value:n,writable:!0,configurable:!0}),n},configurable:!0,enumerable:!0}),await b.func(e,i,ee)}finally{c&&Object.keys(c).length>0&&await AXe(w.logger,c)}},ae=hk(e,t,{wireInheritedMiddleware:s,wireMiddleware:c,funcInheritedMiddleware:S.middleware,funcMiddleware:b.middleware,packageName:v});if(ae.length>0)try{return await IXe(w,ee,ae,ie)}finally{ne&&Object.defineProperty(ee,"rpc",ne),k===void 0?delete ee.functionId:ee.functionId=k,te===void 0?delete ee.audit:ee.audit=te}try{return await ie()}finally{ne&&Object.defineProperty(ee,"rpc",ne),k===void 0?delete ee.functionId:ee.functionId=k,te===void 0?delete ee.audit:ee.audit=te}},RZe={pending:0,scheduled:1,running:2,succeeded:3,failed:3};function Kk(e){let t=[];return e.forEach((e,n)=>{let r={stepName:e.stepName,attemptCount:e.attemptCount,order:n};t.push({...r,at:e.createdAt,type:`pending`,fromStepName:e.fromStepName}),e.scheduledAt&&t.push({...r,at:e.scheduledAt,type:`scheduled`}),e.runningAt&&t.push({...r,at:e.runningAt,type:`running`}),e.status===`succeeded`?t.push({...r,at:e.succeededAt??e.updatedAt,type:`succeeded`,result:e.result}):e.status===`failed`&&t.push({...r,at:e.failedAt??e.updatedAt,type:`failed`,error:e.error})}),t.sort((e,t)=>{let n=e.at.getTime(),r=t.at.getTime();if(n!==r)return n-r;let i=RZe[e.type],a=RZe[t.type];return i===a?e.order-t.order:i-a}),t.map(({order:e,...t},n)=>({...t,seq:n}))}var zZe=new Set([`pending`,`scheduled`,`running`]);function BZe(e,t){let n=e=>typeof t==`number`?e.seq<=t:e.at.getTime()<=t.getTime(),r=new Map,i=[],a=-1,o;for(let t of e){if(!n(t))break;a=t.seq,o=t.at;let e=r.get(t.stepName);e||(e={stepName:t.stepName,status:t.type,attemptCount:t.attemptCount,fromStepName:t.fromStepName},r.set(t.stepName,e),i.push(t.stepName)),e.status=t.type,e.attemptCount=t.attemptCount,t.fromStepName!==void 0&&(e.fromStepName=t.fromStepName),t.type===`pending`&&(delete e.result,delete e.error),t.type===`succeeded`&&(e.result=t.result,e.error=void 0),t.type===`failed`&&(e.error=t.error)}let s=i.map(e=>r.get(e)),c={};for(let e of s)e.status===`succeeded`&&(c[e.stepName]=e.result);return{seq:a,at:o,steps:s,results:c,path:i,phase:HZe(s)}}function VZe(e){return BZe(e,e.length-1)}function HZe(e){return e.length===0?`pending`:e.some(e=>zZe.has(e.status))?`running`:e.some(e=>e.status===`failed`)?`failed`:`idle`}yk(class extends vk{constructor(e){super(`Workflow not found: ${e}`)}},{status:404,message:`Workflow not found.`}),yk(class extends vk{constructor(e){super(`Workflow run not found: ${e}`)}},{status:404,message:`Workflow run not found.`}),yk(class extends vk{payload;constructor(e){super(`Workflow run failed: ${e??`unknown`}`),this.payload={message:e}}},{status:422,message:`Workflow run failed.`}),yk(class extends vk{constructor(){super(`Workflow was cancelled`)}},{status:409,message:`Workflow was cancelled.`});var UZe=(0,g.createContext)(void 0),WZe=()=>{let e=(0,g.useContext)(UZe);if(!e)throw Error(`useWorkflowRunContext must be used within WorkflowRunProvider`);return e},qk=()=>(0,g.useContext)(UZe),Jk=e=>{let t=new Map;if(!e)return t;let n=[];for(let r of Object.keys(e))if(t.set(r,r),r.includes("${")){let e=r.split(/\$\{[^}]+\}/).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)).join(`.+`);n.push([r,RegExp(`^${e}$`)])}return t.__templatePatterns=n,t},GZe=({children:e,workflowName:t,currentGraphHash:n,workflowNodes:r})=>{let[i,a]=l_(),[o,s]=(0,g.useState)(i.get(`runId`)),[c,l]=(0,g.useState)(!1),{data:u,isLoading:d}=EXe(o),{data:f,isLoading:p}=ak(o),{data:m}=ok(o),h=u,_=f,[v,y]=(0,g.useState)(null),b=(0,g.useCallback)(e=>{s(e),e&&l(!1),a(t=>{let n=new URLSearchParams(t);return e?n.set(`runId`,e):n.delete(`runId`),n},{replace:!0})},[a]);(0,g.useEffect)(()=>{let e=i.get(`runId`);e!==o&&s(e)},[i]);let x=(0,g.useMemo)(()=>Jk(r),[r]),S=(0,g.useCallback)(e=>x.get(e)??x.__templatePatterns?.find(([t,n])=>n.test(e))?.[0]??e,[x]),C=(0,g.useMemo)(()=>{if(!m||!Array.isArray(m))return[];let e=e=>e?new Date(e):void 0;return Kk(m.map(t=>({...t,createdAt:new Date(t.createdAt),updatedAt:new Date(t.updatedAt??t.createdAt),scheduledAt:e(t.scheduledAt),runningAt:e(t.runningAt),succeededAt:e(t.succeededAt),failedAt:e(t.failedAt)})))},[m]);(0,g.useEffect)(()=>{y(null)},[o]);let w=(0,g.useCallback)(e=>{if(e===null){y(null);return}let t=C.length-1;y(Math.max(0,Math.min(e,t)))},[C.length]),T=(0,g.useMemo)(()=>v===null||C.length===0?null:BZe(C,v),[C,v]),E=(0,g.useMemo)(()=>{let e=new Map;if(_&&Array.isArray(_))for(let t of _)e.set(S(t.stepName),t);return e},[_,S]),D=(0,g.useMemo)(()=>{if(!T)return null;let e=new Map;for(let t of T.steps)e.set(S(t.stepName),t);return e},[T,S])??E,O=h?.status===`running`,ee=d||p,k=h?.graphHash,te=!!(o&&k&&n&&k!==n),{data:ne,isLoading:re}=DXe(te&&t?t:null,te&&k?k:null),ie=ne?.graph??null;return(0,A.jsx)(UZe.Provider,{value:{selectedRunId:o,setSelectedRunId:b,runData:h,stepStates:D,isRunActive:O,isLoading:ee,isVersionMismatch:te,historicalWorkflow:ie,historicalLoading:re,isCreatingRun:c,setIsCreatingRun:l,timeline:C,timelineSeq:v,setTimelineSeq:w,reconstructed:T},children:e})},KZe=(0,g.createContext)(void 0),Yk=()=>{let e=(0,g.useContext)(KZe);if(!e)throw Error(`useWorkflowContext must be used within WorkflowProvider`);return e},Xk=()=>(0,g.useContext)(KZe),qZe=e=>{let{getNode:t}=Yk();return t(e)},Zk=({children:e,workflow:t})=>{let[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(null),o=(0,g.useCallback)(e=>t?.nodes?.[e],[t]),s=(0,g.useCallback)(e=>{if(t?.nodes){for(let[n,r]of Object.entries(t.nodes))if(r.outputVar===e)return n}},[t]),c=(0,g.useCallback)(e=>{r(e)},[]),l=(0,g.useCallback)(e=>{a(e)},[]);return(0,A.jsx)(KZe.Provider,{value:{workflow:t,getNode:o,findNodeByOutputVar:s,focusedNodeId:n,referencedNodeId:i,setFocusedNode:c,setReferencedNode:l},children:e})};function JZe(e){let t=pg();return Lr({queryKey:[`channel`,`snippets`,e],queryFn:async()=>await t.invoke(`console:getChannelSnippets`,{channelName:e}),enabled:!!e})}function Qk(){let e=pg();return Lr({queryKey:[`functions`,`meta`],queryFn:async()=>await e.invoke(`console:getFunctionsMeta`)})}function $k(e){let{isLoading:t,isError:n,data:r}=Qk();return{data:(0,g.useMemo)(()=>r?.find(t=>t.name===e)||null,[r,e]),isLoading:t,isError:n}}function eA(){let e=pg();return Lr({queryKey:[`addon`,`meta`],queryFn:async()=>await e.invoke(`console:getAddonMeta`)})}function tA(e){let t=pg();return Lr({queryKey:[`schema`,e],queryFn:async()=>e?await t.invoke(`console:getSchema`,{schemaName:e}):null,enabled:!!e})}function YZe(e){let{data:t}=$k(e||``),n=t?.outputSchemaName;return tA(n)}function XZe(e,t,n,r=!0){let i=pg();return Lr({queryKey:[`emails`,`preview`,e,t,JSON.stringify(n)],queryFn:async()=>e?await i.invoke(`console:renderEmailPreview`,{templateName:e,locale:t??void 0,data:n}):null,enabled:r&&!!e})}function ZZe(){let{workflow:e}=Yk(),t=(0,g.useMemo)(()=>{if(e?.source!==`dynamic-workflow`||!e?.nodes)return null;let t=new Set;for(let n of Object.values(e.nodes))if(n.input)for(let e of Object.values(n.input))e&&typeof e==`object`&&e.$ref===`trigger`&&e.path&&t.add(e.path);if(t.size===0)return null;let n={};for(let e of t)n[e]={type:`string`};return{type:`object`,properties:n,required:[...t]}},[e]),n=(0,g.useMemo)(()=>{if(t)return null;if(e?.source===`graph`||e?.source===`dynamic-workflow`){let t=e.entryNodeIds?.[0];return(t?e.nodes?.[t]:null)?.rpcName??null}return e?.pikkuFuncId??null},[e,t]),{data:r,isLoading:i}=$k(n??``),a=r?.inputSchemaName,{data:o,isLoading:s}=tA(a);return{schema:t??o,isLoading:!!n&&i||!!a&&s}}var QZe={root:`m_5cb1b9c8`,codeHighlight:`m_e597c321`,inlineCodeHighlight:`m_dfe9c588`,pre:`m_2c47c4fd`,code:`m_5caae6d3`,controls:`m_be7e9c9c`,control:`m_d498bab7`,controlTooltip:`m_4c3d814c`,scrollarea:`m_f744fd40`,showCodeButton:`m_c9378bc2`,file:`m_5cac2e62`,fileIcon:`m_b46cddfb`,filesScrollarea:`m_7b14120b`,files:`m_38d99e51`},$Ze={getHighlighter:()=>({code:e})=>({highlightedCode:e,isHighlighted:!1})},[eQe,tQe]=Ji({adapter:$Ze,highlight:$Ze.getHighlighter(null)});function nQe({adapter:e,children:t}){let[n,r]=(0,g.useState)(null),i=(0,g.useMemo)(()=>e.getHighlighter(n),[e,n]);return(0,g.useEffect)(()=>{e.loadContext&&e.loadContext().then(r)},[e]),(0,A.jsx)(eQe,{value:{adapter:e,highlight:i},children:t})}function nA(){return tQe()?.highlight||$Ze.getHighlighter(null)}var[rQe,rA]=qi(`CodeHighlightProvider was not found in the component tree`),iQe=Fs((e,t)=>{let{children:n,vars:r,tooltipLabel:i,...a}=Qo(`CodeHighlightControl`,null,e),o=rA(),s=o.getStyles(`controlTooltip`),c=(0,A.jsx)(au,{ref:t,...o.getStyles(`control`),...a,variant:`none`,"data-code-color-scheme":o.codeColorScheme,children:n});return i?(0,A.jsx)(Xf,{label:i,fz:`sm`,position:`bottom`,classNames:{tooltip:s.className},styles:{tooltip:s.style},"data-code-color-scheme":o.codeColorScheme,transitionProps:{duration:0},children:c}):c});iQe.displayName=`@mantine/code-highlight/CodeHighlightControl`;function aQe({copied:e,...t}){return(0,A.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,strokeWidth:`2`,stroke:`currentColor`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`,...t,children:e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M5 12l5 5l10 -10`})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z`}),(0,A.jsx)(`path`,{d:`M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2`})]})})}aQe.displayName=`@mantine/code-highlight/CopyIcon`;function oQe({code:e,copyLabel:t=`Copy`,copiedLabel:n=`Copied`}){let r=ha();return(0,A.jsx)(iQe,{onClick:()=>r.copy(e.trim()),variant:`none`,tooltipLabel:r.copied?n:t,"aria-label":r.copied?n:`${t} code`,children:(0,A.jsx)(aQe,{copied:r.copied})})}oQe.displayName=`@mantine/code-highlight/CopyCodeButton`;function iA({expanded:e,style:t,...n}){return(0,A.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,strokeWidth:`2`,stroke:`currentColor`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`,...n,children:e?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M12 13v-8l-3 3m6 0l-3 -3`}),(0,A.jsx)(`path`,{d:`M9 17l1 0`}),(0,A.jsx)(`path`,{d:`M14 17l1 0`}),(0,A.jsx)(`path`,{d:`M19 17l1 0`}),(0,A.jsx)(`path`,{d:`M4 17l1 0`})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`path`,{stroke:`none`,d:`M0 0h24v24H0z`,fill:`none`}),(0,A.jsx)(`path`,{d:`M12 11v8l3 -3m-6 0l3 3`}),(0,A.jsx)(`path`,{d:`M9 7l1 0`}),(0,A.jsx)(`path`,{d:`M14 7l1 0`}),(0,A.jsx)(`path`,{d:`M19 7l1 0`}),(0,A.jsx)(`path`,{d:`M4 7l1 0`})]})})}iA.displayName=`@mantine/code-highlight/ExpandIcon`;function sQe({expanded:e,onExpand:t,expandCodeLabel:n=`Expand code`,collapseCodeLabel:r=`Collapse code`}){return(0,A.jsx)(iQe,{onClick:()=>t(!e),tooltipLabel:e?r:n,children:(0,A.jsx)(iA,{expanded:e})})}sQe.displayName=`@mantine/code-highlight/ExpandCodeButton`;var cQe={withCopyButton:!0,expandCodeLabel:`Expand code`},lQe=Ba((e,{maxCollapsedHeight:t,background:n,radius:r})=>({codeHighlight:{"--ch-max-height":Hi(t),"--ch-background":n?so(n,e):void 0,"--ch-radius":r===void 0?void 0:ra(r)}})),aA=Ps((e,t)=>{let n=Qo(`CodeHighlight`,cQe,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,code:l,copiedLabel:u,copyLabel:d,defaultExpanded:f,expanded:p,onExpandedChange:m,maxCollapsedHeight:h,withCopyButton:g,withExpandButton:_,expandCodeLabel:v,collapseCodeLabel:y,radius:b,background:x,withBorder:S,controls:C,language:w,codeColorScheme:T,__withOffset:E,__inline:D,__staticSelector:O,attributes:ee,...k}=n,te=Jo({name:O||`CodeHighlight`,classes:QZe,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:ee,vars:c,varsResolver:lQe,rootSelector:`codeHighlight`}),[ne,re]=Da({value:p,defaultValue:f,finalValue:!0,onChange:m}),ie=C&&C.length>0||_||g,ae=Zo(),oe=nA()({code:l.trim(),language:w,colorScheme:T??ae}),se=oe.isHighlighted?{dangerouslySetInnerHTML:{__html:oe.highlightedCode}}:{children:l.trim()};return D?(0,A.jsx)(j,{component:`code`,ref:t,...k,...oe.codeElementProps,...te(`codeHighlight`,{className:Va(oe.codeElementProps?.className,i),style:[{...oe.codeElementProps?.style},a]}),"data-with-border":S||void 0,...se}):(0,A.jsx)(rQe,{value:{getStyles:te,codeColorScheme:T},children:(0,A.jsxs)(j,{ref:t,...te(`codeHighlight`),...k,dir:`ltr`,"data-code-color-scheme":T,"data-with-border":S||void 0,children:[ie&&(0,A.jsxs)(`div`,{...te(`controls`),"data-with-offset":E||void 0,children:[C,_&&(0,A.jsx)(sQe,{expanded:ne,onExpand:re,expandCodeLabel:v,collapseCodeLabel:y}),g&&(0,A.jsx)(oQe,{code:l,copiedLabel:u,copyLabel:d})]}),(0,A.jsx)(Kl,{type:`hover`,scrollbarSize:4,dir:`ltr`,offsetScrollbars:!1,"data-collapsed":!ne||void 0,styles:{viewport:{overscrollBehaviorInline:`none`}},...te(`scrollarea`),children:(0,A.jsx)(`pre`,{...te(`pre`),"data-with-offset":E||void 0,children:(0,A.jsx)(`code`,{...oe.codeElementProps,...te(`code`,{className:oe.codeElementProps?.className,style:oe.codeElementProps?.style}),...se})})}),(0,A.jsx)(ql,{...te(`showCodeButton`),mod:{hidden:ne},onClick:()=>re(!0),"data-code-color-scheme":T,children:v})]})})});aA.displayName=`@mantine/code-highlight/CodeHighlight`,aA.classes=QZe,aA.Control=iQe;function uQe(e){return{getHighlighter:()=>({code:t,language:n})=>{let r=e.getLanguage(n)?n:`plaintext`;return{highlightedCode:e.highlight(t.trim(),{language:r}).value,isHighlighted:!0,codeElementProps:{className:`hljs ${r}`}}}}}function dQe(e,t,n){let r=pg();return Lr({queryKey:[`function-source`,e,t],queryFn:async()=>await r.invoke(`console:readFunctionSource`,{sourceFile:e,exportedName:t}),enabled:!!e&&!!t&&n})}function fQe(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,changes:r})=>e.invoke(`console:updateFunctionConfig`,{sourceFile:t,exportedName:n,changes:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`functions`]}),t.invalidateQueries({queryKey:[`function-source`]}),t.invalidateQueries({queryKey:[`allMeta`]})}})}function pQe(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,body:r})=>e.invoke(`console:updateFunctionBody`,{sourceFile:t,exportedName:n,body:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`functions`]}),t.invalidateQueries({queryKey:[`function-body`]}),t.invalidateQueries({queryKey:[`function-source`]}),t.invalidateQueries({queryKey:[`allMeta`]})}})}function mQe(){let e=pg(),t=Er();return Rr({mutationFn:({templateName:t,source:n})=>e.invoke(`console:updateEmailTemplate`,{templateName:t,source:n}),onSuccess:()=>{t.invalidateQueries({queryKey:[`emails`]})}})}function hQe(e,t,n){let r=pg();return Lr({queryKey:[`agent-source`,e,t],queryFn:async()=>await r.invoke(`console:readAgentSource`,{sourceFile:e,exportedName:t}),enabled:!!e&&!!t&&n})}function oA(){let e=pg(),t=Er();return Rr({mutationFn:({sourceFile:t,exportedName:n,changes:r})=>e.invoke(`console:updateAgentConfig`,{sourceFile:t,exportedName:n,changes:r}),onSuccess:()=>{t.invalidateQueries({queryKey:[`allMeta`]}),t.invalidateQueries({queryKey:[`agent-source`]})}})}var gQe=e=>e.enum?`enum`:e.type===`array`&&e.items?`${e.items.type||`any`}[]`:e.anyOf||e.oneOf?(e.anyOf||e.oneOf).map(e=>e.type||`any`).join(` | `):e.type||`any`,_Qe=e=>e.enum?iLe(`enum`):iLe(e.type),sA=e=>e.enum?e.enum.join(` | `):e.description?e.description:e.format?e.format:null,cA=({name:e,prop:t,required:n,depth:r})=>{let[i,a]=(0,g.useState)(r<1),o=t.type===`object`&&t.properties,s=t.type===`array`&&t.items?.type===`object`&&t.items?.properties,c=o||s,l=o?t:s?t.items:null,u=sA(t);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(Ap.Tr,{onClick:()=>c&&a(!i),style:{cursor:c?`pointer`:`default`},children:[(0,A.jsx)(Ap.Td,{style:{paddingLeft:r*20+8},children:(0,A.jsxs)(j,{style:{display:`flex`,alignItems:`center`,gap:4},children:[c?i?(0,A.jsx)(bx,{size:12,color:`var(--app-meta-label)`}):(0,A.jsx)(xx,{size:12,color:`var(--app-meta-label)`}):(0,A.jsx)(j,{w:12}),(0,A.jsxs)(R,{size:`sm`,ff:`monospace`,fw:500,c:`var(--app-meta-value)`,children:[z(e),n&&(0,A.jsx)(R,{component:`span`,c:`yellow`,fw:700,children:z(`*`)})]})]})}),(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(f_,{size:`sm`,variant:`light`,color:_Qe(t),tt:`none`,children:z(gQe(t))})}),(0,A.jsx)(Ap.Td,{children:u&&(0,A.jsx)(R,{size:`sm`,c:`var(--app-meta-label)`,children:z(u)})})]}),c&&i&&l?.properties&&(0,A.jsx)(vQe,{properties:l.properties,required:l.required||[],depth:r+1})]})},vQe=({properties:e,required:t,depth:n})=>(0,A.jsx)(A.Fragment,{children:Object.entries(e).map(([e,r])=>(0,A.jsx)(cA,{name:e,prop:r,required:t.includes(e),depth:n},e))}),yQe=({schema:e})=>{if(_e(),!e||typeof e!=`object`)return(0,A.jsx)(R,{c:`dimmed`,size:`sm`,children:W.schema_viewer_no_schema()});let t=t=>{if(!t.startsWith(`#/definitions/`))return null;let n=t.replace(`#/definitions/`,``);return e.definitions?.[n]||null},n=e;if(e.type===`array`&&e.items){let r=e.items.$ref?t(e.items.$ref):e.items;r&&(n=r)}let r=n.properties||(n.type?null:n);return r?(0,A.jsxs)(Ap,{verticalSpacing:6,horizontalSpacing:`sm`,layout:`fixed`,styles:{table:{tableLayout:`fixed`},th:{color:`var(--app-section-label)`,fontFamily:`var(--mantine-font-family-monospace)`,fontSize:9,fontWeight:600,letterSpacing:`0.08em`,textTransform:`uppercase`,borderBottom:`1px solid var(--app-row-border)`},td:{borderBottom:`1px solid var(--app-row-border)`}},children:[(0,A.jsxs)(`colgroup`,{children:[(0,A.jsx)(`col`,{}),(0,A.jsx)(`col`,{style:{width:150}}),(0,A.jsx)(`col`,{})]}),(0,A.jsx)(Ap.Thead,{children:(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Th,{children:`Field`}),(0,A.jsx)(Ap.Th,{children:`Type`}),(0,A.jsx)(Ap.Th,{children:`Notes`})]})}),(0,A.jsx)(Ap.Tbody,{children:(0,A.jsx)(vQe,{properties:r,required:n.required||[],depth:0})})]}):(0,A.jsx)(f_,{size:`sm`,variant:`light`,color:_Qe(n),tt:`none`,children:z(gQe(e))})},bQe=(0,g.createContext)({hasFooter:!1,setHasFooter:()=>{}}),xQe=({children:e})=>{let[t,n]=(0,g.useState)(!1);return(0,A.jsx)(bQe.Provider,{value:{hasFooter:t,setHasFooter:n},children:(0,A.jsx)(j,{className:`${fS.flexColumn} ${fS.overflowHidden}`,style:{position:`relative`,height:`100%`},children:e})})},lA=({title:e,onClose:t,onBack:n,children:r})=>(0,A.jsx)(j,{px:`md`,style:{height:42,display:`flex`,alignItems:`center`,borderBottom:`1px solid var(--mantine-color-default-border)`,background:`var(--app-surface)`,flexShrink:0},children:(0,A.jsxs)(su,{gap:`xs`,wrap:`nowrap`,align:`center`,style:{width:`100%`},children:[n&&(0,A.jsx)(ql,{onClick:n,style:{display:`flex`,alignItems:`center`},children:(0,A.jsx)(NPe,{size:16,color:`var(--mantine-color-dimmed)`})}),(0,A.jsx)(R,{size:`sm`,fw:600,style:{flex:1,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e}),r,(0,A.jsx)(Eve,{size:`sm`,onClick:t})]})}),uA=({children:e})=>{let{hasFooter:t}=(0,g.useContext)(bQe);return(0,A.jsx)(j,{py:`md`,className:`${fS.flexGrow} ${fS.overflowAuto}`,style:{minHeight:0,paddingBottom:t?96:void 0},children:e})},SQe=({children:e})=>{let{setHasFooter:t}=(0,g.useContext)(bQe);return(0,g.useEffect)(()=>(t(!0),()=>t(!1)),[t]),(0,A.jsx)(j,{px:`md`,py:`sm`,style:{position:`absolute`,bottom:0,left:0,right:0,borderTop:`1px solid var(--mantine-color-default-border)`,background:`var(--mantine-color-body)`},children:e})},CQe=({item:e,kind:t})=>{let{meta:n}=uS(),{navigateInPanel:r}=CS(),i=t===`middleware`?`middlewareGroupsMeta`:`permissionsGroupsMeta`;if(e.type!==`wire`){let n=e.tag||e.route,i=e.type===`tag`?`tag: ${e.tag}`:e.route;return(0,A.jsx)(DS,{type:`dynamic`,badge:t,value:i,variant:`outline`,className:fS.clickableText,onClick:()=>r(t,`${e.type}:${n}`,i,{_groupType:e.type,_groupKey:n})})}let a=e.name||t,o=n[i]?.definitions?.[e.name];return(0,A.jsx)(DS,{type:`dynamic`,badge:t,value:a,className:fS.clickableText,onClick:()=>r(t,e.name,a,{...o,_id:e.name})})},dA=({label:e,labelWidth:t=85,align:n=`center`,gap:r,children:i})=>(0,A.jsxs)(j,{className:fS.metaRow,style:n!==`center`||r?{alignItems:n,...r?{gap:r}:{}}:void 0,children:[(0,A.jsx)(R,{size:`sm`,ff:`monospace`,c:`var(--app-meta-label)`,className:fS.metaRowLabel,style:{minWidth:t},children:e}),(0,A.jsx)(j,{className:fS.metaRowContent,children:i})]}),fA=({children:e})=>(0,A.jsx)(R,{size:`sm`,fw:600,ff:`monospace`,c:`var(--app-section-label)`,tt:`uppercase`,className:fS.sectionLabel,children:e}),pA=({children:e})=>(0,A.jsx)(f_,{size:`sm`,variant:`light`,ff:`monospace`,className:fS.tagBadge,children:e}),wQe=({children:e})=>(0,A.jsx)(f_,{size:`sm`,variant:`light`,tt:`none`,className:fS.serviceBadge,children:e}),mA=({children:e})=>(0,A.jsx)(R,{size:`sm`,fw:600,c:`dimmed`,tt:`uppercase`,mb:4,children:e}),hA=({label:e,schemaName:t})=>{_e();let{data:n,isLoading:r}=tA(t);return t?(0,A.jsxs)(j,{children:[e&&(0,A.jsx)(mA,{children:e}),r?(0,A.jsx)(ru,{size:`sm`}):n?(0,A.jsx)(yQe,{schema:n}):(0,A.jsx)(R,{size:`sm`,c:`dimmed`,children:W.common_no_schema()})]}):null},TQe=new Set([`session`,`setSession`,`clearSession`,`getSession`,`hasSessionChanged`]),EQe={http:`/apis?tab=http`,channel:`/apis?tab=channels`,mcp:`/apis?tab=mcp`,gateway:`/apis?tab=gateways`,cli:`/apis?tab=cli`,rpc:`/apis?tab=http`,scheduler:`/jobs?tab=schedulers`,queue:`/jobs?tab=queues`,trigger:`/jobs?tab=triggers`,triggerSource:`/jobs?tab=triggers`,agent:`/agents`},gA=({pikkuFuncId:e})=>{let{data:t}=$k(e),{navigateInPanel:n}=CS(),r=t?.name||e;return(0,A.jsx)(R,{size:`sm`,fw:600,ff:`monospace`,c:`var(--app-meta-value)`,className:fS.clickableText,onClick:()=>n(`function`,e,r,t),children:z(r)})},DQe=({functionName:e})=>{_e();let t=s_(),{functionUsedBy:n}=uS(),r=n.get(e),i=r?[...r.transports,...r.jobs]:[];return i.length===0?null:(0,A.jsxs)(j,{children:[(0,A.jsx)(fA,{children:W.common_details_wired_to({count:i.length})}),(0,A.jsxs)(Ap,{verticalSpacing:4,horizontalSpacing:`xs`,children:[(0,A.jsx)(Ap.Thead,{children:(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Th,{c:`var(--app-section-label)`,fw:500,fz:`xs`,ff:`monospace`,children:`Name`}),(0,A.jsx)(Ap.Th,{c:`var(--app-section-label)`,fw:500,fz:`xs`,ff:`monospace`,children:`Type`})]})}),(0,A.jsx)(Ap.Tbody,{children:i.map(e=>(0,A.jsxs)(Ap.Tr,{children:[(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(d_,{component:t,to:EQe[e.type]||`#`,underline:`never`,size:`sm`,ff:`monospace`,children:z(e.name)})}),(0,A.jsx)(Ap.Td,{children:(0,A.jsx)(DS,{type:`wiringType`,value:e.type})})]},e.id))})]})]})},_A=({description:e,pikkuFuncId:t,functionLinkLabel:n,services:r,wires:i,middleware:a,permissions:o,tags:s,errors:c,functionName:l,inputSchemaName:u,outputSchemaName:d,children:f})=>{_e();let p=!!(u||d),m=i?.wires.filter(e=>!TQe.has(e))||[],h=i?.wires.some(e=>TQe.has(e))||!1;return(0,A.jsxs)(A.Fragment,{children:[e!=null&&e!==``&&(0,A.jsx)(dA,{label:W.common_details_description(),labelWidth:90,children:(0,A.jsx)(R,{size:`sm`,c:`var(--app-meta-value)`,children:z(e)})}),t&&(0,A.jsx)(dA,{label:n??W.common_details_function(),labelWidth:90,children:(0,A.jsx)(gA,{pikkuFuncId:t})}),r&&r.length>0&&(0,A.jsx)(dA,{label:W.common_details_services(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:r.map(e=>(0,A.jsx)(wQe,{children:z(e)},e))})}),i&&i.wires.length>0&&(0,A.jsx)(dA,{label:W.common_details_wires(),labelWidth:90,children:(0,A.jsxs)(su,{gap:4,children:[h&&(0,A.jsx)(DS,{type:`flag`,flag:`session`}),m.map(e=>(0,A.jsx)(DS,{type:`dynamic`,badge:`wire`,value:e},e))]})}),a&&a.length>0&&(0,A.jsx)(dA,{label:W.common_details_middleware(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:a.map((e,t)=>(0,A.jsx)(CQe,{item:e,kind:`middleware`},t))})}),o&&o.length>0&&(0,A.jsx)(dA,{label:W.common_details_permissions(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:o.map((e,t)=>(0,A.jsx)(CQe,{item:e,kind:`permission`},t))})}),s&&s.length>0&&(0,A.jsx)(dA,{label:W.common_details_tags(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:s.map((e,t)=>(0,A.jsx)(pA,{children:z(e)},t))})}),c&&c.length>0&&(0,A.jsx)(dA,{label:W.common_details_errors(),labelWidth:90,children:(0,A.jsx)(su,{gap:4,children:c.map((e,t)=>(0,A.jsx)(f_,{size:`sm`,color:`red`,variant:`light`,children:z(e)},t))})}),l&&(0,A.jsx)(DQe,{functionName:l}),p&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(g_,{mt:`sm`}),(0,A.jsx)(hA,{label:W.common_details_input(),schemaName:u}),(0,A.jsx)(hA,{label:W.common_details_output(),schemaName:d})]}),f]})};function vA(){return vA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},vA.apply(null,arguments)}function OQe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var kQe=[],AQe=[];(()=>{let e=`lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o`.split(`,`).map(e=>e?parseInt(e,36):1);for(let t=0,n=0;t<e.length;t++)(t%2?AQe:kQe).push(n+=e[t])})();function jQe(e){if(e<768)return!1;for(let t=0,n=kQe.length;;){let r=t+n>>1;if(e<kQe[r])n=r;else if(e>=AQe[r])t=r+1;else return!0;if(t==n)return!1}}function MQe(e){return e>=127462&&e<=127487}var NQe=8205;function yA(e,t,n=!0,r=!0){return(n?bA:PQe)(e,t,r)}function bA(e,t,n){if(t==e.length)return t;t&&IQe(e.charCodeAt(t))&&LQe(e.charCodeAt(t-1))&&t--;let r=FQe(e,t);for(t+=xA(r);t<e.length;){let i=FQe(e,t);if(r==NQe||i==NQe||n&&jQe(i))t+=xA(i),r=i;else if(MQe(i)){let n=0,r=t-2;for(;r>=0&&MQe(FQe(e,r));)n++,r-=2;if(n%2==0)break;t+=2}else break}return t}function PQe(e,t,n){for(;t>0;){let r=bA(e,t-2,n);if(r<t)return r;t--}return 0}function FQe(e,t){let n=e.charCodeAt(t);if(!LQe(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return IQe(r)?(n-55296<<10)+(r-56320)+65536:n}function IQe(e){return e>=56320&&e<57344}function LQe(e){return e>=55296&&e<56320}function xA(e){return e<65536?1:2}var SA=class e{lineAt(e){if(e<0||e>this.length)throw RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=DA(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),wA.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=DA(this,e,t);let n=[];return this.decompose(e,t,n,0),wA.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new zQe(this),i=new zQe(e);for(let e=t,a=t;;){if(r.next(e),i.next(e),e=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(e=1){return new zQe(this,e)}iterRange(e,t=this.length){return new BQe(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t??=this.lines+1;let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new VQe(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(t){if(t.length==0)throw RangeError(`A document must have at least one line`);return t.length==1&&!t[0]?e.empty:t.length<=32?new CA(t):wA.from(CA.split(t,[]))}},CA=class e extends SA{constructor(e,t=TA(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.text[i],o=r+a.length;if((t?n:o)>=e)return new HQe(r,o,n,a);r=o+1,n++}}decompose(t,n,r,i){let a=t<=0&&n>=this.length?this:new e(RQe(this.text,t,n),Math.min(n,this.length)-Math.max(0,t));if(i&1){let t=r.pop(),n=EA(a.text,t.text.slice(),0,a.length);if(n.length<=32)r.push(new e(n,t.length+a.length));else{let t=n.length>>1;r.push(new e(n.slice(0,t)),new e(n.slice(t)))}}else r.push(a)}replace(t,n,r){if(!(r instanceof e))return super.replace(t,n,r);[t,n]=DA(this,t,n);let i=EA(this.text,EA(r.text,RQe(this.text,0,t)),n),a=this.length+r.length-(n-t);return i.length<=32?new e(i,a):wA.from(e.split(i,[]),a)}sliceString(e,t=this.length,n=`
|
|
126
126
|
`){[e,t]=DA(this,e,t);let r=``;for(let i=0,a=0;i<=t&&a<this.text.length;a++){let o=this.text[a],s=i+o.length;i>e&&a&&(r+=n),e<s&&t>i&&(r+=o.slice(Math.max(0,e-i),t-i)),i=s+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(t,n){let r=[],i=-1;for(let a of t)r.push(a),i+=a.length+1,r.length==32&&(n.push(new e(r,i)),r=[],i=-1);return i>-1&&n.push(new e(r,i)),n}},wA=class e extends SA{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,n,r){for(let i=0;;i++){let a=this.children[i],o=r+a.length,s=n+a.lines-1;if((t?s:o)>=e)return a.lineInner(e,t,n,r);r=o+1,n=s+1}}decompose(e,t,n,r){for(let i=0,a=0;a<=t&&i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(e<=s&&t>=a){let i=r&(a<=e|(s>=t?2:0));a>=e&&s<=t&&!i?n.push(o):o.decompose(e-a,t-a,n,i)}a=s+1}}replace(t,n,r){if([t,n]=DA(this,t,n),r.lines<this.lines)for(let i=0,a=0;i<this.children.length;i++){let o=this.children[i],s=a+o.length;if(t>=a&&n<=s){let c=o.replace(t-a,n-a,r),l=this.lines-o.lines+c.lines;if(c.lines<l>>4&&c.lines>l>>6){let a=this.children.slice();return a[i]=c,new e(a,this.length-(n-t)+r.length)}return super.replace(a,s,c)}a=s+1}return super.replace(t,n,r)}sliceString(e,t=this.length,n=`
|
|
127
127
|
`){[e,t]=DA(this,e,t);let r=``;for(let i=0,a=0;i<this.children.length&&a<=t;i++){let o=this.children[i],s=a+o.length;a>e&&i&&(r+=n),e<s&&t>a&&(r+=o.sliceString(e-a,t-a,n)),a=s+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(t,n){if(!(t instanceof e))return 0;let r=0,[i,a,o,s]=n>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;i+=n,a+=n){if(i==o||a==s)return r;let e=this.children[i],c=t.children[a];if(e!=c)return r+e.scanIdentical(c,n);r+=e.length+1}}static from(t,n=t.reduce((e,t)=>e+t.length+1,-1)){let r=0;for(let e of t)r+=e.lines;if(r<32){let e=[];for(let n of t)n.flatten(e);return new CA(e,n)}let i=Math.max(32,r>>5),a=i<<1,o=i>>1,s=[],c=0,l=-1,u=[];function d(t){let n;if(t.lines>a&&t instanceof e)for(let e of t.children)d(e);else t.lines>o&&(c>o||!c)?(f(),s.push(t)):t instanceof CA&&c&&(n=u[u.length-1])instanceof CA&&t.lines+n.lines<=32?(c+=t.lines,l+=t.length+1,u[u.length-1]=new CA(n.text.concat(t.text),n.length+1+t.length)):(c+t.lines>i&&f(),c+=t.lines,l+=t.length+1,u.push(t))}function f(){c!=0&&(s.push(u.length==1?u[0]:e.from(u,l)),l=-1,c=u.length=0)}for(let e of t)d(e);return f(),s.length==1?s[0]:new e(s,n)}};SA.empty=new CA([``],0);function TA(e){let t=-1;for(let n of e)t+=n.length+1;return t}function EA(e,t,n=0,r=1e9){for(let i=0,a=0,o=!0;a<e.length&&i<=r;a++){let s=e[a],c=i+s.length;c>=n&&(c>r&&(s=s.slice(0,r-i)),i<n&&(s=s.slice(n-i)),o?(t[t.length-1]+=s,o=!1):t.push(s)),i=c+1}return t}function RQe(e,t,n){return EA(e,[``],t,n)}var zQe=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value=``,this.nodes=[e],this.offsets=[t>0?1:(e instanceof CA?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],i=this.offsets[n],a=i>>1,o=r instanceof CA?r.text.length:r.children.length;if(a==(t>0?o:0)){if(n==0)return this.done=!0,this.value=``,this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
128
128
|
`,this;e--}else if(r instanceof CA){let i=r.text[a+(t<0?-1:0)];if(this.offsets[n]+=t,i.length>Math.max(0,e))return this.value=e==0?i:t>0?i.slice(e):i.slice(0,i.length-e),this;e-=i.length}else{let i=r.children[a+(t<0?-1:0)];e>i.length?(e-=i.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(i),this.offsets.push(t>0?1:(i instanceof CA?i.text.length:i.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},BQe=class{constructor(e,t,n){this.value=``,this.done=!1,this.cursor=new zQe(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value=``,this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=``}},VQe=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value=``,this.done=!1}next(e=0){let{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value=``,this.afterBreak=!1):t?(this.done=!0,this.value=``):n?this.afterBreak?this.value=``:(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<`u`&&(SA.prototype[Symbol.iterator]=function(){return this.iter()},zQe.prototype[Symbol.iterator]=BQe.prototype[Symbol.iterator]=VQe.prototype[Symbol.iterator]=function(){return this});var HQe=class{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}};function DA(e,t,n){return t=Math.max(0,Math.min(e.length,t)),[t,Math.max(t,Math.min(e.length,n))]}function OA(e,t,n=!0,r=!0){return yA(e,t,n,r)}function UQe(e){return e>=56320&&e<57344}function WQe(e){return e>=55296&&e<56320}function kA(e,t){let n=e.charCodeAt(t);if(!WQe(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return UQe(r)?(n-55296<<10)+(r-56320)+65536:n}function AA(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}function jA(e){return e<65536?1:2}var GQe=/\r\n?|\n/,MA=(function(e){return e[e.Simple=0]=`Simple`,e[e.TrackDel=1]=`TrackDel`,e[e.TrackBefore=2]=`TrackBefore`,e[e.TrackAfter=3]=`TrackAfter`,e})(MA||={}),NA=class e{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,r=0;t<this.sections.length;){let i=this.sections[t++],a=this.sections[t++];a<0?(e(n,r,i),r+=i):r+=a,n+=i}}iterChangedRanges(e,t=!1){KQe(this,e,t)}get invertedDesc(){let t=[];for(let e=0;e<this.sections.length;){let n=this.sections[e++],r=this.sections[e++];r<0?t.push(n,r):t.push(r,n)}return new e(t)}composeDesc(e){return this.empty?e:e.empty?this:JQe(this,e)}mapDesc(e,t=!1){return e.empty?this:qQe(this,e,t)}mapPos(e,t=-1,n=MA.Simple){let r=0,i=0;for(let a=0;a<this.sections.length;){let o=this.sections[a++],s=this.sections[a++],c=r+o;if(s<0){if(c>e)return i+(e-r);i+=o}else{if(n!=MA.Simple&&c>=e&&(n==MA.TrackDel&&r<e&&c>e||n==MA.TrackBefore&&r<e||n==MA.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!o)return e==r||t<0?i:i+s;i+=s}r=c}if(e>r)throw RangeError(`Position ${e} is out of range for changeset of length ${r}`);return i}touchesRange(e,t=e){for(let n=0,r=0;n<this.sections.length&&r<=t;){let i=this.sections[n++],a=this.sections[n++],o=r+i;if(a>=0&&r<=t&&o>=e)return r<e&&o>t?`cover`:!0;r=o}return!1}toString(){let e=``;for(let t=0;t<this.sections.length;){let n=this.sections[t++],r=this.sections[t++];e+=(e?` `:``)+n+(r>=0?`:`+r:``)}return e}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(e=>typeof e!=`number`))throw RangeError(`Invalid JSON representation of ChangeDesc`);return new e(t)}static create(t){return new e(t)}},PA=class e extends NA{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw RangeError(`Applying change set to a document with the wrong length`);return KQe(this,(t,n,r,i,a)=>e=e.replace(r,r+(n-t),a),!1),e}mapDesc(e,t=!1){return qQe(this,e,t,!0)}invert(t){let n=this.sections.slice(),r=[];for(let e=0,i=0;e<n.length;e+=2){let a=n[e],o=n[e+1];if(o>=0){n[e]=o,n[e+1]=a;let s=e>>1;for(;r.length<s;)r.push(SA.empty);r.push(a?t.slice(i,i+a):SA.empty)}i+=a}return new e(n,r)}compose(e){return this.empty?e:e.empty?this:JQe(this,e,!0)}map(e,t=!1){return e.empty?this:qQe(this,e,t,!0)}iterChanges(e,t=!1){KQe(this,e,t)}get desc(){return NA.create(this.sections)}filter(t){let n=[],r=[],i=[],a=new YQe(this);done:for(let e=0,o=0;;){let s=e==t.length?1e9:t[e++];for(;o<s||o==s&&a.len==0;){if(a.done)break done;let e=Math.min(a.len,s-o);FA(i,e,-1);let t=a.ins==-1?-1:a.off==0?a.ins:0;FA(n,e,t),t>0&&IA(r,n,a.text),a.forward(e),o+=e}let c=t[e++];for(;o<c;){if(a.done)break done;let e=Math.min(a.len,c-o);FA(n,e,-1),FA(i,e,a.ins==-1?-1:a.off==0?a.ins:0),a.forward(e),o+=e}}return{changes:new e(n,r),filtered:NA.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],r=this.sections[t+1];r<0?e.push(n):r==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(t,n,r){let i=[],a=[],o=0,s=null;function c(t=!1){if(!t&&!i.length)return;o<n&&FA(i,n-o,-1);let r=new e(i,a);s=s?s.compose(r.map(s)):r,i=[],a=[],o=0}function l(t){if(Array.isArray(t))for(let e of t)l(e);else if(t instanceof e){if(t.length!=n)throw RangeError(`Mismatched change set length (got ${t.length}, expected ${n})`);c(),s=s?s.compose(t.map(s)):t}else{let{from:e,to:s=e,insert:l}=t;if(e>s||e<0||s>n)throw RangeError(`Invalid change range ${e} to ${s} (in doc of length ${n})`);let u=l?typeof l==`string`?SA.of(l.split(r||GQe)):l:SA.empty,d=u.length;if(e==s&&d==0)return;e<o&&c(),e>o&&FA(i,e-o,-1),FA(i,s-e,d),IA(a,i,u),o=s}}return l(t),c(!s),s}static empty(t){return new e(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw RangeError(`Invalid JSON representation of ChangeSet`);let n=[],r=[];for(let e=0;e<t.length;e++){let i=t[e];if(typeof i==`number`)n.push(i,-1);else if(!Array.isArray(i)||typeof i[0]!=`number`||i.some((e,t)=>t&&typeof e!=`string`))throw RangeError(`Invalid JSON representation of ChangeSet`);else if(i.length==1)n.push(i[0],0);else{for(;r.length<e;)r.push(SA.empty);r[e]=SA.of(i.slice(1)),n.push(i[0],r[e].length)}}return new e(n,r)}static createSet(t,n){return new e(t,n)}};function FA(e,t,n,r=!1){if(t==0&&n<=0)return;let i=e.length-2;i>=0&&n<=0&&n==e[i+1]?e[i]+=t:i>=0&&t==0&&e[i]==0?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n)}function IA(e,t,n){if(n.length==0)return;let r=t.length-2>>1;if(r<e.length)e[e.length-1]=e[e.length-1].append(n);else{for(;e.length<r;)e.push(SA.empty);e.push(n)}}function KQe(e,t,n){let r=e.inserted;for(let i=0,a=0,o=0;o<e.sections.length;){let s=e.sections[o++],c=e.sections[o++];if(c<0)i+=s,a+=s;else{let l=i,u=a,d=SA.empty;for(;l+=s,u+=c,c&&r&&(d=d.append(r[o-2>>1])),!(n||o==e.sections.length||e.sections[o+1]<0);)s=e.sections[o++],c=e.sections[o++];t(i,l,a,u,d),i=l,a=u}}}function qQe(e,t,n,r=!1){let i=[],a=r?[]:null,o=new YQe(e),s=new YQe(t);for(let e=-1;;)if(o.done&&s.len||s.done&&o.len)throw Error(`Mismatched change set lengths`);else if(o.ins==-1&&s.ins==-1){let e=Math.min(o.len,s.len);FA(i,e,-1),o.forward(e),s.forward(e)}else if(s.ins>=0&&(o.ins<0||e==o.i||o.off==0&&(s.len<o.len||s.len==o.len&&!n))){let t=s.len;for(FA(i,s.ins,-1);t;){let n=Math.min(o.len,t);o.ins>=0&&e<o.i&&o.len<=n&&(FA(i,0,o.ins),a&&IA(a,i,o.text),e=o.i),o.forward(n),t-=n}s.next()}else if(o.ins>=0){let t=0,n=o.len;for(;n;)if(s.ins==-1){let e=Math.min(n,s.len);t+=e,n-=e,s.forward(e)}else if(s.ins==0&&s.len<n)n-=s.len,s.next();else break;FA(i,t,e<o.i?o.ins:0),a&&e<o.i&&IA(a,i,o.text),e=o.i,o.forward(o.len-n)}else if(o.done&&s.done)return a?PA.createSet(i,a):NA.create(i);else throw Error(`Mismatched change set lengths`)}function JQe(e,t,n=!1){let r=[],i=n?[]:null,a=new YQe(e),o=new YQe(t);for(let e=!1;;)if(a.done&&o.done)return i?PA.createSet(r,i):NA.create(r);else if(a.ins==0)FA(r,a.len,0,e),a.next();else if(o.len==0&&!o.done)FA(r,0,o.ins,e),i&&IA(i,r,o.text),o.next();else if(a.done||o.done)throw Error(`Mismatched change set lengths`);else{let t=Math.min(a.len2,o.len),n=r.length;if(a.ins==-1){let n=o.ins==-1?-1:o.off?0:o.ins;FA(r,t,n,e),i&&n&&IA(i,r,o.text)}else o.ins==-1?(FA(r,a.off?0:a.len,t,e),i&&IA(i,r,a.textBit(t))):(FA(r,a.off?0:a.len,o.off?0:o.ins,e),i&&!o.off&&IA(i,r,o.text));e=(a.ins>t||o.ins>=0&&o.len>t)&&(e||r.length>n),a.forward2(t),o.forward(t)}}var YQe=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?SA.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?SA.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},LA=class e{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(t,n=-1){let r,i;return this.empty?r=i=t.mapPos(this.from,n):(r=t.mapPos(this.from,1),i=t.mapPos(this.to,-1)),r==this.from&&i==this.to?this:new e(r,i,this.flags)}extend(e,t=e,n=0){if(e<=this.anchor&&t>=this.anchor)return Y.range(e,t,void 0,void 0,n);let r=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Y.range(this.anchor,r,void 0,void 0,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!=`number`||typeof e.head!=`number`)throw RangeError(`Invalid JSON representation for SelectionRange`);return Y.range(e.anchor,e.head)}static create(t,n,r){return new e(t,n,r)}},Y=class e{constructor(e,t){this.ranges=e,this.mainIndex=t}map(t,n=-1){return t.empty?this:e.create(this.ranges.map(e=>e.map(t,n)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new e([this.main],0)}addRange(t,n=!0){return e.create([t].concat(this.ranges),n?0:this.mainIndex+1)}replaceRange(t,n=this.mainIndex){let r=this.ranges.slice();return r[n]=t,e.create(r,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!=`number`||t.main>=t.ranges.length)throw RangeError(`Invalid JSON representation for EditorSelection`);return new e(t.ranges.map(e=>LA.fromJSON(e)),t.main)}static single(t,n=t){return new e([e.range(t,n)],0)}static create(t,n=0){if(t.length==0)throw RangeError(`A selection needs at least one range`);for(let r=0,i=0;i<t.length;i++){let a=t[i];if(a.empty?a.from<=r:a.from<r)return e.normalized(t.slice(),n);r=a.to}return new e(t,n)}static cursor(e,t=0,n,r){return LA.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(r??16777215)<<6)}static range(e,t,n,r,i){let a=(n??16777215)<<6|(r==null?7:Math.min(6,r));return!i&&e!=t&&(i=t<e?1:-1),t<e?LA.create(t,e,48|a):LA.create(e,t,(i?i<0?8:16:0)|a)}static normalized(t,n=0){let r=t[n];t.sort((e,t)=>e.from-t.from),n=t.indexOf(r);for(let r=1;r<t.length;r++){let i=t[r],a=t[r-1];if(i.empty?i.from<=a.to:i.from<a.to){let o=a.from,s=Math.max(i.to,a.to);r<=n&&n--,t.splice(--r,2,i.anchor>i.head?e.range(s,o):e.range(o,s))}}return new e(t,n)}};function XQe(e,t){for(let n of e.ranges)if(n.to>t)throw RangeError(`Selection points outside of document`)}var RA=0,zA=class e{constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=RA++,this.default=e([]),this.extensions=typeof i==`function`?i(this):i}get reader(){return this}static define(t={}){return new e(t.combine||(e=>e),t.compareInput||((e,t)=>e===t),t.compare||(t.combine?(e,t)=>e===t:BA),!!t.static,t.enables)}of(e){return new ZQe([],this,0,e)}compute(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new ZQe(e,this,1,t)}computeN(e,t){if(this.isStatic)throw Error(`Can't compute a static facet`);return new ZQe(e,this,2,t)}from(e,t){return t||=e=>e,this.compute([e],n=>t(n.field(e)))}};function BA(e,t){return e==t||e.length==t.length&&e.every((e,n)=>e===t[n])}var ZQe=class{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=RA++}dynamicSlot(e){let t=this.value,n=this.facet.compareInput,r=this.id,i=e[r]>>1,a=this.type==2,o=!1,s=!1,c=[];for(let t of this.dependencies)t==`doc`?o=!0:t==`selection`?s=!0:(e[t.id]??1)&1||c.push(e[t.id]);return{create(e){return e.values[i]=t(e),1},update(e,r){if(o&&r.docChanged||s&&(r.docChanged||r.selection)||$Qe(e,c)){let r=t(e);if(a?!QQe(r,e.values[i],n):!n(r,e.values[i]))return e.values[i]=r,1}return 0},reconfigure:(e,o)=>{let s,c=o.config.address[r];if(c!=null){let r=l$e(o,c);if(this.dependencies.every(t=>t instanceof zA?o.facet(t)===e.facet(t):t instanceof VA?o.field(t,!1)==e.field(t,!1):!0)||(a?QQe(s=t(e),r,n):n(s=t(e),r)))return e.values[i]=r,0}else s=t(e);return e.values[i]=s,1}}}};function QQe(e,t,n){if(e.length!=t.length)return!1;for(let r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}function $Qe(e,t){let n=!1;for(let r of t)c$e(e,r)&1&&(n=!0);return n}function e$e(e,t,n){let r=n.map(t=>e[t.id]),i=n.map(e=>e.type),a=r.filter(e=>!(e&1)),o=e[t.id]>>1;function s(e){let n=[];for(let t=0;t<r.length;t++){let a=l$e(e,r[t]);if(i[t]==2)for(let e of a)n.push(e);else n.push(a)}return t.combine(n)}return{create(e){for(let t of r)c$e(e,t);return e.values[o]=s(e),1},update(e,n){if(!$Qe(e,a))return 0;let r=s(e);return t.compare(r,e.values[o])?0:(e.values[o]=r,1)},reconfigure(e,i){let a=$Qe(e,r),c=i.config.facets[t.id],l=i.facet(t);if(c&&!a&&BA(n,c))return e.values[o]=l,0;let u=s(e);return t.compare(u,l)?(e.values[o]=l,0):(e.values[o]=u,1)}}}var t$e=zA.define({static:!0}),VA=class e{constructor(e,t,n,r,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=r,this.spec=i,this.provides=void 0}static define(t){let n=new e(RA++,t.create,t.update,t.compare||((e,t)=>e===t),t);return t.provide&&(n.provides=t.provide(n)),n}create(e){return(e.facet(t$e).find(e=>e.field==this)?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let r=e.values[t],i=this.updateF(r,n);return this.compareF(r,i)?0:(e.values[t]=i,1)},reconfigure:(e,n)=>{let r=e.facet(t$e),i=n.facet(t$e),a;return(a=r.find(e=>e.field==this))&&a!=i.find(e=>e.field==this)?(e.values[t]=a.create(e),1):n.config.address[this.id]==null?(e.values[t]=this.create(e),1):(e.values[t]=n.field(this),0)}}}init(e){return[this,t$e.of({field:this,create:e})]}get extension(){return this}},HA={lowest:4,low:3,default:2,high:1,highest:0};function n$e(e){return t=>new r$e(t,e)}var UA={highest:n$e(HA.highest),high:n$e(HA.high),default:n$e(HA.default),low:n$e(HA.low),lowest:n$e(HA.lowest)},r$e=class{constructor(e,t){this.inner=e,this.prec=t}},i$e=class e{of(e){return new a$e(this,e)}reconfigure(t){return e.reconfigure.of({compartment:this,extension:t})}get(e){return e.config.compartments.get(this)}},a$e=class{constructor(e,t){this.compartment=e,this.inner=t}},o$e=class e{constructor(e,t,n,r,i,a){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=i,this.facets=a,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(t,n,r){let i=[],a=Object.create(null),o=new Map;for(let e of s$e(t,n,o))e instanceof VA?i.push(e):(a[e.facet.id]||(a[e.facet.id]=[])).push(e);let s=Object.create(null),c=[],l=[];for(let e of i)s[e.id]=l.length<<1,l.push(t=>e.slot(t));let u=r?.config.facets;for(let e in a){let t=a[e],n=t[0].facet,i=u&&u[e]||[];if(t.every(e=>e.type==0))if(s[n.id]=c.length<<1|1,BA(i,t))c.push(r.facet(n));else{let e=n.combine(t.map(e=>e.value));c.push(r&&n.compare(e,r.facet(n))?r.facet(n):e)}else{for(let e of t)e.type==0?(s[e.id]=c.length<<1|1,c.push(e.value)):(s[e.id]=l.length<<1,l.push(t=>e.dynamicSlot(t)));s[n.id]=l.length<<1,l.push(e=>e$e(e,n,t))}}return new e(t,o,l.map(e=>e(s)),s,c,a)}};function s$e(e,t,n){let r=[[],[],[],[],[]],i=new Map;function a(e,o){let s=i.get(e);if(s!=null){if(s<=o)return;let t=r[s].indexOf(e);t>-1&&r[s].splice(t,1),e instanceof a$e&&n.delete(e.compartment)}if(i.set(e,o),Array.isArray(e))for(let t of e)a(t,o);else if(e instanceof a$e){if(n.has(e.compartment))throw RangeError(`Duplicate use of compartment in extensions`);let r=t.get(e.compartment)||e.inner;n.set(e.compartment,r),a(r,o)}else if(e instanceof r$e)a(e.inner,e.prec);else if(e instanceof VA)r[o].push(e),e.provides&&a(e.provides,o);else if(e instanceof ZQe)r[o].push(e),e.facet.extensions&&a(e.facet.extensions,HA.default);else{let t=e.extension;if(!t)throw Error(`Unrecognized extension value in extension set (${e}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);a(t,o)}}return a(e,HA.default),r.reduce((e,t)=>e.concat(t))}function c$e(e,t){if(t&1)return 2;let n=t>>1,r=e.status[n];if(r==4)throw Error(`Cyclic dependency between fields and/or facets`);if(r&2)return r;e.status[n]=4;let i=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|i}function l$e(e,t){return t&1?e.config.staticValues[t>>1]:e.values[t>>1]}var u$e=zA.define(),WA=zA.define({combine:e=>e.some(e=>e),static:!0}),GA=zA.define({combine:e=>e.length?e[0]:void 0,static:!0}),d$e=zA.define(),f$e=zA.define(),KA=zA.define(),p$e=zA.define({combine:e=>e.length?e[0]:!1}),qA=class{constructor(e,t){this.type=e,this.value=t}static define(){return new JA}},JA=class{of(e){return new qA(this,e)}},m$e=class{constructor(e){this.map=e}of(e){return new YA(this,e)}},YA=class e{constructor(e,t){this.type=e,this.value=t}map(t){let n=this.type.map(this.value,t);return n===void 0?void 0:n==this.value?this:new e(this.type,n)}is(e){return this.type==e}static define(e={}){return new m$e(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let e=r.map(t);e&&n.push(e)}return n}};YA.reconfigure=YA.define(),YA.appendConfig=YA.define();var XA=class e{constructor(t,n,r,i,a,o){this.startState=t,this.changes=n,this.selection=r,this.effects=i,this.annotations=a,this.scrollIntoView=o,this._doc=null,this._state=null,r&&XQe(r,n.newLength),a.some(t=>t.type==e.time)||(this.annotations=a.concat(e.time.of(Date.now())))}static create(t,n,r,i,a,o){return new e(t,n,r,i,a,o)}get newDoc(){return this._doc||=this.changes.apply(this.startState.doc)}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let n=this.annotation(e.userEvent);return!!(n&&(n==t||n.length>t.length&&n.slice(0,t.length)==t&&n[t.length]==`.`))}};XA.time=qA.define(),XA.userEvent=qA.define(),XA.addToHistory=qA.define(),XA.remote=qA.define();function h$e(e,t){let n=[];for(let r=0,i=0;;){let a,o;if(r<e.length&&(i==t.length||t[i]>=e[r]))a=e[r++],o=e[r++];else if(i<t.length)a=t[i++],o=t[i++];else return n;!n.length||n[n.length-1]<a?n.push(a,o):n[n.length-1]<o&&(n[n.length-1]=o)}}function g$e(e,t,n){let r,i,a;return n?(r=t.changes,i=PA.empty(t.changes.length),a=e.changes.compose(t.changes)):(r=t.changes.map(e.changes),i=e.changes.mapDesc(t.changes,!0),a=e.changes.compose(r)),{changes:a,selection:t.selection?t.selection.map(i):e.selection?.map(r),effects:YA.mapEffects(e.effects,r).concat(YA.mapEffects(t.effects,i)),annotations:e.annotations.length?e.annotations.concat(t.annotations):t.annotations,scrollIntoView:e.scrollIntoView||t.scrollIntoView}}function ZA(e,t,n){let r=t.selection,i=$A(t.annotations);return t.userEvent&&(i=i.concat(XA.userEvent.of(t.userEvent))),{changes:t.changes instanceof PA?t.changes:PA.of(t.changes||[],n,e.facet(GA)),selection:r&&(r instanceof Y?r:Y.single(r.anchor,r.head)),effects:$A(t.effects),annotations:i,scrollIntoView:!!t.scrollIntoView}}function _$e(e,t,n){let r=ZA(e,t.length?t[0]:{},e.doc.length);t.length&&t[0].filter===!1&&(n=!1);for(let i=1;i<t.length;i++){t[i].filter===!1&&(n=!1);let a=!!t[i].sequential;r=g$e(r,ZA(e,t[i],a?r.changes.newLength:e.doc.length),a)}let i=XA.create(e,r.changes,r.selection,r.effects,r.annotations,r.scrollIntoView);return QA(n?v$e(i):i)}function v$e(e){let t=e.startState,n=!0;for(let r of t.facet(d$e)){let t=r(e);if(t===!1){n=!1;break}Array.isArray(t)&&(n=n===!0?t:h$e(n,t))}if(n!==!0){let r,i;if(n===!1)i=e.changes.invertedDesc,r=PA.empty(t.doc.length);else{let t=e.changes.filter(n);r=t.changes,i=t.filtered.mapDesc(t.changes).invertedDesc}e=XA.create(t,r,e.selection&&e.selection.map(i),YA.mapEffects(e.effects,i),e.annotations,e.scrollIntoView)}let r=t.facet(f$e);for(let n=r.length-1;n>=0;n--){let i=r[n](e);e=i instanceof XA?i:Array.isArray(i)&&i.length==1&&i[0]instanceof XA?i[0]:_$e(t,$A(i),!1)}return e}function QA(e){let t=e.startState,n=t.facet(KA),r=e;for(let i=n.length-1;i>=0;i--){let a=n[i](e);a&&Object.keys(a).length&&(r=g$e(r,ZA(t,a,e.changes.newLength),!0))}return r==e?e:XA.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}var y$e=[];function $A(e){return e==null?y$e:Array.isArray(e)?e:[e]}var ej=(function(e){return e[e.Word=0]=`Word`,e[e.Space=1]=`Space`,e[e.Other=2]=`Other`,e})(ej||={}),b$e=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,x$e;try{x$e=RegExp(`[\\p{Alphabetic}\\p{Number}_]`,`u`)}catch{}function S$e(e){if(x$e)return x$e.test(e);for(let t=0;t<e.length;t++){let n=e[t];if(/\w/.test(n)||n>``&&(n.toUpperCase()!=n.toLowerCase()||b$e.test(n)))return!0}return!1}function C$e(e){return t=>{if(!/\S/.test(t))return ej.Space;if(S$e(t))return ej.Word;for(let n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return ej.Word;return ej.Other}}var tj=class e{constructor(e,t,n,r,i,a){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=i,a&&(a._state=this);for(let e=0;e<this.config.dynamicSlots.length;e++)c$e(this,e<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw RangeError(`Field is not present in this state`);return}return c$e(this,n),l$e(this,n)}update(...e){return _$e(this,e,!0)}applyTransaction(t){let n=this.config,{base:r,compartments:i}=n;for(let e of t.effects)e.is(i$e.reconfigure)?(n&&=(i=new Map,n.compartments.forEach((e,t)=>i.set(t,e)),null),i.set(e.value.compartment,e.value.extension)):e.is(YA.reconfigure)?(n=null,r=e.value):e.is(YA.appendConfig)&&(n=null,r=$A(r).concat(e.value));let a;n?a=t.startState.values.slice():(n=o$e.resolve(r,i,this),a=new e(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(e,t)=>t.reconfigure(e,this),null).values);let o=t.startState.facet(WA)?t.newSelection:t.newSelection.asSingle();new e(n,t.newDoc,o,a,(e,n)=>n.update(e,t),t)}replaceSelection(e){return typeof e==`string`&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:Y.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),i=[n.range],a=$A(n.effects);for(let n=1;n<t.ranges.length;n++){let o=e(t.ranges[n]),s=this.changes(o.changes),c=s.map(r);for(let e=0;e<n;e++)i[e]=i[e].map(c);let l=r.mapDesc(s,!0);i.push(o.range.map(l)),r=r.compose(c),a=YA.mapEffects(a,c).concat(YA.mapEffects($A(o.effects),l))}return{changes:r,selection:Y.create(i,t.mainIndex),effects:a}}changes(t=[]){return t instanceof PA?t:PA.of(t,this.doc.length,this.facet(e.lineSeparator))}toText(t){return SA.of(t.split(this.facet(e.lineSeparator)||GQe))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(c$e(this,t),l$e(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof VA&&this.config.address[r.id]!=null&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(t,n={},r){if(!t||typeof t.doc!=`string`)throw RangeError(`Invalid JSON representation for EditorState`);let i=[];if(r){for(let e in r)if(Object.prototype.hasOwnProperty.call(t,e)){let n=r[e],a=t[e];i.push(n.init(e=>n.spec.fromJSON(a,e)))}}return e.create({doc:t.doc,selection:Y.fromJSON(t.selection),extensions:n.extensions?i.concat([n.extensions]):i})}static create(t={}){let n=o$e.resolve(t.extensions||[],new Map),r=t.doc instanceof SA?t.doc:SA.of((t.doc||``).split(n.staticFacet(e.lineSeparator)||GQe)),i=t.selection?t.selection instanceof Y?t.selection:Y.single(t.selection.anchor,t.selection.head):Y.single(0);return XQe(i,r.length),n.staticFacet(WA)||(i=i.asSingle()),new e(n,r,i,n.dynamicSlots.map(()=>null),(e,t)=>t.create(e),null)}get tabSize(){return this.facet(e.tabSize)}get lineBreak(){return this.facet(e.lineSeparator)||`
|
package/console-app/index.html
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
} catch (e) {}
|
|
23
23
|
</script>
|
|
24
|
-
<script type="module" crossorigin src="/assets/index-
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-CcpTZVoP.js"></script>
|
|
25
25
|
<link rel="stylesheet" crossorigin href="/assets/index-DwyRdRuZ.css">
|
|
26
26
|
</head>
|
|
27
27
|
<body>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.58
|
|
3
3
|
*/
|
|
4
4
|
import { CoreAIAgent, PikkuAIMiddlewareHooks } from '@pikku/core/ai-agent';
|
|
5
5
|
import type { PikkuPermission, PikkuMiddleware, Services, PikkuFunctionConfig } from '../function/pikku-function-types.gen.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.58
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* WebSocket channel backend for 'pikku' CLI commands
|
|
@@ -13,6 +13,7 @@ import { all } from '../../src/functions/commands/all.js';
|
|
|
13
13
|
import { bootstrap } from '../../src/functions/commands/bootstrap.js';
|
|
14
14
|
import { watch } from '../../src/functions/commands/watch.js';
|
|
15
15
|
import { dev } from '../../src/functions/commands/dev.js';
|
|
16
|
+
import { serve } from '../../src/functions/commands/serve.js';
|
|
16
17
|
import { consoleCommand } from '../../src/functions/commands/console.js';
|
|
17
18
|
import { login } from '../../src/functions/commands/login.js';
|
|
18
19
|
import { logout } from '../../src/functions/commands/login.js';
|
|
@@ -177,6 +178,10 @@ wireChannel({
|
|
|
177
178
|
func: dev,
|
|
178
179
|
middleware: [cliCloseOnComplete],
|
|
179
180
|
},
|
|
181
|
+
'serve': {
|
|
182
|
+
func: serve,
|
|
183
|
+
middleware: [cliCloseOnComplete],
|
|
184
|
+
},
|
|
180
185
|
'console': {
|
|
181
186
|
func: consoleCommand,
|
|
182
187
|
middleware: [cliCloseOnComplete],
|