flujo-ai 3.48.1 → 3.48.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +58 -58
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/approvals/[id]/route.js +1 -1
- package/.next/server/app/api/approvals/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/approvals/route.js +1 -1
- package/.next/server/app/api/approvals/route.js.nft.json +1 -1
- package/.next/server/app/api/automation-map/route.js +1 -1
- package/.next/server/app/api/automation-map/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/[voiceAction]/route.js +1 -1
- package/.next/server/app/api/avatar/[voiceAction]/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/connections/route.js +1 -1
- package/.next/server/app/api/avatar/connections/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/local-speech/route.js +1 -1
- package/.next/server/app/api/avatar/local-speech/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/remote/[voiceAction]/route.js +1 -1
- package/.next/server/app/api/avatar/remote/[voiceAction]/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/remote/availability/route.js +1 -1
- package/.next/server/app/api/avatar/remote/availability/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/voice/route.js +1 -1
- package/.next/server/app/api/avatar/voice/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/work-model/route.js +1 -1
- package/.next/server/app/api/avatar/work-model/route.js.nft.json +1 -1
- package/.next/server/app/api/avatar/world/route.js +1 -1
- package/.next/server/app/api/avatar/world/route.js.nft.json +1 -1
- package/.next/server/app/api/backup/route.js +1 -1
- package/.next/server/app/api/backup/route.js.nft.json +1 -1
- package/.next/server/app/api/browse/route.js +1 -1
- package/.next/server/app/api/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/bugs/enhance/route.js +1 -1
- package/.next/server/app/api/bugs/enhance/route.js.nft.json +1 -1
- package/.next/server/app/api/credential-migration/route.js +1 -1
- package/.next/server/app/api/credential-migration/route.js.nft.json +1 -1
- package/.next/server/app/api/credential-transfer/restore/route.js +1 -1
- package/.next/server/app/api/credential-transfer/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/credential-transfer/route.js +1 -1
- package/.next/server/app/api/credential-transfer/route.js.nft.json +1 -1
- package/.next/server/app/api/cwd/route.js +1 -1
- package/.next/server/app/api/cwd/route.js.nft.json +1 -1
- package/.next/server/app/api/encryption/secure/route.js +1 -1
- package/.next/server/app/api/encryption/secure/route.js.nft.json +1 -1
- package/.next/server/app/api/env/route.js +1 -1
- package/.next/server/app/api/env/route.js.nft.json +1 -1
- package/.next/server/app/api/factory-observatory/route.js +1 -1
- package/.next/server/app/api/factory-observatory/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js +1 -1
- package/.next/server/app/api/flow/[id]/convert-process-to-subflow/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/route.js +1 -1
- package/.next/server/app/api/flow/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/[versionId]/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js +1 -1
- package/.next/server/app/api/flow/[id]/versions/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/assist/route.js +1 -1
- package/.next/server/app/api/flow/assist/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/compile/route.js +1 -1
- package/.next/server/app/api/flow/compile/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/route.js +1 -1
- package/.next/server/app/api/flow/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generate/visual/route.js +1 -1
- package/.next/server/app/api/flow/generate/visual/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/generator/route.js +1 -1
- package/.next/server/app/api/flow/generator/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/improve/route.js +1 -1
- package/.next/server/app/api/flow/improve/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/model-agent/route.js +1 -1
- package/.next/server/app/api/flow/model-agent/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js +1 -1
- package/.next/server/app/api/flow/prompt-renderer/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js +1 -1
- package/.next/server/app/api/flow/quick-chat/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/repair/route.js +1 -1
- package/.next/server/app/api/flow/repair/route.js.nft.json +1 -1
- package/.next/server/app/api/flow/route.js +1 -1
- package/.next/server/app/api/flow/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route.js +1 -1
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/harness/[id]/route.js +1 -1
- package/.next/server/app/api/harness/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/harness/profiles/route.js +1 -1
- package/.next/server/app/api/harness/profiles/route.js.nft.json +1 -1
- package/.next/server/app/api/harness/route.js +1 -1
- package/.next/server/app/api/harness/route.js.nft.json +1 -1
- package/.next/server/app/api/init/route.js +1 -1
- package/.next/server/app/api/init/route.js.nft.json +1 -1
- package/.next/server/app/api/local-models/capability/route.js +1 -1
- package/.next/server/app/api/local-models/capability/route.js.nft.json +1 -1
- package/.next/server/app/api/local-models/pull/route.js +1 -1
- package/.next/server/app/api/local-models/pull/route.js.nft.json +1 -1
- package/.next/server/app/api/local-models/suggest/route.js +1 -1
- package/.next/server/app/api/local-models/suggest/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js +1 -1
- package/.next/server/app/api/mcp/app-consent/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js +1 -1
- package/.next/server/app/api/mcp/app-sandbox/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/assistant/route.js +1 -1
- package/.next/server/app/api/mcp/assistant/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/cancel/route.js +1 -1
- package/.next/server/app/api/mcp/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/authoring/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/automation/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/flows/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/skills/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/state/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js +1 -1
- package/.next/server/app/api/mcp/flujo/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/model-risk-assessment/route.js +1 -1
- package/.next/server/app/api/mcp/model-risk-assessment/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js +1 -1
- package/.next/server/app/api/mcp/oauth-capability/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/security-review/route.js +1 -1
- package/.next/server/app/api/mcp/security-review/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/host-consent/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/host-consent/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/prompts/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/read/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/resources/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/approve/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/approve/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/get/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/get/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/load/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/load/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/status/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/confirm/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/stdio-oauth/start/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/stream/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/[toolName]/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js +1 -1
- package/.next/server/app/api/mcp/servers/[name]/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/servers/route.js +1 -1
- package/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js +1 -1
- package/.next/server/app/api/mcp/test-connection/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/route.js +1 -1
- package/.next/server/app/api/mcp-registry/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js +1 -1
- package/.next/server/app/api/mcp-registry/spotlight/route.js.nft.json +1 -1
- package/.next/server/app/api/model/[id]/route.js +1 -1
- package/.next/server/app/api/model/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/model/allowance/route.js +1 -1
- package/.next/server/app/api/model/allowance/route.js.nft.json +1 -1
- package/.next/server/app/api/model/provider/route.js +1 -1
- package/.next/server/app/api/model/provider/route.js.nft.json +1 -1
- package/.next/server/app/api/model/route.js +1 -1
- package/.next/server/app/api/model/route.js.nft.json +1 -1
- package/.next/server/app/api/model/test/route.js +1 -1
- package/.next/server/app/api/model/test/route.js.nft.json +1 -1
- package/.next/server/app/api/network-exposure/route.js +1 -1
- package/.next/server/app/api/network-exposure/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/callback/route.js +1 -1
- package/.next/server/app/api/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/initiate/route.js +1 -1
- package/.next/server/app/api/oauth/initiate/route.js.nft.json +1 -1
- package/.next/server/app/api/oauth/reset/route.js +1 -1
- package/.next/server/app/api/oauth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/operations/status/route.js +1 -1
- package/.next/server/app/api/operations/status/route.js.nft.json +1 -1
- package/.next/server/app/api/original-owner/route.js +1 -1
- package/.next/server/app/api/original-owner/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/build/route.js +1 -1
- package/.next/server/app/api/packages/build/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js +1 -1
- package/.next/server/app/api/packages/derive-secrets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/route.js +1 -1
- package/.next/server/app/api/packages/install/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/install/status/route.js +1 -1
- package/.next/server/app/api/packages/install/status/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/installed/route.js +1 -1
- package/.next/server/app/api/packages/installed/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/resolve/route.js +1 -1
- package/.next/server/app/api/packages/resolve/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js +1 -1
- package/.next/server/app/api/packages/scan-targets/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/search/route.js +1 -1
- package/.next/server/app/api/packages/search/route.js.nft.json +1 -1
- package/.next/server/app/api/packages/uninstall/route.js +1 -1
- package/.next/server/app/api/packages/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/persona-recovery/route.js +2 -2
- package/.next/server/app/api/persona-recovery/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/run/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/[id]/worker-recovery/route.js +1 -1
- package/.next/server/app/api/planned-executions/[id]/worker-recovery/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js +1 -1
- package/.next/server/app/api/planned-executions/preview-schedule/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js +1 -1
- package/.next/server/app/api/planned-executions/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/api/planned-executions/route.js +1 -1
- package/.next/server/app/api/planned-executions/route.js.nft.json +1 -1
- package/.next/server/app/api/reference-search/files/route.js +1 -1
- package/.next/server/app/api/reference-search/files/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js +1 -1
- package/.next/server/app/api/registry/auth/resend/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/auth/reset/route.js +1 -1
- package/.next/server/app/api/registry/auth/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/auth/route.js +1 -1
- package/.next/server/app/api/registry/auth/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/feedback/route.js +1 -1
- package/.next/server/app/api/registry/feedback/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/oauth/callback/route.js +1 -1
- package/.next/server/app/api/registry/oauth/callback/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route.js +1 -1
- package/.next/server/app/api/registry/oauth/initiate/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/packages/route.js +1 -1
- package/.next/server/app/api/registry/packages/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/publish/route.js +1 -1
- package/.next/server/app/api/registry/publish/route.js.nft.json +1 -1
- package/.next/server/app/api/registry/settings/route.js +1 -1
- package/.next/server/app/api/registry/settings/route.js.nft.json +1 -1
- package/.next/server/app/api/restore/route.js +1 -1
- package/.next/server/app/api/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/runs/active/route.js +1 -1
- package/.next/server/app/api/runs/active/route.js.nft.json +1 -1
- package/.next/server/app/api/runtime-environment/route.js +1 -1
- package/.next/server/app/api/runtime-environment/route.js.nft.json +1 -1
- package/.next/server/app/api/setup/ai-cli/route.js +1 -1
- package/.next/server/app/api/setup/ai-cli/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/abort/route.js +1 -1
- package/.next/server/app/api/snapshot/abort/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/begin/route.js +1 -1
- package/.next/server/app/api/snapshot/begin/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/download/route.js +1 -1
- package/.next/server/app/api/snapshot/download/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/finalize/route.js +1 -1
- package/.next/server/app/api/snapshot/finalize/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/info/route.js +1 -1
- package/.next/server/app/api/snapshot/info/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshot/status/route.js +1 -1
- package/.next/server/app/api/snapshot/status/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshots/cleanup/route.js +1 -1
- package/.next/server/app/api/snapshots/cleanup/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshots/open-folder/route.js +1 -1
- package/.next/server/app/api/snapshots/open-folder/route.js.nft.json +1 -1
- package/.next/server/app/api/snapshots/route.js +1 -1
- package/.next/server/app/api/snapshots/route.js.nft.json +1 -1
- package/.next/server/app/api/statistics/route.js +1 -1
- package/.next/server/app/api/statistics/route.js.nft.json +1 -1
- package/.next/server/app/api/storage/route.js +1 -1
- package/.next/server/app/api/storage/route.js.nft.json +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js +1 -1
- package/.next/server/app/api/telemetry/daily-active/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/[id]/route.js +1 -1
- package/.next/server/app/api/tickets/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/tickets/route.js +1 -1
- package/.next/server/app/api/tickets/route.js.nft.json +1 -1
- package/.next/server/app/api/transcription/route.js +1 -1
- package/.next/server/app/api/transcription/route.js.nft.json +1 -1
- package/.next/server/app/api/update/route.js +1 -1
- package/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/server/app/api/waves/route.js +1 -1
- package/.next/server/app/api/waves/route.js.nft.json +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js +1 -1
- package/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/workspaces/route.js +1 -1
- package/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/flows/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp/page.js +1 -1
- package/.next/server/app/mcp/page.js.nft.json +1 -1
- package/.next/server/app/mcp/page_client-reference-manifest.js +1 -1
- package/.next/server/app/mcp-flows/route.js +1 -1
- package/.next/server/app/mcp-flows/route.js.nft.json +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js +1 -1
- package/.next/server/app/mcp-proxy/[server]/route.js.nft.json +1 -1
- package/.next/server/app/settings/page.js +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/v1/chat/completions/route.js +1 -1
- package/.next/server/app/v1/chat/completions/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js +1 -1
- package/.next/server/app/v1/chat/conversation-chains/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/breakpoints/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/attach/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/continue/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/debug/step/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/edit-state/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/inject/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/media/[mediaId]/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/media/[mediaId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/[dispatchId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/model-turns/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/recovery/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/[resourceId]/content/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/resources/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/respond/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/revert/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/wire-preview/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/[conversationId]/wire-preview/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/conversations/route.js +1 -1
- package/.next/server/app/v1/chat/conversations/route.js.nft.json +1 -1
- package/.next/server/app/v1/chat/events/route.js +1 -1
- package/.next/server/app/v1/chat/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/flows/[flowRef]/readiness/route.js +1 -1
- package/.next/server/app/v1/flows/[flowRef]/readiness/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/events/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/events/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/interventions/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/interventions/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/private-notes/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/private-notes/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/resume/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/resume/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js +1 -1
- package/.next/server/app/v1/meetings/[meetingId]/start/route.js.nft.json +1 -1
- package/.next/server/app/v1/meetings/route.js +1 -1
- package/.next/server/app/v1/meetings/route.js.nft.json +1 -1
- package/.next/server/app/v1/models/route.js +1 -1
- package/.next/server/app/v1/models/route.js.nft.json +1 -1
- package/.next/server/app/v1/persona-drafts/[draftId]/route.js +1 -1
- package/.next/server/app/v1/persona-drafts/[draftId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/persona-drafts/route.js +1 -1
- package/.next/server/app/v1/persona-drafts/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/launch/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/launch/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/[grantId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/app-grants/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/behaviors/[behaviorId]/activate/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/behaviors/[behaviorId]/activate/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/behaviors/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/behaviors/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/copy/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/copy/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/composition/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/core/reconcile/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/core/reconcile/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/deletion-preview/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/deletion-preview/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/execution-preview/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/execution-preview/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/export/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/export/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/export-preview/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/export-preview/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/goal-admissions/[admissionKey]/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/goal-admissions/[admissionKey]/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/apply/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/apply/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/promote/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/promote/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/reject/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/reject/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/undo/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/[proposalId]/undo/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/improvements/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/activate/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/activate/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/correct/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/correct/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/pin/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/pin/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/resolve-conflict/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/resolve-conflict/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/[memoryId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/memories/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/runtime-recovery/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/runtime-recovery/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/storage-stats/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/storage-stats/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/assign/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/assign/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/control/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/control/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/runtime/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/runtime/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/source/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/[workItemId]/source/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/promote-todo/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/promote-todo/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/route.js +1 -1
- package/.next/server/app/v1/personas/[personaId]/work-items/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/readiness/route.js +1 -1
- package/.next/server/app/v1/personas/readiness/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/route.js +1 -1
- package/.next/server/app/v1/personas/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/settings-options/route.js +1 -1
- package/.next/server/app/v1/personas/settings-options/route.js.nft.json +1 -1
- package/.next/server/app/v1/personas/summary/route.js +1 -1
- package/.next/server/app/v1/personas/summary/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/duplicate/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/duplicate/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/impact/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/impact/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/restore/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/restore/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/rollback/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/rollback/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/[roleId]/versions/route.js +1 -1
- package/.next/server/app/v1/roles/[roleId]/versions/route.js.nft.json +1 -1
- package/.next/server/app/v1/roles/route.js +1 -1
- package/.next/server/app/v1/roles/route.js.nft.json +1 -1
- package/.next/server/app/v1/tasks/[taskId]/route.js +1 -1
- package/.next/server/app/v1/tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/server/app-paths-manifest.json +58 -58
- package/.next/server/chunks/{89291.js → 11417.js} +4 -4
- package/.next/server/chunks/14130.js +1 -1
- package/.next/server/chunks/21392.js +4 -4
- package/.next/server/chunks/23167.js +1 -1
- package/.next/server/chunks/30775.js +1 -1
- package/.next/server/chunks/30953.js +2 -2
- package/.next/server/chunks/36362.js +2 -2
- package/.next/server/chunks/42265.js +2 -2
- package/.next/server/chunks/52152.js +2 -2
- package/.next/server/chunks/57085.js +1 -1
- package/.next/server/chunks/73633.js +1 -1
- package/.next/server/chunks/74050.js +1 -1
- package/.next/server/chunks/{28644.js → 75650.js} +2 -2
- package/.next/server/chunks/77297.js +6 -6
- package/.next/server/chunks/81306.js +1 -1
- package/.next/server/chunks/82300.js +2 -2
- package/.next/server/chunks/83718.js +1 -1
- package/.next/server/chunks/87068.js +1 -1
- package/.next/server/chunks/91784.js +3 -3
- package/.next/server/chunks/97235.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/preview-props.json +3 -3
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2103-e3cdcdaf6b6e91fe.js → 2103-294c66f113cd67a5.js} +1 -1
- package/.next/static/chunks/{webpack-5157aab6954f4d2c.js → webpack-fdea59d2034fe7c1.js} +1 -1
- package/.next/trace-build +1 -1
- package/README.md +1 -1
- package/mcp-servers/bash/package.json +1 -1
- package/mcp-servers/browser/package.json +1 -1
- package/mcp-servers/filesystem/package.json +1 -1
- package/mcp-servers/flujo/package.json +1 -1
- package/package.json +5 -5
- /package/.next/static/{ge1_acWolH72coqTUewza → TsqR1zGslz8fIpBz6QVy_}/_buildManifest.js +0 -0
- /package/.next/static/{ge1_acWolH72coqTUewza → TsqR1zGslz8fIpBz6QVy_}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=97235,exports.ids=[97235],exports.modules={697235:(a,b,c)=>{c.r(b),c.d(b,{restoreConfiguredWorkerSnapshot:()=>W,unlockWorkerSnapshot:()=>U,verifyWorkerCodexAuth:()=>S});var d=c(973024),e=c(982832),f=c(977598);let g=JSON.parse('{"e":{"format":"flujo-workspace-encrypted","cipher":"aes-256-gcm","writeVersion":2,"readVersions":[1,2],"legacyPlaintextRead":true,"recipientKeyRequired":true,"recipientKeyBytes":32,"recipientKeyEncoding":"base64","v2Aad":"flujo:workspace-snapshot:v2","v2Digest":"sha256-encrypted-wire","v1Digest":"sha256-plaintext-zip"},"R":{"maxFileBytes":268435456,"maxUncompressedBytes":1073741824,"maxManifestBytes":8388608,"maxArchiveBytes":1082130432,"maxEncryptedBytes":1442844672,"maxMembers":65534}}'),h=g.e,i=g.R;var j=c(848161),k=c(176760),l=c.n(k);let m=["dev","ino","size","mtimeNs","ctimeNs","mode","uid","gid","nlink"],n=(a,b)=>m.every(c=>a[c]===b[c]),o=()=>Error("Worker snapshot is unsafe or changed while being read.");async function p(a,b){for(let c=0;c<b.length;){let{bytesWritten:d}=await a.write(b,c,b.length-c);if(!d)throw o();c+=d}}async function q(a,b,c,d){let e=d?d.subarray(0,c):Buffer.alloc(c);if(e.length!==c)throw o();for(let d=0;d<c;){let{bytesRead:f}=await a.read(e,d,c-d,b+d);if(!f)throw o();d+=f}return e}class r{constructor(a,b){this.root=a,this.file=b,this.size=0,this.key=(0,f.randomBytes)(32),this.pending=Buffer.alloc(0),this.blocks=[],this.diskSize=0,this.sealed=Buffer.alloc(65564),this.readTail=Promise.resolve()}static async create(){let a=await d.promises.mkdtemp(l().join((0,j.tmpdir)(),"flujo-snapshot-input-"));try{return await d.promises.chmod(a,448),new r(a,await d.promises.open(l().join(a,"ciphertext"),"wx+",384))}catch(b){throw await d.promises.rm(a,{recursive:!0,force:!0}),b}}async append(a){this.size+=a.length;let b=this.pending.length?Buffer.concat([this.pending,a]):a;for(;b.length>=65536;)await this.seal(b.subarray(0,65536)),b=b.subarray(65536);this.pending=Buffer.from(b)}async seal(a){let b=(0,f.randomBytes)(12),c=(0,f.createCipheriv)("aes-256-gcm",this.key,b);c.setAAD(Buffer.from(`${this.blocks.length}:${a.length}`));let d=c.update(a),e=c.final();b.copy(this.sealed),c.getAuthTag().copy(this.sealed,12),d.copy(this.sealed,28),e.copy(this.sealed,28+d.length),await p(this.file,this.sealed.subarray(0,a.length+28)),this.blocks.push({offset:this.diskSize,length:a.length}),this.diskSize+=a.length+28}async finish(){this.pending.length&&await this.seal(this.pending),this.pending.fill(0),this.pending=Buffer.alloc(0),await this.file.sync()}async read(a,b){let c,d=this.readTail;this.readTail=new Promise(a=>{c=a}),await d;try{return await this.readOwned(a,b)}finally{c()}}async readOwned(a,b){if(!Number.isSafeInteger(a)||!Number.isSafeInteger(b)||a<0||b<0||a+b>this.size||b>8388608)throw o();let c=Buffer.alloc(b);for(let d=0;d<b;){let e=Math.floor((a+d)/65536),g=this.blocks[e];if(!g)throw o();if(this.cache?.index!==e){this.cache?.bytes.fill(0);let a=await q(this.file,g.offset,g.length+28,this.sealed),b=(0,f.createDecipheriv)("aes-256-gcm",this.key,a.subarray(0,12));b.setAAD(Buffer.from(`${e}:${g.length}`)),b.setAuthTag(a.subarray(12,28));let c=b.update(a.subarray(28)),d=b.final();this.cache={index:e,bytes:d.length?Buffer.concat([c,d]):c}}let h=(a+d)%65536,i=Math.min(b-d,g.length-h);this.cache.bytes.copy(c,d,h,h+i),d+=i}return c}async *range(a=0,b=this.size-a){for(let c=0;c<b;c+=65536)yield await this.read(a+c,Math.min(65536,b-c))}async close(){for(let a of(this.key.fill(0),this.pending.fill(0),this.cache?.bytes.fill(0),this.sealed.fill(0),[...await Promise.allSettled([this.file.close()]),...await Promise.allSettled([d.promises.rm(this.root,{recursive:!0,force:!0})])]))if("rejected"===a.status)throw a.reason}}class s{constructor(a,b){this.file=a,this.size=b,this.storage=Buffer.alloc(65536),this.buffer=Buffer.alloc(0),this.offset=0,this.position=0}async fill(){return this.offset<this.buffer.length||this.position!==this.size&&(this.buffer=await q(this.file,this.position,Math.min(65536,this.size-this.position),this.storage),this.position+=this.buffer.length,this.offset=0,!0)}async peek(){return await this.fill()?this.buffer[this.offset]:-1}async byte(){let a=await this.peek();return -1!==a&&this.offset++,a}async whitespace(){for(;[9,10,13,32].includes(await this.peek());)await this.byte()}async expect(a){if(await this.whitespace(),await this.byte()!==a)throw o()}async smallValue(){await this.whitespace();let a=[],b=await this.peek()===34;b&&a.push(await this.byte());let c=!1;for(;a.length<256;){let d=await this.peek();if(-1===d)throw o();if(!b&&[44,125,9,10,13,32].includes(d)||(a.push(await this.byte()),b&&34===d&&!c))break;c=92===d&&!c}if(256===a.length)throw o();try{return JSON.parse(Buffer.from(a).toString("utf8"))}catch{throw o()}}async data(a,b){await this.expect(34);let c="",d=!1,e=0,f=async f=>{if(!/^[A-Za-z0-9+/=]*$/.test(f)||d&&f.length)throw o();let g=(c+=f).length-c.length%4;if(!g)return;let h=c.slice(0,g);if(!/^[A-Za-z0-9+/]*={0,2}$/.test(h))throw o();let i=Buffer.from(h,"base64");if(i.toString("base64")!==h||(d=h.includes("="),(e+=i.length)>b))throw o();await p(a,i),c=c.slice(g)};for(;await this.fill();){let a=this.buffer.indexOf(34,this.offset),b=this.buffer.indexOf(92,this.offset),d=Math.min(a<0?this.buffer.length:a,b<0?this.buffer.length:b);if(await f(this.buffer.subarray(this.offset,d).toString("latin1")),this.offset=d,d===this.buffer.length)continue;if(34===await this.byte()){if(c.length)throw o();return e}let g=await this.byte();if(117===g){let a="";for(let b=0;b<4;b++){let b=await this.byte();if(b<0)throw o();a+=String.fromCharCode(b)}if(!/^[0-9a-fA-F]{4}$/.test(a))throw o();await f(String.fromCharCode(Number.parseInt(a,16)))}else{let a=new Map([[34,'"'],[92,"\\"],[47,"/"],[98,"\b"],[102,"\f"],[110,"\n"],[114,"\r"],[116," "]]).get(g);if(void 0===a)throw o();await f(a)}}throw o()}}function t(a,b){if("string"!=typeof a||a.length>64)throw o();let c=Buffer.from(a,"base64");if(c.length!==b||c.toString("base64")!==a)throw o();return c}async function u(a,b,c,e){let g,i,k,m,p=await d.promises.lstat(a,{bigint:!0}),u=void 0===b?c:4*Math.ceil(c/3)+4096;if(!p.isFile()||p.isSymbolicLink()||p.nlink!==BigInt(1)||p.size>BigInt(u))throw o();let v=await d.promises.open(a,d.constants.O_RDONLY|(d.constants.O_NOFOLLOW??0)|(d.constants.O_NONBLOCK??0)),w=!1,x=0,y=(0,f.createHash)("sha256");try{let u=g=await r.create();if(!n(p,await v.stat({bigint:!0}))||!n(p,await d.promises.lstat(a,{bigint:!0})))throw o();let z=Buffer.alloc(65536);for(let a=0;a<Number(p.size);a+=65536)y.update(await q(v,a,Math.min(65536,Number(p.size)-a),z));let A=(0,f.createHash)("sha256"),B=async a=>{if(u.size+a.length>c)throw o();A.update(a),await u.append(a)};if(void 0!==b)try{m=t(b,32),i=await d.promises.mkdtemp(l().join((0,j.tmpdir)(),"flujo-snapshot-envelope-")),await d.promises.chmod(i,448),k=await d.promises.open(l().join(i,"ciphertext"),"wx+",384);let a=new s(v,Number(p.size)),e=new Map,g=-1;for(await a.expect(123);;){let b=await a.smallValue();if("string"!=typeof b||!["format","version","iv","tag","data"].includes(b)||e.has(b))throw o();await a.expect(58),e.set(b,"data"===b||await a.smallValue()),"data"===b&&(g=await a.data(k,c)),await a.whitespace();let d=await a.byte();if(125===d)break;if(44!==d)throw o()}if(await a.whitespace(),await a.byte()!==-1||5!==e.size||"flujo-workspace-encrypted"!==e.get("format")||![1,2].includes(e.get("version"))||g<0)throw o();x=e.get("version");let n=(0,f.createDecipheriv)("aes-256-gcm",m,t(e.get("iv"),12));2===x&&n.setAAD(Buffer.from(h.v2Aad)),n.setAuthTag(t(e.get("tag"),16));for(let a=0;a<g;a+=65536)await B(n.update(await q(k,a,Math.min(65536,g-a),z)));await B(n.final())}catch{throw Error("Worker snapshot decryption failed. Check the encrypted archive and its key.")}else for(let a=0;a<Number(p.size);a+=65536)await B(await q(v,a,Math.min(65536,Number(p.size)-a),z));let C=A.digest("hex");if((2===x?y.digest("hex"):C)!==e)throw Error("Worker snapshot SHA-256 mismatch.");if(!n(p,await v.stat({bigint:!0}))||!n(p,await d.promises.lstat(a,{bigint:!0})))throw o();return await u.finish(),w=!0,u}catch(a){throw await g?.close().catch(()=>void 0),a}finally{m?.fill(0);let a=await Promise.allSettled([v.close(),...k?[k.close()]:[]]),b=await Promise.allSettled(i?[d.promises.rm(i,{recursive:!0,force:!0})]:[]);if(w&&[...a,...b].some(a=>"rejected"===a.status))throw await g?.close().catch(()=>void 0),Error("Snapshot temporary storage could not be released.")}}var v=c(157075),w=c(638522);let x=()=>Error("Invalid snapshot ZIP structure or member integrity."),y=Array.from({length:256},(a,b)=>{let c=b;for(let a=0;a<8;a++)c=c>>>1^(1&c?0xedb88320:0);return c>>>0});async function z(a,b,c,d){let e=await a.read(Math.max(0,a.size-65557),Math.min(a.size,65557)),f=-1;for(let a=e.length-22;a>=0;a--)if(0x6054b50===e.readUInt32LE(a)&&a+22+e.readUInt16LE(a+20)===e.length){f=a;break}if(f<0)throw x();let g=a.size-e.length+f,h=e.readUInt16LE(f+10),i=e.readUInt32LE(f+12),j=e.readUInt32LE(f+16);if(e.readUInt16LE(f+4)||e.readUInt16LE(f+6)||e.readUInt16LE(f+8)!==h||65535===h||h>65534||j+i!==g)throw x();let k=new Map,l=[],m=[],n=j,o=0;for(let e=0;e<h;e++){if(n+46>g)throw x();let e=await a.read(n,46);if(0x2014b50!==e.readUInt32LE(0))throw x();let f=e.readUInt16LE(8),h=e.readUInt16LE(10),i=e.readUInt32LE(20),p=e.readUInt32LE(24),q=e.readUInt16LE(28),r=n+46+q+e.readUInt16LE(30)+e.readUInt16LE(32);if(1&f||0!==e.readUInt16LE(34)||![0,8].includes(h)||r>g||0xffffffff===i||0xffffffff===p)throw x();let s=await a.read(n+46,q),t=new TextDecoder("utf-8",{fatal:!0}).decode(s),u=t.endsWith("/"),v=d(t,u).normalize("NFC").toLowerCase();if(k.has(v))throw Error("Snapshot contains duplicate or case-aliased archive paths.");k.set(v,u);let w=e.readUInt32LE(38)>>>16,y=61440&w;if(y&&y!==(u?16384:32768))throw Error("Snapshot links and special files are unsupported.");if(p>("snapshot-manifest.json"===t?8388608:b)||u&&0!==p)throw Error("Snapshot file exceeds the restore size limit.");if((o+=p)>c+8388608)throw Error("Snapshot exceeds the restore size limit.");let z=e.readUInt32LE(42);if(z+30>j)throw x();let A=await a.read(z,30);if(0x4034b50!==A.readUInt32LE(0)||A.readUInt16LE(6)!==f||A.readUInt16LE(8)!==h||A.readUInt16LE(26)!==q)throw x();let B=z+30+q+A.readUInt16LE(28);if(B+i>j||!(await a.read(z+30,q)).equals(s))throw x();let C=e.readUInt32LE(16);if(!(8&f)&&(A.readUInt32LE(14)!==C||A.readUInt32LE(18)!==i||A.readUInt32LE(22)!==p))throw x();let D=B+i;if(8&f){if(D+12>j)throw x();let b=0x8074b50===(await a.read(D,4)).readUInt32LE(0),c=await a.read(D+4*!!b,12);if(c.readUInt32LE(0)!==C||c.readUInt32LE(4)!==i||c.readUInt32LE(8)!==p||(D+=b?16:12)>j)throw x()}m.push({start:z,end:D}),l.push({name:t,directory:u,size:p,mode:w,crc:C,method:h,offset:B,compressed:i}),n=r}if(n!==g)throw x();m.sort((a,b)=>a.start-b.start);for(let a=1;a<m.length;a++)if(m[a].start<m[a-1].end)throw x();for(let a of l){let b=d(a.name,a.directory).split("/");for(let a=1;a<b.length;a++)if(!1===k.get(b.slice(0,a).join("/").normalize("NFC").toLowerCase()))throw Error("Snapshot contains a file/directory path conflict.")}return l}async function*A(a,b){let c=v.Readable.from(a.range(b.offset,b.compressed),{objectMode:!1,highWaterMark:65536}),d=8===b.method?(0,w.createInflateRaw)():void 0,e=d?c.pipe(d):c;e!==c&&c.on("error",a=>e.destroy(a));let f=0,g=0xffffffff;try{for await(let a of e){let c=Buffer.isBuffer(a)?a:Buffer.from(a);if((f+=c.length)>b.size)throw x();for(let a of c)g=g>>>8^y[(g^a)&255];yield c}if(f!==b.size||(0xffffffff^g)>>>0!==b.crc||d&&d.bytesWritten!==b.compressed)throw x()}finally{c.destroy(),e.destroy()}}var B=c(230314),C=c(4551),D=c(87629),E=c(328461),F=c(316154),G=c(615837),H=c(721242),I=c(692103);let J="snapshot-manifest.json",K=".flujo-worker-snapshot.json",L=/^[a-f0-9]{64}$/;function M(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function N(a,b){try{return JSON.parse(a)}catch{throw Error(b)}}function O(a,b=!1){let c=b?a.replace(/\/$/,""):a,d=c.split("/");if(!c||c.includes("\\")||c.includes("\0")||d.some(a=>!a||"."===a||".."===a||a.includes(":")||/[. ]$/.test(a)||/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(a)))throw Error("Snapshot contains an unsafe archive path.");if(c!==J&&".workspace.json"!==c&&!E.WORKSPACE_SUBTREES.includes(d[0]))throw Error("Snapshot contains a file outside the supported workspace roots.");if(b&&(c===J||".workspace.json"===c))throw Error("Snapshot metadata must be a file.");if(!b&&E.WORKSPACE_SUBTREES.includes(c))throw Error("Snapshot workspace roots must be directories.");return c}async function P(a,b=!1){b&&await d.promises.mkdir(a,{recursive:!0,mode:448});let c=await d.promises.lstat(a);if(!c.isDirectory()||c.isSymbolicLink())throw Error("Worker restore destination must be a plain directory.")}async function Q(a){try{return await d.promises.lstat(a)}catch(a){if("ENOENT"===a.code)return null;throw a}}async function R(a){await P(a);let b=await d.promises.readdir(a,{withFileTypes:!0});for(let c of b)if(!E.WORKSPACE_SUBTREES.includes(c.name)||!c.isDirectory()||c.isSymbolicLink()||0!==(await d.promises.readdir(l().join(a,c.name))).length)throw Error("Worker snapshot restore refuses to overwrite an existing workspace.");for(let c of b)await d.promises.rmdir(l().join(a,c.name));await d.promises.rmdir(a)}async function S(a,b=(0,E.getWorkspaceDir)(a.workspace)){if("chatgpt"!==a.codexAuth)return;let c=l().join(b,"db","codex-runtime"),f=[];for(let a of["auth.json","flujo-auth-source.json"]){let g=await d.promises.lstat(l().join(c,a),{bigint:!0});if(!g.isFile()||g.isSymbolicLink()||g.nlink>BigInt(1)||g.size>BigInt(1048576))throw Error("Worker Codex authentication is not a valid workspace credential file.");let h=l().join(c,a);f.push(await (0,e.b)(h,{expected:g,maxBytes:1048576,verifyPath:()=>(0,G.V$)(b,h)}))}let[g,h]=f,i=N(h.toString("utf8"),"Worker Codex authentication marker is invalid.");if(!(0,F.eK)(g)||!M(i)||1!==i.version||"workspace"!==i.source)throw Error("Worker Codex ChatGPT authentication is missing or invalid.")}async function T(a,b=(0,E.getWorkspaceDir)(a.workspace)){if("user"!==a.encryption)return null;let c=l().join(b,"db","worker-bootstrap-secrets.json"),f=await d.promises.lstat(c,{bigint:!0});if(!f.isFile()||f.isSymbolicLink()||f.nlink>BigInt(1)||f.size>BigInt(4096))throw Error("Worker workspace encryption requires valid bootstrap credentials.");if("win32"!==process.platform&&(f.mode&BigInt(63))!==BigInt(0))throw Error("Worker workspace encryption credentials must be owner-only.");let g=N((await (0,e.b)(c,{expected:f,maxBytes:4096,ownerOnly:!0,verifyPath:()=>(0,G.V$)(b,c)})).toString("utf8"),"Worker workspace encryption bootstrap credentials are invalid.");if(!M(g)||1!==g.version||"string"!=typeof g.workspaceDek||!(0,D.TE)(g.workspaceDek))throw Error("Worker workspace encryption bootstrap credentials are invalid.");return g.workspaceDek}async function U(a){if((0,E.getCurrentWorkspace)()!==a.workspace)throw Error("Worker encryption unlock workspace mismatch.");let b=await T(a);b&&await (0,C.SO)(b,{workspace:a.workspace,root:(0,E.getWorkspaceDir)(a.workspace)})}async function V(a,b){(0,I.Vv)({state:"restoring",archiveSha256:b,error:void 0});let c=function(){let a=(a,b)=>{let c=process.env[a];if(void 0===c)return b;let d=Number(c);if(!/^[1-9]\d*$/.test(c)||!Number.isSafeInteger(d))throw Error("Snapshot limits are invalid.");return d},b=a("FLUJO_SNAPSHOT_MAX_FILE_BYTES",i.maxFileBytes),c=a("FLUJO_SNAPSHOT_MAX_BYTES",i.maxUncompressedBytes),d=c+i.maxManifestBytes,e=4*Math.ceil(d/3)+4096;if(!Number.isSafeInteger(d)||!Number.isSafeInteger(e))throw Error("Snapshot limits are invalid.");return{...i,maxFileBytes:b,maxUncompressedBytes:c,maxArchiveBytes:d,maxEncryptedBytes:e}}(),g=c.maxFileBytes,h=c.maxUncompressedBytes,j=await u(a,process.env.FLUJO_WORKER_SNAPSHOT_KEY,c.maxArchiveBytes,b);try{let a=await z(j,g,h,O),c=a.find(a=>a.name===J&&!a.directory);if(!c)throw Error("Worker snapshot manifest is missing.");let i=[];for await(let a of A(j,c))i.push(a);let k=function(a){if(!M(a)||2!==a.formatVersion||a.layoutVersion!==H.q||!1!==a.externalRootsIncluded||!M(a.source)||"3.48.1"!==a.source.version||"string"!=typeof a.source.platform||!M(a.runtime)||!M(a.runtime.mcpTransfer)||1!==a.runtime.mcpTransfer.formatVersion||"string"!=typeof a.runtime.mcpTransfer.sourceWorkspaceRoot||!Array.isArray(a.runtime.mcpTransfer.servers)||!["chatgpt","none"].includes(a.runtime.codexAuth)||!["default","user"].includes(a.runtime.encryption)||!Array.isArray(a.files)||!Array.isArray(a.subtrees)||a.subtrees.length!==E.WORKSPACE_SUBTREES.length||E.WORKSPACE_SUBTREES.some(b=>!a.subtrees.includes(b)))throw Error("Snapshot format, FLUJO version, layout, or portable runtime metadata is incompatible.");return(0,E.assertValidWorkspaceName)(a.workspace),a}(N(Buffer.concat(i).toString("utf8"),"Worker snapshot manifest is invalid JSON.")),m={workspace:k.workspace,archiveSha256:b,mcpTransfer:k.runtime.mcpTransfer,codexAuth:k.runtime.codexAuth,encryption:k.runtime.encryption};(0,I.Vv)({workspace:m.workspace});let n=new Map,o=0;for(let a of k.files){if(!M(a)||"string"!=typeof a.path||a.path===J||!Number.isSafeInteger(a.size)||a.size<0||a.size>g||"string"!=typeof a.sha256||!L.test(a.sha256))throw Error("Invalid snapshot manifest member.");if(O(a.path),n.has(a.path))throw Error("Snapshot manifest has duplicate members.");if((o+=a.size)>h)throw Error("Snapshot manifest exceeds the restore size limit.");n.set(a.path,a)}for(let b of a){if(b.name===J)continue;let a=b.directory?void 0:n.get(b.name);if(!b.directory&&(!a||a.size!==b.size))throw Error("Snapshot archive does not match its manifest.");let c=(0,f.createHash)("sha256");for await(let a of A(j,b))c.update(a);if(a&&c.digest("hex")!==a.sha256)throw Error("Snapshot member integrity check failed.");b.directory||n.delete(b.name)}if(n.size)throw Error("Snapshot archive is missing a manifest member.");await P((0,B.ok)(),!0),await P((0,E.getWorkspacesDir)(),!0);let p=(0,E.getWorkspaceDir)(m.workspace);if((await d.promises.readdir((0,E.getWorkspacesDir)())).filter(a=>a.toLowerCase()===m.workspace.toLowerCase()).some(a=>a!==m.workspace))throw Error("Worker workspace has a case-alias conflict.");let q=await Q(p);if(q){await P(p);let a=l().join(p,K);if(await Q(a)){let c=await d.promises.lstat(a,{bigint:!0});if(!c.isFile()||c.isSymbolicLink()||c.nlink>BigInt(1)||c.size>BigInt(4096))throw Error("Invalid worker restore marker.");let f=N((await (0,e.b)(a,{expected:c,maxBytes:4096,verifyPath:()=>(0,G.V$)(p,a)})).toString("utf8"),"Worker restore marker is invalid.");if(!M(f)||1!==f.formatVersion||f.archiveSha256!==b||f.workspace!==m.workspace)throw Error("Worker snapshot does not match the existing workspace.");return await S(m),await T(m),m}}let r=await d.promises.mkdtemp(l().join((0,E.getWorkspacesDir)(),".worker-restore-")),s=!1;try{for(let a of(await d.promises.chmod(r,448),E.WORKSPACE_SUBTREES))await d.promises.mkdir(l().join(r,a),{mode:448});for(let b of a.filter(a=>a.directory))await d.promises.mkdir(l().join(r,...O(b.name,!0).split("/")),{recursive:!0,mode:448});for(let b of a){if(b.directory||b.name===J)continue;let a=l().join(r,...b.name.split("/"));await d.promises.mkdir(l().dirname(a),{recursive:!0,mode:448}),await (0,G.V$)(r,a);let c=await d.promises.open(a,"wx",73&b.mode?448:384);try{if(".workspace.json"===b.name)await c.writeFile('{"roots":[]}\n');else for await(let a of A(j,b))for(let b=0;b<a.length;){let{bytesWritten:d}=await c.write(a,b,a.length-b);if(!d)throw Error("Worker restore write made no progress.");b+=d}await c.sync()}finally{await c.close()}}if(await S(m,r),await T(m,r),await (0,G.sA)(r,l().join(r,K),Buffer.from(JSON.stringify({formatVersion:1,workspace:m.workspace,archiveSha256:b}))),q)await R(p);else if(await Q(p))throw Error("Worker restore destination was created concurrently.");return await d.promises.rename(r,p),s=!0,await S(m),m}finally{s||await d.promises.rm(r,{recursive:!0,force:!0})}}finally{await j.close()}}function W(){if(!(0,I.ye)())return Promise.resolve(null);let a=process.env.FLUJO_WORKER_SNAPSHOT?.trim(),b=process.env.FLUJO_WORKER_SNAPSHOT_SHA256?.trim().toLowerCase();if(!a||!b||!L.test(b)||!l().isAbsolute(a)){let a="Worker mode requires an absolute FLUJO_WORKER_SNAPSHOT path and FLUJO_WORKER_SNAPSHOT_SHA256.";return(0,I.Vv)({state:"error",error:a}),Promise.reject(Error(a))}let c=(0,f.createHash)("sha256").update(process.env.FLUJO_WORKER_SNAPSHOT_KEY??"").digest("hex"),d=`${(0,E.getWorkspacesDir)()}\0${a}\0${b}\0${c}`;if(global.__flujo_worker_snapshot_restore?.key===d)return global.__flujo_worker_snapshot_restore.promise;let e=V(a,b).catch(a=>{throw(0,I.Vv)({state:"error",error:a instanceof Error?a.message:"Worker restore failed."}),global.__flujo_worker_snapshot_restore?.promise===e&&(global.__flujo_worker_snapshot_restore=void 0),a});return global.__flujo_worker_snapshot_restore={key:d,promise:e},e}}};
|
|
1
|
+
"use strict";exports.id=97235,exports.ids=[97235],exports.modules={697235:(a,b,c)=>{c.r(b),c.d(b,{restoreConfiguredWorkerSnapshot:()=>W,unlockWorkerSnapshot:()=>U,verifyWorkerCodexAuth:()=>S});var d=c(973024),e=c(982832),f=c(977598);let g=JSON.parse('{"e":{"format":"flujo-workspace-encrypted","cipher":"aes-256-gcm","writeVersion":2,"readVersions":[1,2],"legacyPlaintextRead":true,"recipientKeyRequired":true,"recipientKeyBytes":32,"recipientKeyEncoding":"base64","v2Aad":"flujo:workspace-snapshot:v2","v2Digest":"sha256-encrypted-wire","v1Digest":"sha256-plaintext-zip"},"R":{"maxFileBytes":268435456,"maxUncompressedBytes":1073741824,"maxManifestBytes":8388608,"maxArchiveBytes":1082130432,"maxEncryptedBytes":1442844672,"maxMembers":65534}}'),h=g.e,i=g.R;var j=c(848161),k=c(176760),l=c.n(k);let m=["dev","ino","size","mtimeNs","ctimeNs","mode","uid","gid","nlink"],n=(a,b)=>m.every(c=>a[c]===b[c]),o=()=>Error("Worker snapshot is unsafe or changed while being read.");async function p(a,b){for(let c=0;c<b.length;){let{bytesWritten:d}=await a.write(b,c,b.length-c);if(!d)throw o();c+=d}}async function q(a,b,c,d){let e=d?d.subarray(0,c):Buffer.alloc(c);if(e.length!==c)throw o();for(let d=0;d<c;){let{bytesRead:f}=await a.read(e,d,c-d,b+d);if(!f)throw o();d+=f}return e}class r{constructor(a,b){this.root=a,this.file=b,this.size=0,this.key=(0,f.randomBytes)(32),this.pending=Buffer.alloc(0),this.blocks=[],this.diskSize=0,this.sealed=Buffer.alloc(65564),this.readTail=Promise.resolve()}static async create(){let a=await d.promises.mkdtemp(l().join((0,j.tmpdir)(),"flujo-snapshot-input-"));try{return await d.promises.chmod(a,448),new r(a,await d.promises.open(l().join(a,"ciphertext"),"wx+",384))}catch(b){throw await d.promises.rm(a,{recursive:!0,force:!0}),b}}async append(a){this.size+=a.length;let b=this.pending.length?Buffer.concat([this.pending,a]):a;for(;b.length>=65536;)await this.seal(b.subarray(0,65536)),b=b.subarray(65536);this.pending=Buffer.from(b)}async seal(a){let b=(0,f.randomBytes)(12),c=(0,f.createCipheriv)("aes-256-gcm",this.key,b);c.setAAD(Buffer.from(`${this.blocks.length}:${a.length}`));let d=c.update(a),e=c.final();b.copy(this.sealed),c.getAuthTag().copy(this.sealed,12),d.copy(this.sealed,28),e.copy(this.sealed,28+d.length),await p(this.file,this.sealed.subarray(0,a.length+28)),this.blocks.push({offset:this.diskSize,length:a.length}),this.diskSize+=a.length+28}async finish(){this.pending.length&&await this.seal(this.pending),this.pending.fill(0),this.pending=Buffer.alloc(0),await this.file.sync()}async read(a,b){let c,d=this.readTail;this.readTail=new Promise(a=>{c=a}),await d;try{return await this.readOwned(a,b)}finally{c()}}async readOwned(a,b){if(!Number.isSafeInteger(a)||!Number.isSafeInteger(b)||a<0||b<0||a+b>this.size||b>8388608)throw o();let c=Buffer.alloc(b);for(let d=0;d<b;){let e=Math.floor((a+d)/65536),g=this.blocks[e];if(!g)throw o();if(this.cache?.index!==e){this.cache?.bytes.fill(0);let a=await q(this.file,g.offset,g.length+28,this.sealed),b=(0,f.createDecipheriv)("aes-256-gcm",this.key,a.subarray(0,12));b.setAAD(Buffer.from(`${e}:${g.length}`)),b.setAuthTag(a.subarray(12,28));let c=b.update(a.subarray(28)),d=b.final();this.cache={index:e,bytes:d.length?Buffer.concat([c,d]):c}}let h=(a+d)%65536,i=Math.min(b-d,g.length-h);this.cache.bytes.copy(c,d,h,h+i),d+=i}return c}async *range(a=0,b=this.size-a){for(let c=0;c<b;c+=65536)yield await this.read(a+c,Math.min(65536,b-c))}async close(){for(let a of(this.key.fill(0),this.pending.fill(0),this.cache?.bytes.fill(0),this.sealed.fill(0),[...await Promise.allSettled([this.file.close()]),...await Promise.allSettled([d.promises.rm(this.root,{recursive:!0,force:!0})])]))if("rejected"===a.status)throw a.reason}}class s{constructor(a,b){this.file=a,this.size=b,this.storage=Buffer.alloc(65536),this.buffer=Buffer.alloc(0),this.offset=0,this.position=0}async fill(){return this.offset<this.buffer.length||this.position!==this.size&&(this.buffer=await q(this.file,this.position,Math.min(65536,this.size-this.position),this.storage),this.position+=this.buffer.length,this.offset=0,!0)}async peek(){return await this.fill()?this.buffer[this.offset]:-1}async byte(){let a=await this.peek();return -1!==a&&this.offset++,a}async whitespace(){for(;[9,10,13,32].includes(await this.peek());)await this.byte()}async expect(a){if(await this.whitespace(),await this.byte()!==a)throw o()}async smallValue(){await this.whitespace();let a=[],b=await this.peek()===34;b&&a.push(await this.byte());let c=!1;for(;a.length<256;){let d=await this.peek();if(-1===d)throw o();if(!b&&[44,125,9,10,13,32].includes(d)||(a.push(await this.byte()),b&&34===d&&!c))break;c=92===d&&!c}if(256===a.length)throw o();try{return JSON.parse(Buffer.from(a).toString("utf8"))}catch{throw o()}}async data(a,b){await this.expect(34);let c="",d=!1,e=0,f=async f=>{if(!/^[A-Za-z0-9+/=]*$/.test(f)||d&&f.length)throw o();let g=(c+=f).length-c.length%4;if(!g)return;let h=c.slice(0,g);if(!/^[A-Za-z0-9+/]*={0,2}$/.test(h))throw o();let i=Buffer.from(h,"base64");if(i.toString("base64")!==h||(d=h.includes("="),(e+=i.length)>b))throw o();await p(a,i),c=c.slice(g)};for(;await this.fill();){let a=this.buffer.indexOf(34,this.offset),b=this.buffer.indexOf(92,this.offset),d=Math.min(a<0?this.buffer.length:a,b<0?this.buffer.length:b);if(await f(this.buffer.subarray(this.offset,d).toString("latin1")),this.offset=d,d===this.buffer.length)continue;if(34===await this.byte()){if(c.length)throw o();return e}let g=await this.byte();if(117===g){let a="";for(let b=0;b<4;b++){let b=await this.byte();if(b<0)throw o();a+=String.fromCharCode(b)}if(!/^[0-9a-fA-F]{4}$/.test(a))throw o();await f(String.fromCharCode(Number.parseInt(a,16)))}else{let a=new Map([[34,'"'],[92,"\\"],[47,"/"],[98,"\b"],[102,"\f"],[110,"\n"],[114,"\r"],[116," "]]).get(g);if(void 0===a)throw o();await f(a)}}throw o()}}function t(a,b){if("string"!=typeof a||a.length>64)throw o();let c=Buffer.from(a,"base64");if(c.length!==b||c.toString("base64")!==a)throw o();return c}async function u(a,b,c,e){let g,i,k,m,p=await d.promises.lstat(a,{bigint:!0}),u=void 0===b?c:4*Math.ceil(c/3)+4096;if(!p.isFile()||p.isSymbolicLink()||p.nlink!==BigInt(1)||p.size>BigInt(u))throw o();let v=await d.promises.open(a,d.constants.O_RDONLY|(d.constants.O_NOFOLLOW??0)|(d.constants.O_NONBLOCK??0)),w=!1,x=0,y=(0,f.createHash)("sha256");try{let u=g=await r.create();if(!n(p,await v.stat({bigint:!0}))||!n(p,await d.promises.lstat(a,{bigint:!0})))throw o();let z=Buffer.alloc(65536);for(let a=0;a<Number(p.size);a+=65536)y.update(await q(v,a,Math.min(65536,Number(p.size)-a),z));let A=(0,f.createHash)("sha256"),B=async a=>{if(u.size+a.length>c)throw o();A.update(a),await u.append(a)};if(void 0!==b)try{m=t(b,32),i=await d.promises.mkdtemp(l().join((0,j.tmpdir)(),"flujo-snapshot-envelope-")),await d.promises.chmod(i,448),k=await d.promises.open(l().join(i,"ciphertext"),"wx+",384);let a=new s(v,Number(p.size)),e=new Map,g=-1;for(await a.expect(123);;){let b=await a.smallValue();if("string"!=typeof b||!["format","version","iv","tag","data"].includes(b)||e.has(b))throw o();await a.expect(58),e.set(b,"data"===b||await a.smallValue()),"data"===b&&(g=await a.data(k,c)),await a.whitespace();let d=await a.byte();if(125===d)break;if(44!==d)throw o()}if(await a.whitespace(),await a.byte()!==-1||5!==e.size||"flujo-workspace-encrypted"!==e.get("format")||![1,2].includes(e.get("version"))||g<0)throw o();x=e.get("version");let n=(0,f.createDecipheriv)("aes-256-gcm",m,t(e.get("iv"),12));2===x&&n.setAAD(Buffer.from(h.v2Aad)),n.setAuthTag(t(e.get("tag"),16));for(let a=0;a<g;a+=65536)await B(n.update(await q(k,a,Math.min(65536,g-a),z)));await B(n.final())}catch{throw Error("Worker snapshot decryption failed. Check the encrypted archive and its key.")}else for(let a=0;a<Number(p.size);a+=65536)await B(await q(v,a,Math.min(65536,Number(p.size)-a),z));let C=A.digest("hex");if((2===x?y.digest("hex"):C)!==e)throw Error("Worker snapshot SHA-256 mismatch.");if(!n(p,await v.stat({bigint:!0}))||!n(p,await d.promises.lstat(a,{bigint:!0})))throw o();return await u.finish(),w=!0,u}catch(a){throw await g?.close().catch(()=>void 0),a}finally{m?.fill(0);let a=await Promise.allSettled([v.close(),...k?[k.close()]:[]]),b=await Promise.allSettled(i?[d.promises.rm(i,{recursive:!0,force:!0})]:[]);if(w&&[...a,...b].some(a=>"rejected"===a.status))throw await g?.close().catch(()=>void 0),Error("Snapshot temporary storage could not be released.")}}var v=c(157075),w=c(638522);let x=()=>Error("Invalid snapshot ZIP structure or member integrity."),y=Array.from({length:256},(a,b)=>{let c=b;for(let a=0;a<8;a++)c=c>>>1^(1&c?0xedb88320:0);return c>>>0});async function z(a,b,c,d){let e=await a.read(Math.max(0,a.size-65557),Math.min(a.size,65557)),f=-1;for(let a=e.length-22;a>=0;a--)if(0x6054b50===e.readUInt32LE(a)&&a+22+e.readUInt16LE(a+20)===e.length){f=a;break}if(f<0)throw x();let g=a.size-e.length+f,h=e.readUInt16LE(f+10),i=e.readUInt32LE(f+12),j=e.readUInt32LE(f+16);if(e.readUInt16LE(f+4)||e.readUInt16LE(f+6)||e.readUInt16LE(f+8)!==h||65535===h||h>65534||j+i!==g)throw x();let k=new Map,l=[],m=[],n=j,o=0;for(let e=0;e<h;e++){if(n+46>g)throw x();let e=await a.read(n,46);if(0x2014b50!==e.readUInt32LE(0))throw x();let f=e.readUInt16LE(8),h=e.readUInt16LE(10),i=e.readUInt32LE(20),p=e.readUInt32LE(24),q=e.readUInt16LE(28),r=n+46+q+e.readUInt16LE(30)+e.readUInt16LE(32);if(1&f||0!==e.readUInt16LE(34)||![0,8].includes(h)||r>g||0xffffffff===i||0xffffffff===p)throw x();let s=await a.read(n+46,q),t=new TextDecoder("utf-8",{fatal:!0}).decode(s),u=t.endsWith("/"),v=d(t,u).normalize("NFC").toLowerCase();if(k.has(v))throw Error("Snapshot contains duplicate or case-aliased archive paths.");k.set(v,u);let w=e.readUInt32LE(38)>>>16,y=61440&w;if(y&&y!==(u?16384:32768))throw Error("Snapshot links and special files are unsupported.");if(p>("snapshot-manifest.json"===t?8388608:b)||u&&0!==p)throw Error("Snapshot file exceeds the restore size limit.");if((o+=p)>c+8388608)throw Error("Snapshot exceeds the restore size limit.");let z=e.readUInt32LE(42);if(z+30>j)throw x();let A=await a.read(z,30);if(0x4034b50!==A.readUInt32LE(0)||A.readUInt16LE(6)!==f||A.readUInt16LE(8)!==h||A.readUInt16LE(26)!==q)throw x();let B=z+30+q+A.readUInt16LE(28);if(B+i>j||!(await a.read(z+30,q)).equals(s))throw x();let C=e.readUInt32LE(16);if(!(8&f)&&(A.readUInt32LE(14)!==C||A.readUInt32LE(18)!==i||A.readUInt32LE(22)!==p))throw x();let D=B+i;if(8&f){if(D+12>j)throw x();let b=0x8074b50===(await a.read(D,4)).readUInt32LE(0),c=await a.read(D+4*!!b,12);if(c.readUInt32LE(0)!==C||c.readUInt32LE(4)!==i||c.readUInt32LE(8)!==p||(D+=b?16:12)>j)throw x()}m.push({start:z,end:D}),l.push({name:t,directory:u,size:p,mode:w,crc:C,method:h,offset:B,compressed:i}),n=r}if(n!==g)throw x();m.sort((a,b)=>a.start-b.start);for(let a=1;a<m.length;a++)if(m[a].start<m[a-1].end)throw x();for(let a of l){let b=d(a.name,a.directory).split("/");for(let a=1;a<b.length;a++)if(!1===k.get(b.slice(0,a).join("/").normalize("NFC").toLowerCase()))throw Error("Snapshot contains a file/directory path conflict.")}return l}async function*A(a,b){let c=v.Readable.from(a.range(b.offset,b.compressed),{objectMode:!1,highWaterMark:65536}),d=8===b.method?(0,w.createInflateRaw)():void 0,e=d?c.pipe(d):c;e!==c&&c.on("error",a=>e.destroy(a));let f=0,g=0xffffffff;try{for await(let a of e){let c=Buffer.isBuffer(a)?a:Buffer.from(a);if((f+=c.length)>b.size)throw x();for(let a of c)g=g>>>8^y[(g^a)&255];yield c}if(f!==b.size||(0xffffffff^g)>>>0!==b.crc||d&&d.bytesWritten!==b.compressed)throw x()}finally{c.destroy(),e.destroy()}}var B=c(230314),C=c(4551),D=c(87629),E=c(328461),F=c(316154),G=c(615837),H=c(721242),I=c(692103);let J="snapshot-manifest.json",K=".flujo-worker-snapshot.json",L=/^[a-f0-9]{64}$/;function M(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function N(a,b){try{return JSON.parse(a)}catch{throw Error(b)}}function O(a,b=!1){let c=b?a.replace(/\/$/,""):a,d=c.split("/");if(!c||c.includes("\\")||c.includes("\0")||d.some(a=>!a||"."===a||".."===a||a.includes(":")||/[. ]$/.test(a)||/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(a)))throw Error("Snapshot contains an unsafe archive path.");if(c!==J&&".workspace.json"!==c&&!E.WORKSPACE_SUBTREES.includes(d[0]))throw Error("Snapshot contains a file outside the supported workspace roots.");if(b&&(c===J||".workspace.json"===c))throw Error("Snapshot metadata must be a file.");if(!b&&E.WORKSPACE_SUBTREES.includes(c))throw Error("Snapshot workspace roots must be directories.");return c}async function P(a,b=!1){b&&await d.promises.mkdir(a,{recursive:!0,mode:448});let c=await d.promises.lstat(a);if(!c.isDirectory()||c.isSymbolicLink())throw Error("Worker restore destination must be a plain directory.")}async function Q(a){try{return await d.promises.lstat(a)}catch(a){if("ENOENT"===a.code)return null;throw a}}async function R(a){await P(a);let b=await d.promises.readdir(a,{withFileTypes:!0});for(let c of b)if(!E.WORKSPACE_SUBTREES.includes(c.name)||!c.isDirectory()||c.isSymbolicLink()||0!==(await d.promises.readdir(l().join(a,c.name))).length)throw Error("Worker snapshot restore refuses to overwrite an existing workspace.");for(let c of b)await d.promises.rmdir(l().join(a,c.name));await d.promises.rmdir(a)}async function S(a,b=(0,E.getWorkspaceDir)(a.workspace)){if("chatgpt"!==a.codexAuth)return;let c=l().join(b,"db","codex-runtime"),f=[];for(let a of["auth.json","flujo-auth-source.json"]){let g=await d.promises.lstat(l().join(c,a),{bigint:!0});if(!g.isFile()||g.isSymbolicLink()||g.nlink>BigInt(1)||g.size>BigInt(1048576))throw Error("Worker Codex authentication is not a valid workspace credential file.");let h=l().join(c,a);f.push(await (0,e.b)(h,{expected:g,maxBytes:1048576,verifyPath:()=>(0,G.V$)(b,h)}))}let[g,h]=f,i=N(h.toString("utf8"),"Worker Codex authentication marker is invalid.");if(!(0,F.eK)(g)||!M(i)||1!==i.version||"workspace"!==i.source)throw Error("Worker Codex ChatGPT authentication is missing or invalid.")}async function T(a,b=(0,E.getWorkspaceDir)(a.workspace)){if("user"!==a.encryption)return null;let c=l().join(b,"db","worker-bootstrap-secrets.json"),f=await d.promises.lstat(c,{bigint:!0});if(!f.isFile()||f.isSymbolicLink()||f.nlink>BigInt(1)||f.size>BigInt(4096))throw Error("Worker workspace encryption requires valid bootstrap credentials.");if("win32"!==process.platform&&(f.mode&BigInt(63))!==BigInt(0))throw Error("Worker workspace encryption credentials must be owner-only.");let g=N((await (0,e.b)(c,{expected:f,maxBytes:4096,ownerOnly:!0,verifyPath:()=>(0,G.V$)(b,c)})).toString("utf8"),"Worker workspace encryption bootstrap credentials are invalid.");if(!M(g)||1!==g.version||"string"!=typeof g.workspaceDek||!(0,D.TE)(g.workspaceDek))throw Error("Worker workspace encryption bootstrap credentials are invalid.");return g.workspaceDek}async function U(a){if((0,E.getCurrentWorkspace)()!==a.workspace)throw Error("Worker encryption unlock workspace mismatch.");let b=await T(a);b&&await (0,C.SO)(b,{workspace:a.workspace,root:(0,E.getWorkspaceDir)(a.workspace)})}async function V(a,b){(0,I.Vv)({state:"restoring",archiveSha256:b,error:void 0});let c=function(){let a=(a,b)=>{let c=process.env[a];if(void 0===c)return b;let d=Number(c);if(!/^[1-9]\d*$/.test(c)||!Number.isSafeInteger(d))throw Error("Snapshot limits are invalid.");return d},b=a("FLUJO_SNAPSHOT_MAX_FILE_BYTES",i.maxFileBytes),c=a("FLUJO_SNAPSHOT_MAX_BYTES",i.maxUncompressedBytes),d=c+i.maxManifestBytes,e=4*Math.ceil(d/3)+4096;if(!Number.isSafeInteger(d)||!Number.isSafeInteger(e))throw Error("Snapshot limits are invalid.");return{...i,maxFileBytes:b,maxUncompressedBytes:c,maxArchiveBytes:d,maxEncryptedBytes:e}}(),g=c.maxFileBytes,h=c.maxUncompressedBytes,j=await u(a,process.env.FLUJO_WORKER_SNAPSHOT_KEY,c.maxArchiveBytes,b);try{let a=await z(j,g,h,O),c=a.find(a=>a.name===J&&!a.directory);if(!c)throw Error("Worker snapshot manifest is missing.");let i=[];for await(let a of A(j,c))i.push(a);let k=function(a){if(!M(a)||2!==a.formatVersion||a.layoutVersion!==H.q||!1!==a.externalRootsIncluded||!M(a.source)||"3.48.2"!==a.source.version||"string"!=typeof a.source.platform||!M(a.runtime)||!M(a.runtime.mcpTransfer)||1!==a.runtime.mcpTransfer.formatVersion||"string"!=typeof a.runtime.mcpTransfer.sourceWorkspaceRoot||!Array.isArray(a.runtime.mcpTransfer.servers)||!["chatgpt","none"].includes(a.runtime.codexAuth)||!["default","user"].includes(a.runtime.encryption)||!Array.isArray(a.files)||!Array.isArray(a.subtrees)||a.subtrees.length!==E.WORKSPACE_SUBTREES.length||E.WORKSPACE_SUBTREES.some(b=>!a.subtrees.includes(b)))throw Error("Snapshot format, FLUJO version, layout, or portable runtime metadata is incompatible.");return(0,E.assertValidWorkspaceName)(a.workspace),a}(N(Buffer.concat(i).toString("utf8"),"Worker snapshot manifest is invalid JSON.")),m={workspace:k.workspace,archiveSha256:b,mcpTransfer:k.runtime.mcpTransfer,codexAuth:k.runtime.codexAuth,encryption:k.runtime.encryption};(0,I.Vv)({workspace:m.workspace});let n=new Map,o=0;for(let a of k.files){if(!M(a)||"string"!=typeof a.path||a.path===J||!Number.isSafeInteger(a.size)||a.size<0||a.size>g||"string"!=typeof a.sha256||!L.test(a.sha256))throw Error("Invalid snapshot manifest member.");if(O(a.path),n.has(a.path))throw Error("Snapshot manifest has duplicate members.");if((o+=a.size)>h)throw Error("Snapshot manifest exceeds the restore size limit.");n.set(a.path,a)}for(let b of a){if(b.name===J)continue;let a=b.directory?void 0:n.get(b.name);if(!b.directory&&(!a||a.size!==b.size))throw Error("Snapshot archive does not match its manifest.");let c=(0,f.createHash)("sha256");for await(let a of A(j,b))c.update(a);if(a&&c.digest("hex")!==a.sha256)throw Error("Snapshot member integrity check failed.");b.directory||n.delete(b.name)}if(n.size)throw Error("Snapshot archive is missing a manifest member.");await P((0,B.ok)(),!0),await P((0,E.getWorkspacesDir)(),!0);let p=(0,E.getWorkspaceDir)(m.workspace);if((await d.promises.readdir((0,E.getWorkspacesDir)())).filter(a=>a.toLowerCase()===m.workspace.toLowerCase()).some(a=>a!==m.workspace))throw Error("Worker workspace has a case-alias conflict.");let q=await Q(p);if(q){await P(p);let a=l().join(p,K);if(await Q(a)){let c=await d.promises.lstat(a,{bigint:!0});if(!c.isFile()||c.isSymbolicLink()||c.nlink>BigInt(1)||c.size>BigInt(4096))throw Error("Invalid worker restore marker.");let f=N((await (0,e.b)(a,{expected:c,maxBytes:4096,verifyPath:()=>(0,G.V$)(p,a)})).toString("utf8"),"Worker restore marker is invalid.");if(!M(f)||1!==f.formatVersion||f.archiveSha256!==b||f.workspace!==m.workspace)throw Error("Worker snapshot does not match the existing workspace.");return await S(m),await T(m),m}}let r=await d.promises.mkdtemp(l().join((0,E.getWorkspacesDir)(),".worker-restore-")),s=!1;try{for(let a of(await d.promises.chmod(r,448),E.WORKSPACE_SUBTREES))await d.promises.mkdir(l().join(r,a),{mode:448});for(let b of a.filter(a=>a.directory))await d.promises.mkdir(l().join(r,...O(b.name,!0).split("/")),{recursive:!0,mode:448});for(let b of a){if(b.directory||b.name===J)continue;let a=l().join(r,...b.name.split("/"));await d.promises.mkdir(l().dirname(a),{recursive:!0,mode:448}),await (0,G.V$)(r,a);let c=await d.promises.open(a,"wx",73&b.mode?448:384);try{if(".workspace.json"===b.name)await c.writeFile('{"roots":[]}\n');else for await(let a of A(j,b))for(let b=0;b<a.length;){let{bytesWritten:d}=await c.write(a,b,a.length-b);if(!d)throw Error("Worker restore write made no progress.");b+=d}await c.sync()}finally{await c.close()}}if(await S(m,r),await T(m,r),await (0,G.sA)(r,l().join(r,K),Buffer.from(JSON.stringify({formatVersion:1,workspace:m.workspace,archiveSha256:b}))),q)await R(p);else if(await Q(p))throw Error("Worker restore destination was created concurrently.");return await d.promises.rename(r,p),s=!0,await S(m),m}finally{s||await d.promises.rm(r,{recursive:!0,force:!0})}}finally{await j.close()}}function W(){if(!(0,I.ye)())return Promise.resolve(null);let a=process.env.FLUJO_WORKER_SNAPSHOT?.trim(),b=process.env.FLUJO_WORKER_SNAPSHOT_SHA256?.trim().toLowerCase();if(!a||!b||!L.test(b)||!l().isAbsolute(a)){let a="Worker mode requires an absolute FLUJO_WORKER_SNAPSHOT path and FLUJO_WORKER_SNAPSHOT_SHA256.";return(0,I.Vv)({state:"error",error:a}),Promise.reject(Error(a))}let c=(0,f.createHash)("sha256").update(process.env.FLUJO_WORKER_SNAPSHOT_KEY??"").digest("hex"),d=`${(0,E.getWorkspacesDir)()}\0${a}\0${b}\0${c}`;if(global.__flujo_worker_snapshot_restore?.key===d)return global.__flujo_worker_snapshot_restore.promise;let e=V(a,b).catch(a=>{throw(0,I.Vv)({state:"error",error:a instanceof Error?a.message:"Worker restore failed."}),global.__flujo_worker_snapshot_restore?.promise===e&&(global.__flujo_worker_snapshot_restore=void 0),a});return global.__flujo_worker_snapshot_restore={key:d,promise:e},e}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/TsqR1zGslz8fIpBz6QVy_/_buildManifest.js","static/TsqR1zGslz8fIpBz6QVy_/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-fdea59d2034fe7c1.js","static/chunks/4bd1b696-543997be30908275.js","static/chunks/3794-aefbae025177eea5.js","static/chunks/main-app-faaebcf454de4b63.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__REACT_LOADABLE_MANIFEST='{"../node_modules/@modelcontextprotocol/client/dist/index.mjs -> jose":{"id":24474,"files":["static/chunks/4474.f893b0e76d4423da.js"]},"frontend/components/AmbientWorld/LivingWorldGate.tsx -> ./RiverWorld":{"id":37582,"files":["static/chunks/7582.bec00bea634e0165.js"]},"frontend/components/AppWrapper.tsx -> ../contexts/StorageContext":{"id":80967,"files":[]},"frontend/components/AppWrapper.tsx -> ../contexts/ThemeContext":{"id":94370,"files":[]},"frontend/components/AppWrapper.tsx -> ../contexts/TourContext":{"id":13408,"files":["static/chunks/3408-e7a49342fd41b7c8.js","static/chunks/9260.a3524f79d7b19b5b.js"]},"frontend/components/AppWrapper.tsx -> ./AskFlujo/AskFlujoDock":{"id":94067,"files":["static/chunks/a855edea-5f9545001f1e57cf.js","static/chunks/9c4e9391-4b20c6422bfbe9cc.js","static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/3072-bfa62fd8e07523f9.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/4282-50596bc68e269c89.js","static/chunks/3372-fe9edf2fa12346a0.js","static/chunks/7735-1901416c943b93f8.js","static/chunks/5207-35e0f099e01f46e8.js","static/chunks/9098-db1dbae347cacfab.js","static/chunks/5476-5a5fbb2f1ce6714d.js","static/chunks/4849-eda027457130d209.js","static/chunks/9319-71c5d027ee2aa0b1.js","static/chunks/9304-bb51f129fdefc018.js","static/chunks/7351-735da364a8a66879.js","static/chunks/1364-97232ab533a32595.js","static/chunks/2454-f333abccb1e58f96.js","static/chunks/3188-1603fa159aa1d14d.js","static/chunks/7411-778dca490724b471.js","static/chunks/9497.7284acc26d7062dd.js","static/chunks/9704-137e87263522bb6c.js","static/chunks/2103-
|
|
1
|
+
self.__REACT_LOADABLE_MANIFEST='{"../node_modules/@modelcontextprotocol/client/dist/index.mjs -> jose":{"id":24474,"files":["static/chunks/4474.f893b0e76d4423da.js"]},"frontend/components/AmbientWorld/LivingWorldGate.tsx -> ./RiverWorld":{"id":37582,"files":["static/chunks/7582.bec00bea634e0165.js"]},"frontend/components/AppWrapper.tsx -> ../contexts/StorageContext":{"id":80967,"files":[]},"frontend/components/AppWrapper.tsx -> ../contexts/ThemeContext":{"id":94370,"files":[]},"frontend/components/AppWrapper.tsx -> ../contexts/TourContext":{"id":13408,"files":["static/chunks/3408-e7a49342fd41b7c8.js","static/chunks/9260.a3524f79d7b19b5b.js"]},"frontend/components/AppWrapper.tsx -> ./AskFlujo/AskFlujoDock":{"id":94067,"files":["static/chunks/a855edea-5f9545001f1e57cf.js","static/chunks/9c4e9391-4b20c6422bfbe9cc.js","static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/3072-bfa62fd8e07523f9.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/4282-50596bc68e269c89.js","static/chunks/3372-fe9edf2fa12346a0.js","static/chunks/7735-1901416c943b93f8.js","static/chunks/5207-35e0f099e01f46e8.js","static/chunks/9098-db1dbae347cacfab.js","static/chunks/5476-5a5fbb2f1ce6714d.js","static/chunks/4849-eda027457130d209.js","static/chunks/9319-71c5d027ee2aa0b1.js","static/chunks/9304-bb51f129fdefc018.js","static/chunks/7351-735da364a8a66879.js","static/chunks/1364-97232ab533a32595.js","static/chunks/2454-f333abccb1e58f96.js","static/chunks/3188-1603fa159aa1d14d.js","static/chunks/7411-778dca490724b471.js","static/chunks/9497.7284acc26d7062dd.js","static/chunks/9704-137e87263522bb6c.js","static/chunks/2103-294c66f113cd67a5.js","static/chunks/1662-d8d85ec04630c46e.js","static/chunks/9580-889554e217f097dc.js","static/chunks/5508.63db636098f698f3.js"]},"frontend/components/AppWrapper.tsx -> ./EncryptionAuthDialog":{"id":73024,"files":["static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/3072-bfa62fd8e07523f9.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/4282-50596bc68e269c89.js","static/chunks/3372-fe9edf2fa12346a0.js","static/chunks/5476-5a5fbb2f1ce6714d.js","static/chunks/9319-71c5d027ee2aa0b1.js","static/chunks/3024.eebfde9379273599.js"]},"frontend/components/AppWrapper.tsx -> ./Navigation":{"id":35435,"files":["static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/3072-bfa62fd8e07523f9.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/4282-50596bc68e269c89.js","static/chunks/3372-fe9edf2fa12346a0.js","static/chunks/7735-1901416c943b93f8.js","static/chunks/5207-35e0f099e01f46e8.js","static/chunks/9098-db1dbae347cacfab.js","static/chunks/4849-eda027457130d209.js","static/chunks/9319-71c5d027ee2aa0b1.js","static/chunks/9304-bb51f129fdefc018.js","static/chunks/8995-7f1a15a65bcf5625.js","static/chunks/3681-f174a63cd8fc6ceb.js","static/chunks/8170-ed992e37ef40b46b.js","static/chunks/8303.28830f297cc9a0ae.js","static/chunks/9704-137e87263522bb6c.js","static/chunks/4865-33fe256d0361bf33.js","static/chunks/5435.54988c9bce500a64.js"]},"frontend/components/AppWrapper.tsx -> ./TelemetryNotice":{"id":12958,"files":["static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/1206-da66b6585eb7b3dd.js","static/chunks/2446.9b620fd9d827565c.js"]},"frontend/components/AppWrapper.tsx -> ./Tour/BigTutorialOverlay":{"id":98646,"files":["static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/3072-bfa62fd8e07523f9.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/9319-71c5d027ee2aa0b1.js","static/chunks/85.e63a203587ede3cb.js","static/chunks/3408-e7a49342fd41b7c8.js","static/chunks/8646.ff135b6ebd5b89f4.js"]},"frontend/components/AppWrapper.tsx -> ./Tour/TourOverlay":{"id":5452,"files":["static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/1461.d892156a46a15888.js","static/chunks/3408-e7a49342fd41b7c8.js","static/chunks/5452.a8dd45331cf5d122.js"]},"frontend/components/AppWrapper.tsx -> ./mcp/GlobalMcpAppsHost":{"id":79615,"files":["static/chunks/a855edea-5f9545001f1e57cf.js","static/chunks/9c4e9391-4b20c6422bfbe9cc.js","static/chunks/9449-09c913d25b751b76.js","static/chunks/2447-075bc59563185801.js","static/chunks/2673-12506e83d23de6a9.js","static/chunks/8585-24e539c2700d9713.js","static/chunks/2703-9df3dcabac2efd0a.js","static/chunks/9306-3546e75ade7434ed.js","static/chunks/5207-35e0f099e01f46e8.js","static/chunks/9098-db1dbae347cacfab.js","static/chunks/9304-bb51f129fdefc018.js","static/chunks/1364-97232ab533a32595.js","static/chunks/3188-1603fa159aa1d14d.js","static/chunks/3161.3d02176c2d0f4975.js","static/chunks/9704-137e87263522bb6c.js","static/chunks/2103-294c66f113cd67a5.js","static/chunks/3999-8ab7cbe27732b5aa.js","static/chunks/6617.c3cf0a48780143ec.js"]}}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-fdea59d2034fe7c1.js"/><script src="/_next/static/chunks/4bd1b696-543997be30908275.js" async=""></script><script src="/_next/static/chunks/3794-aefbae025177eea5.js" async=""></script><script src="/_next/static/chunks/main-app-faaebcf454de4b63.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-fdea59d2034fe7c1.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[57121,[],\"\"]\n3:I[74581,[],\"\"]\n7:I[90484,[],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\na:\"ViewportBoundary\"\nb:I[90484,[],\"$a\"]\nd:\"MetadataBoundary\"\ne:I[90484,[],\"$d\"]\n10:I[27123,[],\"default\",1]\n4:X\n6:[[\"children\",{\"s\":\"__PAGE__\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],\"p\":false,\"v\":null}}]]\n5:[[\"children\",{\"s\":\"_global-error\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$4\"},\"c\":\"$Q6\"}]]\n0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$4\"},\"c\":\"$Q5\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"$Le\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"TsqR1zGslz8fIpBz6QVy_\"}\n4:C\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n9:null\nf:[]\n"])</script></body></html>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"previewModeId": "
|
|
3
|
-
"previewModeSigningKey": "
|
|
4
|
-
"previewModeEncryptionKey": "
|
|
2
|
+
"previewModeId": "de25c673d97e69b2b1eaf6deacebeb78",
|
|
3
|
+
"previewModeSigningKey": "ea1263bb5a824688570002fc0d58459c33483d1627e7aac60c061053a97be73d",
|
|
4
|
+
"previewModeEncryptionKey": "4e74787233c95fa89e8598c3767ab8f613a9efd3d9bdf004cec4b17c4efe6052"
|
|
5
5
|
}
|