From fe07006faae2a7ee0f9ac00bc99597ea6c207ea6 Mon Sep 17 00:00:00 2001 From: Stephen Frederick Date: Mon, 9 Nov 2026 15:53:57 -0500 Subject: [PATCH 1/9] Rename the app to Second Set and keep existing workspaces Rename everything users see from MOKE to Second Set: the product name, installers, window and dialog text, export filenames, HTML reports, the identity sent to OpenCode Go and public sources, and the docs. The repo now lives at Surfside-Software/second-set. Installs from 0.2.2 keep their data in the moke-meta-hackathon folder, which the app keeps using while it holds app.sqlite. Startup no longer exits silently when a saved key cannot be unlocked; it explains and starts without it. Saved identifiers, prompt text and Modal names are unchanged here. Co-Authored-By: Claude Opus 5.5 --- .project-kit/manifest.json | 2 +- AGENTS.md | 2 +- PRODUCT.md | 6 +-- README.md | 26 +++++------ backend/inference/pacing.ts | 2 +- backend/inference/provider.ts | 8 ++-- backend/packet-review/report.ts | 6 +-- backend/packet-review/service.ts | 6 +-- backend/packet-review/sources.ts | 2 +- backend/review/code-index/README.md | 6 +-- backend/review/execution-port.ts | 2 +- backend/review/model-image.ts | 2 +- backend/review/prompts/README.md | 2 +- backend/review/prompts/review-prompt.ts | 4 +- backend/segmentation/inventory-report.ts | 2 +- backend/segmentation/report.ts | 2 +- bun.lock | 2 +- desktop/connection-check.ts | 4 +- desktop/data-directory.ts | 21 +++++++++ desktop/main.ts | 43 ++++++++++++++----- docs/README.md | 2 +- docs/architecture/pi-runtime.md | 2 +- docs/cloud-reviews.md | 10 ++--- docs/data.md | 10 +++++ docs/design.md | 2 +- docs/experiments/plumbing-segmentation.md | 6 +-- docs/experiments/sam-drawing-expansion.md | 4 +- docs/experiments/sam-expanded-sets.md | 2 +- docs/experiments/segmentation-test.md | 2 +- docs/fixtures/hero-case.md | 2 +- docs/inference.md | 14 +++--- docs/validation/cloud-validation.md | 2 +- docs/validation/hackathon-readiness.md | 4 +- docs/validation/muse-spark-open.md | 2 +- electron-builder.json | 5 ++- package.json | 7 +-- scripts/isolated-desktop.ts | 6 +-- scripts/test-packaged.ts | 6 +-- scripts/validate-core.ts | 2 +- src/lib/review/components/CitationRow.svelte | 4 +- .../components/CustomEndpointSettings.svelte | 2 +- .../components/OpenCodeGoSettings.svelte | 2 +- .../review/components/ReviewWorkbench.svelte | 25 +++++------ src/lib/review/disciplines.ts | 2 +- src/lib/review/geometry.ts | 4 +- src/lib/review/models.ts | 2 +- src/lib/review/packet.ts | 2 +- src/routes/+page.svelte | 2 +- tests/e2e/composer-draft.spec.ts | 2 +- tests/e2e/conversation.spec.ts | 4 +- tests/e2e/count-checks.spec.ts | 4 +- tests/e2e/credentials.spec.ts | 2 +- tests/e2e/custom-endpoint.spec.ts | 2 +- tests/e2e/initial-review.spec.ts | 6 +-- tests/e2e/packet.spec.ts | 2 +- tests/e2e/polish.spec.ts | 2 +- tests/e2e/project-navigation.spec.ts | 4 +- tests/e2e/reconciliation.spec.ts | 2 +- tests/e2e/review-select.spec.ts | 2 +- tests/e2e/review.spec.ts | 5 ++- tests/e2e/revision-mapping.spec.ts | 4 +- tests/e2e/sheet-setup.spec.ts | 10 ++--- tests/e2e/source-controls.spec.ts | 2 +- tests/e2e/source-view.spec.ts | 2 +- tests/e2e/ui-cleanup-regressions.spec.ts | 4 +- tests/fixtures/hero-case.ts | 10 ++--- tests/smoke/adaptive-review.test.ts | 2 +- tests/smoke/backend-logging.test.ts | 2 +- tests/smoke/backend-request-limits.test.ts | 2 +- tests/smoke/backend.test.ts | 2 +- tests/smoke/cloud-activity.test.ts | 2 +- tests/smoke/cloud-admission-indexes.test.ts | 2 +- tests/smoke/cloud-cache.test.ts | 6 +-- tests/smoke/cloud-local-work.test.ts | 2 +- tests/smoke/cloud-progress-preview.test.ts | 2 +- tests/smoke/cloud-reviews.test.ts | 8 ++-- tests/smoke/cloud-state-budget.test.ts | 6 +-- tests/smoke/cloud-sync.test.ts | 2 +- tests/smoke/cloud-transfer-progress.test.ts | 8 ++-- tests/smoke/cloud-workspace.test.ts | 4 +- tests/smoke/code-index.test.ts | 2 +- tests/smoke/credential-files.test.ts | 6 +-- tests/smoke/data-directory.test.ts | 31 +++++++++++++ tests/smoke/documents.test.ts | 32 +++++++------- tests/smoke/drop-imports.test.ts | 2 +- tests/smoke/finding-summary.test.ts | 8 ++-- tests/smoke/firm-memory.test.ts | 6 +-- tests/smoke/initial-review.test.ts | 2 +- tests/smoke/meta-review.test.ts | 2 +- tests/smoke/opencode-go.test.ts | 8 ++-- tests/smoke/package-files.test.ts | 2 +- tests/smoke/packet-coverage.test.ts | 2 +- tests/smoke/packet-evidence-policy.test.ts | 12 +++--- tests/smoke/packet-finding-records.test.ts | 2 +- tests/smoke/packet-lifecycle.test.ts | 10 ++--- tests/smoke/packet-parallel.test.ts | 30 ++++++------- tests/smoke/packet-provider.test.ts | 4 +- tests/smoke/packet-refusal.test.ts | 4 +- tests/smoke/packet-render.test.ts | 4 +- tests/smoke/packet-review.test.ts | 10 ++--- tests/smoke/packet-routing.test.ts | 2 +- tests/smoke/packet-sam-focus.test.ts | 4 +- tests/smoke/packet-sources.test.ts | 2 +- tests/smoke/packet-steering.test.ts | 8 ++-- tests/smoke/packet-subscription.test.ts | 2 +- tests/smoke/pdf-assets.test.ts | 2 +- tests/smoke/reconciliation.test.ts | 2 +- tests/smoke/render-reuse.test.ts | 14 +++--- tests/smoke/review-conversation.test.ts | 2 +- tests/smoke/review-fences.test.ts | 2 +- tests/smoke/review-packages.test.ts | 6 +-- tests/smoke/review-scoped-reads.test.ts | 2 +- tests/smoke/review.test.ts | 4 +- tests/smoke/segmentation.test.ts | 2 +- 114 files changed, 364 insertions(+), 273 deletions(-) create mode 100644 desktop/data-directory.ts create mode 100644 tests/smoke/data-directory.test.ts diff --git a/.project-kit/manifest.json b/.project-kit/manifest.json index 1d40e3b0..7fab74c6 100644 --- a/.project-kit/manifest.json +++ b/.project-kit/manifest.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "generatorVersion": "0.1.0", "settings": { - "name": "moke-meta-hackathon", + "name": "second-set", "profile": "desktop", "authentication": "undecided" }, diff --git a/AGENTS.md b/AGENTS.md index 4ba3bebb..6963c1fa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ -# moke-meta-hackathon +# second-set Use the Bun version in .bun-version. Run bun run verify before handing back implementation changes. Use Bun for installs, scripts, checking, formatting, tests, and desktop/backend builds. diff --git a/PRODUCT.md b/PRODUCT.md index d4ef7427..c26d2e1f 100644 --- a/PRODUCT.md +++ b/PRODUCT.md @@ -1,4 +1,4 @@ -# MOKE +# Second Set @@ -16,7 +16,7 @@ conversation. A review does not require an existing finding or count check. Bun and Effect own APIs, SQLite, migrations, PDF processing and Pi Durable execution. Electron owns the trusted bridge, file dialogs and credential storage. -The full MOKE AGENTS.md, shared review method and applicable discipline files +The full vendored AGENTS.md, shared review method and applicable discipline files supply Pi's system instructions. Whole-set review includes the general and all discipline instructions; a discipline review includes general context and its selected instructions. The review inventories the supplied documents, reads @@ -85,7 +85,7 @@ chooser, with a revision label requested for subsequent imports. The composer names its model, reviewer, revision and whole-set, selected-sheet or discipline scope. Optional sheet discipline assignments persist independently of count verification. Explicit scopes take precedence over request wording. User requests appear as chat -bubbles, followed by elapsed progress and MOKE's saved response. A note is saved +bubbles, followed by elapsed progress and Second Set's saved response. A note is saved without starting inference. Active reviews accept durable follow-up instructions from the composer and show their delivery state. Findings open their source evidence in a central canvas with zoom (including Ctrl+scroll and trackpad pinch), diff --git a/README.md b/README.md index 3186c683..6459822e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ -# Moke +# Second Set -Moke is a desktop workbench for reviewing engineering drawing packets, built for +Second Set is a desktop workbench for reviewing engineering drawing packets, built for the Meta AI Developer Hackathon. Import the drawings and ask for a whole-set QA -pass or a discipline review. Moke reads source images, follows its review +pass or a discipline review. Second Set reads source images, follows its review instructions, records findings and coverage, and produces an offline HTML report. Follow-up requests can deepen the review while retaining earlier issue IDs. -[Watch the narrated demo on YouTube](https://youtu.be/wl8wwq_Tlrw). +[Watch the narrated demo on YouTube](https://youtu.be/wl8wwq_Tlrw). Second Set was called +MOKE until November 9, 2026, so the demo and earlier records use that name. -![Moke's five-sheet review with 19 findings, coverage gaps, and findings navigation](docs/screenshots/workbench.png) +![Second Set's five-sheet review with 19 findings, coverage gaps, and findings navigation](docs/screenshots/workbench.png) ## The review workflow @@ -18,7 +19,7 @@ Follow-up requests can deepen the review while retaining earlier issue IDs. drawing set" or "Review the electrical design and supporting calculations." Choose a model and reviewer, or let Auto route the request. A saved note does not start inference. -3. **Follow the inspection.** Moke inventories the supplied sheets, opens source +3. **Follow the inspection.** Second Set inventories the supplied sheets, opens source images and detail crops, and records the four review passes: document completeness, code and agency requirements, coordination, and prior comments. A Florida code index points each check to its code section, statute or rule. @@ -59,7 +60,7 @@ dimensions. ## Install Download the installer for Windows, macOS (Apple silicon) or Linux from -[GitHub Releases](https://github.com/sc-frederick/moke-meta-hackathon/releases/latest). +[GitHub Releases](https://github.com/Surfside-Software/second-set/releases/latest). The installers are unsigned. macOS can block the first launch; allow it under System Settings › Privacy & Security › Open Anyway. On Linux, make the AppImage executable or install the `.deb`. Model reviews need a provider key; see @@ -78,7 +79,7 @@ over authorized Electron MessagePorts; Electron forwards application requests to Bun over authenticated loopback HTTP. Database access and provider credentials stay outside the renderer. -Pi Durable journals the review and runs the full Moke system instructions. A +Pi Durable journals the review and runs the full vendored review instructions. A separate ledger records model and SAM intent before dispatch, preserving unknown outcomes without automatic resends. Reviews have pause and cancel controls and an optional call budget. The default packet review has no application call ceiling; @@ -158,13 +159,14 @@ repository began on October 27, 2026. The [rules and evidence review](docs/valid maps the public repository, Meta model integration, demo, and source attribution to the participant guide checked on November 4. -The Moke name, review prompts, and the owner's 2023 Florida Building Code -plan-review reference predate this entry. The code index tooling and +The review prompts and the owner's 2023 Florida Building Code plan-review +reference predate this entry. The code index tooling and `florida-code-additions.md` were added during the hackathon; see the [code index provenance](backend/review/code-index/README.md). This repository implements a fresh application from the project-kit desktop starter, with drawing evidence, corrections, and revision tracking built for the hackathon. It does not reuse the -earlier Moke application. Pi Durable provides agent execution as an MIT-licensed +earlier MOKE application. The project was renamed from MOKE to Second Set on +November 9, 2026, and no longer uses the MOKE name. Pi Durable provides agent execution as an MIT-licensed dependency; the new work is the drawing-review application, evidence handling, corrections, revision behavior and portable review execution. Prompt and dependency provenance live in @@ -173,7 +175,7 @@ dependency provenance live in ## License -Moke is released under the [MIT License](LICENSE). Vendored code and third-party +Second Set is released under the [MIT License](LICENSE). Vendored code and third-party assets keep their own licenses. The styles in `src/lib/forge.css` are adapted from Uiverse Design's Forge and remain under its license; see [the design notes](docs/design.md). diff --git a/backend/inference/pacing.ts b/backend/inference/pacing.ts index 877c991d..7fba7f4d 100644 --- a/backend/inference/pacing.ts +++ b/backend/inference/pacing.ts @@ -16,7 +16,7 @@ export const reportedRateLimits = { meta: { requestsPerMinute: 3000, tokensPerMinute: 4_000_000 }, baseten: { requestsPerMinute: 100, tokensPerMinute: 2_000_000 }, // OpenCode Go publishes no request rate; it asks for typical coding agent traffic and monitors for - // abuse. This ceiling is MOKE's own choice, well above three reviewers' measured 8 requests a + // abuse. This ceiling is Second Set's own choice, well above three reviewers' measured 8 requests a // minute, so a burst of quick answers still looks like one person's agents. "opencode-go": { requestsPerMinute: 60, tokensPerMinute: 5_000_000 }, // A custom endpoint's limits are unknown until it sends these headers. A 429 starts the shared diff --git a/backend/inference/provider.ts b/backend/inference/provider.ts index 07f0199b..8247db29 100644 --- a/backend/inference/provider.ts +++ b/backend/inference/provider.ts @@ -67,8 +67,8 @@ export interface ProviderConfiguration { * attribution name as `x-opencode-client` (OpenCode Console docs, 2026-11-01). */ const openCodeIdentity: ClientIdentity = { - userAgent: { custom: `moke/${packageInfo.version}` }, - attribution: { name: "moke", url: "https://github.com/sc-frederick/moke-meta-hackathon" }, + userAgent: { custom: `second-set/${packageInfo.version}` }, + attribution: { name: "second-set", url: "https://github.com/Surfside-Software/second-set" }, }; /** Meta serves Muse Spark 1.3 with a larger output ceiling than Pi's catalog records (checked 2026-10-29). */ @@ -127,7 +127,7 @@ const ModelNotFound = Schema.fromJsonString( const refusalBudgetMs = 10 * 60_000; const maxRefusals = 40; -/** OpenCode's own client resends a rate-limited request at most ten times; MOKE matches it. */ +/** OpenCode's own client resends a rate-limited request at most ten times; Second Set matches it. */ const openCodeMaxRefusals = 11; const OpenCodeRefusal = Schema.fromJsonString( @@ -1173,7 +1173,7 @@ export function createAdmittedModels( return { ...payload, ...changes }; }; // OpenCode Go requires a stable session per conversation and routes and caches by it. Pi's - // provider sends it as `x-opencode-session`, with MOKE's identity, so sheet reviewers sharing a + // provider sends it as `x-opencode-session`, with Second Set's identity, so sheet reviewers sharing a // prompt prefix still keep their own sessions, as OpenCode's guidance asks. else if (openCodeGo) { result.sessionId = options?.sessionId ?? fallbackSession; diff --git a/backend/packet-review/report.ts b/backend/packet-review/report.ts index c264ef9b..4a4ed3c0 100644 --- a/backend/packet-review/report.ts +++ b/backend/packet-review/report.ts @@ -252,9 +252,9 @@ export function renderPacketReport( ); return ` -${escape(review.projectName)} — MOKE drawing review +${escape(review.projectName)} — Second Set drawing review
-

MOKE · Drawing review

${escape(review.projectName)}

${escape(scope)}

${escape(reviewState)}
+

Second Set · Drawing review

${escape(review.projectName)}

${escape(scope)}

${escape(reviewState)}

Review summary

${escape(coverageSummary)}

${paragraph(review.summary || "No review summary has been recorded.")}${review.error ? `

${escape(review.error)}

` : ""}

This report records the requested scope and evidence below. User completion tracking is separate from finding status, engineering acceptance and reviewer-verified prior-comment closure.

Request

${paragraph(review.request)}

Missing inputs

${list(review.missingInputs, "No missing inputs were recorded.")}${gaps.length ? `

Coverage requiring follow-up

${list(gaps, "")}` : ""}

${review.citations.length === 0 ? "No governing citations were recorded; regulatory conclusions remain unverified." : `${unresolvedCitations} of ${review.citations.length} citations remain unverified or incorrect.`}

Project configuration and governing sources

${ Object.keys(review.projectConfiguration).length @@ -290,7 +290,7 @@ ${findings ) .join("")}

Document inventory and review coverage

Coverage is recorded for every requested sheet, discipline and pass. Whole-set reviews account for all 11 disciplines; excluded work requires an explicit Not applicable reason. Opening a source image does not establish completion of its checks. Missing entries remain unreviewed. Compatible coverage from earlier scopes remains visible but does not settle a different discipline's checks.

${review.sheets.length ? `
${passes.map(([, title]) => ``).join("")}${coverageRows}
Document / sheet${title}
` : paragraph("No source sheets were recorded for this review.")}
-

Governing-source and citation log

${review.sources.length ? review.sources.map((source) => `

${escape(source.title || "Untitled source")}

${badge(source.status)} · ${source.official ? "Official source" : "Other source"}

${sourceLink(source.url)}

Source ID
${escape(source.id)}
Retrieved
${escape(Number.isNaN(Date.parse(source.retrievedAt)) ? source.retrievedAt : recordedAt(Date.parse(source.retrievedAt)))}
Content SHA-256
${escape(source.sha256 ?? "Not available")}
${source.status === "unavailable" ? paragraph(source.text || "Source access was unavailable.") : ""}
`).join("") : paragraph("No governing sources have been retrieved.")}${review.citations.map((citation) => `

${escape(citation.document || "Governing document needs input")} ${escape(citation.section)}

${badge(citationStandingLabels[citationStanding(citation)])} · Citation ${escape(citation.id)}

Jurisdiction
${escape(citation.jurisdiction || "Needs input")}
Edition / date
${escape(citation.edition || "Needs input")}
Retrieved source
${escape(review.sources.find((source) => source.id === citation.sourceId && source.status === "available")?.id ?? "Not available")}
${citation.reference ? `
Code section
${escape(citation.reference.title)} · ${escape(citation.reference.document)}, ${escape(citation.reference.edition)}
${sourceLink(citation.reference.url)}
` : ""}
${citationStanding(citation) === "indexed" ? paragraph("This section comes from Moke's Florida code index and its wording has not been confirmed; open the link to check it.") + (citation.reference?.check ? paragraph(citation.reference.check) : "") : `

Governing text

${citation.quote ? `
${escape(citation.quote)}
` : paragraph("No governing text was recorded.")}`}

Application to the observed condition

${paragraph(citation.application)}${citationStanding(citation) === "indexed" && !citationDisplayNote(citation) ? "" : paragraph(citationDisplayNote(citation))}
`).join("")}
+

Governing-source and citation log

${review.sources.length ? review.sources.map((source) => `

${escape(source.title || "Untitled source")}

${badge(source.status)} · ${source.official ? "Official source" : "Other source"}

${sourceLink(source.url)}

Source ID
${escape(source.id)}
Retrieved
${escape(Number.isNaN(Date.parse(source.retrievedAt)) ? source.retrievedAt : recordedAt(Date.parse(source.retrievedAt)))}
Content SHA-256
${escape(source.sha256 ?? "Not available")}
${source.status === "unavailable" ? paragraph(source.text || "Source access was unavailable.") : ""}
`).join("") : paragraph("No governing sources have been retrieved.")}${review.citations.map((citation) => `

${escape(citation.document || "Governing document needs input")} ${escape(citation.section)}

${badge(citationStandingLabels[citationStanding(citation)])} · Citation ${escape(citation.id)}

Jurisdiction
${escape(citation.jurisdiction || "Needs input")}
Edition / date
${escape(citation.edition || "Needs input")}
Retrieved source
${escape(review.sources.find((source) => source.id === citation.sourceId && source.status === "available")?.id ?? "Not available")}
${citation.reference ? `
Code section
${escape(citation.reference.title)} · ${escape(citation.reference.document)}, ${escape(citation.reference.edition)}
${sourceLink(citation.reference.url)}
` : ""}
${citationStanding(citation) === "indexed" ? paragraph("This section comes from Second Set's Florida code index and its wording has not been confirmed; open the link to check it.") + (citation.reference?.check ? paragraph(citation.reference.check) : "") : `

Governing text

${citation.quote ? `
${escape(citation.quote)}
` : paragraph("No governing text was recorded.")}`}

Application to the observed condition

${paragraph(citation.application)}${citationStanding(citation) === "indexed" && !citationDisplayNote(citation) ? "" : paragraph(citationDisplayNote(citation))}
`).join("")}

Supporting calculations

${ review.calculations.length ? review.calculations diff --git a/backend/packet-review/service.ts b/backend/packet-review/service.ts index f086b98c..2302a901 100644 --- a/backend/packet-review/service.ts +++ b/backend/packet-review/service.ts @@ -575,7 +575,7 @@ interface Configuration { ) => Promise; } -/** Project-first durable Moke reviews, with frozen source inventory and persistent tool records. */ +/** Project-first durable packet reviews, with frozen source inventory and persistent tool records. */ export class PacketReviews extends Context.Service< PacketReviews, { @@ -915,7 +915,7 @@ export class PacketReviews extends Context.Service< }); yield* sql`INSERT INTO review_commands(command_id,project_id,fingerprint,receipt) VALUES (${commandId},${row.project_id},${fingerprint},${JSON.stringify(receipt)})`; - yield* sql`INSERT INTO review_events(project_id,command_id,kind,message,created_at) VALUES (${row.project_id},${commandId},'packet_review','MOKE review response saved.',${message.createdAt})`; + yield* sql`INSERT INTO review_events(project_id,command_id,kind,message,created_at) VALUES (${row.project_id},${commandId},'packet_review','Second Set review response saved.',${message.createdAt})`; }); const recordTool = async ( @@ -4402,7 +4402,7 @@ export class PacketReviews extends Context.Service< if (pending.length) return yield* error( "conflict", - "MOKE is still finishing the request it sent before the pause. Its result will be kept; try Resume again in a minute.", + "Second Set is still finishing the request it sent before the pause. Its result will be kept; try Resume again in a minute.", ); }), ); diff --git a/backend/packet-review/sources.ts b/backend/packet-review/sources.ts index fe817863..a6be29ef 100644 --- a/backend/packet-review/sources.ts +++ b/backend/packet-review/sources.ts @@ -170,7 +170,7 @@ function requestPublic( family: address.family, signal, headers: { - "User-Agent": "Moke/0.1 public-source-review", + "User-Agent": "second-set/0.1 public-source-review", Accept: "text/html,text/plain,application/xhtml+xml,application/xml;q=0.9,application/pdf;q=0.8,*/*;q=0.1", "Accept-Encoding": "identity", diff --git a/backend/review/code-index/README.md b/backend/review/code-index/README.md index f41fe805..1f57b0e5 100644 --- a/backend/review/code-index/README.md +++ b/backend/review/code-index/README.md @@ -1,6 +1,6 @@ # Florida code index -Moke's `search_code` tool searches this index for the code section, statute or +Second Set's `search_code` tool searches this index for the code section, statute or rule behind a review check. Each entry gives the section number and title, a one-line plan review note and a link. The index contains no copied code text. @@ -19,7 +19,7 @@ Each entry's `access` says how a reviewer reads the text it points to. - `open_in_browser`: ICC Digital Codes blocks automated clients, and its [website user agreement](https://iccsafe.org/website-user-agreement/) does not license robots or data extraction tools. Florida rules publish their text - as Word documents. Moke records these citations as unverified with the + as Word documents. Second Set records these citations as unverified with the section and link, and the engineer opens the link to confirm them. - `read_source`: Florida Statutes pages on leg.state.fl.us return their official text, so `read_source` can retrieve them and a citation can be @@ -39,7 +39,7 @@ instead. That entry describes the link whichever way a citation reaches it. ### How far the links are checked -Nobody has opened an ICC link from Moke by automation, because the user agreement +Nobody has opened an ICC link from Second Set by automation, because the user agreement excludes it. A test rebuilds each of the owner's hand-written anchors by swapping the section number in another anchor from the same chapter, the same rule the host uses for a section listed in a combined title. Every section the host links this way, and diff --git a/backend/review/execution-port.ts b/backend/review/execution-port.ts index b28c663d..c0d1b9ea 100644 --- a/backend/review/execution-port.ts +++ b/backend/review/execution-port.ts @@ -70,7 +70,7 @@ export const DetailRequest = Schema.Struct({ missingFact: Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(1000)), }); -/** Moke supplies bounded pixels and transforms for the exact resized image delivered to Muse. */ +/** Second Set supplies bounded pixels and transforms for the exact resized image delivered to Muse. */ export class ExecutionImage extends Schema.Class("ExecutionImage")({ artifactId: ArtifactId, projectId: ProjectId, diff --git a/backend/review/model-image.ts b/backend/review/model-image.ts index c05f3eea..afc8aedb 100644 --- a/backend/review/model-image.ts +++ b/backend/review/model-image.ts @@ -1,6 +1,6 @@ import { deliveredImageSize } from "#lib/review/geometry.ts"; -/** Largest decoded image Moke sends a model or SAM. */ +/** Largest decoded image Second Set sends a model or SAM. */ export const modelImageBytes = 1024 * 1024; /** diff --git a/backend/review/prompts/README.md b/backend/review/prompts/README.md index 33d2d685..60cdef13 100644 --- a/backend/review/prompts/README.md +++ b/backend/review/prompts/README.md @@ -1,4 +1,4 @@ -# Moke review instructions +# Review instructions `assets/` contains unmodified files from the author's private review-instruction repository at revision `8a0e2648738018631eaa6d24ee0b6ebaa239afb1`. `provenance.json` records diff --git a/backend/review/prompts/review-prompt.ts b/backend/review/prompts/review-prompt.ts index aea5c7e1..ae008266 100644 --- a/backend/review/prompts/review-prompt.ts +++ b/backend/review/prompts/review-prompt.ts @@ -42,7 +42,7 @@ const disciplines: Record = { fire_protection: fireProtection, }; -/** Adapt Moke to the selected-count engine without promising unavailable checks. */ +/** Adapt the vendored review instructions to the selected-count engine without promising unavailable checks. */ export function selectedReviewPrompt(context: typeof ExecutionReviewContext.Type | null): string { const discipline = context?.request.discipline === "auto" @@ -130,7 +130,7 @@ const roleGuidance: Record> = { ], }; -/** Full Moke system instructions for project-first review; original source files stay intact. */ +/** Full vendored system instructions for project-first review; original source files stay intact. */ export function packetReviewPrompt( scope: import("../../../src/lib/review/packet.ts").PacketReview["scope"], options: { diff --git a/backend/segmentation/inventory-report.ts b/backend/segmentation/inventory-report.ts index f488444b..95967e3b 100644 --- a/backend/segmentation/inventory-report.ts +++ b/backend/segmentation/inventory-report.ts @@ -70,7 +70,7 @@ export function inventoryReport( const reportRevision = JSON.stringify(revision).replaceAll("<", "\\u003c"); const candidates = JSON.stringify(fixtures).replaceAll("<", "\\u003c"); - return `MOKE plumbing fixture reconciliation

MOKE · Plumbing fixture reconciliation

Schedule versus ${evidence.length} selected plan regions.

Experimental coordination worksheet. Muse supplies candidate classes and locations; SAM supplies proposed masks. Counts include existing and unclear-scope fixtures. The whole sheet, risers, required quantities, and code compliance have not been reviewed. Matching totals do not confirm fixture identity or a complete inventory.

Schedule and scoped inventory

${totals}
MarkFixtureSchedule quantityIncluded proposalsDeltaCoordination status

Only WC and LAV were tested. Other schedule rows remain untested. A differing count calls for inspection, not an automatic drawing-conflict finding.

Review and correct

Inspect each mask against the original drawing. Uncheck a mistaken proposal to recalculate its quantity and delta. These controls do not change the source drawings or saved model responses.

${inventory}
Count proposalMark from MuseRoom from MuseScope from MuseEvidenceState
${tasks}

Completed records your task tracking. It does not verify a finding or establish compliance. Selections are stored only in this browser for this report revision; they do not travel with a copied HTML file.

Plan evidence

Muse candidate boxes; SAM masks hidden.

Mask geometry can have holes or partial tanks. Confirm the intended instance and boundary; model confidence is not measured accuracy.

${images}

Schedule evidence

Supplied plumbing fixture schedule

The schedule was read separately, without supplying its counts to the plan-grounding requests.

Coverage and source status

Checked inputs: ${evidence.length} named plan crops and the supplied fixture schedule crop. WC/LAV count coordination is proposed and pending visual review. Other classes, sheet completeness, exact marks, new/removed scope, architecture, risers, prior comments, and governing requirements need further input. Project identity, jurisdiction, and permit stage were anonymized or excluded.

No regulatory finding or verified prior-comment closure is reported. Basis: MOKE plumbing instructions at sc-frederick/skills revision 8a0e2648738018631eaa6d24ee0b6ebaa239afb1. Report revision: ${Bun.escapeHTML(revision)}.

-MOKE review +Second Set {#if client} diff --git a/tests/e2e/composer-draft.spec.ts b/tests/e2e/composer-draft.spec.ts index fc424105..3b9c9050 100644 --- a/tests/e2e/composer-draft.spec.ts +++ b/tests/e2e/composer-draft.spec.ts @@ -22,7 +22,7 @@ import { // Draft checks are soft so each send path reports on its own. test("text typed while a send is pending stays in the composer for notes, review requests and follow-ups", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-composer-draft-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-composer-draft-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const options = await offlineDesktop(directory, ["meta"]); diff --git a/tests/e2e/conversation.spec.ts b/tests/e2e/conversation.spec.ts index 390b485e..cc3f77df 100644 --- a/tests/e2e/conversation.spec.ts +++ b/tests/e2e/conversation.spec.ts @@ -5,7 +5,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; test("conversation scope is restored and invalid restore explains the selection before confirmation", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-workbench-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-workbench-")); const empty = join(directory, "not-a-package"); await mkdir(empty); @@ -50,7 +50,7 @@ test("conversation scope is restored and invalid restore explains the selection test("a thread keeps following rapid updates until the reader scrolls up", async () => { test.setTimeout(60000); - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-follow-latest-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-follow-latest-")); const app = await electron.launch({ args: ["."], diff --git a/tests/e2e/count-checks.spec.ts b/tests/e2e/count-checks.spec.ts index 4d27f225..f82fe620 100644 --- a/tests/e2e/count-checks.spec.ts +++ b/tests/e2e/count-checks.spec.ts @@ -12,7 +12,7 @@ import { installRpcBoundary } from "./rpc-boundary.ts"; test("accepting a count on a fitted 36x48 source refreshes with the requested integer DPI", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-large-count-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-large-count-")); const fixture = join(directory, "36x48.pdf"); await writeFile(fixture, buildMinimalPdf(0, 2592, 3456, 1, 2)); @@ -132,7 +132,7 @@ test("accepting a count on a fitted 36x48 source refreshes with the requested in test("a fresh project can create a count check by verifying its sources in the form", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-fresh-count-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-fresh-count-")); const source = join(directory, "two-pages.pdf"); await writeFile(source, buildMinimalPdf(0, 612, 792, 1, 2)); diff --git a/tests/e2e/credentials.spec.ts b/tests/e2e/credentials.spec.ts index be83d18f..d2c77205 100644 --- a/tests/e2e/credentials.spec.ts +++ b/tests/e2e/credentials.spec.ts @@ -18,7 +18,7 @@ const SavedProviders = Schema.fromJsonString( ); test("importing a provider credential uses OS encryption and keeps saved providers", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-credentials-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-credentials-")); const source = join(directory, "baseten.json"); const stored = join(directory, "provider-credential.json"); diff --git a/tests/e2e/custom-endpoint.spec.ts b/tests/e2e/custom-endpoint.spec.ts index c1c23a93..23e2d61f 100644 --- a/tests/e2e/custom-endpoint.spec.ts +++ b/tests/e2e/custom-endpoint.spec.ts @@ -12,7 +12,7 @@ import { createProject, importPdf, offlineDesktop, openWindow } from "./workbenc test("OpenCode Go and a custom endpoint are set up in Review settings and run Initial Review on this computer", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-custom-endpoint-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-custom-endpoint-")); const source = join(directory, "First set.pdf"); await writeFile(source, createHeroPdf("A")); diff --git a/tests/e2e/initial-review.spec.ts b/tests/e2e/initial-review.spec.ts index e13fbc39..276a9092 100644 --- a/tests/e2e/initial-review.spec.ts +++ b/tests/e2e/initial-review.spec.ts @@ -21,7 +21,7 @@ import { test("Initial Review stays through a split first set and leaves once a revision is linked", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-initial-review-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-initial-review-")); const fixture = join(directory, "First set.pdf"); const credentialFile = join(directory, "offline-provider-config.json"); await writeFile(fixture, createHeroPdf("A")); @@ -133,7 +133,7 @@ test("Initial Review stays through a split first set and leaves once a revision test("With OpenCode Go connected, Go models are the only chat choice while Meta stays connected for SAM", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-opencode-go-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-opencode-go-")); const fixture = join(directory, "First set.pdf"); const credentialFile = join(directory, "offline-provider-config.json"); await writeFile(fixture, createHeroPdf("A")); @@ -236,7 +236,7 @@ test("With OpenCode Go connected, Go models are the only chat choice while Meta test("Initial Review sends every first-set sheet once, on Muse Spark 1.3 with no call budget and its preset", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-initial-review-send-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-initial-review-send-")); const first = join(directory, "First half.pdf"); const second = join(directory, "Second half.pdf"); await writeFile(first, createHeroPdf("A")); diff --git a/tests/e2e/packet.spec.ts b/tests/e2e/packet.spec.ts index f081bb70..9d6631d6 100644 --- a/tests/e2e/packet.spec.ts +++ b/tests/e2e/packet.spec.ts @@ -25,7 +25,7 @@ const codeSectionUrl = test("document QA needs no count check and persisted findings support evidence, completion, and reopen", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-packet-desktop-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-desktop-")); const fixture = join(directory, "Drawing packet.pdf"); const credentialFile = join(directory, "offline-provider-config.json"); await writeFile(fixture, createHeroPdf("A")); diff --git a/tests/e2e/polish.spec.ts b/tests/e2e/polish.spec.ts index 7a1c4145..f315806f 100644 --- a/tests/e2e/polish.spec.ts +++ b/tests/e2e/polish.spec.ts @@ -11,7 +11,7 @@ import { createHeroPdf } from "../fixtures/hero-case.ts"; import { installRpcBoundary } from "./rpc-boundary.ts"; test("project dialogs, selectors, settings, visual evidence selection, and chat work together", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-polish-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-polish-")); const fixture = join(directory, "Revision A.pdf"); await writeFile(fixture, createHeroPdf("A")); diff --git a/tests/e2e/project-navigation.spec.ts b/tests/e2e/project-navigation.spec.ts index bccd23fa..0d3da8cc 100644 --- a/tests/e2e/project-navigation.spec.ts +++ b/tests/e2e/project-navigation.spec.ts @@ -94,7 +94,7 @@ async function snapshotProjects(page: Page) { test("navigation stays on the most recently selected project when earlier progress and snapshots arrive late", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-project-navigation-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-project-navigation-")); const { app, page, errors, alpha, beta, gamma } = await threeProjects(directory); const breadcrumb = page.getByRole("navigation", { name: "Breadcrumb" }); const [alphaThread] = alpha.conversations; @@ -200,7 +200,7 @@ test("navigation stays on the most recently selected project when earlier progre test("replayed reviews and a progress burst share bounded snapshot refreshes", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-snapshot-coalescing-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-snapshot-coalescing-")); const { app, page, errors, alpha, beta } = await threeProjects(directory); const [alphaThread] = alpha.conversations; const [betaThread] = beta.conversations; diff --git a/tests/e2e/reconciliation.spec.ts b/tests/e2e/reconciliation.spec.ts index 37a69527..8fdde8f7 100644 --- a/tests/e2e/reconciliation.spec.ts +++ b/tests/e2e/reconciliation.spec.ts @@ -13,7 +13,7 @@ import { } from "../../backend/segmentation/reconciliation.ts"; test("offline fixture worksheet supports correction, completion, persistence, and revision isolation", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-reconcile-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-reconcile-")); const schedule = Schema.decodeUnknownSync(FixtureSchedule)({ rows: [{ mark: "WC", description: "Water closet", quantity: 1 }], diff --git a/tests/e2e/review-select.spec.ts b/tests/e2e/review-select.spec.ts index d37d187c..6b24b6e9 100644 --- a/tests/e2e/review-select.spec.ts +++ b/tests/e2e/review-select.spec.ts @@ -9,7 +9,7 @@ import { createProject, importPdf, offlineDesktop, openWindow } from "./workbenc test("a selector disabled while its menu is open closes the menu and accepts no choice", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-review-select-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-review-select-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const app = await electron.launch(await offlineDesktop(directory, ["meta"])); diff --git a/tests/e2e/review.spec.ts b/tests/e2e/review.spec.ts index 104ab9be..b60fb589 100644 --- a/tests/e2e/review.spec.ts +++ b/tests/e2e/review.spec.ts @@ -275,7 +275,7 @@ test("desktop proves supported, corrected, unchanged-control, revision, media, a await expect(reviewPanel).toContainText("Review cancelled"); } - await page.screenshot({ path: test.info().outputPath("packaged-live-moke.png") }); + await page.screenshot({ path: test.info().outputPath("packaged-live-review.png") }); } await accept("drawn", 2, "Counted the two type A symbols within Room 101 on L-101."); @@ -416,7 +416,8 @@ test("desktop proves supported, corrected, unchanged-control, revision, media, a await expect .poll( async () => - (await readdir(packageParent)).filter((name) => name.startsWith("MOKE-review-")).length, + (await readdir(packageParent)).filter((name) => name.startsWith("Second-Set-review-")) + .length, ) .toBe(1); await expect( diff --git a/tests/e2e/revision-mapping.spec.ts b/tests/e2e/revision-mapping.spec.ts index 40e33a3b..2c5a7cbd 100644 --- a/tests/e2e/revision-mapping.spec.ts +++ b/tests/e2e/revision-mapping.spec.ts @@ -9,7 +9,7 @@ test("count creation focuses its form, source pages navigate, and removed revisi test.setTimeout(120000); // Revision previews render on demand; a cold PDF worker on macOS CI took longer than 5 s. const previewWait = { timeout: 15000 }; - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-sheets-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-sheets-")); const baseline = join(directory, "five-pages.pdf"); const revision = join(directory, "four-pages.pdf"); await writeFile(baseline, buildMinimalPdf(0, 612, 792, 1, 5)); @@ -191,7 +191,7 @@ test("count creation focuses its form, source pages navigate, and removed revisi test("a new page is unmatched until every earlier sheet is decided, then shown as added", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-added-sheet-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-added-sheet-")); const baseline = join(directory, "three-pages.pdf"); const revision = join(directory, "four-pages.pdf"); await writeFile(baseline, buildMinimalPdf(0, 612, 792, 1, 3)); diff --git a/tests/e2e/sheet-setup.spec.ts b/tests/e2e/sheet-setup.spec.ts index 5403bde1..0464ca30 100644 --- a/tests/e2e/sheet-setup.spec.ts +++ b/tests/e2e/sheet-setup.spec.ts @@ -12,7 +12,7 @@ import { installRpcBoundary } from "./rpc-boundary.ts"; test("audit workbench imports native and dropped revisions, assigns compact sheets, fits drawings and submits with Enter", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-audit-ui-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-ui-")); const fixture = join(directory, "36x48.pdf"); const droppedDirectory = join(directory, "revisions"); const droppedFixture = join(droppedDirectory, "36x48.pdf"); @@ -43,9 +43,9 @@ test("audit workbench imports native and dropped revisions, assigns compact shee }); await page.setViewportSize({ width: 1600, height: 1000 }); await page.getByRole("button", { name: "Create a project", exact: true }).click(); - await page.getByTestId("project-name-input").fill("MOKE audit drawing set"); + await page.getByTestId("project-name-input").fill("Second Set audit drawing set"); await page.getByTestId("create-project-button").click(); - await expect(page.locator(".brand-name")).toHaveText("MOKE"); + await expect(page.locator(".brand-name")).toHaveText("Second Set"); await page.getByRole("button", { name: "Review settings", exact: true }).click(); const settings = page.getByRole("dialog", { name: "Review settings", exact: true }); await settings.getByText("Optional call budget", { exact: true }).click(); @@ -190,7 +190,7 @@ test("audit workbench imports native and dropped revisions, assigns compact shee }); test("52 sheets stay compact and bulk discipline assignments drive explicit scope counts without confirmation", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit-large-set-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-large-set-")); const fixture = join(directory, "52-sheet-set.pdf"); await writeFile(fixture, buildMinimalPdf(0, 612, 792, 1, 52)); @@ -256,7 +256,7 @@ test("52 sheets stay compact and bulk discipline assignments drive explicit scop test("existing generic names have explicit proposals and preserve prior sheet verification after apply and reopen", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-existing-sheet-names-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-existing-sheet-names-")); const source = join(directory, "lighting.pdf"); await writeFile(source, createHeroPdf("A")); diff --git a/tests/e2e/source-controls.spec.ts b/tests/e2e/source-controls.spec.ts index e2693bc4..78ea2800 100644 --- a/tests/e2e/source-controls.spec.ts +++ b/tests/e2e/source-controls.spec.ts @@ -8,7 +8,7 @@ import { createProject, importPdf, offlineDesktop, openWindow } from "./workbenc test("the sheet view zooms with Ctrl and a pinch, rotates both ways and explains its controls", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-source-controls-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-source-controls-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const app = await electron.launch(await offlineDesktop(directory, ["meta"])); diff --git a/tests/e2e/source-view.spec.ts b/tests/e2e/source-view.spec.ts index 2362024c..b9b68c4f 100644 --- a/tests/e2e/source-view.spec.ts +++ b/tests/e2e/source-view.spec.ts @@ -49,7 +49,7 @@ const held = (page: Page) => page.evaluate(() => window.rpcControl.held()); test("late source loads after close, a finding switch or a project switch show nothing and release their images", async () => { test.setTimeout(120000); - const directory = await mkdtemp(join(tmpdir(), "moke-source-view-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-source-view-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const options = await offlineDesktop(directory, ["meta"]); diff --git a/tests/e2e/ui-cleanup-regressions.spec.ts b/tests/e2e/ui-cleanup-regressions.spec.ts index f8a7c01e..41077f67 100644 --- a/tests/e2e/ui-cleanup-regressions.spec.ts +++ b/tests/e2e/ui-cleanup-regressions.spec.ts @@ -19,7 +19,7 @@ import { test("coverage keeps unexplained exclusions in Needs input and clears details hidden by filters", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-coverage-ui-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-coverage-ui-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const options = await offlineDesktop(directory, ["meta"]); @@ -235,7 +235,7 @@ test("coverage keeps unexplained exclusions in Needs input and clears details hi test("cloud Send blockers always explain the missing estimate, limits and active local reviews", async () => { test.setTimeout(90000); - const directory = await mkdtemp(join(tmpdir(), "moke-composer-blockers-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-composer-blockers-")); const source = join(directory, "Drawing set.pdf"); await writeFile(source, createHeroPdf("A")); const app = await electron.launch(await offlineDesktop(directory, ["meta"])); diff --git a/tests/fixtures/hero-case.ts b/tests/fixtures/hero-case.ts index 35436bdd..d09cd64d 100644 --- a/tests/fixtures/hero-case.ts +++ b/tests/fixtures/hero-case.ts @@ -1,4 +1,4 @@ -/** Original Moke schematic; generated bytes contain no client drawing or third-party artwork. */ +/** Original Second Set schematic; generated bytes contain no client drawing or third-party artwork. */ export function createHeroPdf( revision: "A" | "B", rotation: 0 | 90 | 180 | 270 = 0, @@ -18,7 +18,7 @@ export function createHeroPdf( const plan = [ "0.6 w", - text(40, 750, 22, "MOKE COORDINATION LAB"), + text(40, 750, 22, "SECOND SET COORDINATION LAB"), text(40, 725, 12, `L-101 | FLOOR 1 LIGHTING PLAN | REV ${revision}`), text(40, 703, 10, "Original schematic fixture. Coordinate fixture quantities with L-601."), "60 360 230 300 re S", @@ -32,7 +32,7 @@ export function createHeroPdf( light(490, 540, "B"), text(60, 330, 12, "SCOPE: all fixtures within each room boundary."), text(60, 310, 12, "Symbols in the legend are examples, not installed devices."), - text(40, 50, 10, "L-101 | Moke authored test source | dimensions in PDF points"), + text(40, 50, 10, "L-101 | Second Set authored test source | dimensions in PDF points"), ]; // Dense, deterministic drafting texture also exercises media transfer beyond 64 KiB. @@ -45,7 +45,7 @@ export function createHeroPdf( const schedule = [ "0.6 w", - text(40, 750, 22, "MOKE COORDINATION LAB"), + text(40, 750, 22, "SECOND SET COORDINATION LAB"), text(40, 725, 12, "L-601 | FIXTURE SCHEDULE AND CONTROL DETAIL"), text( 40, @@ -63,7 +63,7 @@ export function createHeroPdf( light(420, 350, "C"), text(60, 250, 12, "CONTROL SCHEDULE: TYPE C REQUIRED QUANTITY = 2"), text(60, 225, 10, "This independent detail remains unchanged in Revision B."), - text(40, 50, 10, "L-601 | Moke authored test source | unchanged detail"), + text(40, 50, 10, "L-601 | Second Set authored test source | unchanged detail"), ]; const stream = (content: string) => diff --git a/tests/smoke/adaptive-review.test.ts b/tests/smoke/adaptive-review.test.ts index 0ffc0ef6..3a63b9be 100644 --- a/tests/smoke/adaptive-review.test.ts +++ b/tests/smoke/adaptive-review.test.ts @@ -129,7 +129,7 @@ function syntheticPdf(): string { } async function prepare() { - const directory = await mkdtemp(join(tmpdir(), "moke-adaptive-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-adaptive-")); temporary.push(directory); await Bun.write(join(directory, "drawing.pdf"), syntheticPdf()); diff --git a/tests/smoke/backend-logging.test.ts b/tests/smoke/backend-logging.test.ts index 634c85ed..268db678 100644 --- a/tests/smoke/backend-logging.test.ts +++ b/tests/smoke/backend-logging.test.ts @@ -15,7 +15,7 @@ const logText = async (directory: string) => { }; test("startup and background warnings reach the log file while stdout carries only readiness", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-backend-logging-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-backend-logging-")); const logs = join(dataDirectory, "logs"); // A recorded cloud owner without a cloud connection makes the reconciliation fiber, forked diff --git a/tests/smoke/backend-request-limits.test.ts b/tests/smoke/backend-request-limits.test.ts index 4e288df2..56e55b31 100644 --- a/tests/smoke/backend-request-limits.test.ts +++ b/tests/smoke/backend-request-limits.test.ts @@ -101,7 +101,7 @@ test("every bounded large command fits the backend request limit after JSON esca }); test("maximum messages cross the HTTP RPC and an oversized request is an input error", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-request-limits-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-request-limits-")); const launch = BackendApi.layer({ command: [process.execPath, "--no-orphans", resolve("backend/main.ts")], diff --git a/tests/smoke/backend.test.ts b/tests/smoke/backend.test.ts index 0e8e2b77..75dc3a13 100644 --- a/tests/smoke/backend.test.ts +++ b/tests/smoke/backend.test.ts @@ -197,7 +197,7 @@ test("an unavailable backend executable returns a typed startup failure", async }); test("HTTP progress delivers a persisted event before an open subscription completes", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-http-progress-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-http-progress-")); try { await Effect.runPromise( diff --git a/tests/smoke/cloud-activity.test.ts b/tests/smoke/cloud-activity.test.ts index a39581b3..b6bebdca 100644 --- a/tests/smoke/cloud-activity.test.ts +++ b/tests/smoke/cloud-activity.test.ts @@ -10,7 +10,7 @@ import { id, open, response } from "../fixtures/packet-review.ts"; test.each(["during-render", "during-next-inference"] as const)( "host tool activity observes real rendering and clears on pause %s", async (pauseAt) => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-activity-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-activity-")); const firstAdmitted = Promise.withResolvers(); const releaseFirst = Promise.withResolvers(); const observerReady = Promise.withResolvers(); diff --git a/tests/smoke/cloud-admission-indexes.test.ts b/tests/smoke/cloud-admission-indexes.test.ts index fb16adbc..6aa12508 100644 --- a/tests/smoke/cloud-admission-indexes.test.ts +++ b/tests/smoke/cloud-admission-indexes.test.ts @@ -101,7 +101,7 @@ const seed = (filename: string) => { }; test("cloud admission queries use indexes after migration 0012 with unchanged results", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-admission-indexes-")); + const root = await mkdtemp(join(tmpdir(), "second-set-admission-indexes-")); const filename = join(root, "app.sqlite"); const earlier = join(root, "migrations-0011"); const backups = join(root, "backups"); diff --git a/tests/smoke/cloud-cache.test.ts b/tests/smoke/cloud-cache.test.ts index 4a7d1a43..fb86e7dc 100644 --- a/tests/smoke/cloud-cache.test.ts +++ b/tests/smoke/cloud-cache.test.ts @@ -100,7 +100,7 @@ test("Send uploads only files the workspace cache lacks and reports reused bytes }); test("the worker fills skipped files from the cache and refuses a mismatched cache file", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-materialize-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-materialize-")); const input = join(root, "input"); const cache = join(root, "cache"); @@ -139,7 +139,7 @@ test("the worker fills skipped files from the cache and refuses a mismatched cac }); test("result download copies matching local artifacts and downloads everything else", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-reuse-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-reuse-")); const data = join(root, "data"); const destination = join(root, "output"); const crop = packageFile((hash) => `artifacts/${hash}.png`, "new crop rendered in the cloud"); @@ -182,7 +182,7 @@ test("result download copies matching local artifacts and downloads everything e }); async function cacheFixture() { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-cache-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-cache-")); const directory = join(root, "data.cloud"); const data = join(root, "data"); const seeds: CloudCacheSeed[] = []; diff --git a/tests/smoke/cloud-local-work.test.ts b/tests/smoke/cloud-local-work.test.ts index d8570535..5359cca9 100644 --- a/tests/smoke/cloud-local-work.test.ts +++ b/tests/smoke/cloud-local-work.test.ts @@ -12,7 +12,7 @@ import { canvasNativeFileName, canvasNativePackage } from "../../scripts/prepare import { open as openPacketFixture, response, until } from "../fixtures/packet-review.ts"; test("the cloud estimate names projects whose local reviews must finish first", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-local-work-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-local-work-")); const data = join(root, "local"); // A call budget of one pauses a real local review after its first receipted request. diff --git a/tests/smoke/cloud-progress-preview.test.ts b/tests/smoke/cloud-progress-preview.test.ts index 364c840c..38f4ca35 100644 --- a/tests/smoke/cloud-progress-preview.test.ts +++ b/tests/smoke/cloud-progress-preview.test.ts @@ -262,7 +262,7 @@ test("older progress without a preview still decodes and oversized previews are }); test("the finding preview survives refresh and restart and is dropped once results import", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-preview-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-preview-")); const input = request(); let phase: "running" | "ready" = "running"; diff --git a/tests/smoke/cloud-reviews.test.ts b/tests/smoke/cloud-reviews.test.ts index 5b2def8f..e6a5962d 100644 --- a/tests/smoke/cloud-reviews.test.ts +++ b/tests/smoke/cloud-reviews.test.ts @@ -51,7 +51,7 @@ const provider = Schema.decodeUnknownSync(CloudProvider)({ }); test("cloud download retries reuse only complete files matching the result identity", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-resume-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-resume-")); const path = join(directory, "artifact.png"); const content = Buffer.from("verified result bytes"); @@ -149,7 +149,7 @@ test("the cloud worker protocol rejects pre-scope workers and incompatible deadl }); async function fixture() { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-test-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-test-")); const operations: string[] = []; let dispatchLost = false; let preflightFailure = false; @@ -1090,7 +1090,7 @@ test("already-dispatched packet prompt v1 jobs remain recoverable without admitt }); test("a non-canonical provider route fails cloud start before allocation or upload", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-route-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-route-")); const operations: Array = []; const unused = Effect.die("Cloud work must not start for a non-canonical route."); @@ -1152,7 +1152,7 @@ test("the current cloud compatibility guide names the admitted identity and rece test("a one-minute cloud limit fails before any cloud work and longer limits keep their deadline", async () => { for (const timeoutMinutes of [1, 2]) { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-limit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-limit-")); const operations: Array = []; const admitted: Array = []; diff --git a/tests/smoke/cloud-state-budget.test.ts b/tests/smoke/cloud-state-budget.test.ts index cbcacdbb..90d47647 100644 --- a/tests/smoke/cloud-state-budget.test.ts +++ b/tests/smoke/cloud-state-budget.test.ts @@ -131,7 +131,7 @@ const session = (directory: string) => { }; test("the cloud writer refuses state its reader would reject and keeps the previous state", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-budget-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-budget-")); const path = join(directory, "state.json"); try { @@ -153,7 +153,7 @@ test("the cloud writer refuses state its reader would reject and keeps the previ }); test("an oversized earlier state reopens compacted with its owner and command replay intact", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-budget-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-budget-")); const path = join(directory, "state.json"); const terminal = history(500, 200); const active = cloudRecord(packetRequest(200), "running", 501); @@ -197,7 +197,7 @@ test("an oversized earlier state reopens compacted with its owner and command re }, 60_000); test("admission keeps room for an owner's progress and refuses before any cloud action", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-budget-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-budget-")); const path = join(directory, "state.json"); await Effect.runPromise(writeCloudFile(path, legacyState(history(998, 200)))); diff --git a/tests/smoke/cloud-sync.test.ts b/tests/smoke/cloud-sync.test.ts index b28f3454..690decb7 100644 --- a/tests/smoke/cloud-sync.test.ts +++ b/tests/smoke/cloud-sync.test.ts @@ -12,7 +12,7 @@ import { CloudReviewSynchronization } from "../../backend/cloud/sync.ts"; import type { CloudSandboxPort } from "../../backend/cloud/sandbox-port.ts"; async function fixture(dropSignals = false) { - const directory = await mkdtemp(join(tmpdir(), "moke-cloud-sync-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-cloud-sync-")); const signals = Effect.runSync(PubSub.unbounded({ replay: 1 })); const restored = Effect.runSync(Deferred.make()); const releaseReturn = Effect.runSync(Deferred.make()); diff --git a/tests/smoke/cloud-transfer-progress.test.ts b/tests/smoke/cloud-transfer-progress.test.ts index bedbff68..210c3c1e 100644 --- a/tests/smoke/cloud-transfer-progress.test.ts +++ b/tests/smoke/cloud-transfer-progress.test.ts @@ -58,7 +58,7 @@ const copy = (source: string, destination: string) => }); test("live cloud status and flushed receipts expose completed upload/download files before transfer ends", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-progress-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-progress-")); const source = join(root, "package"); const remote = join(root, "remote"); const directory = join(root, "receipts"); @@ -240,7 +240,7 @@ test("live cloud status and flushed receipts expose completed upload/download fi }); test("download progress counts verified resumed files and refuses same-size corrupt bytes", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-progress-resume-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-progress-resume-")); const text = packageText(); const progress: Array = []; @@ -323,7 +323,7 @@ test("download progress counts verified resumed files and refuses same-size corr }); test("workspace sizing checks replacement safety under SQL exclusion before opening SQLite", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-estimate-guard-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-estimate-guard-")); const queries = Semaphore.makeUnsafe(1); @@ -361,7 +361,7 @@ test("workspace sizing checks replacement safety under SQL exclusion before open }); test("workspace sizing measures referenced files and project count without stopping an active review", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-estimate-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-estimate-")); const admitted = Promise.withResolvers(); const response = Promise.withResolvers(); diff --git a/tests/smoke/cloud-workspace.test.ts b/tests/smoke/cloud-workspace.test.ts index 5392eed4..b04d38a0 100644 --- a/tests/smoke/cloud-workspace.test.ts +++ b/tests/smoke/cloud-workspace.test.ts @@ -69,7 +69,7 @@ test.each([ ] as const)( "the application fences writes across reopen and handles real returned packages (%j)", async ({ corrupt, legacyPhase }) => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-workspace-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-workspace-")); const data = join(root, "local"); const remoteData = join(root, "remote"); const uploaded = join(root, "uploaded"); @@ -499,7 +499,7 @@ test.each([ test.each(["legacy", "whole_set", "selected_sheets", "discipline", "legacy_worker"] as const)( "a cloud drawing-set review preserves %s scope and returns its real packet without a count check", async (scopeMode) => { - const root = await mkdtemp(join(tmpdir(), "moke-cloud-packet-")); + const root = await mkdtemp(join(tmpdir(), "second-set-cloud-packet-")); const notifications = Effect.runSync(PubSub.unbounded()); let remote: Awaited> | undefined; let local: ReturnType | undefined; diff --git a/tests/smoke/code-index.test.ts b/tests/smoke/code-index.test.ts index 44acbcad..ccc2f05d 100644 --- a/tests/smoke/code-index.test.ts +++ b/tests/smoke/code-index.test.ts @@ -189,7 +189,7 @@ test.each([ ])( "a citation names a search_code result and the host attaches its link: %s", async ({ section, document, edition, target }) => { - const directory = await mkdtemp(join(tmpdir(), "moke-code-citation-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-code-citation-")); const SearchOutput = Schema.Struct({ index: Schema.String, diff --git a/tests/smoke/credential-files.test.ts b/tests/smoke/credential-files.test.ts index 63c9d49b..bc116ec3 100644 --- a/tests/smoke/credential-files.test.ts +++ b/tests/smoke/credential-files.test.ts @@ -12,7 +12,7 @@ import { } from "../../desktop/credential-files.ts"; test("private provider sets accept Wonder and Baseten while rejecting SAM as a review model", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-credential-models-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-credential-models-")); const source = join(directory, "providers.json"); const meta = { @@ -50,7 +50,7 @@ test("private provider sets accept Wonder and Baseten while rejecting SAM as a r }); test("explicit session credentials reject shared Unix permissions and accept a private file", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-credential-permissions-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-credential-permissions-")); const source = join(directory, "session.json"); try { @@ -146,7 +146,7 @@ test("menus offer no retired OpenCode Go model, and a saved connection naming on }); test("accepted trailing-slash routes are saved in the canonical form cloud dispatch requires", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-credential-routes-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-credential-routes-")); const source = join(directory, "providers.json"); const routes = [ diff --git a/tests/smoke/data-directory.test.ts b/tests/smoke/data-directory.test.ts new file mode 100644 index 00000000..a90cde50 --- /dev/null +++ b/tests/smoke/data-directory.test.ts @@ -0,0 +1,31 @@ +import { expect, test } from "bun:test"; +import { join } from "node:path"; +import { legacyUserData } from "../../desktop/data-directory.ts"; + +const appData = join("/", "home", "reviewer", ".config"); +const userData = join(appData, "Second Set"); +const legacy = join(appData, "moke-meta-hackathon"); + +const existing = + (...paths: string[]) => + (path: string) => + paths.includes(path); + +test("a workspace saved before the rename stays in its original folder", () => { + expect(legacyUserData(appData, userData, existing(join(legacy, "app.sqlite")))).toBe(legacy); +}); + +test("the renamed folder is used once it holds a database, and for new installs", () => { + expect( + legacyUserData( + appData, + userData, + existing(join(userData, "app.sqlite"), join(legacy, "app.sqlite")), + ), + ).toBeNull(); + expect(legacyUserData(appData, userData, existing())).toBeNull(); +}); + +test("an old folder without a database is not adopted", () => { + expect(legacyUserData(appData, userData, existing(join(legacy, "logs")))).toBeNull(); +}); diff --git a/tests/smoke/documents.test.ts b/tests/smoke/documents.test.ts index 8b427517..88560e79 100644 --- a/tests/smoke/documents.test.ts +++ b/tests/smoke/documents.test.ts @@ -44,7 +44,7 @@ const id = () => Schema.decodeUnknownSync(CommandId)(crypto.randomUUID()); import { buildMinimalPdf } from "../fixtures/generated/minimal-pdf.ts"; -const fixtureDirectory = await mkdtemp(join(tmpdir(), "moke-pdf-fixtures-")); +const fixtureDirectory = await mkdtemp(join(tmpdir(), "second-set-pdf-fixtures-")); beforeAll(async () => { await writeFile(join(fixtureDirectory, "original.pdf"), buildMinimalPdf()); @@ -61,7 +61,7 @@ const nativeFile = join( ); test("direct crops contain the source mark through every rotation, nonzero page box, and UserUnit", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-crop-pixels-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-crop-pixels-")); try { for (const rotation of [0, 90, 180, 270] as const) { @@ -181,7 +181,7 @@ function largeImagePdf() { } test("embedded images above the output pixel limit still render", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-large-image-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-large-image-")); try { const original = join(directory, "large-image.pdf"); @@ -246,7 +246,7 @@ function documentsLayer(dataDirectory: string) { } test("extracts retrieved PDF text by whole pages, from a requested page, and stores the original", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-text-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-text-")); const pdf = createHeroPdf("A"); try { @@ -264,7 +264,7 @@ test("extracts retrieved PDF text by whole pages, from a requested page, and sto ); expect(whole.pageCount).toBe(2); - expect(whole.text).toContain("[Page 1]\nMOKE COORDINATION LAB"); + expect(whole.text).toContain("[Page 1]\nSECOND SET COORDINATION LAB"); expect(whole.text).toContain("[Page 2]"); expect(whole.truncated).toBe(false); expect(fromSecond.text.startsWith("[Page 2]")).toBe(true); @@ -283,7 +283,7 @@ test("extracts retrieved PDF text by whole pages, from a requested page, and sto }, 60000); test("a retrieved PDF without embedded text stays unavailable", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-scanned-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-scanned-")); try { const source = await Effect.runPromise( @@ -310,7 +310,7 @@ test("a retrieved PDF without embedded text stays unavailable", async () => { }, 60000); test("import stores the original hash and inventories pages", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-")); const source = join(fixtureDirectory, "original.pdf"); try { @@ -334,7 +334,7 @@ test("import stores the original hash and inventories pages", async () => { }); test("malformed PDFs and mismatched source metadata are rejected", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-reject-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-reject-")); const badSource = join(fixtureDirectory, "malformed.pdf"); const goodSource = join(fixtureDirectory, "original.pdf"); @@ -406,7 +406,7 @@ test("malformed PDFs and mismatched source metadata are rejected", async () => { }); test("read returns bounded chunks for stored artifacts", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-read-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-read-")); const source = join(fixtureDirectory, "original.pdf"); try { @@ -427,8 +427,8 @@ test("read returns bounded chunks for stored artifacts", async () => { }); test("import interruption stops each started worker and releases every PDF job slot", async () => { - const dataDirectory = await mkdtemp(join(tmpdir(), "moke-documents-cancel-")); - const started = await mkdtemp(join(tmpdir(), "moke-documents-started-")); + const dataDirectory = await mkdtemp(join(tmpdir(), "second-set-documents-cancel-")); + const started = await mkdtemp(join(tmpdir(), "second-set-documents-started-")); const source = join(fixtureDirectory, "original.pdf"); // Workers report each accepted job, then hold it far beyond this test. process.env.MOKE_PDF_WORKER_STARTED_DIRECTORY = started; @@ -504,7 +504,7 @@ function running(pid: number) { } test("render refuses an original replaced by another valid PDF and records nothing", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-documents-integrity-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-documents-integrity-")); const source = join(directory, "plans.pdf"); await writeFile(source, createHeroPdf("A")); @@ -567,7 +567,7 @@ test("render refuses an original replaced by another valid PDF and records nothi }, 60000); test("chunked artifact reads hash the file once and still reject altered or truncated files", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-documents-chunks-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-documents-chunks-")); const bytes = crypto.getRandomValues(new Uint8Array(1024 * 1024 + 4321)); const sha256 = Bun.SHA256.hash(bytes, "hex"); const path = join(directory, "artifacts", `${sha256}.png`); @@ -637,7 +637,7 @@ test("chunked artifact reads hash the file once and still reject altered or trun }); test("drawing-sized sheets and focused boxes fit the hard pixel ceiling with accurate actual-DPI transforms", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-large-drawing-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-large-drawing-")); try { for (const rotation of [0, 90] as const) { @@ -697,7 +697,7 @@ test("drawing-sized sheets and focused boxes fit the hard pixel ceiling with acc }, 60000); test("PDF import proposes printed sheet identities and retains original page references", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-labels-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-labels-")); const source = join(directory, "lighting.pdf"); await writeFile(source, createHeroPdf("A")); @@ -750,7 +750,7 @@ test("PDF import proposes printed sheet identities and retains original page ref }); test("existing generic sheet names are suggested without mutation and applied without changing verification or count evidence", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit-3-existing-labels-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit-3-existing-labels-")); const source = join(directory, "lighting.pdf"); await writeFile(source, createHeroPdf("A")); diff --git a/tests/smoke/drop-imports.test.ts b/tests/smoke/drop-imports.test.ts index a4785fa9..c70b1dac 100644 --- a/tests/smoke/drop-imports.test.ts +++ b/tests/smoke/drop-imports.test.ts @@ -8,7 +8,7 @@ import { id, open, response } from "../fixtures/packet-review.ts"; import { createHeroPdf } from "../fixtures/hero-case.ts"; test("a drop claim rejects fresh-command reuse and preserves same-command receipts across response loss", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-drop-claim-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-drop-claim-")); const api = await open(directory, async () => response()); try { diff --git a/tests/smoke/finding-summary.test.ts b/tests/smoke/finding-summary.test.ts index 02dadf2a..711ac8fd 100644 --- a/tests/smoke/finding-summary.test.ts +++ b/tests/smoke/finding-summary.test.ts @@ -89,7 +89,7 @@ const technicalFinding = (findingId: string) => ({ }); test("summaries bind to their technical revision and correcting one finding leaves other candidates pending", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-summary-revisions-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-summary-revisions-")); const first = id(); const second = id(); let step = 0; @@ -207,7 +207,7 @@ test("summaries bind to their technical revision and correcting one finding leav test.each(["muse-spark-1.3", "meta-models/muse-spark-open-1026"] as const)( "%s saves full facts before rejecting a summary, accepts a corrected revision and reopens losslessly", async (model) => { - const directory = await mkdtemp(join(tmpdir(), "moke-short-findings-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-short-findings-")); const findingId = id(); let step = 0; let inventory: PacketReview | undefined; @@ -391,7 +391,7 @@ test.each(["muse-spark-1.3", "meta-models/muse-spark-open-1026"] as const)( test.each(["finding-first", "finish-first"] as const)( "ignored invalid summaries never complete or lose the full finding: %s", async (order) => { - const directory = await mkdtemp(join(tmpdir(), "moke-pending-summary-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-pending-summary-")); const findingId = id(); let step = 0; @@ -450,7 +450,7 @@ test.each(["finding-first", "finish-first"] as const)( test.each(["muse-spark-1.3", "meta-models/muse-spark-open-1026"] as const)( "%s cannot introduce an unsupported absence claim through a short summary", async (model) => { - const directory = await mkdtemp(join(tmpdir(), "moke-summary-evidence-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-summary-evidence-")); const findingId = id(); let step = 0; let revision = ""; diff --git a/tests/smoke/firm-memory.test.ts b/tests/smoke/firm-memory.test.ts index 0b68d423..a175c75c 100644 --- a/tests/smoke/firm-memory.test.ts +++ b/tests/smoke/firm-memory.test.ts @@ -180,7 +180,7 @@ test("jurisdiction history ranks locality matches first and prefers verified cit }); test("reviewer decisions survive model updates, reach follow-ups and appear in the report", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-decisions-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-decisions-")); const script = scripted(); const session = await open(directory, script.transport); @@ -304,7 +304,7 @@ test("reviewer decisions survive model updates, reach follow-ups and appear in t }, 120000); test("new reviews apply the saved firm checklist revision; saves are versioned", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-checklist-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-checklist-")); const script = scripted(); const session = await open(directory, script.transport); @@ -372,7 +372,7 @@ test("new reviews apply the saved firm checklist revision; saves are versioned", }, 120000); test("record_project offers earlier reviews' sources, citations and comments for the same jurisdiction once", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-jurisdiction-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-jurisdiction-")); const script = scripted(); const session = await open(directory, script.transport); diff --git a/tests/smoke/initial-review.test.ts b/tests/smoke/initial-review.test.ts index 97c0c92d..4cbf8dd0 100644 --- a/tests/smoke/initial-review.test.ts +++ b/tests/smoke/initial-review.test.ts @@ -72,7 +72,7 @@ test.each([ }); test("the Initial Review request admits every sheet of a first set split across two PDFs and keeps its identity on reopen", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-initial-review-admission-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-initial-review-admission-")); const inventories: Array = []; let step = 0; diff --git a/tests/smoke/meta-review.test.ts b/tests/smoke/meta-review.test.ts index efd03c85..960b8517 100644 --- a/tests/smoke/meta-review.test.ts +++ b/tests/smoke/meta-review.test.ts @@ -38,7 +38,7 @@ async function withAdapter( work: (directory: string, layer: ReturnType) => Promise, maximumRequests = 8, ) { - const directory = await mkdtemp(join(tmpdir(), "moke-meta-review-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-meta-review-")); const server = Bun.serve({ hostname: "127.0.0.1", port: 0, fetch: handler }); const config = Schema.decodeUnknownSync(MetaReviewConfig)({ diff --git a/tests/smoke/opencode-go.test.ts b/tests/smoke/opencode-go.test.ts index 2d06b68b..c472a942 100644 --- a/tests/smoke/opencode-go.test.ts +++ b/tests/smoke/opencode-go.test.ts @@ -215,8 +215,8 @@ test.each([ expect(request.headers.get("authorization")).toBe("Bearer oc_sk_fixture"); // One session per conversation, as OpenCode asks, rather than the prefix shared by sheets. expect(request.headers.get("x-opencode-session")).toBe("conversation-session-7"); - expect(request.headers.get("x-opencode-client")).toBe("moke"); - expect(request.headers.get("user-agent")).toBe(`moke/${packageInfo.version}`); + expect(request.headers.get("x-opencode-client")).toBe("second-set"); + expect(request.headers.get("user-agent")).toBe(`second-set/${packageInfo.version}`); expect(request.headers.get("x-session-affinity")).toBeNull(); expect(JSON.parse(request.body)).toMatchObject({ model: upstream }); }, @@ -320,6 +320,6 @@ test("the OpenCode Go key check sends the session, client and user agent OpenCod expect(check).toEqual({ kind: "rejected", status: 403 }); expect(seen[0]?.get("x-opencode-session")).toBe("moke-check-1"); - expect(seen[0]?.get("x-opencode-client")).toBe("moke"); - expect(seen[0]?.get("user-agent")).toBe("moke/0.1.0"); + expect(seen[0]?.get("x-opencode-client")).toBe("second-set"); + expect(seen[0]?.get("user-agent")).toBe("second-set/0.1.0"); }); diff --git a/tests/smoke/package-files.test.ts b/tests/smoke/package-files.test.ts index 60800e96..7f835a1d 100644 --- a/tests/smoke/package-files.test.ts +++ b/tests/smoke/package-files.test.ts @@ -5,7 +5,7 @@ import { join } from "node:path"; import { openRegularFile } from "../../backend/review/package-files.ts"; test("package reads without O_NOFOLLOW retain regular-file identity and reject links", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-package-file-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-package-file-")); try { const source = join(directory, "source"); diff --git a/tests/smoke/packet-coverage.test.ts b/tests/smoke/packet-coverage.test.ts index 87810de0..f6997e80 100644 --- a/tests/smoke/packet-coverage.test.ts +++ b/tests/smoke/packet-coverage.test.ts @@ -194,7 +194,7 @@ test.each([ ] as const)( "an early finish is returned for unopened sheets once unless the user set a call budget (%j)", async ({ maxCalls, rejections }) => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-finish-gate-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-finish-gate-")); let step = 0; let history: ReadonlyArray = []; diff --git a/tests/smoke/packet-evidence-policy.test.ts b/tests/smoke/packet-evidence-policy.test.ts index 1e0b4eb5..6fcc1b92 100644 --- a/tests/smoke/packet-evidence-policy.test.ts +++ b/tests/smoke/packet-evidence-policy.test.ts @@ -26,7 +26,7 @@ import { test.each(["edition", "section", "other section", "document", "short quote", "supported"] as const)( "retrieved citation identity gates confirmed regulatory findings: %s", async (claim) => { - const directory = await mkdtemp(join(tmpdir(), "moke-citation-policy-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-citation-policy-")); const quote = "All plumbing installations shall provide accessible cleanouts at the specified locations."; @@ -140,7 +140,7 @@ test.each(["edition", "section", "other section", "document", "short quote", "su ); test("resubmittal closure retains its revision target across an uninspected follow-up", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-prior-comment-policy-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-prior-comment-policy-")); const commentId = id(); let phase: "baseline" | "deferred" | "followup" = "baseline"; let step = 0; @@ -382,7 +382,7 @@ test.each([ ] as const)( "an absence claim (%s) requires source search even as a Needs input recommendation", async (wording) => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-absence-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-absence-")); let step = 0; let inventory: PacketReview | undefined; let artifact: Artifact | undefined; @@ -476,7 +476,7 @@ test.each([ ); test("a citation records a source only when this review retrieved it", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-citation-source-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-citation-source-")); let step = 0; const placeholder = { @@ -564,7 +564,7 @@ test("a citation records a source only when this review retrieved it", async () }, 120000); test("a follow-up that leaves a finding's lists empty keeps what the finding held", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-finding-follow-up-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-finding-follow-up-")); const findingId = id(); const citationId = id(); const laterComment = id(); @@ -636,7 +636,7 @@ test("a follow-up that leaves a finding's lists empty keeps what the finding hel }, 120000); test("a finding that drops its evidence and citation lists is still recorded", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-finding-defaults-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-finding-defaults-")); let step = 0; const finding = { diff --git a/tests/smoke/packet-finding-records.test.ts b/tests/smoke/packet-finding-records.test.ts index 2aaa1a28..59df6f4e 100644 --- a/tests/smoke/packet-finding-records.test.ts +++ b/tests/smoke/packet-finding-records.test.ts @@ -92,7 +92,7 @@ test("revised sheets inherit the earlier sheets they replace through chained cor }); test("finding records are validated, withdrawable and carried into a revised review", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-finding-records-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-finding-records-")); const inputs: Array = []; let phase = 1; let step = 0; diff --git a/tests/smoke/packet-lifecycle.test.ts b/tests/smoke/packet-lifecycle.test.ts index de9538ee..bd62376b 100644 --- a/tests/smoke/packet-lifecycle.test.ts +++ b/tests/smoke/packet-lifecycle.test.ts @@ -50,7 +50,7 @@ async function untilSamCompleted(session: Session, reviewId: string) { } test("a successful SAM response drains while paused and explicit resume does not resend it", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-sam-pause-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-sam-pause-")); const samAdmitted = Promise.withResolvers(); const releaseSam = Promise.withResolvers(); let modelSends = 0; @@ -188,7 +188,7 @@ test("a successful SAM response drains while paused and explicit resume does not }, 120000); test("shutdown preserves an unresolved admitted request as uncertain across reopening", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-shutdown-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-shutdown-")); const admitted = Promise.withResolvers(); const provider = Promise.withResolvers(); let sends = 0; @@ -251,7 +251,7 @@ test("shutdown preserves an unresolved admitted request as uncertain across reop test.each(["uncertain", "completed"] as const)( "startup reconciles a prior owner's paused review with a %s request receipt without sending it", async (receiptStatus) => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-legacy-paused-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-legacy-paused-")); let sends = 0; const transport = async () => { @@ -353,7 +353,7 @@ const afterIdle = (operation: Effect.Effect) => }).pipe(Effect.provide(TestClock.layer())); test("provider HTTP diagnostics survive cancellation without rewriting active duration or replaying inference", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-provider-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-provider-")); let sends = 0; const session = await open(directory, async () => { @@ -401,7 +401,7 @@ test("provider HTTP diagnostics survive cancellation without rewriting active du }, 120000); test("pause accepts progress advancing since the displayed version and cancellation excludes paused waiting", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-pause-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-pause-")); const dispatched = Promise.withResolvers(); const release = Promise.withResolvers(); diff --git a/tests/smoke/packet-parallel.test.ts b/tests/smoke/packet-parallel.test.ts index d4b88ca6..946ba5e1 100644 --- a/tests/smoke/packet-parallel.test.ts +++ b/tests/smoke/packet-parallel.test.ts @@ -305,7 +305,7 @@ function script( test.each(["pending-summary", "pending-summary-reversed"] as const)( "sheet and coordinator finishing cannot silently drop pending summaries: %s", async (order) => { - const directory = await mkdtemp(join(tmpdir(), "moke-parallel-summary-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-parallel-summary-")); const { transport } = script(order); const session = await open(directory, transport, true, undefined, "observe", parallel); @@ -330,7 +330,7 @@ test.each(["pending-summary", "pending-summary-reversed"] as const)( ); test("a large packet reviews its sheets in concurrent conversations between coordinator setup and coordination", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-")); const { transport, observed } = script("none", true); const session = await open(directory, transport, true, undefined, "observe", parallel); @@ -387,7 +387,7 @@ const WireRequest = Schema.fromJsonString( ); test("every conversation's next request extends its previous request byte for byte", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-prefix-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-prefix-")); const { transport } = script("none"); const requests: Array<{ @@ -473,7 +473,7 @@ test("every conversation's next request extends its previous request byte for by }, 120000); test("one sheet reviewer's unresolved provider request stops only that sheet", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-failure-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-failure-")); const { transport, observed } = script("second-sheet"); const session = await open(directory, transport, true, undefined, "observe", parallel); @@ -504,7 +504,7 @@ test("one sheet reviewer's unresolved provider request stops only that sheet", a }, 120000); test("a call budget pauses a parallel review mid-sheet and resume finishes the queued sheets", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-resume-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-resume-")); const { transport, observed } = script("none"); const session = await open(directory, transport, true, undefined, "observe", parallel); @@ -560,7 +560,7 @@ test("a call budget pauses a parallel review mid-sheet and resume finishes the q }, 120000); test("a sheet reviewer that ends without finish_sheet is not reported to the coordinator as completed", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-notes-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-notes-")); const { transport, observed } = script("second-sheet-without-notes"); const session = await open(directory, transport, true, undefined, "observe", parallel); @@ -582,7 +582,7 @@ test("a sheet reviewer that ends without finish_sheet is not reported to the coo }, 120000); test("a sheet reviewer's SAM request and its peer's model requests do not block each other", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-sam-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-sam-")); const peerHeld = Promise.withResolvers(); const samArrived = Promise.withResolvers(); const peerContinued = Promise.withResolvers(); @@ -685,7 +685,7 @@ test("a sheet reviewer's SAM request and its peer's model requests do not block }, 120000); test("coordinator setup is offered and runs only configuration work, ends at its request limit, and stays ended across a restart", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-setup-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-setup-")); const setupRequests = new Array(); let samSends = 0; let current: Session | undefined; @@ -844,7 +844,7 @@ test("coordinator setup is offered and runs only configuration work, ends at its }, 120000); test("a sheet reviewer cannot record, adopt or segment another sheet's findings and evidence", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-fence-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-fence-")); const findingId = crypto.randomUUID(); let firstArtifact: string | undefined; let refusals: ReadonlyArray = []; @@ -964,7 +964,7 @@ test("a sheet reviewer cannot record, adopt or segment another sheet's findings }, 120000); test("sheet reviewers choosing one citation id keep their own citations and findings", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-citation-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-citation-")); // Models number their citations, so every reviewer's first citation can carry this id. const shared = "11111111-1111-1111-8111-111111111111"; const later = "22222222-2222-2222-8222-222222222222"; @@ -1098,7 +1098,7 @@ test("sheet reviewers choosing one citation id keep their own citations and find test.each(["segment_objects", "finding zoom"] as const)( "a sheet reviewer's failed SAM request (%s) stops only that sheet; its peer and coordination finish", async (kind) => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-sam-failure-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-sam-failure-")); const peerHeld = Promise.withResolvers(); const stages = new Array(); let current: Session | undefined; @@ -1230,7 +1230,7 @@ test.each(["segment_objects", "finding zoom"] as const)( ); test("every sheet reviewer opens from the setup snapshot after a peer adds a source, across a restart", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-snapshot-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-snapshot-")); const openings = new Map(); let setupCalls = 0; @@ -1343,7 +1343,7 @@ test("every sheet reviewer opens from the setup snapshot after a peer adds a sou }, 120000); test("sheet reviewers sharing a prior comment id cannot overwrite each other", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-comment-race-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-comment-race-")); const commentId = crypto.randomUUID(); const refusals = new Array(); let waiting = 0; @@ -1426,7 +1426,7 @@ test("sheet reviewers sharing a prior comment id cannot overwrite each other", a }, 120000); test("a revised sheet's reviewer updates the carried finding by id", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-carried-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-carried-")); const findingId = crypto.randomUUID(); const citationId = "aaaaaaaa-aaaa-4aaa-aaaa-aaaaaaaaaaaa"; let earlierSheet = ""; @@ -1583,7 +1583,7 @@ test("a revised sheet's reviewer updates the carried finding by id", async () => }, 120000); test("a sheet reviewer that keeps requesting stops at its request limit and the review finishes", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-parallel-sheet-limit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-parallel-sheet-limit-")); let looping = ""; const transport: ProviderTransport = async (_url, init) => { diff --git a/tests/smoke/packet-provider.test.ts b/tests/smoke/packet-provider.test.ts index c4ba3ca1..84f1bea9 100644 --- a/tests/smoke/packet-provider.test.ts +++ b/tests/smoke/packet-provider.test.ts @@ -362,8 +362,8 @@ test("OpenCode Go sends Muse Spark through its route, names itself and uses no M expect(captured.url).toBe("https://opencode.ai/inference/go/v1/responses"); expect(captured.authorization).toBe("Bearer packet-opencode-go-fixture-key"); - expect(captured.headers.get("user-agent")).toBe(`moke/${packageInfo.version}`); - expect(captured.headers.get("x-opencode-client")).toBe("moke"); + expect(captured.headers.get("user-agent")).toBe(`second-set/${packageInfo.version}`); + expect(captured.headers.get("x-opencode-client")).toBe("second-set"); // Each conversation has its own session, as OpenCode asks; the shared cache key does not replace it. expect(captured.headers.get("x-opencode-session")).not.toBe("moke-sheet-fixture"); diff --git a/tests/smoke/packet-refusal.test.ts b/tests/smoke/packet-refusal.test.ts index 9c1e3c83..3070ecca 100644 --- a/tests/smoke/packet-refusal.test.ts +++ b/tests/smoke/packet-refusal.test.ts @@ -15,7 +15,7 @@ import { } from "../fixtures/packet-review.ts"; test("an OpenCode Go usage limit pauses a parallel review after one refused request", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-go-limit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-go-limit-")); let sheetSends = 0; const transport: ProviderTransport = async (_url, init) => { @@ -65,7 +65,7 @@ test("an OpenCode Go usage limit pauses a parallel review after one refused requ }, 120000); test("a request the provider refuses past its budget pauses the review uncharged and resumes explicitly", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-refusal-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-refusal-")); let sends = 0; const session = await open(directory, async () => { diff --git a/tests/smoke/packet-render.test.ts b/tests/smoke/packet-render.test.ts index fd9d41aa..967d7fa1 100644 --- a/tests/smoke/packet-render.test.ts +++ b/tests/smoke/packet-render.test.ts @@ -8,7 +8,7 @@ import { PacketReview } from "#lib/review/packet.ts"; import { decodeRequest, open, outputs, response, until } from "../fixtures/packet-review.ts"; test("a Spark Open tool batch retains eight fresh images and rejects the ninth before adding evidence", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-image-batch-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-image-batch-")); let page = Schema.decodeUnknownSync(SheetId)(crypto.randomUUID()); let step = 0; let deliveredImages = 0; @@ -85,7 +85,7 @@ test("a Spark Open tool batch retains eight fresh images and rejects the ninth b }, 120000); test("a cropped render tells the reviewer that content can continue past its edge", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-audit3-crop-note-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-audit3-crop-note-")); const notes: Array = []; let step = 0; let inventory: PacketReview | undefined; diff --git a/tests/smoke/packet-review.test.ts b/tests/smoke/packet-review.test.ts index 534df58e..f4e6c740 100644 --- a/tests/smoke/packet-review.test.ts +++ b/tests/smoke/packet-review.test.ts @@ -20,7 +20,7 @@ import { } from "../fixtures/packet-review.ts"; test("project-first review runs actual Moke system instructions and tools, persists its report, and reopens without dispatch", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-integration-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-integration-")); const requests: Array = []; let step = 0; @@ -301,7 +301,7 @@ test("project-first review runs actual Moke system instructions and tools, persi }, 120000); test("discipline requests route to the selected model's own provider and preserve complete system instructions", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-providers-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-providers-")); const requests: Array<{ model: string; key: string | null; prompt: string }> = []; const transport: ProviderTransport = async (_url, init) => { @@ -353,7 +353,7 @@ test("discipline requests route to the selected model's own provider and preserv }, 120000); test("a sent provider failure remains uncertain through restart and cannot be resumed or resent", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-uncertain-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-uncertain-")); let sends = 0; const transport: ProviderTransport = async () => { @@ -399,7 +399,7 @@ test("a sent provider failure remains uncertain through restart and cannot be re }, 120000); test("an optional call budget pauses instead of reporting a completed packet review", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-budget-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-budget-")); let sends = 0; const session = await open(directory, async () => { @@ -458,7 +458,7 @@ test("an optional call budget pauses instead of reporting a completed packet rev }, 120000); test("pause drains admitted work and explicit resume replays control receipts without duplicate dispatch", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-pause-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-pause-")); const firstAdmitted = Promise.withResolvers(); const firstResponse = Promise.withResolvers(); const secondAdmitted = Promise.withResolvers(); diff --git a/tests/smoke/packet-routing.test.ts b/tests/smoke/packet-routing.test.ts index 0d5ded98..d3af0bea 100644 --- a/tests/smoke/packet-routing.test.ts +++ b/tests/smoke/packet-routing.test.ts @@ -36,7 +36,7 @@ test("explicit reviewer choice and an individual discipline request remain scope // These exercise real SQLite, Pi journals, public operations and provider admission; no model is called. test("sheet assignments persist without confirming count coverage and explicit scopes freeze only selected revision sheets", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-scope-audit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-scope-audit-")); const api = await open(directory, async () => response([], "Scoped fixture completed.")); try { diff --git a/tests/smoke/packet-sam-focus.test.ts b/tests/smoke/packet-sam-focus.test.ts index c8411a48..3c674c94 100644 --- a/tests/smoke/packet-sam-focus.test.ts +++ b/tests/smoke/packet-sam-focus.test.ts @@ -41,7 +41,7 @@ test("device count wording needs a counted noun, not an identifier number", () = }); test("a device count needs SAM, and each recorded finding gets a SAM zoom of its problem area", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-sam-focus-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-sam-focus-")); const samInputs: Array = []; const modelInputs: Array = []; let step = 0; @@ -207,7 +207,7 @@ test.each([ ] as const)( "a finding zoom whose SAM request is %s settles without stopping the review", async (_label, refusals, zoomed) => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-sam-refusal-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-sam-refusal-")); let samSends = 0; let step = 0; let sheetId = ""; diff --git a/tests/smoke/packet-sources.test.ts b/tests/smoke/packet-sources.test.ts index c4bb5348..bfb1f083 100644 --- a/tests/smoke/packet-sources.test.ts +++ b/tests/smoke/packet-sources.test.ts @@ -413,7 +413,7 @@ const SheetOpening = Schema.Struct({ }); test("parallel sheet reviewers share one retrieval of a source and reread it by id; page selectors stay distinct", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-packet-source-reads-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-packet-source-reads-")); const url = "https://county.gov/amendments.pdf"; const fetched = new Array(); const reads = new Map>(); diff --git a/tests/smoke/packet-steering.test.ts b/tests/smoke/packet-steering.test.ts index 95f0786c..c5e6b2eb 100644 --- a/tests/smoke/packet-steering.test.ts +++ b/tests/smoke/packet-steering.test.ts @@ -13,7 +13,7 @@ import { decodeRequest, id, open, response, until } from "../fixtures/packet-rev test.each(["complete", "budget", "cancel", "admission failure"] as const)( "finish-boundary steering owns its idle Pi continuation: %s", async (outcome) => { - const directory = await mkdtemp(join(tmpdir(), "moke-finish-steer-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-finish-steer-")); const entered = Promise.withResolvers(); const releaseInitial = Promise.withResolvers(); const staged = Promise.withResolvers(); @@ -171,7 +171,7 @@ test.each(["complete", "budget", "cancel", "admission failure"] as const)( ); test("a provider failure withdraws queued steering without retrying uncertain work or blocking reopen", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-failed-steer-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-failed-steer-")); const entered = Promise.withResolvers(); const release = Promise.withResolvers(); let calls = 0; @@ -302,7 +302,7 @@ test("a provider failure withdraws queued steering without retrying uncertain wo test.each(["tool round", "final answer"] as const)( "active durable steering at a %s is idempotent, conversation-scoped, delivered, and recorded across reopen", async (boundary) => { - const directory = await mkdtemp(join(tmpdir(), "moke-steer-audit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-steer-audit-")); const entered = Promise.withResolvers(); const release = Promise.withResolvers(); const requests: string[] = []; @@ -421,7 +421,7 @@ test.each(["tool round", "final answer"] as const)( ); test("queued follow-up survives an exhausted call budget and explicit resume", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-steer-budget-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-steer-budget-")); const entered = Promise.withResolvers(); const release = Promise.withResolvers(); const requests: string[] = []; diff --git a/tests/smoke/packet-subscription.test.ts b/tests/smoke/packet-subscription.test.ts index 547b08f1..9a0ad70a 100644 --- a/tests/smoke/packet-subscription.test.ts +++ b/tests/smoke/packet-subscription.test.ts @@ -57,7 +57,7 @@ function manualClock() { const settle = () => new Promise((resolve) => setImmediate(resolve)); test("ended progress streams reload missed durable records, reconnect automatically, clear the warning, and stop on abort", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-progress-audit-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-progress-audit-")); const entered = Promise.withResolvers(); const release = Promise.withResolvers(); diff --git a/tests/smoke/pdf-assets.test.ts b/tests/smoke/pdf-assets.test.ts index f1440645..4b908f39 100644 --- a/tests/smoke/pdf-assets.test.ts +++ b/tests/smoke/pdf-assets.test.ts @@ -12,7 +12,7 @@ import { createHeroPdf } from "../fixtures/hero-case.ts"; const Licenses = Schema.fromJsonString(Schema.Struct({ pdfjs: Schema.String })); test("staged PDF.js assets are the runtime allowlist and render rotated text on their own", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-pdf-assets-")); + const root = await mkdtemp(join(tmpdir(), "second-set-pdf-assets-")); const assets = join(root, "pdf-assets"); const data = join(root, "data"); diff --git a/tests/smoke/reconciliation.test.ts b/tests/smoke/reconciliation.test.ts index dcee0e19..3dfdbfb7 100644 --- a/tests/smoke/reconciliation.test.ts +++ b/tests/smoke/reconciliation.test.ts @@ -5,7 +5,7 @@ import { join } from "node:path"; import { sha256 } from "../../backend/segmentation/fixtures.ts"; test("real offline CLI preserves candidate provenance and rejects changed image evidence", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-inventory-cli-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-inventory-cli-")); const png = Buffer.from( "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+a3WQAAAAASUVORK5CYII=", diff --git a/tests/smoke/render-reuse.test.ts b/tests/smoke/render-reuse.test.ts index 90a70f2a..ba444a3a 100644 --- a/tests/smoke/render-reuse.test.ts +++ b/tests/smoke/render-reuse.test.ts @@ -73,8 +73,8 @@ test("render identity covers the source, page geometry, exact region, effective }); test("equal crops under new tool operations share one worker render and keep a receipt each", async () => { - const data = await directory("moke-render-reuse-"); - const started = await directory("moke-render-jobs-"); + const data = await directory("second-set-render-reuse-"); + const started = await directory("second-set-render-jobs-"); const source = join(data, "plans.pdf"); await writeFile(source, createHeroPdf("A")); process.env.MOKE_PDF_WORKER_STARTED_DIRECTORY = started; @@ -278,8 +278,8 @@ test("equal crops under new tool operations share one worker render and keep a r }, 120000); test("reopening previews keeps one artifact record per view across launches and near the record limit", async () => { - const data = await directory("moke-preview-reuse-"); - const started = await directory("moke-preview-jobs-"); + const data = await directory("second-set-preview-reuse-"); + const started = await directory("second-set-preview-jobs-"); const source = join(data, "plans.pdf"); await writeFile(source, createHeroPdf("A")); process.env.MOKE_PDF_WORKER_STARTED_DIRECTORY = started; @@ -389,9 +389,9 @@ test("reopening previews keeps one artifact record per view across launches and }, 120000); test("renders recorded before migration 0013 still replay by operation and are not reused", async () => { - const data = await directory("moke-legacy-renders-"); - const started = await directory("moke-legacy-jobs-"); - const earlier = await directory("moke-legacy-migrations-"); + const data = await directory("second-set-legacy-renders-"); + const started = await directory("second-set-legacy-jobs-"); + const earlier = await directory("second-set-legacy-migrations-"); const source = join(data, "plans.pdf"); await writeFile(source, createHeroPdf("A")); diff --git a/tests/smoke/review-conversation.test.ts b/tests/smoke/review-conversation.test.ts index 319e06dc..b2cb0edf 100644 --- a/tests/smoke/review-conversation.test.ts +++ b/tests/smoke/review-conversation.test.ts @@ -241,7 +241,7 @@ function response(finish: boolean, text = "done") { } async function fixture(transport?: ProviderTransport, includeBaseten = false) { - const directory = await mkdtemp(join(tmpdir(), "moke-conversation-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-conversation-")); const ownership = ManagedRuntime.make(DataDirectoryOwnership.layer(directory)); const owner = await ownership.runPromise(DataDirectoryOwnership); const filename = join(directory, "app.sqlite"); diff --git a/tests/smoke/review-fences.test.ts b/tests/smoke/review-fences.test.ts index 360f1492..c0050770 100644 --- a/tests/smoke/review-fences.test.ts +++ b/tests/smoke/review-fences.test.ts @@ -22,7 +22,7 @@ import { const id = () => Schema.decodeUnknownSync(CommandId)(crypto.randomUUID()); test("parent port commits correction while an admitted response waits, rejects stale promotion, and replays its earlier receipt", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-parent-fence-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-parent-fence-")); try { await Effect.runPromise( diff --git a/tests/smoke/review-packages.test.ts b/tests/smoke/review-packages.test.ts index a47d7411..0aebea06 100644 --- a/tests/smoke/review-packages.test.ts +++ b/tests/smoke/review-packages.test.ts @@ -903,7 +903,7 @@ for (const boundary of [ "after-original-return-invalid-identity", ] as const) { test(`rollback can restart at ${boundary} with the original database intact`, async () => { - const root = await mkdtemp(join(tmpdir(), "moke-rollback-cut-")); + const root = await mkdtemp(join(tmpdir(), "second-set-rollback-cut-")); const source = join(root, "source"); const current = join(root, "current"); const destination = join(root, "package"); @@ -982,7 +982,7 @@ for (const boundary of [ } test("pending replacement blocks application writes until restart recovery completes", async () => { - const root = await mkdtemp(join(tmpdir(), "moke-admission-after-restore-")); + const root = await mkdtemp(join(tmpdir(), "second-set-admission-after-restore-")); const source = join(root, "source"); const current = join(root, "current"); const destination = join(root, "package"); @@ -1221,7 +1221,7 @@ test("pre-packet packages remain readable when the new packet tables are absent" }, 60000); test("invalid package preflight reports the missing manifest before maintenance", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-invalid-package-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-invalid-package-")); try { const error = await Effect.runPromise( diff --git a/tests/smoke/review-scoped-reads.test.ts b/tests/smoke/review-scoped-reads.test.ts index 9252d107..4d606822 100644 --- a/tests/smoke/review-scoped-reads.test.ts +++ b/tests/smoke/review-scoped-reads.test.ts @@ -23,7 +23,7 @@ import { const operationId = () => Schema.decodeUnknownSync(OperationId)(crypto.randomUUID()); test("crop and segment lookups read only their own records, not the workbench snapshot", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-scoped-reads-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-scoped-reads-")); const source = join(directory, "plans.pdf"); await writeFile(source, createHeroPdf("A")); diff --git a/tests/smoke/review.test.ts b/tests/smoke/review.test.ts index a280925e..a9f87bda 100644 --- a/tests/smoke/review.test.ts +++ b/tests/smoke/review.test.ts @@ -13,8 +13,8 @@ import { createHeroPdf } from "../fixtures/hero-case.ts"; const commandId = () => Schema.decodeUnknownSync(CommandId)(crypto.randomUUID()); test("real backend reviews, corrects, revisions, chunks evidence, and reopens without losing history", async () => { - const directory = await mkdtemp(join(tmpdir(), "moke-review-")); - const packageParent = await mkdtemp(join(tmpdir(), "moke-full-package-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-review-")); + const packageParent = await mkdtemp(join(tmpdir(), "second-set-full-package-")); const revA = join(directory, "Revision A.pdf"); const revB = join(directory, "Revision B.pdf"); await writeFile(revA, createHeroPdf("A")); diff --git a/tests/smoke/segmentation.test.ts b/tests/smoke/segmentation.test.ts index 4d9b2334..e561937e 100644 --- a/tests/smoke/segmentation.test.ts +++ b/tests/smoke/segmentation.test.ts @@ -71,7 +71,7 @@ function syntheticPdf(): string { } async function preparePack() { - const directory = await mkdtemp(join(tmpdir(), "moke-sam-")); + const directory = await mkdtemp(join(tmpdir(), "second-set-sam-")); temporary.push(directory); await Bun.write(join(directory, "drawing.pdf"), syntheticPdf()); await Bun.write(join(directory, "drawing-manifest.json"), JSON.stringify({ crops: [crop] })); From bc722cbc2eaf6e6cecdb468527a8d31af7fbcdd1 Mon Sep 17 00:00:00 2001 From: Stephen Frederick Date: Mon, 9 Nov 2026 16:22:21 -0500 Subject: [PATCH 2/9] Rename saved identifiers, cloud names and the icon to Second Set Migration 0014 renames saved instruction identifiers from moke- to second-set-, so stored reviews read second-set-packet-review-v10. Provider attempts, tool results and SAM records stay byte for byte. New reviews use second-set-packet-review-v11 and count prompt second-set-selected-coordination-v3, which change only the name in model-facing text. Cloud protocol 6 moves the worker to /second-set, reads SECOND_SET_ variables and the SECOND_SET_API_KEY secret key, and defaults to the second-set-reviews App and second-set-review-engine image. Jobs already sent to a protocol-5 worker are still read from /moke. MOKE_ environment variables become SECOND_SET_. Packages export as second-set-review-package and older moke-review-package files restore. Window settings and report completion move to new keys and still read the old ones. The icon now draws a drawing sheet over the set behind it, and scripts/build-icons.ts renders every raster with resvg. Render identities and the Pi extension name keep their old values: renders hash the first, and journals may name the second. Co-Authored-By: Claude Opus 5.5 --- .env.example | 12 +- backend/cloud/cache.ts | 2 +- backend/cloud/contracts.ts | 9 +- backend/cloud/modal.ts | 79 ++++++----- backend/cloud/progress.ts | 80 ++++++----- backend/cloud/service.ts | 2 +- backend/cloud/worker-main.ts | 28 ++-- backend/documents/artifact-store.ts | 2 +- backend/documents/pdf-worker-main.ts | 12 +- backend/documents/worker-client.ts | 2 +- backend/inference/provider.ts | 4 +- backend/inference/segmentation.ts | 2 +- backend/packet-review/jurisdiction.ts | 2 +- backend/packet-review/report.ts | 10 +- backend/packet-review/service.ts | 3 +- backend/review/packages.ts | 3 +- backend/review/prompts/README.md | 11 +- backend/review/prompts/provenance.json | 4 +- backend/review/prompts/review-prompt.ts | 8 +- backend/segmentation/inventory-report.ts | 8 +- backend/segmentation/meta-review.ts | 2 +- backend/segmentation/sam.ts | 2 +- desktop/connection-check.ts | 2 +- desktop/credentials.ts | 10 +- desktop/icons/README.md | 24 +--- desktop/icons/icon-full-bleed.svg | 20 ++- desktop/icons/icon.icns | Bin 189928 -> 188405 bytes desktop/icons/icon.ico | Bin 372526 -> 28426 bytes desktop/icons/icon.png | Bin 74145 -> 86880 bytes desktop/icons/icon.svg | 21 +-- desktop/main.ts | 2 +- desktop/modal-credentials.ts | 10 +- desktop/preload.ts | 5 +- docs/architecture/review-packages.md | 2 +- docs/cloud-reviews.md | 54 +++++--- docs/data.md | 8 ++ docs/deployment.md | 4 +- docs/development.md | 2 +- docs/inference.md | 4 +- docs/screenshots/README.md | 10 +- docs/validation/core-validation.md | 2 +- migrations/0014_second_set_identifiers.sql | 36 +++++ scripts/build-icons.ts | 61 +++++++++ scripts/desktop-test-environment.ts | 9 +- scripts/isolated-desktop.ts | 20 +-- scripts/modal.ts | 19 +-- scripts/validate-cloud.ts | 4 +- src/app.d.ts | 2 +- .../components/CloudReviewControls.svelte | 7 +- .../review/components/ReviewWorkbench.svelte | 11 +- src/lib/review/contracts.ts | 3 +- src/lib/review/packages.ts | 7 +- src/lib/review/stored-setting.ts | 32 +++++ tests/e2e/credentials.spec.ts | 6 +- tests/e2e/initial-review.spec.ts | 12 +- tests/e2e/isolated-electron.ts | 10 +- tests/e2e/packet.spec.ts | 10 +- tests/e2e/polish.spec.ts | 2 +- tests/e2e/review.spec.ts | 6 +- tests/e2e/sheet-setup.spec.ts | 2 +- tests/e2e/workbench-fixture.ts | 5 +- tests/fixtures/review-operations.ts | 2 +- tests/smoke/cloud-cache.test.ts | 2 +- tests/smoke/cloud-reviews.test.ts | 32 ++++- tests/smoke/cloud-workspace.test.ts | 8 ++ tests/smoke/custom-endpoint.test.ts | 4 +- tests/smoke/desktop-test-environment.test.ts | 12 +- tests/smoke/documents.test.ts | 10 +- tests/smoke/opencode-go.test.ts | 2 +- tests/smoke/packet-report.test.ts | 6 +- tests/smoke/render-reuse.test.ts | 8 +- tests/smoke/second-set-identifiers.test.ts | 128 ++++++++++++++++++ 72 files changed, 666 insertions(+), 279 deletions(-) create mode 100644 migrations/0014_second_set_identifiers.sql create mode 100644 scripts/build-icons.ts create mode 100644 src/lib/review/stored-setting.ts create mode 100644 tests/smoke/second-set-identifiers.test.ts diff --git a/.env.example b/.env.example index f8a1908a..1343cc90 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ # Local configuration only. Never place provider credentials in client variables. # Desktop provider: meta by default, baseten, or opencode-go. -MOKE_PROVIDER=meta +SECOND_SET_PROVIDER=meta # Meta Model API hackathon key. Meta's docs call this MODEL_API_KEY. MODEL_API_KEY= @@ -24,10 +24,10 @@ OPENCODE_API_KEY= MODAL_TOKEN_ID= MODAL_TOKEN_SECRET= MODAL_ENVIRONMENT=main -MOKE_MODAL_APP=moke-reviews -MOKE_MODAL_IMAGE=moke-review-engine:latest -MOKE_MODAL_TIMEOUT_MINUTES=15 +SECOND_SET_MODAL_APP=second-set-reviews +SECOND_SET_MODAL_IMAGE=second-set-review-engine:latest +SECOND_SET_MODAL_TIMEOUT_MINUTES=15 # Optional short-lived warm sandbox; omit to avoid idle compute charges. -# MOKE_MODAL_POOL_QUEUE=moke-review-pool +# SECOND_SET_MODAL_POOL_QUEUE=second-set-review-pool # Packaged builds: private JSON configuration, permissions 600 on Unix. -# MOKE_MODAL_CONFIG=/absolute/path/to/modal-session.json +# SECOND_SET_MODAL_CONFIG=/absolute/path/to/modal-session.json diff --git a/backend/cloud/cache.ts b/backend/cloud/cache.ts index 642df68c..52befc1f 100644 --- a/backend/cloud/cache.ts +++ b/backend/cloud/cache.ts @@ -75,7 +75,7 @@ export const writeCloudCacheState = (path: string, state: CloudCacheState) => * letters, digits, dashes, periods and underscores, and must be shorter than 64 characters. */ export const cloudCacheVolumeName = (appName: string, id: string) => - `${appName}-cache-${id}`.length < 64 ? `${appName}-cache-${id}` : `moke-cache-${id}`; + `${appName}-cache-${id}`.length < 64 ? `${appName}-cache-${id}` : `second-set-cache-${id}`; /** Content-addressed originals and renders in the local artifact store. */ export const listLocalArtifacts = (dataDirectory: string) => diff --git a/backend/cloud/contracts.ts b/backend/cloud/contracts.ts index d40c7d05..42fba902 100644 --- a/backend/cloud/contracts.ts +++ b/backend/cloud/contracts.ts @@ -22,7 +22,8 @@ import { codeIndexVersion } from "../review/code-index/code-index.ts"; export const cloudEngineIdentity = { // Protocol 4 workers read unchanged source files from the workspace cache Volume. // Protocol 5 workers add the Florida code index, code search and PDF source text. - protocol: 5, + // Protocol 6 workers keep their files under /second-set and read SECOND_SET_ variables. + protocol: 6, engine: packageEngineFormat, prompt: reviewPromptVersion, instructions: reviewInstructionRevision, @@ -69,7 +70,7 @@ export const CloudReviewRecord = Schema.Struct({ id: CloudReviewId, // Unmarked receipts predate protocol-aware admission and may name a running v2 worker. // Protocol 3 receipts remain readable so already dispatched work can still return. - workerProtocol: Schema.optionalKey(Schema.Literals([3, 4, cloudEngineIdentity.protocol])), + workerProtocol: Schema.optionalKey(Schema.Literals([3, 4, 5, cloudEngineIdentity.protocol])), revision: Schema.Int.pipe(Schema.withDecodingDefaultKey(Effect.succeed(0))), syncFailure: Schema.NullOr(CloudReviewError).pipe( Schema.withDecodingDefaultKey(Effect.succeed(null)), @@ -100,6 +101,10 @@ export const CloudReviewRecord = Schema.Struct({ /** Persisted record type stays private to cloud application and adapters. */ export type CloudReviewRecord = typeof CloudReviewRecord.Type; +/** Workers before protocol 6 shipped under the MOKE name and keep their files under /moke. */ +export const cloudWorkerRoot = (record: Pick) => + record.workerProtocol === cloudEngineIdentity.protocol ? "/second-set" : "/moke"; + /** * Provider injection uses the canonical application route and a separately supplied secret. A * custom endpoint is not a cloud route: its key stays on the computer that saved it. diff --git a/backend/cloud/modal.ts b/backend/cloud/modal.ts index 6afaacee..f0139b30 100644 --- a/backend/cloud/modal.ts +++ b/backend/cloud/modal.ts @@ -23,6 +23,7 @@ import { cloudEngineIdentity, cloudProviderEndpoints, cloudWorkerMinimumTimeoutMs, + cloudWorkerRoot, type CloudReviewRecord, } from "./contracts.ts"; import { CloudSandbox } from "./service.ts"; @@ -79,13 +80,13 @@ class ModalRequestFailure extends Schema.TaggedError()("Mod /** Readiness checks use the worker itself, without exposing a public HTTP tunnel. */ export const modalReadinessProbe = () => - Probe.withExec(["bun", "/opt/moke/worker.mjs", "--identity"]); + Probe.withExec(["bun", "/opt/second-set/worker.mjs", "--identity"]); /** Pooled sandboxes start without credentials and can later receive an outbound policy. */ export const emptyReviewOutboundPolicy = () => new ExperimentalOutboundPolicy().withHeaderReplacement({ domain: "api.meta.ai", - headers: { "X-Moke-Sandbox": "review" }, + headers: { "X-Second-Set-Sandbox": "review" }, }); /** Bounded review capacity shared by cold allocation and optional warm capacity. */ @@ -146,12 +147,12 @@ const retainScript = ( ), ].join("\n"); -/** Delete cached files outside the keep list, which the caller writes to /tmp/moke-keep. */ +/** Delete cached files outside the keep list, which the caller writes to /tmp/second-set-keep. */ const pruneCacheScript = `set -eu mkdir -p ${cacheFolder} -ls -1 ${cacheFolder} | sort > /tmp/moke-have -sort -u /tmp/moke-keep > /tmp/moke-keep-sorted -comm -23 /tmp/moke-have /tmp/moke-keep-sorted | while read -r hash; do rm -f -- "${cacheFolder}/$hash"; done +ls -1 ${cacheFolder} | sort > /tmp/second-set-have +sort -u /tmp/second-set-keep > /tmp/second-set-keep-sorted +comm -23 /tmp/second-set-have /tmp/second-set-keep-sorted | while read -r hash; do rm -f -- "${cacheFolder}/$hash"; done sync /cache`; /** Official Modal SDK adapter; API keys are injected into outbound HTTPS outside the workload. */ @@ -218,7 +219,7 @@ export const modalSandboxLayer = ( const identity = Effect.fn("Modal.identity")(function* (sandbox: Sandbox) { const text = yield* modalCall(async () => { - const process = await sandbox.exec(["bun", "/opt/moke/worker.mjs", "--identity"], { + const process = await sandbox.exec(["bun", "/opt/second-set/worker.mjs", "--identity"], { timeoutMs: 15_000, }); @@ -347,7 +348,7 @@ export const modalSandboxLayer = ( experimentalOptions: { enable_exit_snapshot: true }, experimentalOutboundPolicy: emptyReviewOutboundPolicy(), readinessProbe: modalReadinessProbe(), - tags: { "moke-kind": "review", "moke-job": record.id }, + tags: { "second-set-kind": "review", "second-set-job": record.id }, }; if (cache !== null) params.volumes = cache; @@ -388,9 +389,9 @@ export const modalSandboxLayer = ( }), ); - yield* modalCall(() => recovery.mountImage("/moke/output", snapshot)).pipe( - Effect.tapError(() => modalCall(() => recovery.terminate()).pipe(Effect.ignore)), - ); + yield* modalCall(() => + recovery.mountImage(`${cloudWorkerRoot(record)}/output`, snapshot), + ).pipe(Effect.tapError(() => modalCall(() => recovery.terminate()).pipe(Effect.ignore))); return { sandbox: recovery, recovery: true, sourceStopped: false }; } @@ -459,14 +460,14 @@ export const modalSandboxLayer = ( yield* modalCall(() => client.secrets.fromName(`${config.appName}-${provider.provider}-api`, { environment: config.environment, - requiredKeys: ["MOKE_API_KEY"], + requiredKeys: ["SECOND_SET_API_KEY"], }), ).pipe( Effect.mapError( () => new CloudReviewError({ reason: "configuration", - message: `The cloud ${provider.provider === "baseten" ? "Muse Spark Open" : reviewProviderRoutes[provider.provider].label} connection is missing or inaccessible. Configure the matching provider secret with MOKE_API_KEY in Modal before sending. Your workspace has not been uploaded.`, + message: `The cloud ${provider.provider === "baseten" ? "Muse Spark Open" : reviewProviderRoutes[provider.provider].label} connection is missing or inaccessible. Configure the matching provider secret with SECOND_SET_API_KEY in Modal before sending. Your workspace has not been uploaded.`, }), ), ); @@ -489,7 +490,7 @@ export const modalSandboxLayer = ( cpuLimit: 1, memoryMiB: 2048, memoryLimitMiB: 2048, - tags: { "moke-kind": "preflight" }, + tags: { "second-set-kind": "preflight" }, }), ), (probe) => modalCall(() => probe.terminate({ wait: true })).pipe(Effect.ignore), @@ -510,7 +511,7 @@ export const modalSandboxLayer = ( const iterator = yield* Effect.acquireRelease( Effect.sync(() => sandbox.filesystem - .watch("/moke", { + .watch(cloudWorkerRoot(record), { recursive: false, filter: ["Create", "Modify"], timeoutMs: 30_000, @@ -537,7 +538,9 @@ export const modalSandboxLayer = ( Effect.mapError(unavailable), ), ), - Stream.filter((event) => event.paths.includes("/moke/progress.json")), + Stream.filter((event) => + event.paths.includes(`${cloudWorkerRoot(record)}/progress.json`), + ), Stream.map(() => undefined), ); }), @@ -562,10 +565,15 @@ export const modalSandboxLayer = ( modalCall(() => sandbox.filesystem.copyFromLocal( join(source, file.path), - `/moke/input/${file.path}`, + `${cloudWorkerRoot(record)}/input/${file.path}`, ), ), - modalCall(() => sandbox.filesystem.writeText(text, "/moke/input/manifest.json")), + modalCall(() => + sandbox.filesystem.writeText( + text, + `${cloudWorkerRoot(record)}/input/manifest.json`, + ), + ), report, (file) => cached.get(file.sha256) === file.bytes, ); @@ -577,12 +585,12 @@ export const modalSandboxLayer = ( request: record.request, timeoutMs: config.timeoutMinutes * 60_000, }), - "/moke/request.json", + `${cloudWorkerRoot(record)}/request.json`, ), ); const checkpoint = yield* modalCall(() => - sandbox.snapshotDirectory("/moke", { ttlMs: 7 * 24 * 60 * 60_000 }), + sandbox.snapshotDirectory(cloudWorkerRoot(record), { ttlMs: 7 * 24 * 60 * 60_000 }), ); return checkpoint.imageId; @@ -609,7 +617,7 @@ export const modalSandboxLayer = ( request: record.request, timeoutMs: remainingMs, }), - "/moke/request.json", + `${cloudWorkerRoot(record)}/request.json`, ), ); const providers = [provider, ...alternatives]; @@ -625,14 +633,14 @@ export const modalSandboxLayer = ( const secret = yield* modalCall(() => client.secrets.fromName(`${record.appName}-${connection.provider}-api`, { environment: record.environment, - requiredKeys: ["MOKE_API_KEY"], + requiredKeys: ["SECOND_SET_API_KEY"], }), ); policy = policy.withHeaderReplacement({ domain: new URL(connection.baseUrl).hostname, secret, - headers: { Authorization: "Bearer $MOKE_API_KEY" }, + headers: { Authorization: "Bearer $SECOND_SET_API_KEY" }, }); } @@ -646,8 +654,8 @@ export const modalSandboxLayer = ( ); yield* modalCall(async () => { - const process = await sandbox.exec(["bun", "/opt/moke/worker.mjs"], { - env: { MOKE_CLOUD_PROVIDERS: JSON.stringify(routes) }, + const process = await sandbox.exec(["bun", "/opt/second-set/worker.mjs"], { + env: { SECOND_SET_CLOUD_PROVIDERS: JSON.stringify(routes) }, stdout: "ignore", stderr: "ignore", timeoutMs: remainingMs + 60_000, @@ -663,7 +671,9 @@ export const modalSandboxLayer = ( const text = yield* Effect.tryPromise({ try: async () => { try { - return await sandbox.filesystem.readText("/moke/progress.json"); + return await sandbox.filesystem.readText( + `${cloudWorkerRoot(record)}/progress.json`, + ); } catch (error) { if (sourceStopped && error instanceof SandboxFilesystemNotFoundError) return JSON.stringify({ @@ -691,7 +701,9 @@ export const modalSandboxLayer = ( const checkpoint = progress.phase === "ready" ? yield* modalCall(() => - sandbox.snapshotDirectory("/moke/output", { ttlMs: 7 * 24 * 60 * 60_000 }), + sandbox.snapshotDirectory(`${cloudWorkerRoot(record)}/output`, { + ttlMs: 7 * 24 * 60 * 60_000, + }), ) : null; @@ -702,7 +714,7 @@ export const modalSandboxLayer = ( reading(record, (sandbox) => Effect.gen(function* () { const text = yield* modalCall(() => - sandbox.filesystem.readText("/moke/output/manifest.json"), + sandbox.filesystem.readText(`${cloudWorkerRoot(record)}/output/manifest.json`), ); yield* downloadCloudPackage( @@ -711,7 +723,7 @@ export const modalSandboxLayer = ( (file, local) => Effect.gen(function* () { const info = yield* modalCall(() => - sandbox.filesystem.stat(`/moke/output/${file.path}`), + sandbox.filesystem.stat(`${cloudWorkerRoot(record)}/output/${file.path}`), ); if (info.type !== "file" || info.size !== file.bytes) @@ -720,7 +732,10 @@ export const modalSandboxLayer = ( message: "A cloud package file changed before download.", }); yield* modalCall(() => - sandbox.filesystem.copyToLocal(`/moke/output/${file.path}`, local), + sandbox.filesystem.copyToLocal( + `${cloudWorkerRoot(record)}/output/${file.path}`, + local, + ), ); }), report, @@ -774,7 +789,7 @@ export const modalSandboxLayer = ( cpu: 0.25, memoryMiB: 512, volumes: { "/cache": volume }, - tags: { "moke-kind": "cache" }, + tags: { "second-set-kind": "cache" }, }), ), (sandbox) => modalCall(() => sandbox.terminate({ wait: true })).pipe(Effect.ignore), @@ -836,7 +851,7 @@ export const modalSandboxLayer = ( if (keep !== null && !(yield* request.paused)) { yield* modalCall(() => - uploader.filesystem.writeText(`${keep.join("\n")}\n`, "/tmp/moke-keep"), + uploader.filesystem.writeText(`${keep.join("\n")}\n`, "/tmp/second-set-keep"), ); yield* script(pruneCacheScript); } diff --git a/backend/cloud/progress.ts b/backend/cloud/progress.ts index 7687c64c..58053c50 100644 --- a/backend/cloud/progress.ts +++ b/backend/cloud/progress.ts @@ -1,6 +1,17 @@ import { Effect, Schema, Struct } from "effect"; import { CloudReviewError } from "#lib/review/cloud.ts"; -import { CloudEngineIdentity, CloudWorkerProgress, type CloudReviewRecord } from "./contracts.ts"; +import { + CloudEngineIdentity, + CloudWorkerProgress, + cloudEngineIdentity, + type CloudReviewRecord, +} from "./contracts.ts"; + +/** + * Workers before protocol 6 shipped as MOKE. Their progress files still announce the instruction + * names they were built with, so recovery matches those exact strings. + */ +const legacyPrompt = Schema.Literal("moke-selected-coordination-v2"); /** Workers from earlier protocols, as built with any packet prompt they shipped with. */ const priorWorkerProgress = ( @@ -13,6 +24,7 @@ const priorWorkerProgress = ( // The code index entered the identity with protocol 5. ...CloudEngineIdentity.mapFields(Struct.omit(["codeIndex"])).fields, protocol: Schema.Literal(protocol), + prompt: legacyPrompt, packetPrompt: Schema.Literals(packetPrompts), }), }); @@ -30,33 +42,34 @@ const Protocol4CloudWorkerProgress = priorWorkerProgress(4, [ "moke-packet-review-v5", ]); -// Earlier protocol-5 images used packet prompts v6 or v7 with the v1 index, v8 with v2, then v9 with v3. -const Protocol5CloudWorkerProgress = Schema.Union([ - CloudWorkerProgress, - Schema.Struct({ - ...CloudWorkerProgress.fields, - identity: Schema.Struct({ - ...CloudEngineIdentity.fields, - packetPrompt: Schema.Literals(["moke-packet-review-v6", "moke-packet-review-v7"]), - codeIndex: Schema.Literal("florida-code-index-v1"), - }), - }), - Schema.Struct({ - ...CloudWorkerProgress.fields, - identity: Schema.Struct({ - ...CloudEngineIdentity.fields, - packetPrompt: Schema.Literal("moke-packet-review-v8"), - codeIndex: Schema.Literal("florida-code-index-v2"), - }), - }), +const protocol5WorkerProgress = ( + packetPrompts: ReadonlyArray<`moke-packet-review-v${6 | 7 | 8 | 9 | 10}`>, + codeIndex: `florida-code-index-v${1 | 2 | 3}`, +) => Schema.Struct({ ...CloudWorkerProgress.fields, identity: Schema.Struct({ ...CloudEngineIdentity.fields, - packetPrompt: Schema.Literal("moke-packet-review-v9"), - codeIndex: Schema.Literal("florida-code-index-v3"), + protocol: Schema.Literal(5), + prompt: legacyPrompt, + packetPrompt: Schema.Literals(packetPrompts), + codeIndex: Schema.Literal(codeIndex), }), - }), + }); + +// Protocol-5 images used packet prompts v6 or v7 with the v1 index, v8 with v2, then v9 and v10 +// with v3. A stopped source's synthesized failure carries the current identity. +const Protocol5CloudWorkerProgress = Schema.Union([ + CloudWorkerProgress, + protocol5WorkerProgress( + ["moke-packet-review-v6", "moke-packet-review-v7"], + "florida-code-index-v1", + ), + protocol5WorkerProgress(["moke-packet-review-v8"], "florida-code-index-v2"), + protocol5WorkerProgress( + ["moke-packet-review-v9", "moke-packet-review-v10"], + "florida-code-index-v3", + ), ]); /** Unmarked receipts were saved by protocol 2 or 3 desktops, never by protocol 4. */ @@ -93,18 +106,19 @@ export const parseCloudWorkerProgress = Effect.fn("parseCloudWorkerProgress")(fu }); // Old receipts also include v3 jobs saved before this marker was introduced. Only - // observation of already dispatched work can accept protocols 2 to 4; this never admits a request. + // observation of already dispatched work can accept protocols 2 to 5; this never admits a request. const dispatched = record.phase === "dispatching" || record.phase === "running"; - const schema = !dispatched - ? CloudWorkerProgress - : record.workerProtocol === undefined - ? UnmarkedCloudWorkerProgress - : record.workerProtocol === 3 - ? Protocol3CloudWorkerProgress - : record.workerProtocol === 4 - ? Protocol4CloudWorkerProgress - : Protocol5CloudWorkerProgress; + const schema = + !dispatched || record.workerProtocol === cloudEngineIdentity.protocol + ? CloudWorkerProgress + : record.workerProtocol === undefined + ? UnmarkedCloudWorkerProgress + : record.workerProtocol === 3 + ? Protocol3CloudWorkerProgress + : record.workerProtocol === 4 + ? Protocol4CloudWorkerProgress + : Protocol5CloudWorkerProgress; const progress = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(text).pipe( Effect.mapError( diff --git a/backend/cloud/service.ts b/backend/cloud/service.ts index bc302b61..47c24d7d 100644 --- a/backend/cloud/service.ts +++ b/backend/cloud/service.ts @@ -623,7 +623,7 @@ export class CloudReviews extends Context.Service< sandboxId: null, inputSnapshotId: null, resultSnapshotId: null, - sandboxName: `moke-review-${id}`, + sandboxName: `second-set-review-${id}`, appName: config.modal.appName, environment: config.modal.environment, ...versions, diff --git a/backend/cloud/worker-main.ts b/backend/cloud/worker-main.ts index 8ce6e0c3..2c98b5a1 100644 --- a/backend/cloud/worker-main.ts +++ b/backend/cloud/worker-main.ts @@ -23,7 +23,7 @@ const failed = () => const main = Effect.scoped( Effect.gen(function* () { const text = yield* Effect.tryPromise({ - try: () => readFile("/moke/request.json", "utf8"), + try: () => readFile("/second-set/request.json", "utf8"), catch: failed, }); @@ -31,13 +31,13 @@ const main = Effect.scoped( const [provider, ...alternatives] = yield* Schema.decodeUnknownEffect( Schema.fromJsonString(CloudProviders), - )(process.env.MOKE_CLOUD_PROVIDERS); + )(process.env.SECOND_SET_CLOUD_PROVIDERS); // This exclusive marker fences even two exec requests with an ambiguous delivery outcome. yield* Effect.tryPromise({ try: async () => { - await mkdir("/moke", { recursive: true, mode: 0o700 }); - const file = await open("/moke/dispatch.lock", "wx", 0o600); + await mkdir("/second-set", { recursive: true, mode: 0o700 }); + const file = await open("/second-set/dispatch.lock", "wx", 0o600); try { await file.writeFile(job.id); @@ -51,7 +51,7 @@ const main = Effect.scoped( const progress = (update: Omit) => writeCloudFile( - "/moke/progress.json", + "/second-set/progress.json", JSON.stringify({ id: job.id, identity: cloudEngineIdentity, ...update }), ); @@ -65,7 +65,7 @@ const main = Effect.scoped( }); // Files the desktop skipped come from the read-only workspace cache, checked by hash. - yield* materializeCloudInput("/moke/input", "/cache").pipe( + yield* materializeCloudInput("/second-set/input", "/cache").pipe( Effect.tapError((error) => Effect.sync(() => { failure = `${error.message} No model calls were made.`; @@ -74,16 +74,16 @@ const main = Effect.scoped( ); const config = new BackendConfig({ - dataDirectory: "/moke/workspace", - migrationDirectory: "/opt/moke/migrations", + dataDirectory: "/second-set/workspace", + migrationDirectory: "/opt/second-set/migrations", token: Redacted.make(crypto.randomUUID()), inference: provider, inferenceAlternatives: alternatives, processing: { - workerCommand: ["bun", "/opt/moke/pdf-worker.mjs"], - assetsDirectory: "/opt/moke/node_modules/pdfjs-dist", + workerCommand: ["bun", "/opt/second-set/pdf-worker.mjs"], + assetsDirectory: "/opt/second-set/node_modules/pdfjs-dist", nativeLibraryPath: - "/opt/moke/node_modules/@napi-rs/canvas-linux-x64-gnu/skia.linux-x64-gnu.node", + "/opt/second-set/node_modules/@napi-rs/canvas-linux-x64-gnu/skia.linux-x64-gnu.node", }, }); @@ -107,11 +107,13 @@ const main = Effect.scoped( callbacks = runtime; const application = yield* Effect.promise(() => runtime.runPromise(Application)); - yield* Effect.promise(() => runtime.runPromise(application.restorePackage("/moke/input"))); + yield* Effect.promise(() => + runtime.runPromise(application.restorePackage("/second-set/input")), + ); yield* Effect.promise(() => runtime.runPromise( - runCloudReview(application, job.request, job.timeoutMs, "/moke/output", progress), + runCloudReview(application, job.request, job.timeoutMs, "/second-set/output", progress), ), ); }); diff --git a/backend/documents/artifact-store.ts b/backend/documents/artifact-store.ts index bab2e803..db710d77 100644 --- a/backend/documents/artifact-store.ts +++ b/backend/documents/artifact-store.ts @@ -92,7 +92,7 @@ export const storeBytes = Effect.fnUntraced(function* ( }); /** Stored artifact bytes read and hashed to verify them against their content hash. */ -export const artifactBytesVerified = Metric.counter("moke_artifact_bytes_verified", { +export const artifactBytesVerified = Metric.counter("second_set_artifact_bytes_verified", { description: "Stored artifact bytes read and hashed to verify their content hash.", incremental: true, }); diff --git a/backend/documents/pdf-worker-main.ts b/backend/documents/pdf-worker-main.ts index 207bcaab..ade8c671 100644 --- a/backend/documents/pdf-worker-main.ts +++ b/backend/documents/pdf-worker-main.ts @@ -1,6 +1,6 @@ /** * Standalone PDF worker: schema-validated NDJSON on stdin/stdout. - * Run under Bun with `MOKE_PDFJS_ASSETS` and `NAPI_RS_NATIVE_LIBRARY_PATH` set. + * Run under Bun with `SECOND_SET_PDFJS_ASSETS` and `NAPI_RS_NATIVE_LIBRARY_PATH` set. */ import { createCanvas } from "@napi-rs/canvas"; import { getDocument, GlobalWorkerOptions } from "pdfjs-dist/legacy/build/pdf.mjs"; @@ -22,10 +22,10 @@ import { WorkerTextResult, } from "./worker-messages.ts"; -const assetsRoot = process.env.MOKE_PDFJS_ASSETS; +const assetsRoot = process.env.SECOND_SET_PDFJS_ASSETS; if (!assetsRoot) { - console.error(JSON.stringify({ fatal: "MOKE_PDFJS_ASSETS is required." })); + console.error(JSON.stringify({ fatal: "SECOND_SET_PDFJS_ASSETS is required." })); process.exit(2); } @@ -413,13 +413,13 @@ async function handleRequest(line: string) { } // Test hooks: record each accepted job with this process ID, then hold it before PDF work. - const started = process.env.MOKE_PDF_WORKER_STARTED_DIRECTORY; + const started = process.env.SECOND_SET_PDF_WORKER_STARTED_DIRECTORY; if (started) writeFileSync(join(started, `${decoded._tag}.${randomUUID()}`), String(process.pid)); - if (process.env.MOKE_PDF_WORKER_DELAY_MS) { + if (process.env.SECOND_SET_PDF_WORKER_DELAY_MS) { await new Promise((resolve) => - setTimeout(resolve, Number(process.env.MOKE_PDF_WORKER_DELAY_MS)), + setTimeout(resolve, Number(process.env.SECOND_SET_PDF_WORKER_DELAY_MS)), ); } diff --git a/backend/documents/worker-client.ts b/backend/documents/worker-client.ts index 4c8fa52b..1f903036 100644 --- a/backend/documents/worker-client.ts +++ b/backend/documents/worker-client.ts @@ -35,7 +35,7 @@ export const openPdfWorker = Effect.fn("openPdfWorker")(function* (config: Docum stderr: "inherit", env: { ...process.env, - MOKE_PDFJS_ASSETS: config.assetsDirectory, + SECOND_SET_PDFJS_ASSETS: config.assetsDirectory, NAPI_RS_NATIVE_LIBRARY_PATH: config.nativeLibraryPath, NODE_PATH: join(config.assetsDirectory, "..", "modules"), BUN_OPTIONS: "", diff --git a/backend/inference/provider.ts b/backend/inference/provider.ts index 8247db29..c784b146 100644 --- a/backend/inference/provider.ts +++ b/backend/inference/provider.ts @@ -253,7 +253,7 @@ function refusalDelay(retryAfterMs: number | undefined, retry: number) { export function promptCacheKey(role: string, ...prefix: ReadonlyArray) { const digest = createHash("sha256").update(JSON.stringify(prefix)).digest("hex"); - return `moke-${role}-${digest.slice(0, 32)}`; + return `second-set-${role}-${digest.slice(0, 32)}`; } /** @@ -646,7 +646,7 @@ export function createAdmittedModels( const serverOutputLimit = selected.provider === "baseten" || custom !== null; // Pi supplies each conversation's durable session; a request outside one gets this adapter's. - const fallbackSession = `moke-${randomUUID()}`; + const fallbackSession = `second-set-${randomUUID()}`; /** Send one image to the Files API once a slot is free; any failure or stop leaves it inline. */ const uploadImage = (image: string, sha256: string, signal: AbortSignal) => diff --git a/backend/inference/segmentation.ts b/backend/inference/segmentation.ts index b40b699d..49bda5ff 100644 --- a/backend/inference/segmentation.ts +++ b/backend/inference/segmentation.ts @@ -232,7 +232,7 @@ export class ReviewSegmentation extends Context.Service< projectId: typeof ProjectId.Type, ) => Effect.Effect, ExecutionError>; } ->()("moke/ReviewSegmentation") { +>()("second-set/ReviewSegmentation") { /** One parent-owned runtime supplies cancellation and callbacks; this layer starts no runtime. */ static layer(config: ReviewSegmentationConfiguration) { return Layer.sync(ReviewSegmentation, () => { diff --git a/backend/packet-review/jurisdiction.ts b/backend/packet-review/jurisdiction.ts index 2a87a7f2..c4342226 100644 --- a/backend/packet-review/jurisdiction.ts +++ b/backend/packet-review/jurisdiction.ts @@ -246,7 +246,7 @@ export function jurisdictionHistory( return { history: { jurisdiction, - note: "Leads from earlier MOKE reviews in this workspace, matched by state or locality. They are not evidence for this project. Read a source again with read_source and confirm its edition and applicability before citing it. Check an earlier agency comment against the current drawings before recording anything.", + note: "Leads from earlier Second Set reviews in this workspace, matched by state or locality. They are not evidence for this project. Read a source again with read_source and confirm its edition and applicability before citing it. Check an earlier agency comment against the current drawings before recording anything.", earlierReviews: reviews.map(({ review, value, match }) => ({ projectName: review.projectName, jurisdiction: clip(value, 200), diff --git a/backend/packet-review/report.ts b/backend/packet-review/report.ts index 4a4ed3c0..e683fb27 100644 --- a/backend/packet-review/report.ts +++ b/backend/packet-review/report.ts @@ -168,7 +168,10 @@ export function renderPacketReport( ? "Review has unresolved coverage or inputs" : "Review in progress or incomplete"; - const storageKey = `moke:packet-report:${review.projectId}:${review.id}:v${review.version}`; + const storageKey = `second-set:packet-report:${review.projectId}:${review.id}:v${review.version}`; + + // Reports exported before the rename from MOKE saved completion under this key. + const legacyStorageKey = `moke:packet-report:${review.projectId}:${review.id}:v${review.version}`; const evidenceImage = (id: string, caption: string) => { const uri = evidence.get(id); @@ -253,7 +256,7 @@ export function renderPacketReport( return ` ${escape(review.projectName)} — Second Set drawing review -
+

Second Set · Drawing review

${escape(review.projectName)}

${escape(scope)}

${escape(reviewState)}

Review summary

${escape(coverageSummary)}

${paragraph(review.summary || "No review summary has been recorded.")}${review.error ? `

${escape(review.error)}

` : ""}

This report records the requested scope and evidence below. User completion tracking is separate from finding status, engineering acceptance and reviewer-verified prior-comment closure.

Request

${paragraph(review.request)}

Missing inputs

${list(review.missingInputs, "No missing inputs were recorded.")}${gaps.length ? `

Coverage requiring follow-up

${list(gaps, "")}` : ""}

${review.citations.length === 0 ? "No governing citations were recorded; regulatory conclusions remain unverified." : `${unresolvedCitations} of ${review.citations.length} citations remain unverified or incorrect.`}

Project configuration and governing sources

${ @@ -326,6 +329,7 @@ const completionScript = ` (() => { const root = document.querySelector('main'); const key = root && root.dataset.storageKey; + const legacyKey = root && root.dataset.legacyStorageKey; const controls = Array.from(document.querySelectorAll('input[data-completion-id]')); const labels = Array.from(document.querySelectorAll('[data-completion-label]')); const notice = document.getElementById('completion-storage'); @@ -345,7 +349,7 @@ const completionScript = ` } }; try { - const saved = key ? localStorage.getItem(key) : null; + const saved = key ? (localStorage.getItem(key) ?? (legacyKey ? localStorage.getItem(legacyKey) : null)) : null; if (saved) { const value = JSON.parse(saved); if (value && typeof value === 'object' && !Array.isArray(value)) { diff --git a/backend/packet-review/service.ts b/backend/packet-review/service.ts index 2302a901..5020955e 100644 --- a/backend/packet-review/service.ts +++ b/backend/packet-review/service.ts @@ -1833,7 +1833,7 @@ export class PacketReviews extends Context.Service< ), tool( "search_code", - "Search Moke's Florida code index for the section, statute or rule that governs a check: 2023 FBC sections with plan review notes, Florida Statutes, Florida Administrative Code rules, and 9th Edition volumes. Results are pointers with links, not code text. Cite one with record_citation and its id as codeReferenceId.", + "Search Second Set's Florida code index for the section, statute or rule that governs a check: 2023 FBC sections with plan review notes, Florida Statutes, Florida Administrative Code rules, and 9th Edition volumes. Results are pointers with links, not code text. Cite one with record_citation and its id as codeReferenceId.", Schema.Struct({ query: Schema.Trim.check(Schema.isMinLength(2), Schema.isMaxLength(500)), limit: Schema.optionalKey( @@ -2857,6 +2857,7 @@ export class PacketReviews extends Context.Service< ); registry.install( defineExtension({ + // Journals may name this extension, so it keeps the name it shipped with. name: "moke-packet-review-v1", tools, hooks: [ diff --git a/backend/review/packages.ts b/backend/review/packages.ts index 6020237a..0b82f2d6 100644 --- a/backend/review/packages.ts +++ b/backend/review/packages.ts @@ -27,6 +27,7 @@ import { PackageRunSnapshot, RestoredRun, packageEngineFormat, + packageFormat, packageFormatVersion, } from "#lib/review/packages.ts"; import { exportDatabase } from "../database-files.ts"; @@ -1413,7 +1414,7 @@ const writeApplicationPackage = ( const createdAt = new Date(yield* Clock.currentTimeMillis).toISOString(); const manifest = new PackageManifest({ - format: "moke-review-package", + format: packageFormat, formatVersion: packageFormatVersion, scope: "application", scopeLabel: "whole-application", diff --git a/backend/review/prompts/README.md b/backend/review/prompts/README.md index 60cdef13..9bf4c2c3 100644 --- a/backend/review/prompts/README.md +++ b/backend/review/prompts/README.md @@ -5,7 +5,7 @@ repository at revision `8a0e2648738018631eaa6d24ee0b6ebaa239afb1`. `provenance.j the upstream paths and SHA-256 hashes. This application does not edit that source. `review-prompt.ts` imports the files with Bun's text loader, embedding them in the -compiled backend. Packet review version `moke-packet-review-v10` supplies the full +compiled backend. Packet review version `second-set-packet-review-v11` supplies the full master AGENTS.md and REVIEW_METHOD.md, including Report and release, as Pi Durable's conversation `agent.instructions`. The reviewer request and document inventory are separate input data. Each run records the prompt version and @@ -94,7 +94,7 @@ a compatible paused review and can extend its optional call budget. Follow-up requests in the same conversation carry prior records and stable issue IDs. Copied package journals remain historical and cannot resume. -The earlier `moke-selected-coordination-v2` adapter remains for existing +The earlier `second-set-selected-coordination-v3` adapter remains for existing selected-count executions. Its narrower tools, limits and scope apply to that specialized protocol. Packet review uses the full system instructions and its own project/conversation root. Both paths preserve reviewer acceptance of @@ -134,3 +134,10 @@ to update by id or mark `Resolved`, and `withdraw_finding` removes a finding rec the same review. A finding that calls an area blank, empty or illegible must cite a focused crop of it, because full-sheet images are too coarse for small text. The prompt adds short severity definitions and forbids test findings. + +Packet review `second-set-packet-review-v11` and count prompt +`second-set-selected-coordination-v3` change only the application's name, from MOKE to +Second Set, in the opening line and the `search_code` description. Versions through v10 +shipped as `moke-packet-review-vN`; migration 0014 renamed saved records to +`second-set-packet-review-vN`, and workers built before the rename still announce the +older names. diff --git a/backend/review/prompts/provenance.json b/backend/review/prompts/provenance.json index b0ec1013..e9cc3fc2 100644 --- a/backend/review/prompts/provenance.json +++ b/backend/review/prompts/provenance.json @@ -2,7 +2,7 @@ "repository": "Author's private review-instruction repository", "revision": "8a0e2648738018631eaa6d24ee0b6ebaa239afb1", "source": "moke-review", - "promptVersion": "moke-selected-coordination-v2", + "promptVersion": "second-set-selected-coordination-v3", "files": [ { "path": "SKILL.md", @@ -75,5 +75,5 @@ "sha256": "b30491a08e7fafbb9c75501c4bc8fc1c01d8f25401c4a6b0bf7baaf95e0d95e4" } ], - "packetPromptVersion": "moke-packet-review-v10" + "packetPromptVersion": "second-set-packet-review-v11" } diff --git a/backend/review/prompts/review-prompt.ts b/backend/review/prompts/review-prompt.ts index ae008266..e4134c67 100644 --- a/backend/review/prompts/review-prompt.ts +++ b/backend/review/prompts/review-prompt.ts @@ -23,7 +23,7 @@ import { findingSummaryInstructions } from "#lib/review/finding-summary.ts"; import { routeReviewDiscipline } from "#lib/review/execution.ts"; /** Version of the bounded runtime adaptation; upstream files are vendored unmodified. */ -export const reviewPromptVersion = "moke-selected-coordination-v2"; +export const reviewPromptVersion = "second-set-selected-coordination-v3"; /** Exact upstream revision retained with runs and proposed observations. */ export const reviewInstructionRevision = provenance.revision; @@ -50,7 +50,7 @@ export function selectedReviewPrompt(context: typeof ExecutionReviewContext.Type : (context?.request.discipline ?? "general"); return [ - `Moke instruction ${reviewPromptVersion}; skills revision ${reviewInstructionRevision}.`, + `Second Set instruction ${reviewPromptVersion}; skills revision ${reviewInstructionRevision}.`, master, // Report rendering and browser-local completion belong to the application. method.split("## Report and release")[0], @@ -74,7 +74,7 @@ export function selectedReviewPrompt(context: typeof ExecutionReviewContext.Type } /** Version of the project-first system prompt used for new packet reviews. */ -export const packetPromptVersion = "moke-packet-review-v10"; +export const packetPromptVersion = "second-set-packet-review-v11"; /** * A review runs as one reviewer, or as a coordinator plus one reviewer per sheet. Large packets @@ -144,7 +144,7 @@ export function packetReviewPrompt( }, ): string { return [ - `Moke instruction ${packetPromptVersion}; skills revision ${reviewInstructionRevision}.`, + `Second Set instruction ${packetPromptVersion}; skills revision ${reviewInstructionRevision}.`, master, method, general, diff --git a/backend/segmentation/inventory-report.ts b/backend/segmentation/inventory-report.ts index 95967e3b..debdbde9 100644 --- a/backend/segmentation/inventory-report.ts +++ b/backend/segmentation/inventory-report.ts @@ -66,7 +66,11 @@ export function inventoryReport( ) .join(""); - const key = JSON.stringify(`moke-fixture-reconciliation:${revision}`).replaceAll("<", "\\u003c"); + const key = JSON.stringify(`second-set-fixture-reconciliation:${revision}`).replaceAll( + "<", + "\\u003c", + ); + const reportRevision = JSON.stringify(revision).replaceAll("<", "\\u003c"); const candidates = JSON.stringify(fixtures).replaceAll("<", "\\u003c"); @@ -84,7 +88,7 @@ function persist(){try{localStorage.setItem(key,JSON.stringify(Object.fromEntrie controls.forEach(c=>c.addEventListener('change',()=>{update();persist();})); document.getElementById('reset').addEventListener('click',()=>{controls.forEach((c,i)=>c.checked=original[i]);update();persist();}); document.getElementById('toggle-masks').addEventListener('click',event=>{const button=event.currentTarget;const show=button.getAttribute('aria-pressed')!=='true';button.setAttribute('aria-pressed',String(show));button.textContent=show?'Show Muse boxes only':'Show SAM masks';document.getElementById('evidence-mode').textContent=show?'Muse candidate; SAM geometry. Compare with the original proposal.':'Muse candidate boxes; SAM masks hidden.';document.querySelectorAll('img[data-evidence]').forEach(img=>img.src=show?img.dataset.maskSrc:img.dataset.boxesSrc);}); -document.getElementById('export-review').addEventListener('click',()=>{const decisions=controls.filter(c=>c.hasAttribute('data-include')).map(c=>({id:c.id.slice(8),decision:c.disabled?'unresolved':c.checked?'included':'excluded'}));const completed=controls.filter(c=>c.hasAttribute('data-completed')).map(c=>({id:c.id,completed:c.checked}));const body=JSON.stringify({reportRevision,candidates,decisions,completed,review:'user tracking; no verified finding closure'},null,2);const url=URL.createObjectURL(new Blob([body],{type:'application/json'}));const anchor=document.createElement('a');anchor.href=url;anchor.download='moke-fixture-review.json';anchor.click();setTimeout(()=>URL.revokeObjectURL(url),1000);}); +document.getElementById('export-review').addEventListener('click',()=>{const decisions=controls.filter(c=>c.hasAttribute('data-include')).map(c=>({id:c.id.slice(8),decision:c.disabled?'unresolved':c.checked?'included':'excluded'}));const completed=controls.filter(c=>c.hasAttribute('data-completed')).map(c=>({id:c.id,completed:c.checked}));const body=JSON.stringify({reportRevision,candidates,decisions,completed,review:'user tracking; no verified finding closure'},null,2);const url=URL.createObjectURL(new Blob([body],{type:'application/json'}));const anchor=document.createElement('a');anchor.href=url;anchor.download='second-set-fixture-review.json';anchor.click();setTimeout(()=>URL.revokeObjectURL(url),1000);}); update(); `; } diff --git a/backend/segmentation/meta-review.ts b/backend/segmentation/meta-review.ts index 744d1099..f95c116d 100644 --- a/backend/segmentation/meta-review.ts +++ b/backend/segmentation/meta-review.ts @@ -170,7 +170,7 @@ export class MetaReviewClient extends Context.Service< readonly results: ReadonlyArray; }) => Effect.Effect; } ->()("moke/MetaReviewClient") { +>()("second-set/MetaReviewClient") { /** Build a no-retry adapter with durable local request/response evidence and a call ceiling. */ static layer(config: typeof MetaReviewConfig.Type, directory: string, maximumRequests: number) { return Layer.effect( diff --git a/backend/segmentation/sam.ts b/backend/segmentation/sam.ts index 1d0d167b..ddfd3797 100644 --- a/backend/segmentation/sam.ts +++ b/backend/segmentation/sam.ts @@ -98,7 +98,7 @@ export class SamClient extends Context.Service< image: Uint8Array, ) => Effect.Effect; } ->()("moke/SamClient") { +>()("second-set/SamClient") { /** Build the fetch adapter without automatic retries of paid requests. */ static layer(config: typeof SamConfig.Type) { return Layer.succeed( diff --git a/desktop/connection-check.ts b/desktop/connection-check.ts index 2c528968..487beffe 100644 --- a/desktop/connection-check.ts +++ b/desktop/connection-check.ts @@ -8,7 +8,7 @@ export type EndpointCheck = | { readonly kind: "unreachable" } | { readonly kind: "unexpected" }; -const checkTool = "moke_connection_check"; +const checkTool = "second_set_connection_check"; /** Only the fields the check reads; everything else in the answer is ignored. */ const Completion = Schema.Struct({ diff --git a/desktop/credentials.ts b/desktop/credentials.ts index 8e691fec..259262e9 100644 --- a/desktop/credentials.ts +++ b/desktop/credentials.ts @@ -86,7 +86,7 @@ async function writeStored(path: string, plain: string) { /** Session file, imported credentials, or (in development only) the environment. */ async function readImportedConfigurations(directory: string, packaged: boolean) { - const sessionFile = process.env.MOKE_SESSION_CREDENTIAL_FILE; + const sessionFile = process.env.SECOND_SET_SESSION_CREDENTIAL_FILE; if (sessionFile !== undefined) return readProviderConfigurations(sessionFile, true); const storedFile = join(directory, importedFile); @@ -106,7 +106,8 @@ async function readImportedConfigurations(directory: string, packaged: boolean) const order = (["meta", "baseten", "opencode-go"] as const).toSorted( (left, right) => - Number(right === process.env.MOKE_PROVIDER) - Number(left === process.env.MOKE_PROVIDER), + Number(right === process.env.SECOND_SET_PROVIDER) - + Number(left === process.env.SECOND_SET_PROVIDER), ); return order.flatMap((entry) => { @@ -134,7 +135,10 @@ export async function readInferenceConfigurations(directory: string, packaged: b let configs = await readImportedConfigurations(directory, packaged); // A session-only launch must still start when the keyring is down. - if (process.env.MOKE_SESSION_CREDENTIAL_FILE !== undefined && !(await secureStorageAvailable())) + if ( + process.env.SECOND_SET_SESSION_CREDENTIAL_FILE !== undefined && + !(await secureStorageAvailable()) + ) return configs; for (const [provider, file] of Object.entries(settingsFiles)) { diff --git a/desktop/icons/README.md b/desktop/icons/README.md index 16248fda..665cbff5 100644 --- a/desktop/icons/README.md +++ b/desktop/icons/README.md @@ -1,10 +1,10 @@ # Application icon -The icon draws the brand M as walls in plan: a Bone outline over a hatched cut, -dimensioned above, on a Filament drafting grid. An Ember revision cloud, the -scalloped outline reviewers draw around a questioned detail, circles the right -foot as a finding. It follows Forge: flat Ink surface, hairline structure and -Ember as the single accent, placed where Forge's cover sets its Ember cursor. +The icon draws a drawing sheet over the set behind it: a Bone sheet with a hatched +title-block strip and a floor plan, dimensioned below, in front of a Steel sheet on a +Filament drafting grid. An Ember revision cloud, the scalloped outline reviewers draw +around a questioned detail, circles a room corner as a finding. It follows Forge: flat +Ink surface, hairline structure and Ember as the single accent. | File | Use | | --------------------- | --------------------------------------------------------------- | @@ -15,18 +15,8 @@ Ember as the single accent, placed where Forge's cover sets its Ember cursor. | `icon.ico` | Windows executable and installer icon, 16 through 256 px | The ICNS file is prebuilt because Electron Builder's PNG-to-ICNS converter -hangs under Bun. Edit the SVG sources, then regenerate the raster files with -librsvg, ImageMagick and Bun: +hangs under Bun. Edit the SVG sources, then regenerate every raster file with resvg: ```sh -rsvg-convert -w 1024 -h 1024 desktop/icons/icon.svg -o desktop/icons/icon.png -mkdir -p /tmp/moke-icns -for size in 16 32 64 128 256 512 1024; do - rsvg-convert -w $size -h $size desktop/icons/icon.svg -o /tmp/moke-icns/$size.png -done -bun scripts/build-icns.ts /tmp/moke-icns desktop/icons/icon.icns -for size in 16 24 32 48 64 128 256; do - rsvg-convert -w $size -h $size desktop/icons/icon-full-bleed.svg -o /tmp/moke-icon-$size.png -done -magick /tmp/moke-icon-{16,24,32,48,64,128,256}.png desktop/icons/icon.ico +bun scripts/build-icons.ts ``` diff --git a/desktop/icons/icon-full-bleed.svg b/desktop/icons/icon-full-bleed.svg index 3a34ebfc..6506f104 100644 --- a/desktop/icons/icon-full-bleed.svg +++ b/desktop/icons/icon-full-bleed.svg @@ -1,20 +1,26 @@ - + - + - - - - - + + + + + + + + + + + diff --git a/desktop/icons/icon.icns b/desktop/icons/icon.icns index 79c13f98b2ef72e341002f69f24df12b40c51661..35a0b893903e50cec019a4fbc83daa0f59a89abc 100644 GIT binary patch literal 188405 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%0AUW${#W@4)b(FZ@V~0< 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

>>FJft)H62iW z>M3K=h(%fm=L}%u5pn>uWV2Rx-}2}@2-PljWG(nk(PKpJSS!WNgx2oK=Th=ifgJI2 zC%b#B?`jU1Yu|xG)|~0zy)CNxB=$x%ZPM!Ljyw%(IBf0#IYi@h@dsS?cyJ>e9iIbi z9~X1QXyw|WH1kV$iO^}K?;U=N4z1dU9_~K%7zZ@z0zz7{VdPWw-EJQTD-0{sv!Y(Y zc@bdF3(G4`dzs&vwu1o${JF2W$ra0(kYPNJ_e8ON?!TO@#OMAl6jS1Fa1N~Hykzsm zXr#tttSOGO7Id`7fu{>|D*7^~bzCPj_KwM~1)kRY7Oy>hT5K!{K=}aFrT5P; zbVr~q^m8xs?SxL7{4f2zmURihyZ&RMrF=;ti`>8xQ zZy5l8n|7kXYMytCH}be1*d`h=Yy6VgFsy5xoB7YH{x1;v_U8>>Q7ul}9V&;5?0bSMZ0&fWacjYcCSF>Tm#$-8V~r<3Lbl~ILfDlpLiFN;S~dA zT_0a?_1N0u4*ip8FIAnJWkiLYt8oiUjV`>55B3_B?$AQqI}}=kg7TDrQB;g4NSGD) zJZNBd5pz*3-m}S%jx79W6pi|HhzsM*FGPdJ2vk#S>2ZlEIWc+Td?LK!>xXOF<99*- zR=5Y2eoZUvZaQC28UP}4epEJR^j~%fuNG*_qG&DXeb1VG3|%o#w*D#>se7nPv;5f& z&zk;m-O#Z_a2^Q5PJB9~gROfgH4X8GYCu~d2h{l8=kKqE99x`{y0|PwI!H8g1;N>I zsacRix9AqPz6VV!ZPJ%Nd#5&7drW;S&q0+8X`wU-o!Hluc0hoHAv>aK-P;#{7?2~QBqqGM~D&J~fC?~=|IdVKu- z8Bb>dM$S$CE{YP28w^Sr9O(eoj~=0(7A4rVy7ZlPAS*$&coJ2MeVc#S*Zhwk$yE{E zU3Q|dy5v<;KD#4jOV0=J%2KmqDJgD!JZ3K`tP({ob*!KflRf3x;3!|Dd1-*dKfFfg zT4cJ-m9p@hIstuViVHJ!cq;yZAOHg?9#K#W`cn8&&~sxxJKYIwh`Y(%v#Vnq1=%QZ z)-;!tn!09^5YHF=>dng3GvBVlK~o0QF4Ur2l6Gm^EQ4d~f1JVn#nIA2TWBo;p@phq z|L1Zc?*%4fx06yc;^}5@ss#1$K3X}@oj3XIUR8U<%K%vdLS-1+A4DNf&sX~i=xuMX zi*{(4il_eWyBBk-#}|_TG2XYf#Wg~2?ZFN?Q2YZ`r^AS#JxsZYBfyw0*4!=4YUjL(( zBz(XvwJW)kv4e4})VzThxva{EQj_1rb?Zi2dQOLUc$uvE#}g(0d*Vy%GOh4cs%%dLWpo zQ|ebk^C4@|0Jp58kP!pG%i>QJIrtAnhCZemIw#RB_8JE)+3w6a>M zc_Nr-e-MxT>8GBbasK+?l=*CGON+X#oT|}06Ym^GW^_#m*R1uQCn@yvprcFHs7K;#T?$g5sA56Xfyyf?6>O26=)3OC{=VIl zlF%^RQ3KUU!+)SQSXylk5U4}e(r=pKLZ98n+U*+#d1o-q+-vf-M$8XWqLLys4zzY|F?)uc5c;jkf1; zsS#*EWpD?+y}H*bR>oWv|42R+cO8rsN?-461FtvfeLfFexmg7K&<$&hW5!P_0{k4o)$*Q z?1|0dcvVvqr60Co_=Lpknat;Bv0vpNYy@Mtb&U1E2xlyg=^WRZ*sX;;iA^h>icu}> zP6Iw;*!i(tigUg9bXLN^BJ%X4q-%Tbi*yyxbLZmrgt7+jA*mbjiiy5LNJfA}h^z*6 zDlZGTWm!waqx0L*y#=J+IQi1X2iN0dU67zJ%LFrN* zh26U~&GDjv82;ylQ)xP%KTBBrkX=y3p*}D8E7DQWr*oBfwq|8K8{$T;@Ip6D^JK6V z!(c7iSs<;}z7$2<%s0_j0&a?kUU{1iulFzmEAKf9n&vEbpvbKxu+mpz$1y#M^yS72JZB5vrVVt3QBhC1<;TuglGcKzXl%AYT_s%0D_+xnPRK!RbR^D%14KCDo&=P+~rSLg{ZA`RsXy0huJ zU~K;rjXZ`?QG6E@6F!YH; zdKnx6;BOK2=Z_$*D>25gu;xJ1m#LBV5T<#xsq#B`cyn6v?3?aSxwoxjTBeuj2Fp#m zGRjlHlURknc>(Df9;{<4l1j8=M16I6-qUuL*Ed`HhHF%#FZSzHHpPi%R!;)VvlP*j z$vWa9%g*`|FrL;lIp3_F@$aK7Yc}lN3N(S5nhbc_o5lEqvNuG zXY`d*g&I;{U*JucUa<$u12k5T;ZxRg=*H>g&&kf%ciVJ#Xt8f3U-T4|o#NAEpG7F? zy~!q~Ia%gTKh_oEe+EQu43KgLQUheGolQX%GMBxh9tavV7lW0`RMk9hmIy7nN0dhp z7NZ^-yN!ERZ1&KGJWsG;mQGT;r*zpvS1vxiBmmn*z7i>RC{y)=uGtH~D~l3LnDRxL z!M8o(4&Qr#zSG-_d;Iw01#2E_)b+E!+PPqn`f+4LtYf(5PLs@@G&8BM>O!cYpC+y; z>!tkSDT%(?Ag*kVr)W9i5l>6fvxERyX=d8+fb+oII}r@)UpCY0F<>*lB_Nyo9NeMF zO|tr-gxMukzjotlE-3(Dc&cTl3QmoS@wq|^44Wg}NMB;sihabkHpL^FxgsQU+xx^yqjZY$Wx(CW+hYcwZXZJmQ|`$<0)y78;!CyMh(wpIf# z^Bu=Z_4EYc*^6`b|2ETtD?XK;T}jvLtM`DEhGBGWCY&50x+J9@@igmS1n(nJv@*4q zLhdd-@vwR6Hy8|n#!Jh7Sq(OrB2&3B_qL5h)0#V&HysSXYFwdunghSUAGcOaLPtpj)9dMDvDKcg*7n$j0G zn4wvY<`3Rx{o?7CPFLkP6-e<=bM51THqLWR z&!bzwJlH&QdxFt-RKff>z@@g>b_csSwWS5RhrKUS^qN0;3(6sB?U$K?tU2}*>M00~ z`^Z)I_mK4f;&piG9dWma%xdr&Tb>tzDaK2F2*gC#x4!(^)a}5Ek;7crr4wVjvOe}k z?h{PNPvS&s|K2xdT|%S?V|@ll;gQ(hszSLb**V=ep-BS3{22hJ=zMdw8GG+?cc}&O zjmSc4mxQWiKH8UwPvq|8OazN?tBMipRwzR$)Fm*kg97WAD-F9RG!en-SDK&8i@=kztG}wpZMT)`QXTy_6v(gl# z7MYuW_8CzR0MR~?19`KF>tVAx_{<-m^%CfhRt1CdTIiCg%lBRNiwdJMT)u)mI-xT!hjfbV`{A znJ4DI-qfT%yA3kmQg4a;&UeDuOZ&ovVeq&8b}S1Ide|d?#mwvzSI# z9jYE#ybd*g@{I@4{`oavctX1&hML|H&LV@1Pc*n-^_u#d7j7?|4g^^dLOz;qd$t>uug}E||pe(RN@9#SqC+tj$sjohSXpTdbu*xQYlT4hP zg`bBE9kO7{@+Ak(L!{F^dB{aJ+7|TD$1FG_@^1rezw2vZDSdLvYZ?$JuP$w>XH46W zXMex;=h2R$;gT&!sMF~7@ID(o#BZ$LEnDalo2{w1i}_WMidD^)VhEY(h`7l`tBOiMPAw(JgAr!5syUo8bRSKy&$GPa>9HA%673E9xcnZhppvW0>)EGEUw88IdI~ahRZ==HRFocO!R#Y3ZtrtFiwOI6z~Lu`kDl7$g4i%+1DVfeN`1B zyq*@^#i_E|HT;$|%Ph0!r))zfMBgamsD~pDf*eNqr|pKlWbuZX zeH9H6+(e$(^}_2PJ>)uP^plWeI#BE#76+y&@HRs-w){9>zqX3{M&H^w`zdPZ z{bc4fMXcqtX;qv4oBX5%U^MU-faX9=lAMjViCaDAqUNw)c$=*v!V>HN({!KKN)VXK1uINLQ&_; z<~rfl?7D=)*E+j>zU?;3C;*KI@hBqRXi@e@tMZVwpnV8*W-_9>1;iW)S=u+(2}$a& zEIb}C^&EP}NVPIh{9U(+t26&6*LN1TLhP8r4%S=?!uecjl2ki8sabam|1MDRX?A(Z zK*(i?gZ)H{?-&>&%FfrEyg7G!$#ade(mR`>@65e)ct>fKuTC~sd0SHkej+pJ&Cbrw zw@mE9>jzzAJ~#4Lp2s#0Gyl>xpreS5sg@}0!$NkLE6YDNMQ|UFA-$mDa9LK?7^j25 z5f?lB0a(FzLnG8TVtbzi{w)PYO}>3=6NHmcRz$tq+>PWk8*#@*=jUf$FWuFOI!wi* ziSw7UrzhLl!mS_{!-K4br1XXi&YEA#a-NNkTs6DJPSZn zFApGIHuoo$w{WZrj;YKG0@u&o$>!M0-2fq$%>gN`_~=C6xvt!NbW1QvfliQ8p9`I& zg~w8M25r8dGTNT1>NYamU)BT%HQ8Zi z-r?lgDsAbH(Z^El;__?WhumKphm!iwEKp_I*?MAVKzNk}#x&W(ch4RO#$E2O*qcdF zGR`#jHXG`|`0S%ib3j%7m65`u`t?~7KWVY>Sx9d`S4tF4SnxCUf;=b=J4kLNXVzsd z)opiYEFC`2trUSWC8TFESAs7AWbo3@nNPG)(P zPFE8q3TB6!sCD&446)k6?2q2B&(i*B^Gro0hk1yTLeS85^U#@vbm|xpPhEs2hOr#T z?eEeug{`)I<7qeAyW*Sm$zI3u-m)>3<_a++q-b< z(AMTgGo;12`(RAgtE@`>LuJc9{O>JYWy>p-{LBEX4_b|r76|L1$S0m2!W<`>oPts<_BfH>clK1anmBN zP-w5tTONmjov}eNEZ~s2@ZJvcgm!@dpYAqr#iHT|O1@-N=X&)WrVwSmbpD1O(qY_4Gci$f@%-&?4+`c7~0X-c+kf!@L0+KXu*eCjGzOze}b>X3_ zT{P_|c>T5#yHq|+1VFVHxQ%*d@(*l3SHpGA;3v;VGNqXFQ_0IX@)Q*GJ1zj}7kCl) z0BE6pn{J`P8E>@S3yiz+h%WMeD*OJ*5mnokO1cO1Lnsf$Or&%I0k8IUY|YdIp;H-m z<(wGFS9aW(w3I@Xv>eL~A?r7r%=HL`^a>Vny@S!@l%tt- zPV3m(&G9_?guPw4h7b!Co}_KmF8!%>*#7hOPU2xU54$|&;+tH%a-jJ7KUNO;%g-oZ zXPKJ~e~K%Ur|TAQ(9hBWlUTM7`dxacTQ09CT{^*cuKwVIqe#&73is2gB%&}W4yl#D z40|NMh}X{9<=-8qT>*P25=R*e*Z>V;qm}ERO`Q4bE3-=>l5Z9io}J3Ps#kl8^U%;>-vC3?+l_j6OLg1Zjq79yN z;IBiXY6Na_hksj<8!L=IG6Iax)G2O+K-E+E63_5}^E`$L{lc#+(~=%1@-jF1_mqdX zZ11eU$|xIswC##S*ZQo`AB;*+Za*o1a>~}t?Qj$hSN(9`=}V@;UBfGLVBPDWUwbKi z|3xn|G($AjpOT^hWgsL0M^J1L)&x+ThS+_uIM2WBzRhC}%aNg^_@VLj?lh zjh>X0nAcE%Cy>@LU@xP2Nn5jHdG0JP$&9N_`!s0o<$eO8l{C7%91YExquFItC78*o z7jC^9*aQtQbP^4X0lqN^gUp2iMnT2XRD*Nb^*-GC`-bxFCGz^bnBk;r3)CAI|_Tfox zQ5pZZ#x#`TMuQd?KNl9+OnrbXn!EtMcHGh+77a2K@Mv1ON&*N{dYKvO%Me!U3F^Nz zyYbw`PS=0%T0AMv1D}aM%2>#QEH5!6!H^i95bvezrh<*y$Y`ENb9%%riaX9RUAMKj zmuP!EU7H@-OvzSib7Hvvy`*$RPDzVe@!%N`A2mB~f#&{B_fW0cgmEu-YCV5u`Od7X zb=X`0LG?g27(z#8D|pONGKkF6Pmlb0AI6gs;3ULre9D7l&=PT@ps+%TE2!Y0hk6cR zfWBz3aQgGIsoT_YjQx>~F1+gmWU{EALmRtzMF@tN|HlewHA4#V4xZ*GcD9} znRD36!?m69(Dbs!{zSuWO>>^3Q?g*1=l8G)9yQ0yO}6fCl~B{EiDf&uA=o#fdlU`} z7sWPVUx70HG0<7jOmC;&SNOf=xSetz=U1L%&hehRHxUrU+O1VK7fNnPXOBhCcUpaP zQq>2-rG}wT&mFebpQzj9W@j*S37d}Yqg4=?j3lJc4PpYQjr)m0vJbUN1Gto!#|PIR z+*3eS3F!2>keQ>{`mOuOQGjD zhfM`bP3$+Ff!WmY%&9ilTZ?#bs+ry?P-F51`54Zxjy9 zB|gJw>h|gymb-YLyb%+(ZL>u^H`zR(4d1|~;tuumcK@I$J7B<{z_izU&jh)i%HVb6 zE!JWlegE;MOBX*&($(z;GT?=O-(>+tnD{7tm8UKM=v+0@TG~i-=;pC#+EXNj26kmO zT<#s-p=lm*bgESWvSjgMGfvqnUa3e^4suFuS20ws9XF=C3}z3)+6BP=czRsG%(RKg z?^^L>kLJ;j5;x+Cr4H`r`OD~g>)7yPT;|uD%Xe7d2_EU0fx;vI{LwJO6r*46U%nwP z`I39D>tpatW|IY{7{X#dAXHlpOaw2lgFHMiJ)V^5;hjHM5QWD`8rXx>${Ha&7FmiE z4x^U}+@0*%A^+wV62p7dIyvDs zQ=^fhrn$BOcB7l@d##%U!UYw)X80fW-OIh%-@xJlE$JSR>;U9Rhkp_FbqBoVV^tVT zbVHosJ|rfRme@9KvhpaC_!dd$3zQ8{=uYN3j=quuymM9`e682!PM@ga`RAu|`n7=l z*tqB?%U~N;^6s<{xBa}B$)V@$OB<(LivU6z zp}8=Rf9`2kAeID4+#Bc4;%n7oZF%!;xi^!xFmzpbVwiJ0UBfex7k{5J26aSih!WWFLp?YZd>~?7XK+sD02s4Gp&I0>1y71Je zPrdAItO0NTNZ$z+e0hViP7W2NDM^`EKVqe7r>__d1h&J8MZe_(k zYc?us95~|MzNe$V>BY6T)55#X9V^b-9ynUWu}Q;|LF&5$qvTB2rPsYI_b?cr*gzSv zwcirH|HY~4<>gzx+X|nOBFV|=U$G;v2V$0S-gEM^N_K~85_c4v!R9hUk0y4MhP#{2 z>nC`G>bF@ipn>EcSS)H8=fr7o%Vjw_1Vwf3&deU-#RlD>*PB+>;xNAY)ALB0we?Q?4PK&Pw>m=K@p7#m4xl@ znZ=igaPPw?;({g;cE?kB8uGIyg&8E*6#H-ySO&bapQubZj89FR@`xzDyYs|z^FohF zuV+D&1wR;p7a0mCgi_z%oYFm-!9lqcYqw1e1h^jI+=T)y85Q7x1F zR!HTMd!yg6n$=+Z*^_te3D`+X~QjKCEOzKL}N%d%&S(b@wwwF#O8=_5zxKgB5MT&<#P z@ThAEL3t|Mgo&TK0a(gl;gF`3COeQeo|z$3e^f0{5JN{XuLoCK0+vM^ybl~d$Vjgz zrZuK@Yg*f?oIyr(L$J^-$ax4&jw&49m|s@$SUqGbu3VEnJvSuOwk&YnssF7X8Q;%8 zTf~N{X<{YT<8WJ(E1_=Mss;{KWUfPplKC_{(j2hkr}uhxzJ+*}^12~wV&S6xD>)B% zat|%`FaSI-TSH;i;}ZX#){acXP4O$@X{%O{ot6^*xBx9ZR3!+q6iR7Ae3?*U_EW<1{wH<8aiq4z93Rnof< z%q-f(ku{ST?I_rIkSN4uv2W1gOns<5;T~<5F`8^?X8bKhgX?R~j0XjHCNTUmos!g|8czO&W26h2ypEO9xH%6g>xfN?RDdWR%);4Fjgt z9el&5xRh0?E(?=*uO9t%Zh4#1Rw#(E0(in%z&@etr*qt|9JT=tDHAx{SK*~yYe8L1#knoo*?9QZ^nf<>A4q>!^*+~hO+^N zj>CgmEgWDh6h_JebqK^2=p2XGz6u#v;J0ysbVzD>w;edB`5rpIP5kCTvQRR)wnKEb z>#@9Y|3~5lygYR(d87v5jF~YYwnzre;OK>CA@zcP!|^~m?jQ9S9rGVXC66b-P+*bW zQ`3@1Ui;d&Hg;ZipD2hDWrGqOB7_L8d6lVjy_1xFKYSa0q{r@ZP$KE3Js~r-9P&x9 zu4SA3(S|{cfQ45A!VaJ49HVmqm`pz^2xVM9lgGwiVJ1p?#J%>476=9V}L4M=i1{u$s z+-pU^rD)t_wXQK=U)yA>j)H@Ex*^nB}c1J{wiLbvzP?|*eS z#2(E9DXNmv_cM@HrK?z|)rv`;>uJ~lu^OF<_B|RA6?b}E0c}8s%DoMj{b&P7X5_J! zao3?qP)mtttTfX`yEnw?MCi4Li$ca{^%uah!@7-zNkZX3MmGJHE9lZpr-*(ar1k8( zz0cf8RpIH1|9GG5n+(5jHH9)ex*v4A^yM>=41uDcw8wyMHvd<_R~cX4Gul;<4rayM z>4$H_B|s5GwS`Z=O{GGJ$6`+{OTG=06=6UET`5DyZ)|g7nGDi5b35Tla@k7=%g`t4E11UzMa8+2vGA)=Xec zk*tRxV#d!)YS5Mhmc#Cl$ne&`9d3>z(ef7}Vu401yCe7l-|-M&fxBr$1H>z^l39PJ z>qyOsjaEO9zOEwjGa?;9A#l9Mv@ia&rCLIbdcKXE6?I+k>S{>wJp1D0Cep(`F;s=N(#-)WZej=!F-)jpsLZ z6$JAwnaPpuH+}6JM@=qTPa~3E4vxPYQBLLM1~WhQ+Gul1sLQe( zath@1625n?dK(i-?w!me-cZxVJc5foMvhpom_a~v2ilj9=>qC zsb&~yT3iG{RP9-9>1$4S+a}?$JvMJ`zZSl3yGcGT;<~jfW7E?N$XuT}O`&;;|Kc?e^ix zLi~NX$kgeg8<9`M5%&7agi169@NOipnC@A|tB23$6g9yg3$D9LBNBMpZR>T>9#4)| z7CK=!?#e%d|Mt^kv2dXpCkWIeuf=6`Y_g3Uw?gB%n{_kt8EgmT;f)`$;q!RGV4=OO zLSHIL>%Y#Avx{t~QO9#O9Q;7YG^a$_W0Ql+pO{m^>Z(awkN`yb@{!Cb_IU(@QcG<~ z?5+#9sTyp0|4Mub;N5hcVmjPM*t;xOqR3IS68%V-!Vl+Dd17&UU48^LX=MDjWto{N zcm3a%Nb5zs)OZF}ZsE>Th_h3qxheN^^;pRZHB@aRCfARY6j9t0R=i=A9f6Au0i0Lk z*F2qYD>G~dOhVg8>kwPYlTGpjqihbr~o-*}1fK&7@AOl{ezBDiQ zoGOUO{jEAba>9uW@~&}1VkE$Z!*yx?Ofppx9rdMtvKU^Qde)zlDIP>3GL#ZZ+wyGv z2z#w=y#QOS_Kd?>#DYsR0XEw%G5T{Jl$AjLU8St`hO_&(f*Kx`--5%0(PF*2mXiL1 z{AR^y3HTrWocqyBaaKRav%q@SvLE&`Y4u zI`9uQ_8RmgcKVNO7|=UuR~PvIo2;_p|FdgVa{eDk*94W(C$|1%Qnb)(4E*)Cy0+SL Im2?08A5#_+!~g&Q literal 189928 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�nA&Wu*1F33!%ym>BOmpVvKFk29@ZC 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 LH!D7MHT-`75uxWf diff --git a/desktop/icons/icon.ico b/desktop/icons/icon.ico index 9e9f0c93ec477e9f8a0134b31f5ed7b2056110b6..975c1036b755098c76a234b3328e77b3de61f991 100644 GIT binary patch literal 28426 zcmagGbx>SQ@Gg9ISv0sii$l-=fyEcs0Kr4h-~5F}`T;O@Z#1h)`Ka0~7b z9PYmFd+UC`Kfbz`s;#qAXSUCr?wOvapXmkwKma;`j}IWPP@oMA03HAUkdyz{9)SSB zGZX-TLjP;WqXED@IsowU{@0Gc0)QA?0D!~)Yi}dJ6H@>H0`Xs44EgCIJ(>XkI7mrWO4}>TA^C+m}`#vwyvIA4Jam`~4{ z`x8lY==egMCil(;=Zls8@EvCx9+W=gY*##1>(d10`S_V%25$I`Ol@Ww{Lk5;h>`==EMea}S%aTIE*DQslYULFb z&uGXgykiayu(fsM1Smu27Xw#UVWec8jR19d6rjtSsjBw5-55_-PcI#pi4c=%%#)r& z?ds}+PLtf+e7w5$G9HUJ0@bfggd%eOlAswGGN+1WgwJLs&seFiGnR{SgeH` zY_+dPivjV3sp82=mr*u;jMv4??5%(AV?b@^0}h-JAfi=Dno*c0b*Q`u34;xV*9!@c z<=Cv@b-g3h+?gC$M@~vWNls0+Qra}=|7YqV7YjiC@6=uK6u$xhNb-MEw@~-Bx}gs7 z!*Rca$)C%qkkmDT3;9&Nk4gg%R7=s|Gb~ae$3!)ReMMK&yH9$DsUj&HBV!k zn>3oWB=sf3xuz1wu1HEi4Tc73b=g$$-c3;N>Xoy*yL+4;mK~yN>&!2CoQyleDiNe= zlQF}bqZtX_pd$&AvYnliEi$W8pLQdB>(r8UPenyVH>Jq2df`(=A^(6fmPNTJtPGwr zYx-pwXhhahS{lW4_%<_hkE{V0PExbBdPTX(gbR*J0d+pg!9J-Cp$Dh@(@{84@yk(-8i5>(y8f-gr04GgVS|X)R+0L~j;L@vJsUqk{r9>(;fsqjLu#t3s=QAIykj?a zMlEW^&tFP0Hwz^0?TOn>oS!qj&%qh2E!p{;;b*>%sruqY*MWx|iIiaGJY&Kyl{zA? zox5dB3r)lQFMm$FDmPr@LnLm$;QvVOx_rcd^)4B5&k|vUIvpBfgqck&g0(El`p3p_ z8?Y7}n=;@cpQHtThgVco$Y8=AhWydecrH!t_i_2s1!VLSLeFmRSGx18=o7t0_}9(e z!e7r*H9N11TEX1eK>XX&yL;{JVTlKr;f#ufnnS|rs(i%TE7I0m6br2v{LfY1IXd=l zY(V1Z0x-Kx@q>ed?M9{{wco{_e86T%f%0BNB=p>2POoi#3*g&~tx#SzUdM@Jtwc?%FMI_Eb%*Lmr%s@;>rS zjZTAHS}G|8?Z;1_dW(xyeV^y_O7nG^u;Up4Lu{1y>;)o~;|uhdWm;WM_d9m!Sy zpx9^&qb^z}Zft6LCLy7w_rwG}ex**Bh+i~}A>qJRfCIe_d&~$d544|FN$dG)<<31t zy7+XP_YJIc^H`cb6no*jYgj{r!ihqzicy$em49SFvg~5@M4>J2rgeeMsDM|g@B3q#}N<~H;5iv`(gcikJt7Ws|lT*tZGjU*QU6%D^R;4hlTiqen8%Uw3SbLM6gXHT65Fy%!a-;LDg8zpvgCg%k|Mg|AK0fCFfTsJOFYD8DQ2k&@ z-Z36{Mtg#i;RHxg=2}V)Rb}8q7zXXIW_}tt8vIICvzGjAfB$mMNoCebdHTha{j_Y| zXss*?>b&MOrY%+~WxbWwwWid@y6@Mco!0E8Ge7CybFGbamn}KBdp?I-{@G_8q>(}O z_4Q0m^B>8G7?rE`)*1}jby2FpVP?X-dr{}<8Ti61ml2M5`4kc)a;ONmirGM%sc*_M9)3Oq!eEITBk$hB>8 z*S2Zk`T4n9s($qiQ`+$Kfr~I>Ofbre%)cK;GM?*&g@^MJVSenQ4Q3-3;#TXk%sM=r zcR5^m)jaPu3}=6Q{Q9~e!k4>ce8$cpi`D3#G^+^ zwU@|<_HDl~H6sHYzpl z00TZu8B9V#qN%HkMu@f`%>mb30lg9VtZ0*A)Eq1Ly1d+|jkL`ETY01gxMgZWqYA_3 zH*6;40qe(){p5?i;li@ACuo0m{Z?vL@h(w616gXUaeu1I4O^5mGBYh6?xZ){EQd*L zUW5>0l);_w65#F^#YxG@jGjkJfp3Ax$jGnH3JVKSH35${Baed{)l{B<*BKcZmfb;b zMs^wTBlba$?9jmW_njJrV$N$2LzM4hW2x!v@p7VrW*^;bKnkFIY)MMd(`qkFnbRSEkEq4=Ov`_kmsc-$A_K)z{VL3Jox7 zC711qStlG*0Z2y1n99q^yO;Q;M5inQP0-JnWu+2{<>j2hPAh;R3N&!m%If>=Qgni} zbD_zG#@{lRn=KVhLqpE=^jG>_LK7=<5ppaqGCn6!g9#tid zW=f_qtE6^qE5I^s-o8zai&L{56WS;+3E!xalDSzh_U5CPpCbLr;95mTTKWs^yTs5)N+7{Avf7mIQV7UYJY5|6Iseocd!Y4L*&xZ`>APHh2LZY z!)Zc>wUw6Sbu7)ORVMR1ekJ@Cz0aRy@R~4}Avb#Et~bx(g)n6g0*8ihG&MCD<{KS? zU$M2C#HBTj;SJWzJ1Vj$uC%B;=X19U`+E64i|8^_Tr+*(EO(dz9nW7xWA}>X6zI@%3gm?w& zKM_yQI?e$Tt~_H3^t)9B6S1gjFh5c7lh4%ttD5N1WQ2xYrdmxo<#U_uyRw~_WxG@R zXPoIAE)n!PpD=enI0t@Ay1&q(g7naqrYoQrGZF|Pk4@PJ_RDv0zPueZ?_6fZHPd24 zZbQb|0qf%n+?ldozgjBN^XLU|5XATO%DW!q(oKK1j@e0+1EHZnxJK8jF>5_vi6sf| zWACKEbeYKnR1AA;n)$8O%GTvYZ=B;u3OjjNw(bWe4*sru7-97G4lM=m- zW}o`~JIJ$R44-D8zBra$Ca^7#4}(*erw}?ZTDcM12QU%wT0xuP5!e>H{qgb1gUK{5 z7rP$<#+pk$(;O5KY)Nupz*17OvVJ2zD0p*)6L#URPwruiIgeNi&^)}OY-<%EE9Lzn zy>wh%hU>>W$m>QPUR%hB67vCgeSZ0rH!>SnEr&0NU@{r*|y|qVQ`rEGJB6ApM2r?jc=^J}1 zM04M~H6gV2p(2YT+@QN28zq9Nn;jigj*rRxBy<+mRmlIvfD7)c@O#W(;iYwP#5rXve)M#y@%~+4om6 zDiVFMFkfI%BrnrZHBfHFk2Eb)V-|`il2qoj!kDM*b4Mfa49LN{_hd*mRD9*G&`5$6StwlAgbFC-GMQr6v#M;80oeT7PkU z+T_G2tR%q9vVUm%n@%S`BL(WiA`{V zFLdg2+kC7I5Z>!d0r|6odd&vb(V2-)?D|vFq6CP@qHJtz7=9Bs^=Bi_WHA6!Tbt)x zJr*T6_@ZWefpNnNa3E3VL0K`tUVzTb`aDWQ!|Q$w-cUns)_hPi7zHKRoI~T~OL}kb z>xpB>kGVkul7+pJ_;BgQJW*_R_AL9Na(P?)J~x1NS ztE&~`XdSw?*Sk+QhYMST|AMy(K5~Zkmrmr%MQ?NkqJ+hDVwIMbYV&T58Ff8-Nl6t? zIaZ+1RgGnPgu>)>ydt&P+}>`atfFFO7W1plT18zw{`~LXe6r|3P*s+gH@Up;4pSsaN>({qrkN_@6%t_v!6>!Fm-Rd zZV#4+B8gZx_kY!G_r1B;otgUS@#3AqUP~AVJ%3*6U8HO}#fJqh;NZ=cuCp5LVXRP)xZW_S zo>KS<`6#_Lo)av;#=>ihwL{lad|DWTF9{;TsK!d)n5((c{GNd5&5g0LwpQ}F z!T#0e$y0t#K+oH`RZBd^JNRKKccePPca$+&AL^)M1^{0rfJsBQpCs}{UYTB1k2hS< zzez*)b=!uriH8582%BhUdK3p;LN9mce$YbFeUk6tzOJA+OW6;rJB`AGWyyTaFRiVV z@eB(;RtLz99d4M}T(ca!yvVn%`rTe4&9ZJ;Pt4(@Nbr4RBtfUlpPP(3D_lpw&d$!# z!b0}v*o)NXu1SSA`?)__oYGmLwdhMiMkx%R=Q3huYfQ$V3AxmgOA%X@BrZ2@byzNZ zU?O*|rv=#6U+*kast&5B2Fm!kPSa3Jp2~F?&xR-3B*42b%ulU$jauF+r%BEYNv&jI zeJR=bsI9A8D&Ey1T!fRvM~GEITxO2dLaQTxdwXm7tCnu~&**E@!gv$0G|typ$(D}} zId@p>0t8GeJ6GCEb;e|MeGGfksc+<76Q~9$=aFz2>p{+gKC3!)s{ZKvoIo3hj^}gS zbE@^L+6)D0Ql&i4D(qo}Prc-kXqaw|O+%@lJ=m*RzQ5Za)(AD2!KvtYkerqQ*gwCP z7pIN4U$~+z?IY0NF>gG|F87&(C|TU|lUzws_Vx9xUEgxQvh*CLna2KQ_MYPX8kRsl zhPJl$ns6lKO|Yu!2JHlE7jYDO!AKKt;4xNxL&IQC=o94H+e~e<@!W`K93R9C5R}h< z27^HlyjHKRUu6&%Wm-7=!7A^P6C1%PBVHRO(nG|PGOXe?Cql2kk4Bdk*BKOR$nRXe zyi$@%+UHbCoW4Xk{cX!5Sg#{;1Fr2H4nNVpo=#(&TcLj*cXU_#Z2fu4sJgR`j2)4> z3RWWga||gdsj`d=ihOZIpu{tpyY`O;4}o#dq)R+7b>AgV-04kF4b-Q-q}0{bHRZ&k zO=I<4s`jo=Vo=1?rdiLF+OeULRSL#iap;8WG&U|*C z@HPg@lQ;1fu}hm5D$JIQG?xetO?g&-15WO2o-}TwkT9yjtFjPXg)On#$*}wH7AeBn zX=$u7GQFqAtHEraUM8eqjy-!BPSTaucW5Yw$eb&(@N;s~9-^7Hc6KgU1j=q=73(im2qz|47#u{*b&kSl{WqSV8O znZV}IB4W^nZ_KLoAp>Le6OH*C<)dkn?TXXJ?7H<&W@;-_S+@iMp{WzQ7aq*T z3gKk|-* `LPj`Pm)&$^80o`{kQ*eUtIf=N8%=_&CRjai->F`#tQDgMOlSqW;?z~ zm~3^za^}t)r6my~kb{EvBO9)c>p}0N1l>Laf8Ri&BRA!A5w-q*u+c0U@=e4SEg-P) zU-r)FqeV1{^^?+R0EqBcghSz=g#k4d>eT>k3-9XEr z)LD#M;D=bTJRv62z{j^=6xMhZRsVE`Q3c~00urx{(eqM@D|ad?C?Y7R)*=wl5!Qy# zo5G-q;tDlc@RRBRi(Dz?#&jko{;K8sN3o^M5eqBAAck{MYnCIE!~3KArS`|R$B}RF zSy+Y~Tw3~c-La|d)1=K^MLzxmdCWFTyu!&!JYvv-*K8zM0`-L|A7J6uMk15}-accr z7T|~~UYec=7Dlt-eHs;?1s2ZB%p1x>f9uoH|E925oh%?GF9AOV@$K6;|EM=vpn;=q z>1SlzKL}&iW=!$t&ATq-s0Qr?ljje*sdpklg1w5RRaFWqJvIWXM!Onjg5gq?v@TOZ zuqUsQx3$dp(xC;WamI18uIAk1LZ)i4(C|#7iRuBH^ARp??j|9EC* zW-M^OUfa=bBZA<8GFY} z)aCl-&6}(_9W)`9?q~q_z1%YrhJDfMgr+qO%$2W};ByyMgdi(1SU+y7ffOXh%E#CG z!_>)hwm6s!+^_cq?e-nT$5tIMSLs{x9 zSyV*Hg{cH^oaXkeV63!hhrh*S3Aq(U*E!BgNqM%dwY@R8zJ0wj(f%G!#C;c{qpO?G zJXy7jQt#v5SS@$KEGCxJ)6*l*fb|m#>~xt^T2W#A52aGiG)F*s?DZMHZk&FbX6S*T zOSPm#eIk-*z;nFs$>uu~MzAO^+Y6AKv$7l#88RnFKOtuk=dIx{thRyx-ZKu&d)+pHb8ARW?d4 zjOzJh*Oz~bAgo>3;PaO~R0%vFc6M9n${dLd-0|=!z7w^F9kP4FAP2X^^C5%>3P@*^ zCAS1aQHkPxC_%zzI8Y{!I51EL%|Bu`_hTxmsv5+uAF;gyH}9V#AUY8=f27&SK`fNd z?Ko*9{WtePZ+}`uQsuK{@H~6=vw@kpSbj}YJLs2=&WDmiT_|ExQ|p@DX;T)iHuiMR zRdp*G$@Ox36uT zE*CwuB*)K#k~I6S4xiU?!7D@jeWTOE z@v8LAN-*9R>+x)4uWc5aCkf!EAp0N4-~eBqHUt$Qq$0AB!An%;D|!|%MG>g-E>J#j&xS&hEU z!yT%CSx>SJDw^m*%NdS<^O|hE#qCbq_Odv3h zRy=63%Vxfji-edsq8cYGoc4whhw}V=hQN+(Jrl^**0$bhm0{IaNr|9BzvlE*9?{v0 z|1LHT0%Ddpb29ufxpK0 zQiFWJf{qIqmUT9d5BKCaF)GYZMstRq2RT@lqM9|yXy#>;iZU`>gbu7~XqqmzUSOy! zm3Q>mnAW$;f~OL|!)aB7V|v;tFLiYV7hP2J=6>;kgNop6$Y=bSs7w0(6TSbzSo~52ITANcihPsw0VecZoTV8igb{LyVMgL$;xq41U0>SvDW%k zEsp>XC(o>NN50p@hlnu=ak8EhvKl}zMknk-{*8yEm759_8A>%GI=SaT*KCd@1vTPpBHo@Ib==0Co}MBHKRG#henICi z*I6naPC6MK+Tg|N)9@am1O48AH!a7Q)N3QFNq$hgSF#^x=C*!lnL^Awk~e-ko;$lV zPC7mzs4WP7cgbrk~cIw&-c;8I}NjcOb=)kXJl7HNQYDr6n>89C1a?MjuYXCkdO^(eBR%& zJkNEUCJWR9^^DVHV7z9GhT$(wkf8wda%@$3ZEgY<#ZR<(uc0vRTjsa2KLxbDom8GG&68Tkl#+I2`+lWxEd2cu?)>@wBM7{>MM@DCy4U3fz;z9j1LHB~k^1787= zjTrkRs+A+*$4f|=YB(3=nLn;7wC0XdnbH5V;&n+ucVy`^G_HL*@$l&l_qNb8R`u*= zeRL*f=3asz#*9yQMv{8fPeJkpn7F4}@JvR`W4IdO0A!^OEf#o&Kw-a`NoSV=tL={v@x11m(;a{#my>cX4j#-h~vo9 z56-m1HghvQCp5@tm)8#R^&E&*Ddsk6y%U4flUHK#aVav(oR|qn2NPP-U;d!Z|NMI5 zw9k?eDDHmFtv921UnQJ=e||22p-dkJ8oG!sC|)hR7!>9#&2yqdwRkBs~F zkWudb;YZ$Ig;I>@g41gK$++G<`;Ciw;SRbF@`my0<>42nRXv{%gVFIO{~laBfy=th zNFM$Im5_@LMex^4#GL+cYf@4^!B;FnspV-?FE1GG^Jib~#|xN4RoU40WUf5sV);_Y zEO_Zzw6;5mHaZCi64}~5NvD3&>fSpu(st*c6E-$sMp)j-Aug%?v9{HMJtQTQ)-bl0 z0{{u!@~+qJ)G5gtb4Oh})M0YFzXi0b%3LLddoj;$j8)M8%=y@r{p& zm>4CDcImvBSIJQgeX&7+hwM|U>bixW*mlZsGOzZuHrLiTs|VteH^sg;8bh`*SL#o0 z(y1}Lu!YYqGbqUn2xY=0u+7(O2I3rSo>^dR<0Qp-DIl_XpOnbEK)k3nc#uGqrR?4E z!y0zA`<_+3AEv3~#a<1+m;y7xT?Xf-Ubs9{No#hUI65YV+E`Pwo>q%_|F0}rR34il zmT5Aa%b#BY?GcTu8MDG3;mLMO2$gAJW{1+)PX7^Ez^C$iyr=)pm!3ggHSYOxW;9{% zIS&%%87aPf>9&obxMXbXkMpQcIX>q<_V#+~6dUPfs7~KOxv4@bC6N8joG;PyUUx+! zu5_={DBdaD4WqImHoc7B5_Gxd=jV^VdB6X2qjQA!AGja&W-e^}G2ffsU#XhW{PC$$#(39FlR4MSPan4cxTR`gjiB+!E})frddsEa%2JcorH9*h6a^2)Pbt-{4q;j zFEnBB{d5WzOZS1Gy;IB6`7+PQBMhn)Kh_#T?QNPwPff6BhyUx71 zDp`Aad+`tZc}A^didyG|LUSS8W=*WIT{#~5``mN3!1M@!J;B-Y5fd%nAt5^=m6Nb^v6r;aleaBhE!2 z?<4+=b9*Jsh5>*A<$uSypD>-Yby^2HmueGZnJmneiiutklfl0saAPEB4DC#vVc+X8ay!9|!8jRKlQtq9XmbBJJ}2 zXw#$h-Lh+2vfC7mOMp((Ue^34i7nsd$L!6vEe}---tuP<-jRPk6!@TxO%k=|nLEX# z(Uv0C18$z8L?c#Or333MO_}3a;p2&e7A$GQeZmf^hB6PdE+Tz7Al)*#8`}7AelRC# z-Fe4+6XDYhk@Ty!Z#f{r%n!{*S%l^d87-XgZV|k7dCjnQ-dUSs_G=PkMCNZ9Pqm$W z;s-a3^>lUrk_0f7J58>F)S7;A^3)L(d3buVwk>iCYLE%Z+B3m^S_HYa!HRKW%o=`Q zwTTF`vaqnEN=}dBrs9;Kb`11lO;ja+_+wYTs0I9 zAhf>zy+KynjEOvb(#>@B5UE9upXg zkEU{NuB@~owl3`NrROcekO96-uRH-7sh>aHb5l^*>&uIPGJ%MRVu&e;4&7DpWK;rXy8lqTUp&?YSpT7%}WU_`oi)FbE*+#wG3MRKuDi z0jzEpKHQ~=tc3#TPqC3hn?S|Uds=`R6Z<{$=GL$KmRD0xPiX5~u9}*)P#S9`QNHIF z+z@tf5Pv2?7M8KGUYdS05Y&sB`wj(?%@%=!j~$G2J{+tFb?if9ljP=JO^=G2`oIKd z14OIN79F)-`Q4`@3Tc1Db7-mqc^7~S6MiX4U>VAC=;=A)#(8FU1`{pNS%ZfFpE=I7 zKQ20YoffM9$te#GyrKFI?vjI&8Xox|)VQk#(7y872xW@nzRZHNA%cP;nHw5((wz7Z z$C$uk&NB#nW0eR#j-Q*5%>T#9c8B1Fi5(WOx)>MN*lAu-g-VGR-u02;AJb0K10iwV zBti$x@^kuH0PcWS_LYuFztW2dFBs%Mt48615as2Q%PAjdaE@&efRkQ))q@`wm$;C} zkN=@qaj>GY@~X&u(XrtQ)Vdvlkz4K5^Cu%CxlWiJ5*sdKs!H(BwA&^ChQ1FCT_>c4 zK7s8q!-4B-)YxLR8D>{ajQ@t!!vzSK9xl9Qd;a{xI9kwno&-!bm-G4nj>4Wx?Y}u5 zDT$(yotoz-cy{G`}zNamAM#E_`xA+_J>;PSPoSQ3|9j*9xY{g-l1mG#eL z+^y(tkKB5f9bsX0SwuvbAYziyd|}thEq*iu`=vYKgM}8O+CoJDnfPNr+|0qj5r42= z9+Cr`o;@)!A6S}Qs$6d9ZedeY2b?HdCHz48S2H6Fhp!+s~wBc`vZFk^V~ip z(z6-Qrr9TR=EWv6)YP0h8X8hQ`d1Vd7R$b^o!v*;A^qTINb}<>dHDbs&@ii!k4nq8 zOYXj5Hk(7N*B3o#?KE*nsGfW!A(=C2wK=qP^j$yhY_1Zb)H6VtbdwLr1{{HX*`p;0F9csa zw*rO@`iKL<&H(oRg4N%?C8|2<3#5P!fS|w_M%Qneu>pE;AXE#3N*anNtCFW)x%EYh z^-nV4v0w3}&cj+6=IMmdp-Na6gVP0_Az*4CQ5pfl z2wM1~e8d9E91LIkTVj_m1RHdoi($I=bF}{brP^Ssk2u`G0PP998jCj!u?=$QBPa!W z_#ouq2-*o<>M&p=48R7FgID-}lY^V#$k!wX^HPC%A*L9JaT_9C#}tefKr|KiI%?wQ@`Ng!Tn$K0Yh~CMEwU!U=|tVP_T| zfx-{884+;(;K1mnGQ9V(OF>1z6TH&6eE>0Qn0fz<+vxMUYivpf47e0QSEIvg7=FFV zZ{uR?vqZ+}YmeiX|Jnl^G>L-Lv^FTj661esIA0UcDpo5%r}aW;YJQ8yGu=n?VOUi^ z**cdDzN9C#x7E$Y{PKluYj*o{O--V)_a@0xcJ@`n<-jv%*+KwGv<%@Ahz2yH5U6Is z61Du$#|8*KfWMTKtm>hNySRL%dUp%Sif7zK)zHzAV^zyq`4Kw&@tL{J{#=db>rZMz zNa{*MS~^IeK%UajZPM$IBpJrcZx1;>9p;%<;c5R?@+3`x&M$@5dxOBB?eDn#ak1^x zXC(p8!-^!=uC=~PO?i2&MfX{Tu|cHf5gHJutxwUPPmB)k)FtmD{)}cSsHAbP^7F}P zBK6t9r~X_%MB4K4SXBbiR>C7{5L_ z{EI&%C`H4m+8U*-tn6CH3Wm9IeVdTa=-=6aYEZ5A!_yJv?xiOQ@fn>w&JXL$ft# zamvceH}uk1nE+WZ()iRXzA#(l;X6Sriv41gLhrGCu0NEG3nxAdGaILVo*uFC9_(lR z7ipblvTEcB9I&;%)D=a-VcQ?`T@Jh%E^}fJ&Hm+v^kZ&xxX;6YgPW&d{klIw=RHrx z(P05dzt1lClkfZpl^i@#S;YW+%}GzETJimS;?MMtce{t``;mZh(QWMP60_F!?)LZh zBk(|Bz>QQjQcxE)yqyjhQ$Q|ZUks~>2ShC+Gf)opy+mOfQ}EfDD)i-C{l@|m&;C(o zA|bE_4EX~lTfvG)=;S}aiZ$srR$(7lia!b~Xisey(O75wm^)adRyrCTs&t9GCj z`LUh?9{uuOsV{cNeZ+`l65_v?{&b7S>~H{ zD80exB1{Bq;A0vvVhuSCjU#lnrx}A)ep^u-MJLa6ZWQnv8fJXuGuPH~PB<6>|M4+0 zzX^*jb6*%xHilfBDdev}LKQJrj-%vyI3%+;m!{RomM;>R0OX$1F~-A zZ-pS0-t-H`%7Uw>ru?S=7!EF-^=KYdj<*aY`0wGtFTx@i-6a~_%WhiyBsa z)I$beq|0GCQ>bzo%3)!hG!6gEz%3zsBo`7%!;#2zwB{!YZ8yT7$7#gts} z?tWsrjH8s1+&_!j6v3!_H@s{r$J;;r>&w z7tM4lGkPXxRA6i*a>1XN_$ol2}E$IZm&29+GFCE(^EeG4;1#GI}bZC zF6y#V+;!2(J+6+6`-6yg&FIJc(IIb7&gxeRC2tSVHL~IbQW2hu4H1&;$vH>ceNPd3 z6lyh!P$2WgS1b*LVs!@o{W3fuBcneM+FchYlZW1%%=)e~op69Xz$43jQY;($FY5A* zBc)D{HMpD4X|xs3OOxXW{n%aN5T{(9pqb9}`vo8)1>{>o89eA_BVxaVzwbMvxI`-yM@N@G-mbQe(dHu{##|Z5L$!| zqqD8J2f~0cDgi?qE|gpTzZ^C*dT%MN)@vO6xwj+{0{zB5aRV zGjw6?as>TKHX~;HZ#*Q>z@c;mm1icxg)GYs&v|)h4?dH{ZBr?Ryz>h%yUBP@`Iw13 zQtcWL^dmX_??pC;(=OQwzYO3JjZL*jHe{U^e|`@U|7BX-QEfN#G(*h0mI-LLT)EA> zRFVOX-Tj@NSNsw5>_E88FM`iJh^VObyQc-Lh`_GXp+$=uN1@_7=lcz%Q^U@WNEiV2 z8o6`tI(W0vaRF+*3{VNV1+l1co>PJM|B87SV53_t?BlcMO!mJ?L`8fOV^C!ozJ@1s znAkV!@4OeItpViYMpobnrV0s*#$Dp@WAQ*%b={M)m{cHztp`gIiEFg^V~PhE_bR>brgi13|j$357$sF4gi8t4F0i zFo%br%`K2w=DCu@#g8<`OGwPCW92oJ>4N7qU||gKX+)bhG2J>mJz-*+4tv#!J%)YP505sA=MH*?JZlEUL?k_-%32RCqiSj zku_7P$3q@M;-iVu%ghWR_4d-7#T)mK4tk4}z{URE56HzL_xmtFABIKci&9e8otNrYq`hyWfoT$!20K<)z+(_HJMm`mcZ@V z*EU*((Wkq%n=4{Le=K7dH13m~uLMhOXYr6iiqG@m;cBv$u95Xc4yxf z;H`i2;?GPsrZHdkKJSSR#hqO+j)=(lI-ZOp#&#@FTj%l4YUEE-IRU9AB-g6J;y*<@JR!0d0#? zNHj+OAT*Di#MW8*|4Cj)~XJ+JBif)1e>|Jrgzz4Vf@n< z5MIk6?F^x#fvhB%JXk$OAv)YMx_|Ei*rs>dM0=g_W-yc%&}+sZr;wC(J6-)?Re;yLLe17qB9a}g8h`}*vW z3smLzSE~d6oHo}ZIrS+piM(8vn)CW3O0Kg;1qKEnuSv}SW(YKYS%lG|CyfU^bhZG& zQ^XkthwG-1>9jjM0k8J%136(rb0nBlx#&NLkhu)e@J@6@tOgHEFWyuTnN;xS)J7he z%S$_k)FrU7MJA9fqLVhFM6VH`rpEnAR8KNy4G^9R(QDcLXGTRd(nH0?&kT`yDvD}8 znD~G?r1MKfMK+2|Bz%1pzkS?L5j+7FBv%G^d0JRn27FiPLe07$gd)Cv?J4>6$>A1R zdV}OJ{|D8>h}hU5_Fon(%+Fu@m!Sb*)I<+DdY-46YIZ^Yhi=n4$AEIYRaJWRD-p=C z!-DcutrQ`Nqxc#*!zTi?xPi~)$ieVW`7!`9xBPA?!uDTcvz#si41|Ufso2?-a<5td z|AUtc2V7kGX}P)Xb*Iy$L30Ox?f)8iBZ)BB*iGR7_s|X0gzW4|vzm|lU(d_d?Ez^J za_!V)nS;l_#Qu+N7N`hcW#u8{;jnqOiSGOeIZS*4R>?Q=pd81RkHMP^?7p3F*te<#rU9QWA5*WDyD2%dkHL__n zL}dw8Qx2htT^hR((_quQS93t3Mg&}z4ZQsVFLw@^lV03ff4*&lWF!^A$dZ`Rh-eit zLp?q5sJaC&WNe3%?~Z{aWF)4SmiS6qTW_#)ej-zlfC#9B#0gXZQ=#DhaF+sCU_}*` zD#y2PJH&{$f)h}4H8gn5-oJf&ruq%zf75H-M8I#lp^sHXvtYpE{i<@){PosRvjK+1o*bYUT@$kN}P6j6J$h*WZr zm7fJqT7%eD{t!?dd}?e=Re5cY!GwZ>?5cHziV&ccf1#-O)a;g9qLN_g0Oy_*5wz&o z+4Cmy)!5scBTrAyqMq+g8T5#UCqTR}efIdF$UsdDk6~q{&TgBJAG1C9*m9vc$o6Yv zdpMORiM2wT;UcD09rLfzw@%AOZBE>!xz^CHc*WJfg}KnwlKWUl5r(wR-s0{WC{iwq z;{j>p|1A1ir&kXSx&@WVniBJ$2jA2*oRmD}wiXJn`uX8@e*=>Yg#if83#Lby#UVdq zk0`sZ$eG=0`RAEx#L(r76##Ih|DUrHH|m-6qjy!BO}g`^VO&Qa zVKDS)PO(%~uR-r*`r%$CM7WUf920H`KVDW}JUog1YqEtY;ZK;b|M6Ni1cimEYY-4l zfA)-?06*veThKVc@>LQS)jNao!q;}T50AUHZ8N)@x{HqPWw*DVv<^yZTXkA5{5o4z zW*pK8A$b-AAPi|tMlgN|p*#eN!5o7D$5$pNKtNM?iFARpEuM5yKEjTL^%LK&O&6}y zYv1AO`JRKnx;`LXRC*3<0(z;NzPjj+9;UXt^6dTJGEfJk()^`Yezq zq?{e!HZ?iKX^#peasrl)oxVlOg(8b@lXGuwZ;!QJuFXydj=!|D^mpI=v2(WjacJo2 zbKZ$@cz3Gnb_E>z#mA?$#!{YFKd_cUmLjxfle%fX0$I|btv9P=pZ?OAwyUgmXecEk z!=Nk+SuI(!nN?fM7uu}p=hr@`95;VZSb>Q|rZzjwSSD{F3Ko0rg%%E8;df>BaYUB6-rCnkt5&Ca$x zKCO)s7Zt^tNK_aR5s2H*ZrzcDZWNc47gzF>V%UAaY~LFv%7a9Bl22Q(ZpwwUSiySh7_< z$an)i*YnJMC^vIk%ruS*`!Nn$XVQbUSyLJ!oO9e&J1ri(DhQ|eP#altnB8nW{+ zNN)uP&5_!ElJ-lG6RyGj-0&{H9-9U#{SN=O<0l6N`d5@3!QxP0{AD;t{b{%FmFWT{6^D(D%PAJVs5<;q zRKOZT*^3u1f|=}g!@Ij_1*UH8+jyWcBx=wuT?rI7FlPv^T@ZL>9p<@IG+F5JFL4`}81nIw322y|`6!s=xs z_WQ@}p1FG)n}sSTrhqe`gNj~eCpZ`!b!UfB+4hpz!LmX&Q{1=h(pLIM@B9^%VKESt z8CggD0g$Ssb+4E@e0-rH95dd(H7b{&wEZ!PwQKx2MV1dQ3#~FZmVx0p*v@w3&)Krx z3zlE`-ONNuvSXiC4#{X;H8X=c?9cP^u@HUvBf%&p0KMli68#?DrCuTS7M1_uxgCNq#FAEM^VEuNrc`8rS6Y{QYZ5VbstKWdME?E2gCvx1 zKeTD`qxg`_3O&8@;e^bJqoH#7{eXABkP^gPl?dz5Nd>Y_@%@l4y?Rz~2C4Mt=`$Bn zX^8bL+0;ZcwBo%nrp5(`NbPFHw(ue-__Bbs;s<%D2eifsuYc$e`dA%)sh)YBr1O|} zmneoaK3N%_#Kv(;2n$Z|=BT}Gk}@i^;`)mC9I2ARhh@wEfrx9iz=UC@%WlZ=+4M>! zA+RM!*)J}ReIFgYE3EKWD`=Qnx_2%H{boM7jC!=(Jp*>4K|zyuSQ^tk9cS11FP~K z*sJG(Q31L#ZW7{~68jo22`ZuP{ann%_A^av-ex>QL?9 zS>FQZZcxo}1eI(wjPY@TkVWnGPU_O~~G+W%#E` zXCzi{k5zt<885Mji~G+QwIzxtc^j41>M;D;DdKe(*SSzP*}w1sq~ij5#*^3B-VdIB zauupyDXgh+O8*mln9qm3lFDZWb79m)eyW&Vl0K!bXw-?BGKtC@zjX;mqISmm1EnHC zrD8=C)#ROaMNZt7fz;A-{U$-b(?U~-|3Vr%6YVw>DeJpxf32bbZk+_|*{NPkAP?$R z@Efu=H@}w_ZV!*FyN3Au*{iW`fAw6s32J_2f34?*`*1Zg1(uQK8$8B$@yBATqvls~ zY~PW!sB_}MnwEmL06lEEZ6t6`$tIaY=4X;zqr;1gpc__F;TuSS@g%kjD^VKiaOi%qMyJSk$$ z>fXvFg1GzZq4mMd0-3M8nUc_^=GLZT9*KT@sw8%0Akb%_%Bm&j3;qT_9chVih}ox1 zX?9ml_o0fR>shxtSdS70zQ}J5lK3oJ%bh>#5O@3apuG|S0FaN3q@duD-Do|r)upNf zMLydcztc!aTe%=A zH7LJTjRsSYgkgOAT`3`6vH0ER(0 z5Vt#Lbu`&B%apRn!vzI_kCURYL~0Nh)>auY4xzDRxuz(X385w6CWVP)(CF>q%HRzpc88QB5uez(ID6Z!oML~dD_Y<+< zbm%!U_mnGd>Bwc;-0iL^h`a#FaST5C7vrEa9B>qjj)Ds!jf21oBFG3ZE}-yo4!9SV z41>@Y`u{ydUmPwIyqyc~`MUf))DE^CoQ3YpZb{$O3*XPLtZvC1j+T8#U%kQ3bb=FN(-Y6XRnc6eMr zWbs&AyQr+pprN7REREPpn3pc5X~V1lwEL=faFSV9@3t_OwdQ;Q3XZj)7+>jNkAa@u zhHq|W4CqdOGN00hK!nlAfbxNC^+ka*9K-0>|Erb6A+3ih*1o-Cw2D&bo^Xm*u_;YQ z5*9X1xnV=wW$^brG^Y)WjH>K1FGxuh4_F3KxkiTrx%U?6nCL0)JP$nD zOS9HO&6nGCQ2YFPWWvSp7XQc!SfOc+N45`~xLFVovz6ChJ5u$p-UI(*Wo7lJM@Tq! zXT=ZfbDij|lY|S}i-V$`DI=`e(OCTpanQWsGQ4&=CusSs_MNiET^A!Ot7OUi&BYKC zA3t16h5>LngV<9VJx2+rCHiEi)iffK&d8SfE`^f1?(h1G#OU?Z

dxj%CL4%Yv8F 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 Dk5wZ$ literal 372526 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 literal 74145 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 X^|^;*CfE - + - + - - - - - - + + + + + + + + + + + diff --git a/desktop/main.ts b/desktop/main.ts index 9685adc9..79c475b0 100644 --- a/desktop/main.ts +++ b/desktop/main.ts @@ -172,7 +172,7 @@ if (!app.requestSingleInstanceLock()) { } const drops = createDropImports(); - ipcMain.handle("moke:stage-pdf", async (event, value) => { + ipcMain.handle("second-set:stage-pdf", async (event, value) => { if ( !event.senderFrame || event.senderFrame !== event.sender.mainFrame || diff --git a/desktop/modal-credentials.ts b/desktop/modal-credentials.ts index e0db13e3..160a3f75 100644 --- a/desktop/modal-credentials.ts +++ b/desktop/modal-credentials.ts @@ -7,7 +7,7 @@ import { CredentialError } from "./credential-files.ts"; export const readModalConfiguration = Effect.fn("readModalConfiguration")(function* ( packaged: boolean, ) { - const sessionFile = process.env.MOKE_MODAL_CONFIG; + const sessionFile = process.env.SECOND_SET_MODAL_CONFIG; if (sessionFile !== undefined) { const text = yield* Effect.tryPromise({ @@ -55,11 +55,11 @@ export const readModalConfiguration = Effect.fn("readModalConfiguration")(functi return yield* Schema.decodeUnknownEffect(ModalConfiguration)({ tokenId, tokenSecret, - appName: process.env.MOKE_MODAL_APP ?? "moke-reviews", + appName: process.env.SECOND_SET_MODAL_APP ?? "second-set-reviews", environment: process.env.MODAL_ENVIRONMENT ?? "main", - imageName: process.env.MOKE_MODAL_IMAGE ?? "moke-review-engine:latest", - timeoutMinutes: Number(process.env.MOKE_MODAL_TIMEOUT_MINUTES ?? "15"), - poolQueue: process.env.MOKE_MODAL_POOL_QUEUE ?? null, + imageName: process.env.SECOND_SET_MODAL_IMAGE ?? "second-set-review-engine:latest", + timeoutMinutes: Number(process.env.SECOND_SET_MODAL_TIMEOUT_MINUTES ?? "15"), + poolQueue: process.env.SECOND_SET_MODAL_POOL_QUEUE ?? null, }).pipe( Effect.mapError(() => new CredentialError({ message: "The Modal configuration is invalid." })), ); diff --git a/desktop/preload.ts b/desktop/preload.ts index 07c638f5..1667f4ae 100644 --- a/desktop/preload.ts +++ b/desktop/preload.ts @@ -3,6 +3,7 @@ import { exposeRpcBridge } from "electron-effect-rpc/preload"; exposeRpcBridge({ endpoints: ["default"] }); -contextBridge.exposeInMainWorld("mokeFiles", { - stageDrop: (file: File) => ipcRenderer.invoke("moke:stage-pdf", webUtils.getPathForFile(file)), +contextBridge.exposeInMainWorld("secondSetFiles", { + stageDrop: (file: File) => + ipcRenderer.invoke("second-set:stage-pdf", webUtils.getPathForFile(file)), }); diff --git a/docs/architecture/review-packages.md b/docs/architecture/review-packages.md index e2aaf178..a26a213b 100644 --- a/docs/architecture/review-packages.md +++ b/docs/architecture/review-packages.md @@ -6,7 +6,7 @@ Primary demo target: Linux x64. The writer uses same-filesystem rename, director ## Package directory -Format name `moke-review-package`, format version `1`, hash `sha256`, engine `review-pi-1.4.0-v1`. The only scope this writer produces is `application` with scope label `whole-application`. That means the whole local application database plus the originals, renders, and closed Pi journals that database references. +Format name `second-set-review-package`, format version `1`, hash `sha256`, engine `review-pi-1.4.0-v1`. Packages exported before the rename from MOKE name `moke-review-package` and restore unchanged. The only scope this writer produces is `application` with scope label `whole-application`. That means the whole local application database plus the originals, renders, and closed Pi journals that database references. ```text manifest.json diff --git a/docs/cloud-reviews.md b/docs/cloud-reviews.md index e4316f7a..86928c79 100644 --- a/docs/cloud-reviews.md +++ b/docs/cloud-reviews.md @@ -17,9 +17,9 @@ or incoming HTTP tunnel. Configure the existing model connection first; see [inference setup](inference.md). Create a named Secret in the [Modal Secrets dashboard](https://modal.com/secrets) -with the key `MOKE_API_KEY` holding that provider's API key. Its name is -`--api`: the defaults are `moke-reviews-meta-api`, -`moke-reviews-baseten-api` and `moke-reviews-opencode-go-api`. The current JS SDK can reference named Secrets but +with the key `SECOND_SET_API_KEY` holding that provider's API key. Its name is +`--api`: the defaults are `second-set-reviews-meta-api`, +`second-set-reviews-baseten-api` and `second-set-reviews-opencode-go-api`. The current JS SDK can reference named Secrets but cannot create them; use the dashboard or Modal's admin CLI for that one-time step. The application and sandbox workloads remain TypeScript on Bun. @@ -29,11 +29,11 @@ For development, put these additional values in the local, ignored `.env`: MODAL_TOKEN_ID=... MODAL_TOKEN_SECRET=... MODAL_ENVIRONMENT=main -MOKE_MODAL_APP=moke-reviews -MOKE_MODAL_IMAGE=moke-review-engine:latest -MOKE_MODAL_TIMEOUT_MINUTES=15 +SECOND_SET_MODAL_APP=second-set-reviews +SECOND_SET_MODAL_IMAGE=second-set-review-engine:latest +SECOND_SET_MODAL_TIMEOUT_MINUTES=15 # Optional; omit to avoid paying for unused warm capacity: -# MOKE_MODAL_POOL_QUEUE=moke-review-pool +# SECOND_SET_MODAL_POOL_QUEUE=second-set-review-pool ``` Publish the worker image from the current checkout: @@ -50,16 +50,16 @@ local data, `.env`, logs, and credentials are not copied into the image. Publish matching image again when changing review engine code or migrations. Keep an immutable image tag per deployed desktop version when distributing builds. -Packaged launches use `MOKE_MODAL_CONFIG` pointing to a private JSON file. They +Packaged launches use `SECOND_SET_MODAL_CONFIG` pointing to a private JSON file. They do not read these credentials automatically from `.env`. The file contains: ```json { "tokenId": "...", "tokenSecret": "...", - "appName": "moke-reviews", + "appName": "second-set-reviews", "environment": "main", - "imageName": "moke-review-engine:latest", + "imageName": "second-set-review-engine:latest", "timeoutMinutes": 15, "poolQueue": null } @@ -172,8 +172,8 @@ authenticated NDJSON on the existing loopback endpoint, then Electron's trusted MessagePort to the renderer. The renderer does not hold Modal credentials or open a connection to a public sandbox endpoint. -For an active review the backend watches `/moke` with Modal's filesystem watch -API, filtering atomic updates of `progress.json`. These are wake-up hints, not +For an active review the backend watches the worker folder, `/second-set`, or `/moke` +for a job dispatched to a protocol-5 worker, with Modal's filesystem watch API, filtering atomic updates of `progress.json`. These are wake-up hints, not the source of truth. It reconciles on initial attachment and every ten seconds as well, covering missed events, unsupported watchers, and connection loss. The watcher is bounded to thirty seconds and reconnects; local iterator cleanup @@ -294,7 +294,7 @@ sandboxes, and local work stays fenced until the reviewer confirms stop. Optional prewarming: ```sh -# Requires MOKE_MODAL_POOL_QUEUE in the operator configuration. +# Requires SECOND_SET_MODAL_POOL_QUEUE in the operator configuration. bun run modal:warm ``` @@ -412,11 +412,11 @@ are fenced while the cloud owns the workspace. ### Current admission and recovery -New reviews are admitted only to a protocol-5 worker whose identity matches this +New reviews are admitted only to a protocol-6 worker whose identity matches this build exactly: package engine `review-pi-1.4.0-v1`, count prompt -`moke-selected-coordination-v2`, packet prompt `moke-packet-review-v10`, and the +`second-set-selected-coordination-v3`, packet prompt `second-set-packet-review-v11`, and the current instruction revision and code index version. Every new ownership receipt -records `workerProtocol: 5`. An image with a different identity fails the +records `workerProtocol: 6`. An image with a different identity fails the identity probe before transfer. Migrations are not part of the identity: a worker restores only packages whose migration history is a prefix of its own, so an image built before a new migration passes the probe and refuses the package after @@ -425,7 +425,9 @@ prompts, migrations or the code index change. Recovery only observes work already `dispatching` or `running`; it never redispatches or restarts a model. Earlier identities must still match the current -engine, count prompt and instruction revision. Protocols 2 to 4 omit the code index; earlier protocol-5 workers use index v1: +engine and instruction revision. Workers built before protocol 6 announce the MOKE-era +names they shipped with: count prompt `moke-selected-coordination-v2` and packet prompts +`moke-packet-review-v1` to `v10`. Protocols 2 to 4 omit the code index; earlier protocol-5 workers use index v1: | Receipt `workerProtocol` | Progress accepted while dispatched | | ----------------------------------------- | ------------------------------------------------------------------ | @@ -433,12 +435,26 @@ engine, count prompt and instruction revision. Protocols 2 to 4 omit the code in | `3` | Protocol 3 with packet prompts v1 to v3 | | `4` | Protocol 4 with packet prompts v3 to v5 | | `5` | Protocol 5 with v9 or v10/index v3, v8/index v2, or v6/v7/index v1 | +| `6` | Current progress | Receipts in every other phase accept only current progress. ### Protocol history -Each entry records what an upgrade required when it shipped. +Each entry records what an upgrade required when it shipped, with the names in use then. + +**Protocol 6** ships the rename from MOKE to Second Set. The worker keeps its files +under `/second-set` and `/opt/second-set`, reads `SECOND_SET_CLOUD_PROVIDERS`, and +expects each provider Secret's key as `SECOND_SET_API_KEY`. The defaults become the +`second-set-reviews` App, `second-set-review-engine` image and +`second-set-reviews--api` Secrets. It ships with count prompt +`second-set-selected-coordination-v3` and packet prompt `second-set-packet-review-v11`, +which change only the application's name in model-facing text. Publish the image under +the new App with `bun run modal:image` and create the renamed Secrets before sending; a +protocol-5 image fails the identity probe. Jobs already sent to a protocol-5 worker are +still read from `/moke` and stay recoverable. Migration 0014 renames saved +`moke-packet-review-vN` and `moke-selected-coordination-v2` records to their +`second-set-` names. **Protocol 4** adds the workspace cache: new receipts record the cache Volume and `workerProtocol: 4`, and the worker fills skipped files from `/cache` before @@ -492,7 +508,7 @@ before local ownership returns. An incompatible sync pause saved by an earlier build still requires **Retry sync** after upgrading; it is not cleared implicitly. Before transferring, the desktop resolves the selected published image and required provider -secrets, including their MOKE_API_KEY keys. A credential-free, network-blocked probe +secrets, including their SECOND_SET_API_KEY keys. A credential-free, network-blocked probe validates the worker identity before ownership is recorded; successful compatibility is cached by immutable image ID for the runtime. The probe has a one-minute lifetime and is released after validation. Cloud setup reports readiness failures explicitly. diff --git a/docs/data.md b/docs/data.md index 4e3bb96e..2f721034 100644 --- a/docs/data.md +++ b/docs/data.md @@ -117,6 +117,14 @@ The renderer version changes with the pinned PDF.js or canvas version. Rendering checks the original's hash on the exact bytes given to PDF.js; a replaced original fails and stores no image. +Migration 0014 follows the rename from MOKE to Second Set. Saved run prompt versions, +packet review and record payloads, command receipts and execution responses take the +`second-set-` instruction names, so `moke-packet-review-v10` reads +`second-set-packet-review-v10`. Provider attempts, tool results and SAM records are left +byte for byte as the record of what was sent and returned. Renderer identities stay +unchanged: `moke-render-2` is hashed into every stored render's identity, and renaming it +would rasterize every sheet again for the same pixels. + PDF.js removes an embedded image larger than its image limit from the page without an error. Renderer `moke-render-1` used the 16-megapixel output limit there, so scanned schedules and details above it rendered as blank paper; a 17.6-megapixel panel schedule on a sample sheet diff --git a/docs/deployment.md b/docs/deployment.md index 80710a91..7725faeb 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -108,7 +108,7 @@ embedded Modal or model credential in a distributed binary. Use File > Import provider credential to encrypt a configuration with Electron safeStorage. Linux storage without a running secret service is refused, because Chromium would otherwise encrypt with a publicly known key. Without secure OS storage, -set `MOKE_SESSION_CREDENTIAL_FILE` to an explicitly selected private JSON file +set `SECOND_SET_SESSION_CREDENTIAL_FILE` to an explicitly selected private JSON file for that launch. On Unix it must have owner-only permissions (for example `chmod 600`). It contains `provider`, `apiKey`, canonical `baseUrl`, and `model`. Meta uses `https://api.meta.ai/v1` and `muse-spark-1.3`; Baseten uses @@ -125,5 +125,5 @@ redacted value, and is never returned. See [OpenCode Go](inference.md#opencode-go) and [custom endpoints](inference.md#custom-openai-compatible-endpoint). -Set `MOKE_E2E_LIVE=1` only for the explicitly budgeted packaged acceptance test. +Set `SECOND_SET_E2E_LIVE=1` only for the explicitly budgeted packaged acceptance test. It adds a live inspection to the ordinary four-outcome desktop flow. diff --git a/docs/development.md b/docs/development.md index 108e2880..5330e501 100644 --- a/docs/development.md +++ b/docs/development.md @@ -25,7 +25,7 @@ It never uses an existing desktop. It needs unprivileged user namespaces for `Xvfb` and `xdpyinfo`. Inside private user, mount, network, PID and IPC namespaces it starts its own Xvfb on `:99`, strips inherited display, D-Bus and audio variables, and refuses to run while the desktop display `:0` is reachable. -Set `MOKE_XVFB_BINARY` when `Xvfb` is not on `PATH`. Setting `DISPLAY` or wrapping +Set `SECOND_SET_XVFB_BINARY` when `Xvfb` is not on `PATH`. Setting `DISPLAY` or wrapping the command in `xvfb-run` has no effect: the runner discards inherited display variables, and the Playwright fixtures refuse runs that bypass it. The fixed display's lock is `/tmp/.X99-lock`, so run one desktop suite per host at a time. diff --git a/docs/inference.md b/docs/inference.md index 7d800713..458c4f3c 100644 --- a/docs/inference.md +++ b/docs/inference.md @@ -53,7 +53,7 @@ use `meta-models/muse-spark-open`, which is a different configured model ID. SAM key is configured, packet reviews use it with either chat provider; see [SAM in packet reviews](#sam-in-packet-reviews). -`MOKE_PROVIDER` chooses the preferred startup provider, with `meta` as the +`SECOND_SET_PROVIDER` chooses the preferred startup provider, with `meta` as the default. Each review saves the model selected in the workbench. Changing the menu does not change an existing run. When Go is connected, a follow-up whose earlier model the menu no longer offers moves to the first model it does. The @@ -359,7 +359,7 @@ A session file accepts one provider configuration or both: } ``` -Set `MOKE_SESSION_CREDENTIAL_FILE` to that private file for the launch. Unix files +Set `SECOND_SET_SESSION_CREDENTIAL_FILE` to that private file for the launch. Unix files must be owner-only; Windows uses file ACLs. Importing one provider preserves the other provider's saved connection. Restart after changing the session file. A model whose provider is unconfigured stays disabled. Connected in settings diff --git a/docs/screenshots/README.md b/docs/screenshots/README.md index c42e06ee..3058df17 100644 --- a/docs/screenshots/README.md +++ b/docs/screenshots/README.md @@ -26,14 +26,14 @@ It is from a different review than the five-sheet civil example. ## Extract the frames With FFmpeg installed, run these commands from the repository root. Set -`MOKE_DEMO_VIDEO` to the local copy of the source video; the video itself is not +`SECOND_SET_DEMO_VIDEO` to the local copy of the source video; the video itself is not stored in this repository. ```sh -export MOKE_DEMO_VIDEO=/path/to/moke-demo-voiceover-final.mp4 -ffmpeg -hide_banner -loglevel error -y -ss 92 -i "$MOKE_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/workbench.png -ffmpeg -hide_banner -loglevel error -y -ss 108 -i "$MOKE_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/correction.png -ffmpeg -hide_banner -loglevel error -y -ss 122 -i "$MOKE_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/revision.png +export SECOND_SET_DEMO_VIDEO=/path/to/moke-demo-voiceover-final.mp4 +ffmpeg -hide_banner -loglevel error -y -ss 92 -i "$SECOND_SET_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/workbench.png +ffmpeg -hide_banner -loglevel error -y -ss 108 -i "$SECOND_SET_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/correction.png +ffmpeg -hide_banner -loglevel error -y -ss 122 -i "$SECOND_SET_DEMO_VIDEO" -frames:v 1 -threads 2 docs/screenshots/revision.png ``` `bun run test:screenshots` captures the offline synthetic fixture into diff --git a/docs/validation/core-validation.md b/docs/validation/core-validation.md index b1423ac7..ad15fd5a 100644 --- a/docs/validation/core-validation.md +++ b/docs/validation/core-validation.md @@ -6,7 +6,7 @@ The primary route is Meta Responses, `muse-spark-1.3`. SAM uses its separate ## Packaged acceptance -`MOKE_E2E_LIVE=1 MOKE_SESSION_CREDENTIAL_FILE=/private/session.json DISPLAY=:0 +`SECOND_SET_E2E_LIVE=1 SECOND_SET_SESSION_CREDENTIAL_FILE=/private/session.json DISPLAY=:0 bun run test:packaged` passed both desktop tests. The production flow took 41.8 seconds. Electron loaded the explicit session credential and passed it to the compiled Bun backend through its private stdin channel. The installed app diff --git a/migrations/0014_second_set_identifiers.sql b/migrations/0014_second_set_identifiers.sql new file mode 100644 index 00000000..df533000 --- /dev/null +++ b/migrations/0014_second_set_identifiers.sql @@ -0,0 +1,36 @@ +-- The application was renamed from MOKE to Second Set. Saved review metadata takes the new +-- instruction identifiers, so moke-packet-review-v10 reads second-set-packet-review-v10. +-- Provider attempts, tool results and SAM records stay byte for byte: they are the record of what +-- was sent and returned. +UPDATE review_execution_runs +SET prompt_version = 'second-set-' || substr(prompt_version, 6) +WHERE prompt_version LIKE 'moke-selected-coordination-v%'; + +UPDATE packet_reviews +SET payload = replace(replace(payload, + '"moke-packet-review-v', '"second-set-packet-review-v'), + '"moke-selected-coordination-v', '"second-set-selected-coordination-v') +WHERE payload LIKE '%"moke-packet-review-v%' OR payload LIKE '%"moke-selected-coordination-v%'; + +UPDATE review_records +SET payload = replace(replace(payload, + '"moke-packet-review-v', '"second-set-packet-review-v'), + '"moke-selected-coordination-v', '"second-set-selected-coordination-v') +WHERE payload LIKE '%"moke-packet-review-v%' OR payload LIKE '%"moke-selected-coordination-v%'; + +UPDATE review_commands +SET receipt = replace(replace(receipt, + '"moke-packet-review-v', '"second-set-packet-review-v'), + '"moke-selected-coordination-v', '"second-set-selected-coordination-v') +WHERE receipt LIKE '%"moke-packet-review-v%' OR receipt LIKE '%"moke-selected-coordination-v%'; + +UPDATE review_execution_commands +SET response_json = replace(replace(response_json, + '"moke-packet-review-v', '"second-set-packet-review-v'), + '"moke-selected-coordination-v', '"second-set-selected-coordination-v') +WHERE response_json LIKE '%"moke-packet-review-v%' + OR response_json LIKE '%"moke-selected-coordination-v%'; + +UPDATE review_events +SET message = 'Second Set review response saved.' +WHERE message = 'MOKE review response saved.'; diff --git a/scripts/build-icons.ts b/scripts/build-icons.ts new file mode 100644 index 00000000..2e029158 --- /dev/null +++ b/scripts/build-icons.ts @@ -0,0 +1,61 @@ +/** + * Render the application icon rasters from their SVG sources with resvg: + * `desktop/icons/icon.png`, `icon.icns` and `icon.ico`. Usage: `bun scripts/build-icons.ts`. + */ +import { Resvg } from "@resvg/resvg-js"; +import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; + +const directory = join(import.meta.dir, "..", "desktop", "icons"); + +const render = (svg: string, size: number) => + new Resvg(svg, { fitTo: { mode: "width", value: size } }).render().asPng(); + +/** An ICO file of PNG entries, which Windows reads from Vista on. */ +const ico = (images: ReadonlyArray<{ size: number; png: Uint8Array }>) => { + const header = Buffer.alloc(6 + images.length * 16); + header.writeUInt16LE(0, 0); + header.writeUInt16LE(1, 2); + header.writeUInt16LE(images.length, 4); + let offset = header.length; + + images.forEach(({ size, png }, index) => { + const entry = 6 + index * 16; + header.writeUInt8(size >= 256 ? 0 : size, entry); + header.writeUInt8(size >= 256 ? 0 : size, entry + 1); + header.writeUInt16LE(1, entry + 4); + header.writeUInt16LE(32, entry + 6); + header.writeUInt32LE(png.length, entry + 8); + header.writeUInt32LE(offset, entry + 12); + offset += png.length; + }); + + return Buffer.concat([header, ...images.map(({ png }) => Buffer.from(png))]); +}; + +const icon = await readFile(join(directory, "icon.svg"), "utf8"); +const fullBleed = await readFile(join(directory, "icon-full-bleed.svg"), "utf8"); + +await writeFile(join(directory, "icon.png"), render(icon, 1024)); + +const icns = await mkdtemp(join(tmpdir(), "second-set-icns-")); + +try { + for (const size of [16, 32, 64, 128, 256, 512, 1024]) + await writeFile(join(icns, `${size}.png`), render(icon, size)); + + const packer = Bun.spawn( + [process.execPath, join(import.meta.dir, "build-icns.ts"), icns, join(directory, "icon.icns")], + { stdout: "inherit", stderr: "inherit" }, + ); + + if ((await packer.exited) !== 0) throw new Error("The ICNS file could not be written."); +} finally { + await rm(icns, { recursive: true, force: true }); +} + +await writeFile( + join(directory, "icon.ico"), + ico([16, 24, 32, 48, 64, 128, 256].map((size) => ({ size, png: render(fullBleed, size) }))), +); diff --git a/scripts/desktop-test-environment.ts b/scripts/desktop-test-environment.ts index 5760a678..a9cb1a73 100644 --- a/scripts/desktop-test-environment.ts +++ b/scripts/desktop-test-environment.ts @@ -4,14 +4,15 @@ export const isHostedDesktopRunner = (environment: NodeJS.ProcessEnv) => /** Fail closed before Electron can access any local graphical session. */ export function assertDesktopTestEnvironment(environment: NodeJS.ProcessEnv) { - if (!environment.MOKE_TEST_RUNTIME) + if (!environment.SECOND_SET_TEST_RUNTIME) throw new Error("Desktop tests require a private runtime/profile directory."); - if (environment.MOKE_TEST_HOSTED_RUNNER === "1" && isHostedDesktopRunner(environment)) return; + if (environment.SECOND_SET_TEST_HOSTED_RUNNER === "1" && isHostedDesktopRunner(environment)) + return; if ( - !environment.MOKE_TEST_ISOLATED_DISPLAY || - environment.DISPLAY !== environment.MOKE_TEST_ISOLATED_DISPLAY || + !environment.SECOND_SET_TEST_ISOLATED_DISPLAY || + environment.DISPLAY !== environment.SECOND_SET_TEST_ISOLATED_DISPLAY || environment.WAYLAND_DISPLAY || environment.DBUS_SESSION_BUS_ADDRESS !== "unix:path=/dev/null" ) diff --git a/scripts/isolated-desktop.ts b/scripts/isolated-desktop.ts index f4da40e6..d0070ab5 100644 --- a/scripts/isolated-desktop.ts +++ b/scripts/isolated-desktop.ts @@ -14,9 +14,9 @@ if (isHostedDesktopRunner(process.env)) { { env: { ...process.env, - MOKE_TEST_RUNTIME: directory, - MOKE_TEST_HOSTED_RUNNER: "1", - MOKE_E2E_LIVE: "0", + SECOND_SET_TEST_RUNTIME: directory, + SECOND_SET_TEST_HOSTED_RUNNER: "1", + SECOND_SET_E2E_LIVE: "0", }, stdin: "inherit", stdout: "inherit", @@ -36,7 +36,7 @@ if (process.platform !== "linux") throw new Error("Local desktop proof requires the private Linux isolation runner."); // Separate network and mount namespaces hide both abstract and filesystem X11 sockets. -if (process.platform === "linux" && process.env.MOKE_TEST_MOUNT_NAMESPACE !== "1") { +if (process.platform === "linux" && process.env.SECOND_SET_TEST_MOUNT_NAMESPACE !== "1") { const sandbox = Bun.which("unshare"); if (!sandbox) throw new Error("unshare is required for a private X11 socket namespace."); @@ -62,7 +62,7 @@ if (process.platform === "linux" && process.env.MOKE_TEST_MOUNT_NAMESPACE !== "1 ...process.argv.slice(2), ], { - env: { ...process.env, MOKE_TEST_MOUNT_NAMESPACE: "1" }, + env: { ...process.env, SECOND_SET_TEST_MOUNT_NAMESPACE: "1" }, stdin: "inherit", stdout: "inherit", stderr: "inherit", @@ -78,17 +78,17 @@ const runtime = join(directory, "runtime"); await mkdir(runtime, { mode: 0o700 }); -const executable = process.env.MOKE_XVFB_BINARY ?? Bun.which("Xvfb"); +const executable = process.env.SECOND_SET_XVFB_BINARY ?? Bun.which("Xvfb"); if (!executable) throw new Error( - "Private Xvfb is required. Set MOKE_XVFB_BINARY; desktop tests never use the inherited display.", + "Private Xvfb is required. Set SECOND_SET_XVFB_BINARY; desktop tests never use the inherited display.", ); const environment = Object.fromEntries( Object.entries(process.env).flatMap(([key, value]) => value === undefined || - /^(DISPLAY|WAYLAND_DISPLAY|DBUS_|SESSION_MANAGER|PULSE_|PIPEWIRE_|XDG_CURRENT_DESKTOP|DESKTOP_SESSION|XAUTHORITY|ELECTRON_RUN_AS_NODE|MOKE_E2E_LIVE)/.test( + /^(DISPLAY|WAYLAND_DISPLAY|DBUS_|SESSION_MANAGER|PULSE_|PIPEWIRE_|XDG_CURRENT_DESKTOP|DESKTOP_SESSION|XAUTHORITY|ELECTRON_RUN_AS_NODE|SECOND_SET_E2E_LIVE)/.test( key, ) ? [] @@ -160,8 +160,8 @@ try { env: { ...environment, DISPLAY: privateDisplay, - MOKE_TEST_ISOLATED_DISPLAY: privateDisplay, - MOKE_TEST_RUNTIME: runtime, + SECOND_SET_TEST_ISOLATED_DISPLAY: privateDisplay, + SECOND_SET_TEST_RUNTIME: runtime, XDG_RUNTIME_DIR: runtime, XDG_SESSION_TYPE: "x11", GDK_BACKEND: "x11", diff --git a/scripts/modal.ts b/scripts/modal.ts index df7f4796..6197ac66 100644 --- a/scripts/modal.ts +++ b/scripts/modal.ts @@ -41,7 +41,7 @@ const main = Effect.scoped( return yield* new CloudReviewError({ reason: "configuration", message: - "Configure Modal using MOKE_MODAL_CONFIG or MODAL_TOKEN_ID and MODAL_TOKEN_SECRET first. See docs/cloud-reviews.md.", + "Configure Modal using SECOND_SET_MODAL_CONFIG or MODAL_TOKEN_ID and MODAL_TOKEN_SECRET first. See docs/cloud-reviews.md.", }); const client = yield* Effect.acquireRelease( @@ -84,7 +84,7 @@ const main = Effect.scoped( const base = client.images .fromRegistry("oven/bun:1.4.4") .dockerfileCommands([ - "WORKDIR /opt/moke", + "WORKDIR /opt/second-set", "RUN bun add --exact @napi-rs/canvas@1.1.0 @napi-rs/canvas-linux-x64-gnu@1.1.0 pdfjs-dist@6.5.438", ]); @@ -104,12 +104,15 @@ const main = Effect.scoped( ); yield* call(() => - sandbox.filesystem.copyFromLocal(join(output, "worker-main.mjs"), "/opt/moke/worker.mjs"), + sandbox.filesystem.copyFromLocal( + join(output, "worker-main.mjs"), + "/opt/second-set/worker.mjs", + ), ); yield* call(() => sandbox.filesystem.copyFromLocal( join(output, "pdf-worker-main.mjs"), - "/opt/moke/pdf-worker.mjs", + "/opt/second-set/pdf-worker.mjs", ), ); const migrations = yield* call(() => readdir("migrations")); @@ -118,12 +121,12 @@ const main = Effect.scoped( yield* call(() => sandbox.filesystem.copyFromLocal( join("migrations", file), - `/opt/moke/migrations/${file}`, + `/opt/second-set/migrations/${file}`, ), ); const text = yield* call(async () => { - const process = await sandbox.exec(["bun", "/opt/moke/worker.mjs", "--identity"]); + const process = await sandbox.exec(["bun", "/opt/second-set/worker.mjs", "--identity"]); const text = await process.stdout.readText(); if ((await process.wait()) !== 0) throw failed(); @@ -143,7 +146,7 @@ const main = Effect.scoped( return yield* new CloudReviewError({ reason: "configuration", message: - "Set MOKE_MODAL_POOL_QUEUE to opt into a warm sandbox. Warm capacity uses credits even before a review starts.", + "Set SECOND_SET_MODAL_POOL_QUEUE to opt into a warm sandbox. Warm capacity uses credits even before a review starts.", }); const queue = yield* call(() => @@ -184,7 +187,7 @@ const main = Effect.scoped( experimentalOptions: { enable_exit_snapshot: true }, experimentalOutboundPolicy: emptyReviewOutboundPolicy(), readinessProbe: modalReadinessProbe(), - tags: { "moke-kind": "warm" }, + tags: { "second-set-kind": "warm" }, }), ); diff --git a/scripts/validate-cloud.ts b/scripts/validate-cloud.ts index 1c344964..174814e2 100644 --- a/scripts/validate-cloud.ts +++ b/scripts/validate-cloud.ts @@ -28,13 +28,13 @@ const main = Effect.gen(function* () { } const modal = yield* readModalConfiguration(false); - const providerFile = Bun.env.MOKE_SESSION_CREDENTIAL_FILE; + const providerFile = Bun.env.SECOND_SET_SESSION_CREDENTIAL_FILE; if (modal === undefined || providerFile === undefined) return yield* new CloudReviewError({ reason: "configuration", message: - "Set MOKE_MODAL_CONFIG and MOKE_SESSION_CREDENTIAL_FILE to private connection files before live acceptance.", + "Set SECOND_SET_MODAL_CONFIG and SECOND_SET_SESSION_CREDENTIAL_FILE to private connection files before live acceptance.", }); const inference = yield* Effect.tryPromise({ diff --git a/src/app.d.ts b/src/app.d.ts index 6caff814..3c1ab9aa 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,7 +1,7 @@ declare global { interface Window { /** Stage an actual OS-dropped file at the trusted Electron boundary. Paths stay in Electron. */ - mokeFiles: { stageDrop: (file: File) => Promise<{ token: string; name: string } | null> }; + secondSetFiles: { stageDrop: (file: File) => Promise<{ token: string; name: string } | null> }; } } diff --git a/src/lib/review/components/CloudReviewControls.svelte b/src/lib/review/components/CloudReviewControls.svelte index 6801e9d4..1e9832c5 100644 --- a/src/lib/review/components/CloudReviewControls.svelte +++ b/src/lib/review/components/CloudReviewControls.svelte @@ -1,5 +1,6 @@