chore: upgrade frontend dependencies to SvelteKit 3
This commit is contained in:
@@ -97,6 +97,16 @@ Deno.serve({ hostname: "127.0.0.1", port }, async (request) => {
|
|||||||
diagnostics: [],
|
diagnostics: [],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// Keyboard focus can preload the Tickets route before navigation.
|
||||||
|
if (path === "/orchestrator") {
|
||||||
|
return json({
|
||||||
|
workspace_id: workspaceId,
|
||||||
|
online: false,
|
||||||
|
disposition: "offline",
|
||||||
|
worker: null,
|
||||||
|
diagnostics: [],
|
||||||
|
});
|
||||||
|
}
|
||||||
if (path === "/working-directories") {
|
if (path === "/working-directories") {
|
||||||
return json({ workspace_id: workspaceId, items: [], diagnostics: [] });
|
return json({ workspace_id: workspaceId, items: [], diagnostics: [] });
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ Deno.test("production Home dashboard isolates failures, shows authoritative reco
|
|||||||
});
|
});
|
||||||
page.on("requestfailed", (request) => errors.push(request.url()));
|
page.on("requestfailed", (request) => errors.push(request.url()));
|
||||||
page.on("request", (request) => requests.push(request.url()));
|
page.on("request", (request) => requests.push(request.url()));
|
||||||
|
page.on("response", (response) => {
|
||||||
|
if (response.status() >= 400) errors.push(`${response.status()} ${response.url()}`);
|
||||||
|
});
|
||||||
for (const workspace of ["home-owner", "home-member", "home-long"]) {
|
for (const workspace of ["home-owner", "home-member", "home-long"]) {
|
||||||
await page.goto(`${url}/w/${workspace}`);
|
await page.goto(`${url}/w/${workspace}`);
|
||||||
await ready(page);
|
await ready(page);
|
||||||
|
|||||||
+12
-11
@@ -2,8 +2,13 @@
|
|||||||
|
|
||||||
SvelteKit static SPA for the Yoi workspace control plane.
|
SvelteKit static SPA for the Yoi workspace control plane.
|
||||||
|
|
||||||
The frontend is intentionally static. Workspace authority, validation, and API
|
The frontend is intentionally static. Workspace authority, validation, and API behavior live in the Rust `yoi-server` backend.
|
||||||
behavior live in the Rust `yoi-server` backend.
|
|
||||||
|
## Toolchain
|
||||||
|
|
||||||
|
Dependencies are pinned in `deno.json` and `package.json`, with resolutions in `deno.lock`. Run `deno install --frozen` to reproduce the installed versions. The current toolchain is SvelteKit 3, Svelte 5, Vite 8, and Vitest 5. TypeScript is kept on 6.0.3 because SvelteKit 3.0.0 and svelte-check 4.7.6 do not yet declare support for TypeScript 7.
|
||||||
|
|
||||||
|
SvelteKit and adapter settings live in `vite.config.ts`. Internal library imports use the `#lib/*` package subpath mapping with explicit file extensions, shared by Vite, TypeScript, and Deno. `tsconfig.json` extends `$app/tsconfig`; generated WASM JavaScript is consumed through its generated `.d.ts`, not checked as handwritten JavaScript. Deno-only tests under `test/` are type-checked by `deno task test`.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
@@ -23,9 +28,7 @@ cd web/workspace
|
|||||||
deno task dev
|
deno task dev
|
||||||
```
|
```
|
||||||
|
|
||||||
The Vite dev server proxies `/api/*` to `http://127.0.0.1:8787`, so frontend hot
|
The Vite dev server proxies `/api/*` to `http://127.0.0.1:8787`, so frontend hot reload works while the Rust backend serves the workspace API. Open the Vite URL printed by `deno task dev`.
|
||||||
reload works while the Rust backend serves the workspace API. Open the Vite URL
|
|
||||||
printed by `deno task dev`.
|
|
||||||
|
|
||||||
If you want to run the backend from the repository root instead:
|
If you want to run the backend from the repository root instead:
|
||||||
|
|
||||||
@@ -33,10 +36,7 @@ If you want to run the backend from the repository root instead:
|
|||||||
cargo run -p yoi-workspace-server --bin yoi-server -- serve --listen 127.0.0.1:8787
|
cargo run -p yoi-workspace-server --bin yoi-server -- serve --listen 127.0.0.1:8787
|
||||||
```
|
```
|
||||||
|
|
||||||
The backend reads Workspace records from the Yoi server DB at
|
The backend reads Workspace records from the Yoi server DB at `<data_dir>/server/server.db`. Run `cargo run -p yoi-workspace-server --bin yoi-server -- init --workspace .` first when the server DB has not been initialized.
|
||||||
`<data_dir>/server/server.db`. Run
|
|
||||||
`cargo run -p yoi-workspace-server --bin yoi-server -- init --workspace .` first when the server
|
|
||||||
DB has not been initialized.
|
|
||||||
|
|
||||||
## Static build
|
## Static build
|
||||||
|
|
||||||
@@ -46,13 +46,14 @@ Build the SPA:
|
|||||||
deno task build
|
deno task build
|
||||||
```
|
```
|
||||||
|
|
||||||
Static asset packaging is a deployment concern. Local development normally uses
|
Static asset packaging is a deployment concern. Local development normally uses the Vite dev server proxy plus the Rust backend command above.
|
||||||
the Vite dev server proxy plus the Rust backend command above.
|
|
||||||
|
|
||||||
## Checks
|
## Checks
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
deno task check
|
deno task check
|
||||||
|
deno task test
|
||||||
|
deno task test:component
|
||||||
deno task build
|
deno task build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
+23
-24
@@ -3,40 +3,39 @@
|
|||||||
"nodeModulesDir": "auto",
|
"nodeModulesDir": "auto",
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"install": "deno install",
|
"install": "deno install",
|
||||||
"dev": "deno run -A npm:vite@7.2.7 dev",
|
"dev": "deno run -A npm:vite@8.3.2 dev",
|
||||||
"dev:backend": "cd ../.. && cargo run -p yoi-workspace-server --bin yoi-server -- serve --listen 127.0.0.1:8787",
|
"dev:backend": "cd ../.. && cargo run -p yoi-workspace-server --bin yoi-server -- serve --listen 127.0.0.1:8787",
|
||||||
"check": "deno run -A npm:@sveltejs/kit@2.49.4 sync && deno run -A npm:svelte-check@4.3.4 --tsconfig ./tsconfig.json",
|
"check": "deno run -A npm:@sveltejs/kit@3.0.0 sync && deno run -A npm:svelte-check@4.7.6 --tsconfig ./tsconfig.json",
|
||||||
"test": "deno test --allow-read=src,test,tests,../../docs --allow-env=LOG,VSCODE_TEXTMATE_DEBUG,NODE_ENV tests/workspace-model.test.ts tests/repository-api.test.ts tests/workspace-catalog.test.ts tests/profile-api.test.ts tests/skill-api.test.ts tests/tooltip-contract.test.ts tests/bevel-contract.test.ts tests/bevel-line-contract.test.ts tests/typography-contract.test.ts src/lib/workspace/auth/model.test.ts src/lib/workspace/protocol-validator.test.ts tests/auth-api.test.ts src/lib/workspace/api/http.test.ts src/lib/workspace/api/workers.test.ts src/lib/workspace/api/ticket-browser.test.ts src/lib/workspace/header/breadcrumb-model.test.ts src/lib/workspace/console/chat-submit.test.ts src/lib/workspace/console/composer-delivery.test.ts test/composer-history.test.ts tests/composer-paste.test.ts src/lib/workspace/console/composer-command.test.ts src/lib/workspace/console/composer-draft.test.ts src/lib/workspace/console/composer-completion.test.ts src/lib/workspace/console/file-completions.test.ts test/console/ansi.test.ts src/lib/workspace/console/history.test.ts src/lib/workspace/console/model.test.ts src/lib/workspace/console/turn-navigation.test.ts src/lib/workspace/console/run-status.test.ts src/lib/workspace/companion/api.test.ts tests/workdir-api.test.ts tests/workdir-permissions.test.ts src/lib/workspace/console/tasks.test.ts test/ticket-detail-route-reuse.test.ts test/spa-shell.test.ts test/objective-pages.test.ts test/repositories/ui.test.ts src/lib/workspace/console/worker-console.ui.test.ts src/lib/workspace/settings/model.test.ts tests/runtime-connection.test.ts tests/runtime-management.test.ts tests/runtime-management-source.test.ts src/lib/workspace/sidebar/override-stack.test.ts src/lib/workspace/sidebar/route-ownership.test.ts src/lib/workspace/sidebar/workers.test.ts src/lib/workspace/sidebar/workspace-switcher.test.ts src/lib/workspace/sidebar/worker-subscription.test.ts src/lib/workspace/sidebar/worker-workdir-meta.test.ts src/lib/workspace/sidebar/worker-launch.test.ts test/sidebar/worker-actions.test.ts src/lib/workspace/tickets/merge-request-resources.test.ts src/lib/workspace/tickets/ticket-panel.test.ts test/merge-request-status.test.ts test/config-source/decodal-grammar.test.ts test/config-source/editor-state.test.ts test/config-source/fixed-schema-wrapper.test.ts test/config-source/toolchain.test.ts test/config-source/wasm-parity.test.ts test/config-source/api.test.ts tests/memory-api.test.ts test/repository-access/api.test.ts test/repository-access/loader.test.ts test/repository-access/model.test.ts test/repository-access/structure.test.ts test/repository-ssh-connection-ui.test.ts",
|
"test": "deno test --allow-read=src,test,tests,../../docs --allow-env=LOG,VSCODE_TEXTMATE_DEBUG,NODE_ENV tests/workspace-model.test.ts tests/repository-api.test.ts tests/workspace-catalog.test.ts tests/profile-api.test.ts tests/skill-api.test.ts tests/tooltip-contract.test.ts tests/bevel-contract.test.ts tests/bevel-line-contract.test.ts tests/typography-contract.test.ts src/lib/workspace/auth/model.test.ts src/lib/workspace/protocol-validator.test.ts tests/auth-api.test.ts src/lib/workspace/api/http.test.ts src/lib/workspace/api/workers.test.ts src/lib/workspace/api/ticket-browser.test.ts src/lib/workspace/header/breadcrumb-model.test.ts src/lib/workspace/console/chat-submit.test.ts src/lib/workspace/console/composer-delivery.test.ts test/composer-history.test.ts tests/composer-paste.test.ts src/lib/workspace/console/composer-command.test.ts src/lib/workspace/console/composer-draft.test.ts src/lib/workspace/console/composer-completion.test.ts src/lib/workspace/console/file-completions.test.ts test/console/ansi.test.ts src/lib/workspace/console/history.test.ts src/lib/workspace/console/model.test.ts src/lib/workspace/console/turn-navigation.test.ts src/lib/workspace/console/run-status.test.ts src/lib/workspace/companion/api.test.ts tests/workdir-api.test.ts tests/workdir-permissions.test.ts src/lib/workspace/console/tasks.test.ts test/ticket-detail-route-reuse.test.ts test/spa-shell.test.ts test/objective-pages.test.ts test/repositories/ui.test.ts src/lib/workspace/console/worker-console.ui.test.ts src/lib/workspace/settings/model.test.ts tests/runtime-connection.test.ts tests/runtime-management.test.ts tests/runtime-management-source.test.ts src/lib/workspace/sidebar/override-stack.test.ts src/lib/workspace/sidebar/route-ownership.test.ts src/lib/workspace/sidebar/workers.test.ts src/lib/workspace/sidebar/workspace-switcher.test.ts src/lib/workspace/sidebar/worker-subscription.test.ts src/lib/workspace/sidebar/worker-workdir-meta.test.ts src/lib/workspace/sidebar/worker-launch.test.ts test/sidebar/worker-actions.test.ts src/lib/workspace/tickets/merge-request-resources.test.ts src/lib/workspace/tickets/ticket-panel.test.ts test/merge-request-status.test.ts test/config-source/decodal-grammar.test.ts test/config-source/editor-state.test.ts test/config-source/fixed-schema-wrapper.test.ts test/config-source/toolchain.test.ts test/config-source/wasm-parity.test.ts test/config-source/api.test.ts tests/memory-api.test.ts test/repository-access/api.test.ts test/repository-access/loader.test.ts test/repository-access/model.test.ts test/repository-access/structure.test.ts test/repository-ssh-connection-ui.test.ts",
|
||||||
"test:component": "deno run -A npm:vitest@3.2.4 run --config vitest.config.ts",
|
"test:component": "deno run -A npm:vitest@5.0.3 run --config vitest.config.ts",
|
||||||
"build": "deno run -A npm:vite@7.2.7 build",
|
"build": "deno run -A npm:vite@8.3.2 build",
|
||||||
"preview": "deno run -A npm:vite@7.2.7 preview",
|
"preview": "deno run -A npm:vite@8.3.2 preview",
|
||||||
"generate:repository-api": "cd ../.. && cargo run -q -p server-api --example generate_repository_openapi_types",
|
"generate:repository-api": "cd ../.. && cargo run -q -p server-api --example generate_repository_openapi_types",
|
||||||
"check:repository-api": "cd ../.. && cargo run -q -p server-api --example generate_repository_openapi_types -- --check",
|
"check:repository-api": "cd ../.. && cargo run -q -p server-api --example generate_repository_openapi_types -- --check",
|
||||||
"generate:ticket-api": "cd ../.. && cargo run -q -p server-api --example generate_ticket_api_types",
|
"generate:ticket-api": "cd ../.. && cargo run -q -p server-api --example generate_ticket_api_types",
|
||||||
"check:ticket-api": "cd ../.. && cargo run -q -p server-api --example generate_ticket_api_types -- --check"
|
"check:ticket-api": "cd ../.. && cargo run -q -p server-api --example generate_ticket_api_types -- --check"
|
||||||
},
|
},
|
||||||
"imports": {
|
"imports": {
|
||||||
"$lib/": "./src/lib/",
|
"@sveltejs/adapter-static": "npm:@sveltejs/adapter-static@4.0.0",
|
||||||
"@sveltejs/adapter-static": "npm:@sveltejs/adapter-static@3.0.9",
|
"@sveltejs/kit": "npm:@sveltejs/kit@3.0.0",
|
||||||
"@sveltejs/kit": "npm:@sveltejs/kit@2.49.4",
|
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@7.3.1",
|
||||||
"@sveltejs/vite-plugin-svelte": "npm:@sveltejs/vite-plugin-svelte@6.2.1",
|
"@codemirror/autocomplete": "npm:@codemirror/autocomplete@6.20.3",
|
||||||
"@codemirror/autocomplete": "npm:@codemirror/autocomplete@6.20.0",
|
"@codemirror/commands": "npm:@codemirror/commands@6.11.1",
|
||||||
"@codemirror/commands": "npm:@codemirror/commands@6.9.0",
|
|
||||||
"@codemirror/language": "npm:@codemirror/language@6.12.4",
|
"@codemirror/language": "npm:@codemirror/language@6.12.4",
|
||||||
"@codemirror/state": "npm:@codemirror/state@6.7.1",
|
"@codemirror/state": "npm:@codemirror/state@6.7.6",
|
||||||
"@codemirror/view": "npm:@codemirror/view@6.43.8",
|
"@codemirror/view": "npm:@codemirror/view@6.43.13",
|
||||||
"@lezer/common": "npm:@lezer/common@1.5.2",
|
"@lezer/common": "npm:@lezer/common@1.5.3",
|
||||||
"@lezer/highlight": "npm:@lezer/highlight@1.2.3",
|
"@lezer/highlight": "npm:@lezer/highlight@1.2.5",
|
||||||
"decodal-codemirror": "npm:decodal-codemirror@0.3.0",
|
"decodal-codemirror": "npm:decodal-codemirror@0.3.1",
|
||||||
"clsx": "npm:clsx@2.1.1",
|
"clsx": "npm:clsx@2.1.1",
|
||||||
"cookie": "npm:cookie@0.6.0",
|
"cookie": "npm:cookie@2.0.1",
|
||||||
"devalue": "npm:devalue@5.6.4",
|
"devalue": "npm:devalue@6.0.2",
|
||||||
"set-cookie-parser": "npm:set-cookie-parser@2.7.2",
|
"set-cookie-parser": "npm:set-cookie-parser@3.1.2",
|
||||||
"shiki": "npm:shiki@4.4.2",
|
"shiki": "npm:shiki@4.5.0",
|
||||||
"svelte": "npm:svelte@5.45.6",
|
"svelte": "npm:svelte@5.57.1",
|
||||||
"svelte-check": "npm:svelte-check@4.3.4",
|
"svelte-check": "npm:svelte-check@4.7.6",
|
||||||
"typescript": "npm:typescript@5.9.3",
|
"typescript": "npm:typescript@6.0.3",
|
||||||
"vite": "npm:vite@7.2.7"
|
"vite": "npm:vite@8.3.2"
|
||||||
},
|
},
|
||||||
"fmt": {
|
"fmt": {
|
||||||
"proseWrap": "never"
|
"proseWrap": "never"
|
||||||
|
|||||||
Generated
+336
-603
File diff suppressed because it is too large
Load Diff
@@ -5,14 +5,17 @@
|
|||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/ibm-plex-mono": "5.3.0",
|
"@fontsource/ibm-plex-mono": "5.3.0",
|
||||||
"@humanspeak/svelte-markdown": "1.9.1",
|
"@humanspeak/svelte-markdown": "2.0.0",
|
||||||
"gen-interface-jp": "0.8.0",
|
"gen-interface-jp": "0.8.0",
|
||||||
"shiki": "4.4.2",
|
"shiki": "4.5.0",
|
||||||
"yaml": "2.9.0"
|
"yaml": "2.9.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@testing-library/svelte": "5.2.8",
|
"@testing-library/svelte": "5.4.2",
|
||||||
"happy-dom": "20.12.0",
|
"happy-dom": "20.14.5",
|
||||||
"vitest": "3.2.4"
|
"vitest": "5.0.3"
|
||||||
|
},
|
||||||
|
"imports": {
|
||||||
|
"#lib/*": "./src/lib/*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
workspaceSkillCatalogPath,
|
workspaceSkillCatalogPath,
|
||||||
workspaceSkillDetailPath,
|
workspaceSkillDetailPath,
|
||||||
} from "./http.ts";
|
} from "./http.ts";
|
||||||
import { SKILL_API_LIMITS } from "$lib/generated/skill-api.ts";
|
import { SKILL_API_LIMITS } from "#lib/generated/skill-api.ts";
|
||||||
|
|
||||||
declare const Deno: {
|
declare const Deno: {
|
||||||
test(name: string, fn: () => Promise<void> | void): void;
|
test(name: string, fn: () => Promise<void> | void): void;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { SKILL_API_LIMITS } from "$lib/generated/skill-api.ts";
|
import { SKILL_API_LIMITS } from "#lib/generated/skill-api.ts";
|
||||||
import type {
|
import type {
|
||||||
SkillCatalogResponse,
|
SkillCatalogResponse,
|
||||||
SkillDetailResponse,
|
SkillDetailResponse,
|
||||||
} from "$lib/generated/skill-api.ts";
|
} from "#lib/generated/skill-api.ts";
|
||||||
import {
|
import {
|
||||||
parseSkillCatalogResponse,
|
parseSkillCatalogResponse,
|
||||||
parseSkillDetailResponse,
|
parseSkillDetailResponse,
|
||||||
SkillApiContractError,
|
SkillApiContractError,
|
||||||
} from "$lib/workspace/skills/api.ts";
|
} from "#lib/workspace/skills/api.ts";
|
||||||
|
|
||||||
export type ApiResult<T> = {
|
export type ApiResult<T> = {
|
||||||
data: T | null;
|
data: T | null;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type {
|
|||||||
MergeRequestDetailResponse,
|
MergeRequestDetailResponse,
|
||||||
MergeRequestListResponse,
|
MergeRequestListResponse,
|
||||||
MergeRequestThreadEvent,
|
MergeRequestThreadEvent,
|
||||||
} from "$lib/generated/ticket-api";
|
} from "#lib/generated/ticket-api.ts";
|
||||||
import { workspaceApiPath } from "./http";
|
import { workspaceApiPath } from "./http";
|
||||||
|
|
||||||
export type MergeRequestDetail = MergeRequestDetailResponse;
|
export type MergeRequestDetail = MergeRequestDetailResponse;
|
||||||
|
|||||||
@@ -3,19 +3,19 @@ import type {
|
|||||||
CreateWorkspaceRepositoryResponse,
|
CreateWorkspaceRepositoryResponse,
|
||||||
RepositoryDetailResponse,
|
RepositoryDetailResponse,
|
||||||
RepositoryListResponse,
|
RepositoryListResponse,
|
||||||
} from "$lib/generated/repository-api.ts";
|
} from "#lib/generated/repository-api.ts";
|
||||||
import {
|
import {
|
||||||
type ApiResult,
|
type ApiResult,
|
||||||
loadJson,
|
loadJson,
|
||||||
readBoundedJson,
|
readBoundedJson,
|
||||||
workspaceApiPath,
|
workspaceApiPath,
|
||||||
} from "$lib/workspace/api/http.ts";
|
} from "#lib/workspace/api/http.ts";
|
||||||
import {
|
import {
|
||||||
parseCreateWorkspaceRepositoryResponse,
|
parseCreateWorkspaceRepositoryResponse,
|
||||||
parseRepositoryApiError,
|
parseRepositoryApiError,
|
||||||
parseRepositoryDetailResponse,
|
parseRepositoryDetailResponse,
|
||||||
parseRepositoryListResponse,
|
parseRepositoryListResponse,
|
||||||
} from "$lib/workspace/api/workspace-model.ts";
|
} from "#lib/workspace/api/workspace-model.ts";
|
||||||
|
|
||||||
export const REPOSITORY_API_MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
|
export const REPOSITORY_API_MAX_RESPONSE_BYTES = 2 * 1024 * 1024;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type {
|
|||||||
RuntimeConnectionTestFailureKind,
|
RuntimeConnectionTestFailureKind,
|
||||||
RuntimeConnectionTestResponse,
|
RuntimeConnectionTestResponse,
|
||||||
RuntimeVerificationEvidenceSummary,
|
RuntimeVerificationEvidenceSummary,
|
||||||
} from "$lib/generated/runtime-api";
|
} from "#lib/generated/runtime-api.ts";
|
||||||
|
|
||||||
const RESPONSE_KEYS = [
|
const RESPONSE_KEYS = [
|
||||||
"workspace_id",
|
"workspace_id",
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import type {
|
|||||||
WorkspaceRuntimeDetail,
|
WorkspaceRuntimeDetail,
|
||||||
WorkspaceRuntimeListResponse,
|
WorkspaceRuntimeListResponse,
|
||||||
WorkspaceRuntimeResource,
|
WorkspaceRuntimeResource,
|
||||||
} from "$lib/generated/runtime-api.ts";
|
} from "#lib/generated/runtime-api.ts";
|
||||||
import { workspaceApiPath } from "./http.ts";
|
import { workspaceApiPath } from "./http.ts";
|
||||||
|
|
||||||
export type WorkspaceRuntimeList = Omit<WorkspaceRuntimeListResponse, "diagnostics"> & {
|
export type WorkspaceRuntimeList = Omit<WorkspaceRuntimeListResponse, "diagnostics"> & {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import type {
|
|||||||
RuntimeWorkerLifecycleResult,
|
RuntimeWorkerLifecycleResult,
|
||||||
WorkerOperationState,
|
WorkerOperationState,
|
||||||
WorkerRetentionResponse,
|
WorkerRetentionResponse,
|
||||||
} from "$lib/generated/runtime-api";
|
} from "#lib/generated/runtime-api.ts";
|
||||||
|
|
||||||
const MAX_STRING_BYTES = 4_096;
|
const MAX_STRING_BYTES = 4_096;
|
||||||
const MAX_CANDIDATES = 1_000;
|
const MAX_CANDIDATES = 1_000;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ import type {
|
|||||||
TicketRoleAssignmentRecord,
|
TicketRoleAssignmentRecord,
|
||||||
TicketRoleAssignmentSummary,
|
TicketRoleAssignmentSummary,
|
||||||
TicketTarget,
|
TicketTarget,
|
||||||
} from "$lib/generated/ticket-api.ts";
|
} from "#lib/generated/ticket-api.ts";
|
||||||
|
|
||||||
export const TICKET_BROWSER_API_MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
|
export const TICKET_BROWSER_API_MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
|
||||||
export const TICKET_BROWSER_API_LOAD_POLICY = {
|
export const TICKET_BROWSER_API_LOAD_POLICY = {
|
||||||
|
|||||||
@@ -21,12 +21,12 @@ import type {
|
|||||||
WorkerWorkdirAttachmentSummary,
|
WorkerWorkdirAttachmentSummary,
|
||||||
WorkerWorkspaceSummary,
|
WorkerWorkspaceSummary,
|
||||||
WorkingDirectoryRepositoryOption,
|
WorkingDirectoryRepositoryOption,
|
||||||
} from "$lib/generated/worker-launch-api";
|
} from "#lib/generated/worker-launch-api.ts";
|
||||||
import type { Segment } from "$lib/generated/protocol";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
import {
|
import {
|
||||||
parseExternalWorkdirPermissions,
|
parseExternalWorkdirPermissions,
|
||||||
parseWorkingDirectorySummary,
|
parseWorkingDirectorySummary,
|
||||||
} from "$lib/workspace/api/workdirs";
|
} from "#lib/workspace/api/workdirs.ts";
|
||||||
|
|
||||||
const DIAGNOSTIC_SEVERITIES = new Set<DiagnosticSeverity>([
|
const DIAGNOSTIC_SEVERITIES = new Set<DiagnosticSeverity>([
|
||||||
"info",
|
"info",
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import {
|
|||||||
type RepositorySummary,
|
type RepositorySummary,
|
||||||
type WorkspaceCreateResponse,
|
type WorkspaceCreateResponse,
|
||||||
type WorkspaceSummary,
|
type WorkspaceSummary,
|
||||||
} from "$lib/workspace/api/workspace-model";
|
} from "#lib/workspace/api/workspace-model.ts";
|
||||||
import { loadWorkspaceRepositoryList } from "$lib/workspace/api/repositories.ts";
|
import { loadWorkspaceRepositoryList } from "#lib/workspace/api/repositories.ts";
|
||||||
|
|
||||||
export type WorkspaceCatalogRecord = WorkspaceSummary;
|
export type WorkspaceCatalogRecord = WorkspaceSummary;
|
||||||
export type WorkspaceCatalogItem = WorkspaceCatalogRecord & {
|
export type WorkspaceCatalogItem = WorkspaceCatalogRecord & {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { ApiResult } from "$lib/workspace/api/http";
|
import type { ApiResult } from "#lib/workspace/api/http.ts";
|
||||||
import type {
|
import type {
|
||||||
WorkspaceAuthConfig,
|
WorkspaceAuthConfig,
|
||||||
WorkspaceCatalogListResponse,
|
WorkspaceCatalogListResponse,
|
||||||
@@ -15,7 +15,7 @@ import type {
|
|||||||
WorkspaceRepositoryRecord,
|
WorkspaceRepositoryRecord,
|
||||||
WorkspaceResponse,
|
WorkspaceResponse,
|
||||||
WorkspaceSummary,
|
WorkspaceSummary,
|
||||||
} from "$lib/generated/legacy-server-api.ts";
|
} from "#lib/generated/legacy-server-api.ts";
|
||||||
import type {
|
import type {
|
||||||
CreateWorkspaceRepositoryResponse,
|
CreateWorkspaceRepositoryResponse,
|
||||||
Diagnostic,
|
Diagnostic,
|
||||||
@@ -35,7 +35,7 @@ import type {
|
|||||||
RepositorySshConnectionTrustState,
|
RepositorySshConnectionTrustState,
|
||||||
RepositorySshHostKeyCandidate,
|
RepositorySshHostKeyCandidate,
|
||||||
RepositorySummary,
|
RepositorySummary,
|
||||||
} from "$lib/generated/repository-api.ts";
|
} from "#lib/generated/repository-api.ts";
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
WorkspaceCatalogListResponse,
|
WorkspaceCatalogListResponse,
|
||||||
@@ -45,7 +45,7 @@ export type {
|
|||||||
WorkspacePermissionSummary,
|
WorkspacePermissionSummary,
|
||||||
WorkspaceResponse,
|
WorkspaceResponse,
|
||||||
WorkspaceSummary,
|
WorkspaceSummary,
|
||||||
} from "$lib/generated/legacy-server-api.ts";
|
} from "#lib/generated/legacy-server-api.ts";
|
||||||
export type {
|
export type {
|
||||||
CreateWorkspaceRepositoryRequest,
|
CreateWorkspaceRepositoryRequest,
|
||||||
CreateWorkspaceRepositoryResponse,
|
CreateWorkspaceRepositoryResponse,
|
||||||
@@ -63,7 +63,7 @@ export type {
|
|||||||
RepositorySshConnectionProbeResponse,
|
RepositorySshConnectionProbeResponse,
|
||||||
RepositorySshHostKeyCandidate,
|
RepositorySshHostKeyCandidate,
|
||||||
RepositorySummary,
|
RepositorySummary,
|
||||||
} from "$lib/generated/repository-api.ts";
|
} from "#lib/generated/repository-api.ts";
|
||||||
|
|
||||||
type JsonObject = Record<string, unknown>;
|
type JsonObject = Record<string, unknown>;
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type {
|
|||||||
PasskeyLoginOptionsRequest,
|
PasskeyLoginOptionsRequest,
|
||||||
PasskeyRegistrationCompleteRequest,
|
PasskeyRegistrationCompleteRequest,
|
||||||
PasskeyRegistrationOptionsRequest,
|
PasskeyRegistrationOptionsRequest,
|
||||||
} from "$lib/generated/auth-api.ts";
|
} from "#lib/generated/auth-api.ts";
|
||||||
import {
|
import {
|
||||||
authenticationCredentialToJson,
|
authenticationCredentialToJson,
|
||||||
type AuthUser,
|
type AuthUser,
|
||||||
@@ -17,7 +17,7 @@ import {
|
|||||||
prepareRegistrationOptions,
|
prepareRegistrationOptions,
|
||||||
registrationCredentialToJson,
|
registrationCredentialToJson,
|
||||||
type WhoamiResponse,
|
type WhoamiResponse,
|
||||||
} from "$lib/workspace/auth/model";
|
} from "#lib/workspace/auth/model.ts";
|
||||||
|
|
||||||
const MAX_AUTH_RESPONSE_BYTES = 256 * 1024;
|
const MAX_AUTH_RESPONSE_BYTES = 256 * 1024;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import type {
|
|||||||
PasskeyRegistrationOptionsResponse,
|
PasskeyRegistrationOptionsResponse,
|
||||||
RequestActor,
|
RequestActor,
|
||||||
WhoamiResponse,
|
WhoamiResponse,
|
||||||
} from "$lib/generated/auth-api.ts";
|
} from "#lib/generated/auth-api.ts";
|
||||||
|
|
||||||
export type AuthUser = AuthenticatedUser;
|
export type AuthUser = AuthenticatedUser;
|
||||||
export type PasskeyUserResponse = AuthUserResponse;
|
export type PasskeyUserResponse = AuthUserResponse;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import type {
|
|||||||
DiagnosticSeverity,
|
DiagnosticSeverity,
|
||||||
WorkspaceWorkerDiscoveryItem,
|
WorkspaceWorkerDiscoveryItem,
|
||||||
WorkspaceWorkerSubject,
|
WorkspaceWorkerSubject,
|
||||||
} from "$lib/generated/companion-api";
|
} from "#lib/generated/companion-api.ts";
|
||||||
|
|
||||||
const MAX_TRANSCRIPT_ITEMS = 200;
|
const MAX_TRANSCRIPT_ITEMS = 200;
|
||||||
const MAX_DIAGNOSTICS = 100;
|
const MAX_DIAGNOSTICS = 100;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import DecodalSourceEditor from "$lib/workspace/settings/DecodalSourceEditor.svelte";
|
import DecodalSourceEditor from "#lib/workspace/settings/DecodalSourceEditor.svelte";
|
||||||
import {
|
import {
|
||||||
commitConfigTree,
|
commitConfigTree,
|
||||||
fetchConfigTree,
|
fetchConfigTree,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ export type {
|
|||||||
ToolchainContract,
|
ToolchainContract,
|
||||||
WorkspaceConfigSchemaBundle,
|
WorkspaceConfigSchemaBundle,
|
||||||
WorkspaceConfigTreeResponse,
|
WorkspaceConfigTreeResponse,
|
||||||
} from "$lib/generated/legacy-server-api.ts";
|
} from "#lib/generated/legacy-server-api.ts";
|
||||||
|
|
||||||
// Browser-local Decodal/WASM projections remain owned by config-source.
|
// Browser-local Decodal/WASM projections remain owned by config-source.
|
||||||
export type { ConfigDiagnostic } from "./generated/types/ConfigDiagnostic.ts";
|
export type { ConfigDiagnostic } from "./generated/types/ConfigDiagnostic.ts";
|
||||||
|
|||||||
@@ -22,12 +22,12 @@
|
|||||||
isolateHistory,
|
isolateHistory,
|
||||||
} from "@codemirror/commands";
|
} from "@codemirror/commands";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import type { Segment } from "$lib/generated/protocol.ts";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
import {
|
import {
|
||||||
handleComposerImagePaste,
|
handleComposerImagePaste,
|
||||||
measureComposerPaste,
|
measureComposerPaste,
|
||||||
type ComposerPasteMeasurement,
|
type ComposerPasteMeasurement,
|
||||||
} from "$lib/workspace/console/composer-paste.ts";
|
} from "#lib/workspace/console/composer-paste.ts";
|
||||||
import {
|
import {
|
||||||
composerDeletionRange,
|
composerDeletionRange,
|
||||||
composerPasteAtoms,
|
composerPasteAtoms,
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
type ComposerDraftSnapshot,
|
type ComposerDraftSnapshot,
|
||||||
type ComposerPaste,
|
type ComposerPaste,
|
||||||
type ComposerTextPaste,
|
type ComposerTextPaste,
|
||||||
} from "$lib/workspace/console/composer-draft.ts";
|
} from "#lib/workspace/console/composer-draft.ts";
|
||||||
import {
|
import {
|
||||||
ComposerHistory,
|
ComposerHistory,
|
||||||
loadComposerHistory,
|
loadComposerHistory,
|
||||||
@@ -45,9 +45,9 @@
|
|||||||
shouldBrowseComposerHistory,
|
shouldBrowseComposerHistory,
|
||||||
type ComposerHistoryDirection,
|
type ComposerHistoryDirection,
|
||||||
type ComposerHistoryEntry,
|
type ComposerHistoryEntry,
|
||||||
} from "$lib/workspace/console/composer-history.ts";
|
} from "#lib/workspace/console/composer-history.ts";
|
||||||
import { applyCompletion, completionSelection, completionTokenAt, localCommandCompletions, type ComposerCompletionEntry, type ComposerCompletionToken } from "./composer-completion";
|
import { applyCompletion, completionSelection, completionTokenAt, localCommandCompletions, type ComposerCompletionEntry, type ComposerCompletionToken } from "./composer-completion";
|
||||||
import { shouldSubmitChatKey } from "$lib/workspace/console/chat-submit.ts";
|
import { shouldSubmitChatKey } from "#lib/workspace/console/chat-submit.ts";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import AnsiText from '$lib/workspace/console/AnsiText.svelte';
|
import AnsiText from '#lib/workspace/console/AnsiText.svelte';
|
||||||
import RichMarkdown from '$lib/workspace/console/RichMarkdown.svelte';
|
import RichMarkdown from '#lib/workspace/console/RichMarkdown.svelte';
|
||||||
import type { ConsoleLine } from '$lib/workspace/console/model';
|
import type { ConsoleLine } from '#lib/workspace/console/model.ts';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
item: ConsoleLine;
|
item: ConsoleLine;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { Renderers } from "@humanspeak/svelte-markdown";
|
import type { Renderers } from "@humanspeak/svelte-markdown";
|
||||||
import { ShikiCode } from "@humanspeak/svelte-markdown/extensions/shiki";
|
import { ShikiCode } from "@humanspeak/svelte-markdown/extensions/shiki";
|
||||||
import SafeMarkdown from "$lib/workspace/markdown/SafeMarkdown.svelte";
|
import SafeMarkdown from "#lib/workspace/markdown/SafeMarkdown.svelte";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
text: string;
|
text: string;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import type {
|
import type {
|
||||||
InFlightCompaction,
|
InFlightCompaction,
|
||||||
WorkerStateSnapshot,
|
WorkerStateSnapshot,
|
||||||
} from "$lib/generated/protocol.ts";
|
} from "#lib/generated/protocol.ts";
|
||||||
import Spinner from "./Spinner.svelte";
|
import Spinner from "./Spinner.svelte";
|
||||||
import {
|
import {
|
||||||
formatRunElapsed,
|
formatRunElapsed,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type {
|
import type {
|
||||||
AttachmentUploadGrantResponse,
|
AttachmentUploadGrantResponse,
|
||||||
WorkerFileUploadResponse,
|
WorkerFileUploadResponse,
|
||||||
} from "$lib/generated/runtime-api.ts";
|
} from "#lib/generated/runtime-api.ts";
|
||||||
import type { UploadedFileRef } from "$lib/generated/protocol.ts";
|
import type { UploadedFileRef } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export const MAX_UPLOADED_FILE_BYTES = 10 * 1024 * 1024;
|
export const MAX_UPLOADED_FILE_BYTES = 10 * 1024 * 1024;
|
||||||
export const MAX_FILES_PER_SUBMISSION = 8;
|
export const MAX_FILES_PER_SUBMISSION = 8;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Segment } from "$lib/generated/protocol";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export type WorkerConsoleInputKind =
|
export type WorkerConsoleInputKind =
|
||||||
| "user"
|
| "user"
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import type { Segment } from "$lib/generated/protocol.ts";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
import {
|
import {
|
||||||
composerDeletionRange,
|
composerDeletionRange,
|
||||||
type ComposerPaste,
|
type ComposerPaste,
|
||||||
composerPasteToken,
|
composerPasteToken,
|
||||||
pasteChipLabel,
|
pasteChipLabel,
|
||||||
snapshotComposerDraft,
|
snapshotComposerDraft,
|
||||||
} from "$lib/workspace/console/composer-draft.ts";
|
} from "#lib/workspace/console/composer-draft.ts";
|
||||||
import { buildComposerSegmentsRequest } from "$lib/workspace/console/composer-command.ts";
|
import { buildComposerSegmentsRequest } from "#lib/workspace/console/composer-command.ts";
|
||||||
import { measureComposerPaste } from "$lib/workspace/console/composer-paste.ts";
|
import { measureComposerPaste } from "#lib/workspace/console/composer-paste.ts";
|
||||||
|
|
||||||
declare const Deno: {
|
declare const Deno: {
|
||||||
test(name: string, fn: () => void): void;
|
test(name: string, fn: () => void): void;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Segment } from "$lib/generated/protocol.ts";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
const PASTE_TOKEN_PREFIX = "\uFFF9";
|
const PASTE_TOKEN_PREFIX = "\uFFF9";
|
||||||
const PASTE_TOKEN_SUFFIX = "\uFFFB";
|
const PASTE_TOKEN_SUFFIX = "\uFFFB";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Segment } from "$lib/generated/protocol";
|
import type { Segment } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export const COMPOSER_HISTORY_LIMIT = 30;
|
export const COMPOSER_HISTORY_LIMIT = 30;
|
||||||
const COMPOSER_HISTORY_VERSION = 1;
|
const COMPOSER_HISTORY_VERSION = 1;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type {
|
|||||||
SessionConversationTurn,
|
SessionConversationTurn,
|
||||||
SessionHistoryPage,
|
SessionHistoryPage,
|
||||||
SessionSnapshotEntry,
|
SessionSnapshotEntry,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
import {
|
import {
|
||||||
applyConsoleHistoryPage,
|
applyConsoleHistoryPage,
|
||||||
beginConsoleHistoryRequest,
|
beginConsoleHistoryRequest,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type {
|
|||||||
SessionConversationTurn,
|
SessionConversationTurn,
|
||||||
SessionHistoryPage,
|
SessionHistoryPage,
|
||||||
SessionSnapshotEntry,
|
SessionSnapshotEntry,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export const CONSOLE_HISTORY_PAGE_TURNS = 5;
|
export const CONSOLE_HISTORY_PAGE_TURNS = 5;
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import type {
|
|||||||
SessionSnapshotEntry,
|
SessionSnapshotEntry,
|
||||||
WorkerStateSnapshot,
|
WorkerStateSnapshot,
|
||||||
WorkerStatus,
|
WorkerStatus,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
import {
|
import {
|
||||||
type ConsoleEventInput,
|
type ConsoleEventInput,
|
||||||
type ConsoleLine,
|
type ConsoleLine,
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import type {
|
|||||||
WorkerState,
|
WorkerState,
|
||||||
WorkerStateSnapshot,
|
WorkerStateSnapshot,
|
||||||
WorkerStatus,
|
WorkerStatus,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
import { stringify as stringifyYaml } from "yaml";
|
import { stringify as stringifyYaml } from "yaml";
|
||||||
import {
|
import {
|
||||||
applyRunActivityEvent,
|
applyRunActivityEvent,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type {
|
|||||||
Event as ProtocolEvent,
|
Event as ProtocolEvent,
|
||||||
InFlightCompaction,
|
InFlightCompaction,
|
||||||
WorkerStateSnapshot,
|
WorkerStateSnapshot,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export type RunActivityStats = {
|
export type RunActivityStats = {
|
||||||
startedAtMs: number | null;
|
startedAtMs: number | null;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export function consoleTurns(lines: readonly ConsoleLine[]): ConsoleTurn[] {
|
|||||||
return turns;
|
return turns;
|
||||||
}
|
}
|
||||||
|
|
||||||
import type { SessionConversationTurn } from "$lib/generated/protocol";
|
import type { SessionConversationTurn } from "#lib/generated/protocol.ts";
|
||||||
import { type ConsoleTurnPreview, conversationTurnPreviews } from "./history";
|
import { type ConsoleTurnPreview, conversationTurnPreviews } from "./history";
|
||||||
|
|
||||||
export type TurnNavigationItem = ConsoleTurnPreview;
|
export type TurnNavigationItem = ConsoleTurnPreview;
|
||||||
|
|||||||
@@ -69,11 +69,11 @@ Deno.test("workspace feature css is owned outside app css", async () => {
|
|||||||
"app.css should not own workspace, worker, or settings page implementation classes",
|
"app.css should not own workspace, worker, or settings page implementation classes",
|
||||||
);
|
);
|
||||||
assert(
|
assert(
|
||||||
workspaceLayout.includes("$lib/workspace/styles/workspace-pages.css") &&
|
workspaceLayout.includes("#lib/workspace/styles/workspace-pages.css") &&
|
||||||
workspaceLayout.includes("$lib/workspace/styles/workers.css") &&
|
workspaceLayout.includes("#lib/workspace/styles/workers.css") &&
|
||||||
settingsLayout.includes("$lib/workspace/styles/settings.css") &&
|
settingsLayout.includes("#lib/workspace/styles/settings.css") &&
|
||||||
accountPage.includes("$lib/workspace/styles/settings.css") &&
|
accountPage.includes("#lib/workspace/styles/settings.css") &&
|
||||||
deviceLoginPage.includes("$lib/workspace/styles/settings.css"),
|
deviceLoginPage.includes("#lib/workspace/styles/settings.css"),
|
||||||
"feature-owned CSS should be imported by the layouts/pages that need it",
|
"feature-owned CSS should be imported by the layouts/pages that need it",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from "$app/state";
|
import { page } from "$app/state";
|
||||||
import WorkspaceSwitcher from "$lib/workspace/sidebar/WorkspaceSwitcher.svelte";
|
import WorkspaceSwitcher from "#lib/workspace/sidebar/WorkspaceSwitcher.svelte";
|
||||||
import type { WorkspaceResponse } from "$lib/workspace/sidebar/types";
|
import type { WorkspaceResponse } from "#lib/workspace/sidebar/types.ts";
|
||||||
import { buildWorkspaceBreadcrumbs } from "./breadcrumb-model";
|
import { buildWorkspaceBreadcrumbs } from "./breadcrumb-model";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import BevelLine from '$lib/workspace/ui/BevelLine.svelte';
|
import BevelLine from '#lib/workspace/ui/BevelLine.svelte';
|
||||||
import type { DashboardFeed } from './dashboard';
|
import type { DashboardFeed } from './dashboard';
|
||||||
|
|
||||||
let { id, title, empty, result }: { id: string; title: string; empty: string; result: Promise<DashboardFeed> } = $props();
|
let { id, title, empty, result }: { id: string; title: string; empty: string; result: Promise<DashboardFeed> } = $props();
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import type { TicketListItemSummary } from "$lib/generated/ticket-api";
|
import type { TicketListItemSummary } from "#lib/generated/ticket-api.ts";
|
||||||
import { loadJson, workspaceApiPath } from "$lib/workspace/api/http";
|
import { loadJson, workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import {
|
import {
|
||||||
parseMergeRequestListResponse,
|
parseMergeRequestListResponse,
|
||||||
parseObjectiveListResponse,
|
parseObjectiveListResponse,
|
||||||
parseTicketDetail,
|
parseTicketDetail,
|
||||||
parseTicketListResponse,
|
parseTicketListResponse,
|
||||||
TICKET_BROWSER_API_LOAD_POLICY,
|
TICKET_BROWSER_API_LOAD_POLICY,
|
||||||
} from "$lib/workspace/api/ticket-browser";
|
} from "#lib/workspace/api/ticket-browser.ts";
|
||||||
import { mergeRequestPagePath } from "$lib/workspace/api/merge-requests";
|
import { mergeRequestPagePath } from "#lib/workspace/api/merge-requests.ts";
|
||||||
import { objectiveHref, ticketHref } from "$lib/workspace/resource-links";
|
import { objectiveHref, ticketHref } from "#lib/workspace/resource-links.ts";
|
||||||
|
|
||||||
export const HOME_LIMIT = 5;
|
export const HOME_LIMIT = 5;
|
||||||
export type DashboardRow = {
|
export type DashboardRow = {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
type Renderers,
|
type Renderers,
|
||||||
type SvelteMarkdownProps,
|
type SvelteMarkdownProps,
|
||||||
} from "@humanspeak/svelte-markdown";
|
} from "@humanspeak/svelte-markdown";
|
||||||
import MarkdownLink from "$lib/workspace/markdown/MarkdownLink.svelte";
|
import MarkdownLink from "#lib/workspace/markdown/MarkdownLink.svelte";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
text: string;
|
text: string;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { MEMORY_API_LIMITS } from "$lib/generated/memory-api";
|
import { MEMORY_API_LIMITS } from "#lib/generated/memory-api.ts";
|
||||||
import type {
|
import type {
|
||||||
Diagnostic,
|
Diagnostic,
|
||||||
DiagnosticSeverity,
|
DiagnosticSeverity,
|
||||||
@@ -12,7 +12,7 @@ import type {
|
|||||||
MemoryStagingEvidence,
|
MemoryStagingEvidence,
|
||||||
MemoryStagingListResponse,
|
MemoryStagingListResponse,
|
||||||
MemoryStagingRecord,
|
MemoryStagingRecord,
|
||||||
} from "$lib/generated/memory-api";
|
} from "#lib/generated/memory-api.ts";
|
||||||
|
|
||||||
const MAX_STAGING_ITEMS = MEMORY_API_LIMITS.maxCollectionItems;
|
const MAX_STAGING_ITEMS = MEMORY_API_LIMITS.maxCollectionItems;
|
||||||
const MAX_EVIDENCE_PER_RECORD = MEMORY_API_LIMITS.maxCollectionItems;
|
const MAX_EVIDENCE_PER_RECORD = MEMORY_API_LIMITS.maxCollectionItems;
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import { browser } from '$app/environment';
|
import { browser } from '$app/env';
|
||||||
import type {
|
import type {
|
||||||
EventSubscriptionSelector,
|
EventSubscriptionSelector,
|
||||||
Method,
|
Method,
|
||||||
SubscriptionFrame,
|
SubscriptionFrame,
|
||||||
SubscriptionId,
|
SubscriptionId,
|
||||||
} from '$lib/generated/protocol';
|
} from '#lib/generated/protocol.ts';
|
||||||
import {
|
import {
|
||||||
decodeSubscriptionFrame,
|
decodeSubscriptionFrame,
|
||||||
subscriptionFrameMatchesSelector,
|
subscriptionFrameMatchesSelector,
|
||||||
} from '$lib/generated/protocol-validator';
|
} from '#lib/generated/protocol-validator.ts';
|
||||||
import { workspaceApiPath } from '$lib/workspace/api/http';
|
import { workspaceApiPath } from '#lib/workspace/api/http.ts';
|
||||||
|
|
||||||
type Listener = {
|
type Listener = {
|
||||||
onFrame(frame: SubscriptionFrame): void;
|
onFrame(frame: SubscriptionFrame): void;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import type { EventSubscriptionSelector, SubscriptionFrame } from '$lib/generated/protocol';
|
import type { EventSubscriptionSelector, SubscriptionFrame } from '#lib/generated/protocol.ts';
|
||||||
import {
|
import {
|
||||||
decodeSubscriptionFrame,
|
decodeSubscriptionFrame,
|
||||||
MAX_SUBSCRIPTION_STRING_BYTES,
|
MAX_SUBSCRIPTION_STRING_BYTES,
|
||||||
RUST_SERIALIZED_SUBSCRIPTION_FRAME_FIXTURES,
|
RUST_SERIALIZED_SUBSCRIPTION_FRAME_FIXTURES,
|
||||||
subscriptionFrameMatchesSelector,
|
subscriptionFrameMatchesSelector,
|
||||||
} from '$lib/generated/protocol-validator';
|
} from '#lib/generated/protocol-validator.ts';
|
||||||
|
|
||||||
declare const Deno: {
|
declare const Deno: {
|
||||||
test(name: string, fn: () => void | Promise<void>): void;
|
test(name: string, fn: () => void | Promise<void>): void;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { WorkspaceRuntimeResource } from "$lib/generated/runtime-api";
|
import type { WorkspaceRuntimeResource } from "#lib/generated/runtime-api.ts";
|
||||||
|
|
||||||
export type RepositorySshProbeSelection<T> = Readonly<{
|
export type RepositorySshProbeSelection<T> = Readonly<{
|
||||||
changed: boolean;
|
changed: boolean;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
type WorkerSessionRequestIdentity,
|
type WorkerSessionRequestIdentity,
|
||||||
workerSessionRequestInit,
|
workerSessionRequestInit,
|
||||||
} from "./session-observation";
|
} from "./session-observation";
|
||||||
import type { SessionSnapshot } from "$lib/generated/protocol";
|
import type { SessionSnapshot } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
declare const Deno: {
|
declare const Deno: {
|
||||||
test(name: string, fn: () => Promise<void> | void): void;
|
test(name: string, fn: () => Promise<void> | void): void;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { SessionSnapshot } from "$lib/generated/protocol";
|
import type { SessionSnapshot } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export type WorkerSessionObservation =
|
export type WorkerSessionObservation =
|
||||||
| { availability: "live_protocol" }
|
| { availability: "live_protocol" }
|
||||||
|
|||||||
@@ -14,11 +14,11 @@
|
|||||||
import { EditorView, keymap, lineNumbers, highlightActiveLine, drawSelection, type ViewUpdate } from '@codemirror/view';
|
import { EditorView, keymap, lineNumbers, highlightActiveLine, drawSelection, type ViewUpdate } from '@codemirror/view';
|
||||||
import { tags } from '@lezer/highlight';
|
import { tags } from '@lezer/highlight';
|
||||||
import { decodal } from 'decodal-codemirror';
|
import { decodal } from 'decodal-codemirror';
|
||||||
import { shouldStartCompletionAfterTyping } from '$lib/workspace/config-source/completion.ts';
|
import { shouldStartCompletionAfterTyping } from '#lib/workspace/config-source/completion.ts';
|
||||||
import {
|
import {
|
||||||
fixedSchemaWrapperExtension,
|
fixedSchemaWrapperExtension,
|
||||||
moveSelectionIntoFixedWrapper,
|
moveSelectionIntoFixedWrapper,
|
||||||
} from '$lib/workspace/config-source/fixed-schema-wrapper.ts';
|
} from '#lib/workspace/config-source/fixed-schema-wrapper.ts';
|
||||||
|
|
||||||
let {
|
let {
|
||||||
value = '',
|
value = '',
|
||||||
|
|||||||
@@ -4,13 +4,13 @@
|
|||||||
import type {
|
import type {
|
||||||
Diagnostic, WorkspaceMetadataSettingsResponse, WorkspaceSigningIdentityResponse,
|
Diagnostic, WorkspaceMetadataSettingsResponse, WorkspaceSigningIdentityResponse,
|
||||||
WorkspaceDeletionPreflightResponse, WorkspaceDeletionOperationResponse, WorkspaceDeletionRequest,
|
WorkspaceDeletionPreflightResponse, WorkspaceDeletionOperationResponse, WorkspaceDeletionRequest,
|
||||||
} from '$lib/generated/legacy-server-api';
|
} from '#lib/generated/legacy-server-api.ts';
|
||||||
import { workspaceApiPath } from '$lib/workspace/api/http';
|
import { workspaceApiPath } from '#lib/workspace/api/http.ts';
|
||||||
import { disposeWorkspaceMultiplexer } from '$lib/workspace/multiplexer';
|
import { disposeWorkspaceMultiplexer } from '#lib/workspace/multiplexer.ts';
|
||||||
import { disposeWorkspaceWorkersStore } from '$lib/workspace/sidebar/worker-subscription';
|
import { disposeWorkspaceWorkersStore } from '#lib/workspace/sidebar/worker-subscription.ts';
|
||||||
import { fetchWorkspaceMetadata, updateWorkspaceMetadata, fetchWorkspaceSigningIdentity, provisionWorkspaceSigningIdentity } from './profile-api';
|
import { fetchWorkspaceMetadata, updateWorkspaceMetadata, fetchWorkspaceSigningIdentity, provisionWorkspaceSigningIdentity } from './profile-api';
|
||||||
import { preflightWorkspaceDeletion, startWorkspaceDeletion, getWorkspaceDeletion } from './workspace-deletion-api';
|
import { preflightWorkspaceDeletion, startWorkspaceDeletion, getWorkspaceDeletion } from './workspace-deletion-api';
|
||||||
import BevelLine from '$lib/workspace/ui/BevelLine.svelte';
|
import BevelLine from '#lib/workspace/ui/BevelLine.svelte';
|
||||||
|
|
||||||
// The route keys this component by Workspace and owner permission. Requests from
|
// The route keys this component by Workspace and owner permission. Requests from
|
||||||
// a disposed scope must not publish state, focus, or navigation into a new one.
|
// a disposed scope must not publish state, focus, or navigation into a new one.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { Diagnostic as ServerApiDiagnostic } from "$lib/generated/legacy-server-api";
|
import type { Diagnostic as ServerApiDiagnostic } from "#lib/generated/legacy-server-api.ts";
|
||||||
|
|
||||||
export type Diagnostic = ServerApiDiagnostic;
|
export type Diagnostic = ServerApiDiagnostic;
|
||||||
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import type {
|
|||||||
WorkspaceSigningIdentityPublic,
|
WorkspaceSigningIdentityPublic,
|
||||||
WorkspaceSigningIdentityResponse,
|
WorkspaceSigningIdentityResponse,
|
||||||
WorkspaceSigningIdentityState,
|
WorkspaceSigningIdentityState,
|
||||||
} from "$lib/generated/legacy-server-api";
|
} from "#lib/generated/legacy-server-api.ts";
|
||||||
import { readBoundedJson } from "$lib/workspace/api/http.ts";
|
import { readBoundedJson } from "#lib/workspace/api/http.ts";
|
||||||
|
|
||||||
const MAX_PROFILE_RESPONSE_BYTES = 4 * 1024 * 1024;
|
const MAX_PROFILE_RESPONSE_BYTES = 4 * 1024 * 1024;
|
||||||
const MAX_PROFILE_ERROR_BYTES = 4 * 1024;
|
const MAX_PROFILE_ERROR_BYTES = 4 * 1024;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { ExternalWorkdirPermissions } from "$lib/generated/workdir-api";
|
import type { ExternalWorkdirPermissions } from "#lib/generated/workdir-api.ts";
|
||||||
|
|
||||||
/** Render an effective attachment/session capability intersection without widening it. */
|
/** Render an effective attachment/session capability intersection without widening it. */
|
||||||
export function formatWorkdirPermissions(
|
export function formatWorkdirPermissions(
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import type {
|
|||||||
WorkspaceDeletionOperationResponse,
|
WorkspaceDeletionOperationResponse,
|
||||||
WorkspaceDeletionPreflightResponse,
|
WorkspaceDeletionPreflightResponse,
|
||||||
WorkspaceDeletionRequest,
|
WorkspaceDeletionRequest,
|
||||||
} from "$lib/generated/legacy-server-api";
|
} from "#lib/generated/legacy-server-api.ts";
|
||||||
import { loadJson } from "$lib/workspace/api/http";
|
import { loadJson } from "#lib/workspace/api/http.ts";
|
||||||
import {
|
import {
|
||||||
parseWorkspaceDeletionOperationResponse,
|
parseWorkspaceDeletionOperationResponse,
|
||||||
parseWorkspaceDeletionPreflightResponse,
|
parseWorkspaceDeletionPreflightResponse,
|
||||||
} from "$lib/workspace/api/workspace-model";
|
} from "#lib/workspace/api/workspace-model.ts";
|
||||||
|
|
||||||
const deletionResponsePolicy = {
|
const deletionResponsePolicy = {
|
||||||
maxResponseBytes: 2 * 1024 * 1024,
|
maxResponseBytes: 2 * 1024 * 1024,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { WorkspaceCatalogRecord } from "$lib/workspace/api/workspace-catalog";
|
import type { WorkspaceCatalogRecord } from "#lib/workspace/api/workspace-catalog.ts";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
currentPath: string;
|
currentPath: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { workspaceRoute } from "$lib/workspace/api/http";
|
import { workspaceRoute } from "#lib/workspace/api/http.ts";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
currentPath?: string;
|
currentPath?: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { mergeRequestPagePath } from "$lib/workspace/api/merge-requests";
|
import { mergeRequestPagePath } from "#lib/workspace/api/merge-requests.ts";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
currentPath?: string;
|
currentPath?: string;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { workspaceRoute } from '$lib/workspace/api/http';
|
import { workspaceRoute } from '#lib/workspace/api/http.ts';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
currentPath?: string;
|
currentPath?: string;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { workspaceRoute } from '$lib/workspace/api/http';
|
import { workspaceRoute } from '#lib/workspace/api/http.ts';
|
||||||
import { SETTINGS_SECTIONS, settingsSectionHref } from '$lib/workspace/settings/model';
|
import { SETTINGS_SECTIONS, settingsSectionHref } from '#lib/workspace/settings/model.ts';
|
||||||
import type { SettingsSectionId } from '$lib/workspace/settings/model';
|
import type { SettingsSectionId } from '#lib/workspace/settings/model.ts';
|
||||||
import type { SidebarSnippet } from './context';
|
import type { SidebarSnippet } from './context';
|
||||||
|
|
||||||
let {
|
let {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { onDestroy, type Snippet } from 'svelte';
|
import { onDestroy, type Snippet } from 'svelte';
|
||||||
import Bevel from '$lib/workspace/ui/Bevel.svelte';
|
import Bevel from '#lib/workspace/ui/Bevel.svelte';
|
||||||
import SidebarToggleIcon from './SidebarToggleIcon.svelte';
|
import SidebarToggleIcon from './SidebarToggleIcon.svelte';
|
||||||
import './sidebar.css';
|
import './sidebar.css';
|
||||||
|
|
||||||
@@ -93,6 +93,7 @@
|
|||||||
<div class="sidebar-frame__surface">
|
<div class="sidebar-frame__surface">
|
||||||
<div
|
<div
|
||||||
class="sidebar-hover-region"
|
class="sidebar-hover-region"
|
||||||
|
role="presentation"
|
||||||
onpointerenter={enter}
|
onpointerenter={enter}
|
||||||
onpointerleave={leave}
|
onpointerleave={leave}
|
||||||
onpointercancel={leave}
|
onpointercancel={leave}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { workspaceRoute } from '$lib/workspace/api/http';
|
import { workspaceRoute } from '#lib/workspace/api/http.ts';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
currentPath?: string;
|
currentPath?: string;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Spinner from '$lib/workspace/console/Spinner.svelte';
|
import Spinner from '#lib/workspace/console/Spinner.svelte';
|
||||||
import { workerConsoleHref } from '$lib/workspace/resource-links';
|
import { workerConsoleHref } from '#lib/workspace/resource-links.ts';
|
||||||
import { pushWorkspaceAlert } from '$lib/workspace/alerts/store';
|
import { pushWorkspaceAlert } from '#lib/workspace/alerts/store.ts';
|
||||||
import {
|
import {
|
||||||
canStopSidebarWorker,
|
canStopSidebarWorker,
|
||||||
canDeleteSidebarWorker,
|
canDeleteSidebarWorker,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { Snippet } from 'svelte';
|
import type { Snippet } from 'svelte';
|
||||||
import './sidebar.css';
|
import './sidebar.css';
|
||||||
import { workspaceRoute } from '$lib/workspace/api/http';
|
import { workspaceRoute } from '#lib/workspace/api/http.ts';
|
||||||
import { ownsRoutePath } from './route-ownership';
|
import { ownsRoutePath } from './route-ownership';
|
||||||
import ObjectivesNavSection from './ObjectivesNavSection.svelte';
|
import ObjectivesNavSection from './ObjectivesNavSection.svelte';
|
||||||
import MemoryNavSection from './MemoryNavSection.svelte';
|
import MemoryNavSection from './MemoryNavSection.svelte';
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import {
|
import {
|
||||||
listWorkspaces,
|
listWorkspaces,
|
||||||
type WorkspaceCatalogRecord,
|
type WorkspaceCatalogRecord,
|
||||||
} from "$lib/workspace/api/workspace-catalog";
|
} from "#lib/workspace/api/workspace-catalog.ts";
|
||||||
|
|
||||||
let {
|
let {
|
||||||
currentWorkspaceId,
|
currentWorkspaceId,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type {
|
|||||||
CleanupWorkerCandidate,
|
CleanupWorkerCandidate,
|
||||||
RuntimeCleanupExecutionResponse,
|
RuntimeCleanupExecutionResponse,
|
||||||
RuntimeCleanupPlanResponse,
|
RuntimeCleanupPlanResponse,
|
||||||
} from "$lib/generated/runtime-api";
|
} from "#lib/generated/runtime-api.ts";
|
||||||
import type {
|
import type {
|
||||||
BrowserCreateWorkerResponse as SharedBrowserCreateWorkerResponse,
|
BrowserCreateWorkerResponse as SharedBrowserCreateWorkerResponse,
|
||||||
BrowserWorkerWorkingDirectorySelection
|
BrowserWorkerWorkingDirectorySelection
|
||||||
@@ -17,7 +17,7 @@ import type {
|
|||||||
WorkerSummary as SharedWorkerSummary,
|
WorkerSummary as SharedWorkerSummary,
|
||||||
WorkerWorkdirAttachmentSummary as SharedWorkerWorkdirAttachmentSummary,
|
WorkerWorkdirAttachmentSummary as SharedWorkerWorkdirAttachmentSummary,
|
||||||
WorkingDirectoryRepositoryOption as SharedWorkingDirectoryRepositoryOption,
|
WorkingDirectoryRepositoryOption as SharedWorkingDirectoryRepositoryOption,
|
||||||
} from "$lib/generated/worker-launch-api";
|
} from "#lib/generated/worker-launch-api.ts";
|
||||||
import type {
|
import type {
|
||||||
WorkingDirectoryCreateRequest,
|
WorkingDirectoryCreateRequest,
|
||||||
WorkingDirectoryCreateResponse,
|
WorkingDirectoryCreateResponse,
|
||||||
@@ -25,14 +25,14 @@ import type {
|
|||||||
WorkingDirectoryListResponse,
|
WorkingDirectoryListResponse,
|
||||||
WorkingDirectoryOccupancy,
|
WorkingDirectoryOccupancy,
|
||||||
WorkingDirectorySummary,
|
WorkingDirectorySummary,
|
||||||
} from "$lib/generated/workdir-api";
|
} from "#lib/generated/workdir-api.ts";
|
||||||
import type {
|
import type {
|
||||||
Event as PodProtocolEvent,
|
Event as PodProtocolEvent,
|
||||||
Method as PodProtocolMethod,
|
Method as PodProtocolMethod,
|
||||||
Segment as PodProtocolSegment,
|
Segment as PodProtocolSegment,
|
||||||
SubscriptionWorkerJob,
|
SubscriptionWorkerJob,
|
||||||
WorkerStateSnapshot,
|
WorkerStateSnapshot,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
import type {
|
import type {
|
||||||
GitCommitSummary as SharedGitCommitSummary,
|
GitCommitSummary as SharedGitCommitSummary,
|
||||||
GitRemoteSummary as SharedGitRemoteSummary,
|
GitRemoteSummary as SharedGitRemoteSummary,
|
||||||
@@ -42,7 +42,7 @@ import type {
|
|||||||
RepositoryLogResponse as SharedRepositoryLogResponse,
|
RepositoryLogResponse as SharedRepositoryLogResponse,
|
||||||
RepositorySummary as SharedRepositorySummary,
|
RepositorySummary as SharedRepositorySummary,
|
||||||
WorkspaceResponse as SharedWorkspaceResponse,
|
WorkspaceResponse as SharedWorkspaceResponse,
|
||||||
} from "$lib/workspace/api/workspace-model";
|
} from "#lib/workspace/api/workspace-model.ts";
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
PodProtocolEvent,
|
PodProtocolEvent,
|
||||||
@@ -157,7 +157,7 @@ export type {
|
|||||||
TicketDetail,
|
TicketDetail,
|
||||||
TicketEventDetail,
|
TicketEventDetail,
|
||||||
TicketListResponse,
|
TicketListResponse,
|
||||||
} from "$lib/generated/ticket-api";
|
} from "#lib/generated/ticket-api.ts";
|
||||||
export type {
|
export type {
|
||||||
TicketDetailDerivedRelation as DerivedTicketRelation,
|
TicketDetailDerivedRelation as DerivedTicketRelation,
|
||||||
TicketDetailRelation as TicketRelation,
|
TicketDetailRelation as TicketRelation,
|
||||||
@@ -165,7 +165,7 @@ export type {
|
|||||||
TicketDetailRelationNotice as TicketRelationNotice,
|
TicketDetailRelationNotice as TicketRelationNotice,
|
||||||
TicketDetailRelationView as TicketRelationView,
|
TicketDetailRelationView as TicketRelationView,
|
||||||
TicketListItemSummary as TicketSummary,
|
TicketListItemSummary as TicketSummary,
|
||||||
} from "$lib/generated/ticket-api";
|
} from "#lib/generated/ticket-api.ts";
|
||||||
|
|
||||||
export type {
|
export type {
|
||||||
CompanionCancelRequest,
|
CompanionCancelRequest,
|
||||||
@@ -178,4 +178,4 @@ export type {
|
|||||||
CompanionTranscriptProjection,
|
CompanionTranscriptProjection,
|
||||||
CompanionTranscriptRole,
|
CompanionTranscriptRole,
|
||||||
CompanionTransportSummary,
|
CompanionTransportSummary,
|
||||||
} from "$lib/generated/companion-api";
|
} from "#lib/generated/companion-api.ts";
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { workspaceApiPath } from "$lib/workspace/api/http";
|
import { workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import {
|
import {
|
||||||
parseRuntimeCleanupExecution,
|
parseRuntimeCleanupExecution,
|
||||||
parseRuntimeCleanupPlan,
|
parseRuntimeCleanupPlan,
|
||||||
parseRuntimeWorkerLifecycleResult,
|
parseRuntimeWorkerLifecycleResult,
|
||||||
} from "$lib/workspace/api/runtime-workers";
|
} from "#lib/workspace/api/runtime-workers.ts";
|
||||||
import type { Diagnostic, Worker } from "./types";
|
import type { Diagnostic, Worker } from "./types";
|
||||||
|
|
||||||
type FetchFn = typeof fetch;
|
type FetchFn = typeof fetch;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type {
|
import type {
|
||||||
BrowserWorkerWorkingDirectorySelection,
|
BrowserWorkerWorkingDirectorySelection,
|
||||||
CreateWorkspaceWorkerRequest,
|
CreateWorkspaceWorkerRequest,
|
||||||
} from "$lib/generated/worker-launch-api";
|
} from "#lib/generated/worker-launch-api.ts";
|
||||||
import { parseCreateWorkspaceWorkerRequest } from "$lib/workspace/api/workers";
|
import { parseCreateWorkspaceWorkerRequest } from "#lib/workspace/api/workers.ts";
|
||||||
|
|
||||||
import type { WorkerLaunchOptionsResponse } from "./types";
|
import type { WorkerLaunchOptionsResponse } from "./types";
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { WorkerStateSnapshot } from "$lib/generated/protocol";
|
import type { WorkerStateSnapshot } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
export function liveWorkerState(worker: {
|
export function liveWorkerState(worker: {
|
||||||
state: string;
|
state: string;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { afterEach, expect, test, vi } from "vitest";
|
|||||||
import type {
|
import type {
|
||||||
SubscriptionFrame,
|
SubscriptionFrame,
|
||||||
SubscriptionWorker,
|
SubscriptionWorker,
|
||||||
} from "$lib/generated/protocol";
|
} from "#lib/generated/protocol.ts";
|
||||||
import WorkersNavSection from "./WorkersNavSection.svelte";
|
import WorkersNavSection from "./WorkersNavSection.svelte";
|
||||||
import { disposeWorkspaceWorkersStore } from "./worker-subscription";
|
import { disposeWorkspaceWorkersStore } from "./worker-subscription";
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ const transport = vi.hoisted(() => ({
|
|||||||
listener: null as { onFrame(frame: SubscriptionFrame): void } | null,
|
listener: null as { onFrame(frame: SubscriptionFrame): void } | null,
|
||||||
close: vi.fn(),
|
close: vi.fn(),
|
||||||
}));
|
}));
|
||||||
vi.mock("$lib/workspace/multiplexer", () => ({
|
vi.mock("#lib/workspace/multiplexer.ts", () => ({
|
||||||
workspaceMultiplexer: () => ({
|
workspaceMultiplexer: () => ({
|
||||||
subscribe: (
|
subscribe: (
|
||||||
_selector: unknown,
|
_selector: unknown,
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import type {
|
|||||||
SubscriptionEventPayload,
|
SubscriptionEventPayload,
|
||||||
SubscriptionFrame,
|
SubscriptionFrame,
|
||||||
SubscriptionWorker,
|
SubscriptionWorker,
|
||||||
} from '$lib/generated/protocol';
|
} from '#lib/generated/protocol.ts';
|
||||||
|
|
||||||
export type WorkspaceWorkersProjection = {
|
export type WorkspaceWorkersProjection = {
|
||||||
workers: Map<string, SubscriptionWorker>;
|
workers: Map<string, SubscriptionWorker>;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { SubscriptionFrame, SubscriptionWorker } from '$lib/generated/protocol';
|
import type { SubscriptionFrame, SubscriptionWorker } from '#lib/generated/protocol.ts';
|
||||||
|
|
||||||
function assertEquals(actual: unknown, expected: unknown): void {
|
function assertEquals(actual: unknown, expected: unknown): void {
|
||||||
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
|
if (JSON.stringify(actual) !== JSON.stringify(expected)) {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { type Readable, readable } from "svelte/store";
|
import { type Readable, readable } from "svelte/store";
|
||||||
import type { WorkingDirectorySummary } from "$lib/generated/workdir-api";
|
import type { WorkingDirectorySummary } from "#lib/generated/workdir-api.ts";
|
||||||
import type { SubscriptionWorker } from "$lib/generated/protocol";
|
import type { SubscriptionWorker } from "#lib/generated/protocol.ts";
|
||||||
import { loadJson, workspaceApiPath } from "$lib/workspace/api/http";
|
import { loadJson, workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import { parseWorkingDirectoryListResponse } from "$lib/workspace/api/workdirs";
|
import { parseWorkingDirectoryListResponse } from "#lib/workspace/api/workdirs.ts";
|
||||||
import { workspaceMultiplexer } from "$lib/workspace/multiplexer";
|
import { workspaceMultiplexer } from "#lib/workspace/multiplexer.ts";
|
||||||
import {
|
import {
|
||||||
applyWorkspaceWorkersFrame,
|
applyWorkspaceWorkersFrame,
|
||||||
createWorkspaceWorkersProjection,
|
createWorkspaceWorkersProjection,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import type { WorkingDirectorySummary } from "$lib/generated/workdir-api";
|
import type { WorkingDirectorySummary } from "#lib/generated/workdir-api.ts";
|
||||||
import {
|
import {
|
||||||
type SidebarWorkdirAttachment,
|
type SidebarWorkdirAttachment,
|
||||||
sidebarWorkdirMeta,
|
sidebarWorkdirMeta,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { WorkingDirectorySummary } from "$lib/generated/workdir-api";
|
import type { WorkingDirectorySummary } from "#lib/generated/workdir-api.ts";
|
||||||
import type { SubscriptionWorkerWorkdirAttachment } from "$lib/generated/protocol";
|
import type { SubscriptionWorkerWorkdirAttachment } from "#lib/generated/protocol.ts";
|
||||||
|
|
||||||
const SHORT_REFERENCE_LENGTH = 12;
|
const SHORT_REFERENCE_LENGTH = 12;
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import {
|
|||||||
type SkillProvenance,
|
type SkillProvenance,
|
||||||
type SkillResourceRef,
|
type SkillResourceRef,
|
||||||
type SkillSourceKind,
|
type SkillSourceKind,
|
||||||
} from "$lib/generated/skill-api.ts";
|
} from "#lib/generated/skill-api.ts";
|
||||||
|
|
||||||
export class SkillApiContractError extends Error {
|
export class SkillApiContractError extends Error {
|
||||||
constructor(message: string) {
|
constructor(message: string) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import type { BrowserWorkspaceOrchestratorResponse } from "$lib/generated/worker-launch-api";
|
import type { BrowserWorkspaceOrchestratorResponse } from "#lib/generated/worker-launch-api.ts";
|
||||||
import type {
|
import type {
|
||||||
TicketDetail,
|
TicketDetail,
|
||||||
TicketListItemSummary,
|
TicketListItemSummary,
|
||||||
} from "$lib/generated/ticket-api";
|
} from "#lib/generated/ticket-api.ts";
|
||||||
|
|
||||||
export const TICKET_STATES = [
|
export const TICKET_STATES = [
|
||||||
"planning",
|
"planning",
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
|
|
||||||
<span
|
<span
|
||||||
class="tooltip-root"
|
class="tooltip-root"
|
||||||
|
role="presentation"
|
||||||
bind:this={rootElement}
|
bind:this={rootElement}
|
||||||
onpointerenter={showAfterDelay}
|
onpointerenter={showAfterDelay}
|
||||||
onpointerleave={handlePointerLeave}
|
onpointerleave={handlePointerLeave}
|
||||||
|
|||||||
@@ -2,18 +2,18 @@
|
|||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
import { setContext } from 'svelte';
|
import { setContext } from 'svelte';
|
||||||
import { MediaQuery } from 'svelte/reactivity';
|
import { MediaQuery } from 'svelte/reactivity';
|
||||||
import WorkspaceAlerts from '$lib/workspace/alerts/WorkspaceAlerts.svelte';
|
import WorkspaceAlerts from '#lib/workspace/alerts/WorkspaceAlerts.svelte';
|
||||||
import Bevel from '$lib/workspace/ui/Bevel.svelte';
|
import Bevel from '#lib/workspace/ui/Bevel.svelte';
|
||||||
import {
|
import {
|
||||||
provideHeaderController,
|
provideHeaderController,
|
||||||
type HeaderController,
|
type HeaderController,
|
||||||
type HeaderSnippet,
|
type HeaderSnippet,
|
||||||
} from '$lib/workspace/header/context';
|
} from '#lib/workspace/header/context.ts';
|
||||||
import GlobalSidebar from '$lib/workspace/sidebar/GlobalSidebar.svelte';
|
import GlobalSidebar from '#lib/workspace/sidebar/GlobalSidebar.svelte';
|
||||||
import SidebarFrame from '$lib/workspace/sidebar/SidebarFrame.svelte';
|
import SidebarFrame from '#lib/workspace/sidebar/SidebarFrame.svelte';
|
||||||
import SidebarToggleIcon from '$lib/workspace/sidebar/SidebarToggleIcon.svelte';
|
import SidebarToggleIcon from '#lib/workspace/sidebar/SidebarToggleIcon.svelte';
|
||||||
import { SIDEBAR_CONTEXT, type SidebarController, type SidebarSnippet } from '$lib/workspace/sidebar/context';
|
import { SIDEBAR_CONTEXT, type SidebarController, type SidebarSnippet } from '#lib/workspace/sidebar/context.ts';
|
||||||
import { createOverrideStack } from '$lib/workspace/sidebar/override-stack';
|
import { createOverrideStack } from '#lib/workspace/sidebar/override-stack.ts';
|
||||||
import '../app.css';
|
import '../app.css';
|
||||||
import type { LayoutProps } from './$types';
|
import type { LayoutProps } from './$types';
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { listWorkspaces } from "$lib/workspace/api/workspace-catalog";
|
import { listWorkspaces } from "#lib/workspace/api/workspace-catalog.ts";
|
||||||
import type { LayoutLoad } from "./$types";
|
import type { Load } from "@sveltejs/kit";
|
||||||
|
|
||||||
export const ssr = false;
|
export const ssr = false;
|
||||||
|
|
||||||
export const load: LayoutLoad = async ({ fetch }) => {
|
export const load = (async ({ fetch }) => {
|
||||||
try {
|
try {
|
||||||
return {
|
return {
|
||||||
accessibleWorkspaces: await listWorkspaces(fetch),
|
accessibleWorkspaces: await listWorkspaces(fetch),
|
||||||
@@ -17,4 +17,4 @@ export const load: LayoutLoad = async ({ fetch }) => {
|
|||||||
: "Unable to load Workspaces",
|
: "Unable to load Workspaces",
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
}) satisfies Load;
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
loadWorkspaceCatalog,
|
loadWorkspaceCatalog,
|
||||||
type CreateWorkspaceRequest,
|
type CreateWorkspaceRequest,
|
||||||
type WorkspaceCatalogItem,
|
type WorkspaceCatalogItem,
|
||||||
} from "$lib/workspace/api/workspace-catalog";
|
} from "#lib/workspace/api/workspace-catalog.ts";
|
||||||
import "$lib/workspace/styles/workspace-catalog.css";
|
import "#lib/workspace/styles/workspace-catalog.css";
|
||||||
|
|
||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
let workspaces = $state<WorkspaceCatalogItem[]>([]);
|
let workspaces = $state<WorkspaceCatalogItem[]>([]);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import type { PageLoad } from "./$types";
|
import type { PageLoad } from "./$types";
|
||||||
import { loadWorkspaceCatalog } from "$lib/workspace/api/workspace-catalog";
|
import { loadWorkspaceCatalog } from "#lib/workspace/api/workspace-catalog.ts";
|
||||||
|
|
||||||
export const load: PageLoad = async ({ fetch }) => {
|
export const load: PageLoad = async ({ fetch }) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
loginWithPasskey,
|
loginWithPasskey,
|
||||||
logout,
|
logout,
|
||||||
registerPasskey,
|
registerPasskey,
|
||||||
} from '$lib/workspace/auth/api';
|
} from '#lib/workspace/auth/api.ts';
|
||||||
import '$lib/workspace/styles/settings.css';
|
import '#lib/workspace/styles/settings.css';
|
||||||
import type { RequestActor } from '$lib/workspace/auth/model';
|
import type { RequestActor } from '#lib/workspace/auth/model.ts';
|
||||||
|
|
||||||
let actor = $state<RequestActor | null>(null);
|
let actor = $state<RequestActor | null>(null);
|
||||||
let handle = $state('local');
|
let handle = $state('local');
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
import { setContext } from 'svelte';
|
import { setContext } from 'svelte';
|
||||||
import HeaderOverride from '$lib/workspace/header/HeaderOverride.svelte';
|
import HeaderOverride from '#lib/workspace/header/HeaderOverride.svelte';
|
||||||
import SidebarOverride from '$lib/workspace/sidebar/SidebarOverride.svelte';
|
import SidebarOverride from '#lib/workspace/sidebar/SidebarOverride.svelte';
|
||||||
import {
|
import {
|
||||||
getSidebarController,
|
getSidebarController,
|
||||||
SIDEBAR_CONTEXT,
|
SIDEBAR_CONTEXT,
|
||||||
type SidebarController,
|
type SidebarController,
|
||||||
type SidebarSnippet,
|
type SidebarSnippet,
|
||||||
} from '$lib/workspace/sidebar/context';
|
} from '#lib/workspace/sidebar/context.ts';
|
||||||
import { createOverrideStack } from '$lib/workspace/sidebar/override-stack';
|
import { createOverrideStack } from '#lib/workspace/sidebar/override-stack.ts';
|
||||||
import { ownsRoutePath } from '$lib/workspace/sidebar/route-ownership';
|
import { ownsRoutePath } from '#lib/workspace/sidebar/route-ownership.ts';
|
||||||
import WorkspaceSidebarFixture from './WorkspaceSidebarFixture.svelte';
|
import WorkspaceSidebarFixture from './WorkspaceSidebarFixture.svelte';
|
||||||
import { designLabBasePath } from './workspace-navigation';
|
import { designLabBasePath } from './workspace-navigation';
|
||||||
import './showroom.css';
|
import './showroom.css';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Bevel from '$lib/workspace/ui/Bevel.svelte';
|
import Bevel from '#lib/workspace/ui/Bevel.svelte';
|
||||||
import BevelLine from '$lib/workspace/ui/BevelLine.svelte';
|
import BevelLine from '#lib/workspace/ui/BevelLine.svelte';
|
||||||
import Tooltip from '$lib/workspace/ui/Tooltip.svelte';
|
import Tooltip from '#lib/workspace/ui/Tooltip.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="showroom">
|
<div class="showroom">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { Snippet } from 'svelte';
|
import type { Snippet } from 'svelte';
|
||||||
import { ownsRoutePath } from '$lib/workspace/sidebar/route-ownership';
|
import { ownsRoutePath } from '#lib/workspace/sidebar/route-ownership.ts';
|
||||||
import { designLabBasePath, workspaceNavigation, workspaceWorkers } from './workspace-navigation';
|
import { designLabBasePath, workspaceNavigation, workspaceWorkers } from './workspace-navigation';
|
||||||
|
|
||||||
let {
|
let {
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
import { setContext } from 'svelte';
|
import { setContext } from 'svelte';
|
||||||
import SidebarOverride from '$lib/workspace/sidebar/SidebarOverride.svelte';
|
import SidebarOverride from '#lib/workspace/sidebar/SidebarOverride.svelte';
|
||||||
import {
|
import {
|
||||||
getSidebarController,
|
getSidebarController,
|
||||||
SIDEBAR_CONTEXT,
|
SIDEBAR_CONTEXT,
|
||||||
type SidebarController,
|
type SidebarController,
|
||||||
type SidebarSnippet,
|
type SidebarSnippet,
|
||||||
} from '$lib/workspace/sidebar/context';
|
} from '#lib/workspace/sidebar/context.ts';
|
||||||
import { createOverrideStack } from '$lib/workspace/sidebar/override-stack';
|
import { createOverrideStack } from '#lib/workspace/sidebar/override-stack.ts';
|
||||||
import { ownsRoutePath } from '$lib/workspace/sidebar/route-ownership';
|
import { ownsRoutePath } from '#lib/workspace/sidebar/route-ownership.ts';
|
||||||
import SettingsSidebarFixture from './SettingsSidebarFixture.svelte';
|
import SettingsSidebarFixture from './SettingsSidebarFixture.svelte';
|
||||||
import { designLabBasePath } from '../workspace-navigation';
|
import { designLabBasePath } from '../workspace-navigation';
|
||||||
import type { LayoutProps } from './$types';
|
import type { LayoutProps } from './$types';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Bevel from '$lib/workspace/ui/Bevel.svelte';
|
import Bevel from '#lib/workspace/ui/Bevel.svelte';
|
||||||
import BevelLine from '$lib/workspace/ui/BevelLine.svelte';
|
import BevelLine from '#lib/workspace/ui/BevelLine.svelte';
|
||||||
import Tooltip from '$lib/workspace/ui/Tooltip.svelte';
|
import Tooltip from '#lib/workspace/ui/Tooltip.svelte';
|
||||||
|
|
||||||
function keepSampleFormLocal(event: SubmitEvent) {
|
function keepSampleFormLocal(event: SubmitEvent) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
approveDeviceLogin,
|
approveDeviceLogin,
|
||||||
loadWhoami,
|
loadWhoami,
|
||||||
loginWithPasskey,
|
loginWithPasskey,
|
||||||
} from '$lib/workspace/auth/api';
|
} from '#lib/workspace/auth/api.ts';
|
||||||
import '$lib/workspace/styles/settings.css';
|
import '#lib/workspace/styles/settings.css';
|
||||||
import type { RequestActor } from '$lib/workspace/auth/model';
|
import type { RequestActor } from '#lib/workspace/auth/model.ts';
|
||||||
|
|
||||||
let actor = $state<RequestActor | null>(null);
|
let actor = $state<RequestActor | null>(null);
|
||||||
let handle = $state('local');
|
let handle = $state('local');
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
import { cleanup, fireEvent, render, screen } from "@testing-library/svelte";
|
import { cleanup, fireEvent, render, screen } from "@testing-library/svelte";
|
||||||
import { afterEach, beforeEach, expect, test, vi } from "vitest";
|
import { afterEach, beforeEach, expect, test, vi } from "vitest";
|
||||||
import { createRawSnippet, tick } from "svelte";
|
import { createRawSnippet, tick } from "svelte";
|
||||||
import { logout } from "$lib/workspace/auth/api";
|
import { logout } from "#lib/workspace/auth/api.ts";
|
||||||
import Layout from "./+layout.svelte";
|
import Layout from "./+layout.svelte";
|
||||||
|
|
||||||
vi.mock("$app/state", () => ({ page: { url: new URL("https://example.test/") } }));
|
vi.mock("$app/state", () => ({ page: { url: new URL("https://example.test/") } }));
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from "$app/state";
|
import { page } from "$app/state";
|
||||||
import "$lib/workspace/styles/workspace-catalog.css";
|
import "#lib/workspace/styles/workspace-catalog.css";
|
||||||
|
|
||||||
const workspaceId = $derived(page.params.workspaceId ?? "unknown");
|
const workspaceId = $derived(page.params.workspaceId ?? "unknown");
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { setContext } from 'svelte';
|
import { setContext } from 'svelte';
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
import HeaderOverride from '$lib/workspace/header/HeaderOverride.svelte';
|
import HeaderOverride from '#lib/workspace/header/HeaderOverride.svelte';
|
||||||
import WorkspaceBreadcrumbs from '$lib/workspace/header/WorkspaceBreadcrumbs.svelte';
|
import WorkspaceBreadcrumbs from '#lib/workspace/header/WorkspaceBreadcrumbs.svelte';
|
||||||
import SidebarOverride from '$lib/workspace/sidebar/SidebarOverride.svelte';
|
import SidebarOverride from '#lib/workspace/sidebar/SidebarOverride.svelte';
|
||||||
import {
|
import {
|
||||||
getSidebarController,
|
getSidebarController,
|
||||||
SIDEBAR_CONTEXT,
|
SIDEBAR_CONTEXT,
|
||||||
type SidebarController,
|
type SidebarController,
|
||||||
type SidebarSnippet,
|
type SidebarSnippet,
|
||||||
} from '$lib/workspace/sidebar/context';
|
} from '#lib/workspace/sidebar/context.ts';
|
||||||
import { createOverrideStack } from '$lib/workspace/sidebar/override-stack';
|
import { createOverrideStack } from '#lib/workspace/sidebar/override-stack.ts';
|
||||||
import { ownsRoutePath } from '$lib/workspace/sidebar/route-ownership';
|
import { ownsRoutePath } from '#lib/workspace/sidebar/route-ownership.ts';
|
||||||
import { workspaceRoute } from '$lib/workspace/api/http';
|
import { workspaceRoute } from '#lib/workspace/api/http.ts';
|
||||||
import { disposeWorkspaceMultiplexer } from '$lib/workspace/multiplexer';
|
import { disposeWorkspaceMultiplexer } from '#lib/workspace/multiplexer.ts';
|
||||||
import { disposeWorkspaceWorkersStore } from '$lib/workspace/sidebar/worker-subscription';
|
import { disposeWorkspaceWorkersStore } from '#lib/workspace/sidebar/worker-subscription.ts';
|
||||||
import WorkspaceSidebar from '$lib/workspace/sidebar/WorkspaceSidebar.svelte';
|
import WorkspaceSidebar from '#lib/workspace/sidebar/WorkspaceSidebar.svelte';
|
||||||
import '$lib/workspace/styles/workspace-pages.css';
|
import '#lib/workspace/styles/workspace-pages.css';
|
||||||
import '$lib/workspace/styles/tickets.css';
|
import '#lib/workspace/styles/tickets.css';
|
||||||
import '$lib/workspace/styles/workers.css';
|
import '#lib/workspace/styles/workers.css';
|
||||||
import type { LayoutProps } from './$types';
|
import type { LayoutProps } from './$types';
|
||||||
|
|
||||||
let { data, children }: LayoutProps = $props();
|
let { data, children }: LayoutProps = $props();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { error } from "@sveltejs/kit";
|
import { error } from "@sveltejs/kit";
|
||||||
import { loadJson, workspaceApiPath } from "$lib/workspace/api/http";
|
import { loadJson, workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import { loadWorkspaceRepositoryList } from "$lib/workspace/api/repositories";
|
import { loadWorkspaceRepositoryList } from "#lib/workspace/api/repositories.ts";
|
||||||
import { parseWorkspaceResponse } from "$lib/workspace/api/workspace-model";
|
import { parseWorkspaceResponse } from "#lib/workspace/api/workspace-model.ts";
|
||||||
import type { LayoutLoad } from "./$types";
|
import type { LayoutLoad } from "./$types";
|
||||||
|
|
||||||
export const load: LayoutLoad = async ({ fetch, params }) => {
|
export const load: LayoutLoad = async ({ fetch, params }) => {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { invalidate } from '$app/navigation';
|
import { invalidate } from '$app/navigation';
|
||||||
import DashboardSection from '$lib/workspace/home/DashboardSection.svelte';
|
import DashboardSection from '#lib/workspace/home/DashboardSection.svelte';
|
||||||
import type { PageProps } from './$types';
|
import type { PageProps } from './$types';
|
||||||
|
|
||||||
let { data }: PageProps = $props();
|
let { data }: PageProps = $props();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { loadDashboard } from "$lib/workspace/home/dashboard";
|
import { loadDashboard } from "#lib/workspace/home/dashboard.ts";
|
||||||
import type { PageLoad } from "./$types";
|
import type { PageLoad } from "./$types";
|
||||||
|
|
||||||
export const load: PageLoad = ({ fetch, params, depends }) => {
|
export const load: PageLoad = ({ fetch, params, depends }) => {
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ import {
|
|||||||
type DashboardFeed,
|
type DashboardFeed,
|
||||||
loadDashboard,
|
loadDashboard,
|
||||||
recentRows,
|
recentRows,
|
||||||
} from "$lib/workspace/home/dashboard";
|
} from "#lib/workspace/home/dashboard.ts";
|
||||||
import {
|
import {
|
||||||
dashboardFixture,
|
dashboardFixture,
|
||||||
fixtureDetail,
|
fixtureDetail,
|
||||||
} from "$lib/workspace/home/dashboard.test-fixtures";
|
} from "#lib/workspace/home/dashboard.test-fixtures.ts";
|
||||||
|
|
||||||
vi.mock("$app/navigation", () => ({ invalidate: vi.fn(async () => {}) }));
|
vi.mock("$app/navigation", () => ({ invalidate: vi.fn(async () => {}) }));
|
||||||
type Data = ComponentProps<typeof Home>["data"];
|
type Data = ComponentProps<typeof Home>["data"];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import DocumentMarkdown from '$lib/workspace/markdown/DocumentMarkdown.svelte';
|
import DocumentMarkdown from '#lib/workspace/markdown/DocumentMarkdown.svelte';
|
||||||
import { formatDate } from '$lib/workspace/api/http';
|
import { formatDate } from '#lib/workspace/api/http.ts';
|
||||||
import type { PageProps } from './$types';
|
import type { PageProps } from './$types';
|
||||||
|
|
||||||
let { data }: PageProps = $props();
|
let { data }: PageProps = $props();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { MEMORY_API_LIMITS } from "$lib/generated/memory-api";
|
import { MEMORY_API_LIMITS } from "#lib/generated/memory-api.ts";
|
||||||
import { loadJson, workspaceApiPath } from "$lib/workspace/api/http";
|
import { loadJson, workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import { parseMemoryDocumentResponse } from "$lib/workspace/memory/api";
|
import { parseMemoryDocumentResponse } from "#lib/workspace/memory/api.ts";
|
||||||
import type { PageLoad } from "./$types";
|
import type { PageLoad } from "./$types";
|
||||||
|
|
||||||
export const load: PageLoad = async ({ fetch, params }) => {
|
export const load: PageLoad = async ({ fetch, params }) => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { MemoryStagingEntry, MemoryStagingRecord } from '$lib/generated/memory-api';
|
import type { MemoryStagingEntry, MemoryStagingRecord } from '#lib/generated/memory-api.ts';
|
||||||
import type { PageProps } from './$types';
|
import type { PageProps } from './$types';
|
||||||
|
|
||||||
let { data }: PageProps = $props();
|
let { data }: PageProps = $props();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { MEMORY_API_LIMITS } from "$lib/generated/memory-api";
|
import { MEMORY_API_LIMITS } from "#lib/generated/memory-api.ts";
|
||||||
import { loadJson, workspaceApiPath } from "$lib/workspace/api/http";
|
import { loadJson, workspaceApiPath } from "#lib/workspace/api/http.ts";
|
||||||
import { parseMemoryStagingListResponse } from "$lib/workspace/memory/api";
|
import { parseMemoryStagingListResponse } from "#lib/workspace/memory/api.ts";
|
||||||
import type { PageLoad } from "./$types";
|
import type { PageLoad } from "./$types";
|
||||||
|
|
||||||
export const load: PageLoad = async ({ fetch, params }) => {
|
export const load: PageLoad = async ({ fetch, params }) => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { mergeRequestPagePath } from "$lib/workspace/api/merge-requests";
|
import { mergeRequestPagePath } from "#lib/workspace/api/merge-requests.ts";
|
||||||
import type { PageData } from "./$types";
|
import type { PageData } from "./$types";
|
||||||
|
|
||||||
let { data }: { data: PageData } = $props();
|
let { data }: { data: PageData } = $props();
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user