@seriousgaming/sdk-tools 0.0.0-stage → 1.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +93 -0
- package/README.md +38 -2
- package/dist/bundling/logic-exports.d.ts +34 -0
- package/dist/bundling/node-builtins.d.ts +21 -0
- package/dist/bundling/transpiler.d.ts +7 -0
- package/dist/cli.js +27404 -0
- package/dist/client/dev-server.d.ts +59 -0
- package/dist/client/index.d.ts +28 -0
- package/dist/client/stub-services.d.ts +32 -0
- package/dist/client/test-session.d.ts +195 -0
- package/dist/client.js +16920 -0
- package/dist/core/asset-reference-translator.d.ts +46 -0
- package/dist/core/clock.d.ts +57 -0
- package/dist/core/faults.d.ts +65 -0
- package/dist/core/game-settings.d.ts +65 -0
- package/dist/core/history.d.ts +89 -0
- package/dist/core/listen-with-fallback.d.ts +30 -0
- package/dist/core/mutation-queue.d.ts +61 -0
- package/dist/core/package-scenario.d.ts +89 -0
- package/dist/core/participant-registry.d.ts +109 -0
- package/dist/core/pending-changes.d.ts +14 -0
- package/dist/core/protocol.d.ts +83 -0
- package/dist/core/scenario-drafts.d.ts +32 -0
- package/dist/core/session-endpoints.d.ts +108 -0
- package/dist/core/session-gates.d.ts +75 -0
- package/dist/core/session-host.d.ts +94 -0
- package/dist/core/session-refusals.d.ts +56 -0
- package/dist/core/session-rewind.d.ts +32 -0
- package/dist/core/session-roster.d.ts +128 -0
- package/dist/core/session-surfaces.d.ts +32 -0
- package/dist/core/session-ticks.d.ts +18 -0
- package/dist/core/session-timers.d.ts +84 -0
- package/dist/core/session-writes.d.ts +40 -0
- package/dist/core/session.d.ts +385 -0
- package/dist/core/settings-locks.d.ts +22 -0
- package/dist/core/team-names.d.ts +52 -0
- package/dist/core/team-state-store.d.ts +218 -0
- package/dist/core/tick-timer.d.ts +75 -0
- package/dist/dev/blob-links.d.ts +10 -0
- package/dist/dev/console/assets/index-DgFglsnA.js +204 -0
- package/dist/dev/console/index.html +12 -0
- package/dist/dev/console-path.d.ts +19 -0
- package/dist/dev/lockfile.d.ts +124 -0
- package/dist/dev/package-watcher.d.ts +21 -0
- package/dist/dev/routes.d.ts +67 -0
- package/dist/dev/shell.d.ts +260 -0
- package/dist/dev/surfaces.d.ts +41 -0
- package/dist/dev/tools-identity.d.ts +23 -0
- package/dist/dev/view/batch.d.ts +172 -0
- package/dist/dev/view/commands.d.ts +75 -0
- package/dist/dev/view/route.d.ts +58 -0
- package/dist/dev/view/view.d.ts +78 -0
- package/dist/dev/view/viewer.d.ts +32 -0
- package/dist/discovery/config.d.ts +9 -0
- package/dist/discovery/manifest-paths.d.ts +21 -0
- package/dist/discovery/removed-fields.d.ts +90 -0
- package/dist/docs/api/deck.md +386 -0
- package/dist/docs/api/index.md +67 -0
- package/dist/docs/api/sdk-commands.md +286 -0
- package/dist/docs/api/sdk-e2e.md +433 -0
- package/dist/docs/api/sdk-projection.md +207 -0
- package/dist/docs/api/sdk-testing.md +214 -0
- package/dist/docs/api/sdk-tools-client.md +560 -0
- package/dist/docs/api/sdk-ui-testing.md +231 -0
- package/dist/docs/api/sdk-ui.md +1269 -0
- package/dist/docs/api/sdk.md +2140 -0
- package/dist/docs/changelog-0.x.md +1156 -0
- package/dist/docs/changelog.md +241 -0
- package/dist/docs/cli-and-dev-server.md +217 -0
- package/dist/docs/cli-error-codes.md +156 -0
- package/dist/docs/cli-reference.md +2489 -0
- package/dist/docs/cli-simulation-testing.md +222 -0
- package/dist/docs/concepts/index.md +46 -0
- package/dist/docs/concepts/terminology.md +322 -0
- package/dist/docs/environment-variables.md +102 -0
- package/dist/docs/getting-started.md +145 -0
- package/dist/docs/guides/ai-facilitation.md +220 -0
- package/dist/docs/guides/capabilities.md +460 -0
- package/dist/docs/guides/endpoints.md +335 -0
- package/dist/docs/guides/engine-testing.md +477 -0
- package/dist/docs/guides/engine.md +527 -0
- package/dist/docs/guides/file-handling.md +405 -0
- package/dist/docs/guides/games.md +176 -0
- package/dist/docs/guides/global-settings.md +94 -0
- package/dist/docs/guides/guide.md +123 -0
- package/dist/docs/guides/hooks.md +183 -0
- package/dist/docs/guides/index.md +51 -0
- package/dist/docs/guides/internationalization.md +288 -0
- package/dist/docs/guides/llm-integration.md +635 -0
- package/dist/docs/guides/multi-team-games.md +586 -0
- package/dist/docs/guides/patterns.md +391 -0
- package/dist/docs/guides/presentation.md +196 -0
- package/dist/docs/guides/production-constraints.md +130 -0
- package/dist/docs/guides/scenario-editor.md +143 -0
- package/dist/docs/guides/scenarios.md +515 -0
- package/dist/docs/guides/session.md +972 -0
- package/dist/docs/guides/settings.md +458 -0
- package/dist/docs/guides/setup.md +193 -0
- package/dist/docs/guides/speech-generation.md +233 -0
- package/dist/docs/guides/starter-game.md +164 -0
- package/dist/docs/guides/testing.md +577 -0
- package/dist/docs/guides/tick-controller.md +569 -0
- package/dist/docs/guides/type-safety.md +516 -0
- package/dist/docs/guides/ui.md +1389 -0
- package/dist/docs/guides/upgrading.md +636 -0
- package/dist/docs/guides/validators.md +217 -0
- package/dist/docs/guides/waiting-room.md +244 -0
- package/dist/docs/index.md +41 -0
- package/dist/docs/recipes/act-on-the-session-from-an-endpoint.md +95 -0
- package/dist/docs/recipes/adapt-a-game-for-walkthroughs.md +133 -0
- package/dist/docs/recipes/adapt-ui-for-observers.md +74 -0
- package/dist/docs/recipes/call-endpoint-from-ui.md +109 -0
- package/dist/docs/recipes/check-a-package-from-a-script.md +117 -0
- package/dist/docs/recipes/create-capability.md +66 -0
- package/dist/docs/recipes/create-endpoint.md +127 -0
- package/dist/docs/recipes/create-engine.md +111 -0
- package/dist/docs/recipes/create-game.md +70 -0
- package/dist/docs/recipes/create-guide.md +75 -0
- package/dist/docs/recipes/create-hook.md +80 -0
- package/dist/docs/recipes/create-presentation.md +142 -0
- package/dist/docs/recipes/create-scenario-editor.md +102 -0
- package/dist/docs/recipes/create-scenario.md +98 -0
- package/dist/docs/recipes/create-session-ui.md +116 -0
- package/dist/docs/recipes/create-settings.md +88 -0
- package/dist/docs/recipes/create-setup.md +115 -0
- package/dist/docs/recipes/create-tick-controller.md +65 -0
- package/dist/docs/recipes/create-user-interface.md +96 -0
- package/dist/docs/recipes/create-validator.md +67 -0
- package/dist/docs/recipes/create-waiting-room-ui.md +109 -0
- package/dist/docs/recipes/declare-api-uses.md +67 -0
- package/dist/docs/recipes/design-state-for-concurrent-writes.md +96 -0
- package/dist/docs/recipes/distribute-package.md +80 -0
- package/dist/docs/recipes/e2e-testing.md +116 -0
- package/dist/docs/recipes/end-game-on-condition.md +154 -0
- package/dist/docs/recipes/fix-duplicate-packages.md +101 -0
- package/dist/docs/recipes/index.md +86 -0
- package/dist/docs/recipes/make-an-endpoint-external.md +101 -0
- package/dist/docs/recipes/negotiate-across-teams.md +164 -0
- package/dist/docs/recipes/observe-other-teams-state.md +119 -0
- package/dist/docs/recipes/publish-a-package.md +139 -0
- package/dist/docs/recipes/remember-a-viewers-choice.md +55 -0
- package/dist/docs/recipes/review-a-past-day.md +73 -0
- package/dist/docs/recipes/share-assets-across-scenarios.md +120 -0
- package/dist/docs/recipes/share-logic-between-engine-and-ui.md +130 -0
- package/dist/docs/recipes/show-all-teams-participants.md +109 -0
- package/dist/docs/recipes/start-from-an-empty-package.md +169 -0
- package/dist/docs/recipes/take-a-file-in-an-endpoint.md +82 -0
- package/dist/docs/recipes/test-a-multi-role-game.md +51 -0
- package/dist/docs/recipes/test-user-interface.md +95 -0
- package/dist/docs/recipes/test-with-engine.md +115 -0
- package/dist/docs/recipes/upload-and-display-files.md +148 -0
- package/dist/docs/recipes/use-request-play.md +65 -0
- package/dist/docs/recipes/use-request-tick.md +75 -0
- package/dist/docs/troubleshooting.md +816 -0
- package/dist/execution/blob-inputs.d.ts +57 -0
- package/dist/execution/bundle-reload.d.ts +42 -0
- package/dist/execution/config-resolver.d.ts +127 -0
- package/dist/execution/configuration-builder.d.ts +66 -0
- package/dist/execution/context-composition.d.ts +161 -0
- package/dist/execution/endpoint-actions.d.ts +9 -0
- package/dist/execution/endpoint-payloads.d.ts +32 -0
- package/dist/execution/endpoint-runner.d.ts +129 -0
- package/dist/execution/engine-state.d.ts +40 -0
- package/dist/execution/executor-callbacks.d.ts +56 -0
- package/dist/execution/executor.d.ts +436 -0
- package/dist/execution/gates.d.ts +45 -0
- package/dist/execution/hook-chain.d.ts +25 -0
- package/dist/execution/logic-calls.d.ts +190 -0
- package/dist/execution/logic-failure.d.ts +84 -0
- package/dist/execution/logic-loader.d.ts +54 -0
- package/dist/execution/logic-result.d.ts +76 -0
- package/dist/execution/tick-controller-call.d.ts +32 -0
- package/dist/execution/types.d.ts +48 -0
- package/dist/generation/ts-type.d.ts +39 -0
- package/dist/guide/locale.d.ts +12 -0
- package/dist/guide/video-registry.d.ts +42 -0
- package/dist/help-examples.d.ts +125 -0
- package/dist/host/adapter.d.ts +67 -0
- package/dist/host/host-channel.d.ts +222 -0
- package/dist/host/index.d.ts +20 -0
- package/dist/host/protocol.d.ts +783 -0
- package/dist/host/surfaces.d.ts +42 -0
- package/dist/host/theme.d.ts +55 -0
- package/dist/host.js +583 -0
- package/dist/prompts/index.d.ts +7 -0
- package/dist/prompts/schema-builder.d.ts +29 -0
- package/dist/prompts/types.d.ts +108 -0
- package/dist/prompts/validators.d.ts +32 -0
- package/dist/runtime/capability-scope.d.ts +6 -0
- package/dist/runtime/context-merge.d.ts +29 -0
- package/dist/runtime/context-projection.d.ts +41 -0
- package/dist/runtime/guarded-callbacks.d.ts +15 -0
- package/dist/runtime/index.d.ts +27 -0
- package/dist/runtime/manifest-version.d.ts +55 -0
- package/dist/runtime/tick-validation.d.ts +25 -0
- package/dist/runtime.js +346 -0
- package/dist/schema.json +1546 -0
- package/dist/server/vite-plugin.d.ts +46 -0
- package/dist/services/tts/client.d.ts +51 -0
- package/dist/services/tts/elevenlabs.d.ts +24 -0
- package/dist/services/tts/types.d.ts +44 -0
- package/dist/storage/asset-resolver.d.ts +49 -0
- package/dist/storage/blob-store.d.ts +41 -0
- package/dist/templates/endpoint/logic.test.ts.liquid +61 -0
- package/dist/templates/endpoint/logic.ts.liquid +25 -0
- package/dist/templates/engine/init.json.liquid +7 -0
- package/dist/templates/engine/logic-aggregate.test.ts.liquid +90 -0
- package/dist/templates/engine/logic-aggregate.ts.liquid +46 -0
- package/dist/templates/engine/logic.test.ts.liquid +61 -0
- package/dist/templates/engine/logic.ts.liquid +32 -0
- package/dist/templates/engine/run.json.liquid +7 -0
- package/dist/templates/guide/01-at-a-glance.md.liquid +19 -0
- package/dist/templates/guide/02-preparation.md.liquid +18 -0
- package/dist/templates/guide/03-running-the-session.md.liquid +37 -0
- package/dist/templates/hook/logic.test.ts.liquid +46 -0
- package/dist/templates/hook/logic.ts.liquid +12 -0
- package/dist/templates/package/CLAUDE.md.template +338 -0
- package/dist/templates/package/DESIGN.md.liquid +144 -0
- package/dist/templates/package/README.md.liquid +143 -0
- package/dist/templates/package/claude/rules/workflow-create-capability.md +26 -0
- package/dist/templates/package/claude/rules/workflow-create-endpoint.md +35 -0
- package/dist/templates/package/claude/rules/workflow-create-engine.md +35 -0
- package/dist/templates/package/claude/rules/workflow-create-guide.md +40 -0
- package/dist/templates/package/claude/rules/workflow-create-presentation.md +37 -0
- package/dist/templates/package/claude/rules/workflow-create-user-interface.md +31 -0
- package/dist/templates/package/claude/rules/workflow-publish-package.md +54 -0
- package/dist/templates/package/claude/rules/workflow-test-engine-or-ui.md +30 -0
- package/dist/templates/package/claude/rules/workflow-update-sdk-version.md +43 -0
- package/dist/templates/package/claude/settings.json.template +16 -0
- package/dist/templates/package/gitignore.template +15 -0
- package/dist/templates/package/global-setup.ts.template +21 -0
- package/dist/templates/package/globals.d.ts.template +2 -0
- package/dist/templates/package/oxfmtrc.json.template +14 -0
- package/dist/templates/package/oxlintrc.json.template +238 -0
- package/dist/templates/package/package.json.liquid +65 -0
- package/dist/templates/package/playwright.config.ts.liquid +19 -0
- package/dist/templates/package/pnpm-workspace.yaml.template +27 -0
- package/dist/templates/package/test-setup.ts.liquid +7 -0
- package/dist/templates/package/tsconfig.json.liquid +15 -0
- package/dist/templates/package/vite.config.ts.liquid +19 -0
- package/dist/templates/package/vitest.config.ts.liquid +25 -0
- package/dist/templates/package/vitest.engine.config.ts.liquid +12 -0
- package/dist/templates/presentation/index.html.liquid +20 -0
- package/dist/templates/presentation/src/App.tsx.liquid +49 -0
- package/dist/templates/presentation/src/Slides.tsx.liquid +81 -0
- package/dist/templates/presentation/src/i18n.ts.liquid +54 -0
- package/dist/templates/presentation/src/main.tsx.liquid +14 -0
- package/dist/templates/scenario_editor/src/App.test.tsx.liquid +30 -0
- package/dist/templates/scenario_editor/src/App.tsx.liquid +95 -0
- package/dist/templates/scenario_editor/src/i18n.ts.liquid +44 -0
- package/dist/templates/session/src/App.test.tsx.liquid +60 -0
- package/dist/templates/session/src/App.tsx.liquid +128 -0
- package/dist/templates/session/src/i18n.ts.liquid +53 -0
- package/dist/templates/session/src/main.tsx.liquid +48 -0
- package/dist/templates/session/src/theme.ts.liquid +46 -0
- package/dist/templates/settings-editor/index.html.liquid +12 -0
- package/dist/templates/settings-editor/src/main.tsx.liquid +48 -0
- package/dist/templates/settings-editor/src/theme.ts.liquid +24 -0
- package/dist/templates/setup/src/App.test.tsx.liquid +39 -0
- package/dist/templates/setup/src/App.tsx.liquid +102 -0
- package/dist/templates/setup/src/i18n.ts.liquid +47 -0
- package/dist/templates/starter-game/capabilities/briefing/capability.sdk.json +18 -0
- package/dist/templates/starter-game/capabilities/plan/capability.sdk.json +17 -0
- package/dist/templates/starter-game/capabilities/results/capability.sdk.json +61 -0
- package/dist/templates/starter-game/capabilities/roles/capability.sdk.json +17 -0
- package/dist/templates/starter-game/capabilities/weather/capability.sdk.json +23 -0
- package/dist/templates/starter-game/engine/defaults.ts +81 -0
- package/dist/templates/starter-game/engine/engine.sdk.json +12 -0
- package/dist/templates/starter-game/engine/logic.test.ts +221 -0
- package/dist/templates/starter-game/engine/logic.ts +149 -0
- package/dist/templates/starter-game/engine/test-helpers.ts +74 -0
- package/dist/templates/starter-game/engine/types.ts +139 -0
- package/dist/templates/starter-game/guide/content/en/01-at-a-glance.md +51 -0
- package/dist/templates/starter-game/guide/content/en/02-preparation.md +35 -0
- package/dist/templates/starter-game/guide/content/en/03-running-the-day.md +58 -0
- package/dist/templates/starter-game/guide/guide.sdk.json +10 -0
- package/dist/templates/starter-game/guide/guide.test.ts +108 -0
- package/dist/templates/starter-game/hooks/assignproducts/defaults.ts +37 -0
- package/dist/templates/starter-game/hooks/assignproducts/hook.sdk.json +13 -0
- package/dist/templates/starter-game/hooks/assignproducts/logic/logic.test.ts +77 -0
- package/dist/templates/starter-game/hooks/assignproducts/logic/logic.ts +47 -0
- package/dist/templates/starter-game/hooks/assignproducts/types.ts +55 -0
- package/dist/templates/starter-game/package.json +68 -0
- package/dist/templates/starter-game/playwright.config.ts +19 -0
- package/dist/templates/starter-game/scenarios/heatwave/scenario.sdk.json +20 -0
- package/dist/templates/starter-game/scenarios/ordinary_week/scenario.sdk.json +12 -0
- package/dist/templates/starter-game/seriousgaming.sdk.json +23 -0
- package/dist/templates/starter-game/session/defaults.ts +80 -0
- package/dist/templates/starter-game/session/index.html +12 -0
- package/dist/templates/starter-game/session/session.sdk.json +11 -0
- package/dist/templates/starter-game/session/src/App.test.tsx +307 -0
- package/dist/templates/starter-game/session/src/App.tsx +309 -0
- package/dist/templates/starter-game/session/src/Section.tsx +37 -0
- package/dist/templates/starter-game/session/src/TeamDoor.tsx +96 -0
- package/dist/templates/starter-game/session/src/format.ts +8 -0
- package/dist/templates/starter-game/session/src/i18n.ts +51 -0
- package/dist/templates/starter-game/session/src/main.tsx +48 -0
- package/dist/templates/starter-game/session/src/theme.ts +45 -0
- package/dist/templates/starter-game/session/types.ts +135 -0
- package/dist/templates/starter-game/settings/engine/settings.sdk.json +50 -0
- package/dist/templates/starter-game/settings/menu/settings.sdk.json +78 -0
- package/dist/templates/starter-game/settings/session/settings.sdk.json +23 -0
- package/dist/templates/starter-game/settings/ui/settings.sdk.json +25 -0
- package/dist/templates/starter-game/test-setup.ts +7 -0
- package/dist/templates/starter-game/testing/e2e/game.spec.ts +139 -0
- package/dist/templates/starter-game/testing/e2e/global-setup.ts +21 -0
- package/dist/templates/starter-game/testing/engine/game.engine.test.ts +171 -0
- package/dist/templates/starter-game/tsconfig.json +19 -0
- package/dist/templates/starter-game/ui/defaults.ts +60 -0
- package/dist/templates/starter-game/ui/index.html +12 -0
- package/dist/templates/starter-game/ui/src/App.test.tsx +138 -0
- package/dist/templates/starter-game/ui/src/App.tsx +175 -0
- package/dist/templates/starter-game/ui/src/DayBar.test.tsx +78 -0
- package/dist/templates/starter-game/ui/src/DayBar.tsx +72 -0
- package/dist/templates/starter-game/ui/src/HistoryPanel.test.tsx +74 -0
- package/dist/templates/starter-game/ui/src/HistoryPanel.tsx +120 -0
- package/dist/templates/starter-game/ui/src/MakeRow.tsx +129 -0
- package/dist/templates/starter-game/ui/src/Section.tsx +37 -0
- package/dist/templates/starter-game/ui/src/ThemeToggle.tsx +49 -0
- package/dist/templates/starter-game/ui/src/TodayPanel.test.tsx +179 -0
- package/dist/templates/starter-game/ui/src/TodayPanel.tsx +92 -0
- package/dist/templates/starter-game/ui/src/YesterdayPanel.tsx +142 -0
- package/dist/templates/starter-game/ui/src/format.ts +12 -0
- package/dist/templates/starter-game/ui/src/i18n.ts +95 -0
- package/dist/templates/starter-game/ui/src/main.tsx +48 -0
- package/dist/templates/starter-game/ui/src/menu.ts +18 -0
- package/dist/templates/starter-game/ui/src/test-helpers.ts +58 -0
- package/dist/templates/starter-game/ui/src/theme.ts +45 -0
- package/dist/templates/starter-game/ui/src/writes.ts +43 -0
- package/dist/templates/starter-game/ui/types.ts +137 -0
- package/dist/templates/starter-game/ui/ui.sdk.json +11 -0
- package/dist/templates/starter-game/validators/capacity/defaults.ts +37 -0
- package/dist/templates/starter-game/validators/capacity/logic/logic.test.ts +96 -0
- package/dist/templates/starter-game/validators/capacity/logic/logic.ts +45 -0
- package/dist/templates/starter-game/validators/capacity/types.ts +55 -0
- package/dist/templates/starter-game/validators/capacity/validator.sdk.json +11 -0
- package/dist/templates/starter-game/vite.config.ts +19 -0
- package/dist/templates/starter-game/vitest.config.ts +15 -0
- package/dist/templates/starter-game/vitest.engine.config.ts +19 -0
- package/dist/templates/starter-game/waiting_room/defaults.ts +40 -0
- package/dist/templates/starter-game/waiting_room/index.html +12 -0
- package/dist/templates/starter-game/waiting_room/src/App.test.tsx +102 -0
- package/dist/templates/starter-game/waiting_room/src/App.tsx +194 -0
- package/dist/templates/starter-game/waiting_room/src/i18n.ts +33 -0
- package/dist/templates/starter-game/waiting_room/src/main.tsx +48 -0
- package/dist/templates/starter-game/waiting_room/src/theme.ts +45 -0
- package/dist/templates/starter-game/waiting_room/types.ts +59 -0
- package/dist/templates/starter-game/waiting_room/waiting_room.sdk.json +10 -0
- package/dist/templates/tick-controller/logic.ts.liquid +8 -0
- package/dist/templates/ui/index.html.liquid +12 -0
- package/dist/templates/ui/src/App.test.tsx.liquid +41 -0
- package/dist/templates/ui/src/App.tsx.liquid +103 -0
- package/dist/templates/ui/src/i18n.ts.liquid +47 -0
- package/dist/templates/ui/src/main.tsx.liquid +48 -0
- package/dist/templates/ui/src/theme.ts.liquid +46 -0
- package/dist/templates/validator/logic.test.ts.liquid +42 -0
- package/dist/templates/validator/logic.ts.liquid +21 -0
- package/dist/templates/waiting-room/index.html.liquid +12 -0
- package/dist/templates/waiting-room/src/App.test.tsx.liquid +57 -0
- package/dist/templates/waiting-room/src/App.tsx.liquid +118 -0
- package/dist/templates/waiting-room/src/i18n.ts.liquid +44 -0
- package/dist/templates/waiting-room/src/main.tsx.liquid +48 -0
- package/dist/templates/waiting-room/src/theme.ts.liquid +46 -0
- package/dist/templating/resource-metadata.d.ts +131 -0
- package/dist/types.d.ts +14 -0
- package/dist/utils/atomic-write.d.ts +40 -0
- package/dist/utils/cli-error.d.ts +64 -0
- package/dist/utils/document-parser-client.d.ts +20 -0
- package/dist/utils/env-loader.d.ts +40 -0
- package/dist/utils/error-codes.d.ts +339 -0
- package/dist/utils/errors.d.ts +19 -0
- package/dist/utils/global-settings.d.ts +65 -0
- package/dist/utils/llm-client.d.ts +34 -0
- package/dist/utils/logger.d.ts +36 -0
- package/dist/utils/output.d.ts +109 -0
- package/dist/utils/platform.d.ts +14 -0
- package/dist/utils/prompt.d.ts +36 -0
- package/dist/utils/real-path.d.ts +6 -0
- package/dist/utils/schema-properties.d.ts +35 -0
- package/dist/validation/ajv.d.ts +17 -0
- package/dist/validation/facilitator-guide-validator.d.ts +27 -0
- package/dist/validation/findings.d.ts +40 -0
- package/dist/validation/game-constraints.d.ts +10 -0
- package/dist/validation/game-validator.d.ts +34 -0
- package/dist/validation/package-validation.d.ts +41 -0
- package/dist/validation/package-validator.d.ts +19 -0
- package/dist/validation/resource-validator.d.ts +79 -0
- package/dist/validation/schema-defaults-validator.d.ts +29 -0
- package/dist/validation/schema-validation.d.ts +115 -0
- package/dist/validation/semver.d.ts +9 -0
- package/package.json +123 -3
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
<!-- Generated by `pnpm docs:generate` from the exports of `@seriousgaming/sdk/projection`. Edit those, not this file. -->
|
|
2
|
+
|
|
3
|
+
# `@seriousgaming/sdk/projection`
|
|
4
|
+
|
|
5
|
+
The one documented shape of a session's observable state.
|
|
6
|
+
|
|
7
|
+
Served three ways and declared once: `sdk view --json`, `GET /api/state`, and
|
|
8
|
+
the payload the console renders. It is a projection, not any runtime's
|
|
9
|
+
internal state, so internals can change without breaking an agent that
|
|
10
|
+
learned to read it, and it is versioned so one that has learned can tell when
|
|
11
|
+
they have not.
|
|
12
|
+
|
|
13
|
+
Everything a runtime exposes about a session belongs here, because a check
|
|
14
|
+
made from outside a runtime can only read what the runtime exposes.
|
|
15
|
+
|
|
16
|
+
Published from the SDK rather than declared inside a runtime, because a
|
|
17
|
+
second runtime implementing it needs the shape, and a type it has to copy is
|
|
18
|
+
a type the two halves are free to drift apart on.
|
|
19
|
+
|
|
20
|
+
Every export of `@seriousgaming/sdk/projection`, with the declaration it is published with. Anything tagged `@internal` is left out: it ships in the declarations, but is not part of the supported API and may change without a major release. For how the pieces fit together, see the [API reference](./index.md) and the guides it links to.
|
|
21
|
+
|
|
22
|
+
## Constants
|
|
23
|
+
|
|
24
|
+
### PROJECTION_VERSION
|
|
25
|
+
|
|
26
|
+
Bumped when a field changes meaning or leaves.
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
const PROJECTION_VERSION = 4;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Interfaces
|
|
33
|
+
|
|
34
|
+
### EndpointAuditEntry
|
|
35
|
+
|
|
36
|
+
One endpoint call that changed something: who made it, and what it changed. Names only, never values, so the log does not become a second copy of the boards.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
interface EndpointAuditEntry {
|
|
40
|
+
at: number;
|
|
41
|
+
endpoint: string;
|
|
42
|
+
role: EndpointCallerRole;
|
|
43
|
+
principal?: {
|
|
44
|
+
kind: string;
|
|
45
|
+
id: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
};
|
|
48
|
+
teamId?: string;
|
|
49
|
+
wrote: string[];
|
|
50
|
+
teams?: Record<string, string[]>;
|
|
51
|
+
actions: string[];
|
|
52
|
+
stoppedAt?: string;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Participant
|
|
57
|
+
|
|
58
|
+
A participant the platform tracks for some team in the session.
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
interface Participant {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
index: number;
|
|
65
|
+
connected: boolean;
|
|
66
|
+
teamId: string;
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### PendingChanges
|
|
71
|
+
|
|
72
|
+
What changed on disk that a running session applies only when it next initialises. Each list is empty when nothing of its kind is waiting.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
interface PendingChanges {
|
|
76
|
+
settings: string[];
|
|
77
|
+
manifest: string[];
|
|
78
|
+
capabilities: string[];
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### ProjectedTeam
|
|
83
|
+
|
|
84
|
+
One team's observable state.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
interface ProjectedTeam extends TeamInfo {
|
|
88
|
+
completedTicks: number;
|
|
89
|
+
complete: boolean;
|
|
90
|
+
canUndo: boolean;
|
|
91
|
+
context: Record<string, Record<string, unknown>>;
|
|
92
|
+
participants: Participant[];
|
|
93
|
+
timer?: TimerState;
|
|
94
|
+
state?: unknown;
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### ScenarioDraft
|
|
99
|
+
|
|
100
|
+
The scenario editor's draft of one scenario, resolved.
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
interface ScenarioDraft {
|
|
104
|
+
scenarioId: string | null;
|
|
105
|
+
settings: ResolvedSettings;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### StateProjection
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
interface StateProjection {
|
|
113
|
+
projectionVersion: number;
|
|
114
|
+
game: {
|
|
115
|
+
identifier: string;
|
|
116
|
+
name: string;
|
|
117
|
+
scenarioId: string | null;
|
|
118
|
+
};
|
|
119
|
+
session: {
|
|
120
|
+
completedTicks: number;
|
|
121
|
+
mode: SessionMode;
|
|
122
|
+
waitingRoomOpen: boolean;
|
|
123
|
+
complete: boolean;
|
|
124
|
+
seed: string;
|
|
125
|
+
sessionKey: string;
|
|
126
|
+
locale: string;
|
|
127
|
+
runKind: RunKind;
|
|
128
|
+
maxTicks: number | null;
|
|
129
|
+
teamBounds: {
|
|
130
|
+
min?: number;
|
|
131
|
+
max: number;
|
|
132
|
+
};
|
|
133
|
+
inSetup: boolean;
|
|
134
|
+
pending?: PendingChanges;
|
|
135
|
+
};
|
|
136
|
+
teams: ProjectedTeam[];
|
|
137
|
+
shared: Record<string, Record<string, unknown>>;
|
|
138
|
+
sharedState?: unknown;
|
|
139
|
+
timer: TimerState | null;
|
|
140
|
+
settings: ResolvedSettings;
|
|
141
|
+
settingsWithoutSession: ResolvedSettings;
|
|
142
|
+
scenarioDrafts?: ScenarioDraft[];
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### TeamInfo
|
|
147
|
+
|
|
148
|
+
Who a team is: the fields every team entry in the SDK carries.
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
interface TeamInfo {
|
|
152
|
+
teamId: string;
|
|
153
|
+
index: number;
|
|
154
|
+
name: string;
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### TimerState
|
|
159
|
+
|
|
160
|
+
The host's automatic tick timer, as every reader sees it.
|
|
161
|
+
|
|
162
|
+
```ts
|
|
163
|
+
interface TimerState {
|
|
164
|
+
enabled: boolean;
|
|
165
|
+
paused: boolean;
|
|
166
|
+
nextTickAt: number | null;
|
|
167
|
+
intervalMs: number | null;
|
|
168
|
+
pausedAt: number | null;
|
|
169
|
+
pausedMs: number;
|
|
170
|
+
extendedMs: number;
|
|
171
|
+
scheduleStartedAt: number | null;
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Types
|
|
176
|
+
|
|
177
|
+
### MutationResult
|
|
178
|
+
|
|
179
|
+
What a mutation settled as.
|
|
180
|
+
|
|
181
|
+
```ts
|
|
182
|
+
type MutationResult =
|
|
183
|
+
| {
|
|
184
|
+
ok: true;
|
|
185
|
+
committedAtTick?: number;
|
|
186
|
+
}
|
|
187
|
+
| {
|
|
188
|
+
ok: false;
|
|
189
|
+
outcome: MutationOutcome;
|
|
190
|
+
};
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### ResolvedSettings
|
|
194
|
+
|
|
195
|
+
Resolved settings, keyed by settings identifier.
|
|
196
|
+
|
|
197
|
+
```ts
|
|
198
|
+
type ResolvedSettings = Record<string, Record<string, unknown>>;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### SessionMode
|
|
202
|
+
|
|
203
|
+
How a session runs its teams: the game's `teams.mode`.
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
type SessionMode = GameTeamMode;
|
|
207
|
+
```
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
<!-- Generated by `pnpm docs:generate` from the exports of `@seriousgaming/sdk/testing`. Edit those, not this file. -->
|
|
2
|
+
|
|
3
|
+
# `@seriousgaming/sdk/testing`
|
|
4
|
+
|
|
5
|
+
Helpers for unit-testing a game's logic without a runtime.
|
|
6
|
+
|
|
7
|
+
`logicArgs` builds the arguments object a logic function takes, filling
|
|
8
|
+
everything the test does not name. `createStubCallbacks` is the offline,
|
|
9
|
+
deterministic set of callbacks it uses, and the stubs behind it are the ones
|
|
10
|
+
`createTestSession` answers service callbacks with.
|
|
11
|
+
|
|
12
|
+
To test a game as a whole (hooks, validators, endpoints, undo, timers), use
|
|
13
|
+
`createTestSession` from `@seriousgaming/sdk-tools/client`.
|
|
14
|
+
|
|
15
|
+
Every export of `@seriousgaming/sdk/testing`, with the declaration it is published with. Anything tagged `@internal` is left out: it ships in the declarations, but is not part of the supported API and may change without a major release. For how the pieces fit together, see the [API reference](./index.md) and the guides it links to.
|
|
16
|
+
|
|
17
|
+
## Functions
|
|
18
|
+
|
|
19
|
+
### createStubCallbacks
|
|
20
|
+
|
|
21
|
+
Every callback logic can receive, stubbed, for calling a logic function directly in a unit test.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
function createStubCallbacks(): Required<SignatureCallbacks>;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### stubExtractText
|
|
28
|
+
|
|
29
|
+
What a stubbed `extractText` answers: `[stub] text of <reference>`, without reading the file.
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
function stubExtractText(reference: string): ExtractTextResponse;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### stubGenerateText
|
|
36
|
+
|
|
37
|
+
What a stubbed `generateText` answers for `request`: `[stub <hash>] <excerpt>`, an eight-digit hex hash of the whole request, then the first 60 characters of its prompt (the `prompt`, or the last `user` message's text) with whitespace collapsed, ending in `...` when it was cut. A request with a `jsonSchema` is answered with JSON that satisfies it.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
function stubGenerateText(request: LLMGenerateOptions | string): LLMResponse;
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### stubSpeechAudio
|
|
44
|
+
|
|
45
|
+
The clip a stubbed `generateSpeech` stores: 100ms of 8-bit mono silence, as a WAV file.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
function stubSpeechAudio(): Uint8Array;
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Constants
|
|
52
|
+
|
|
53
|
+
### logicArgs
|
|
54
|
+
|
|
55
|
+
Builders for each logic function's arguments. Each takes what the test names and fills the rest:
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const logicArgs: {
|
|
59
|
+
init: typeof init;
|
|
60
|
+
run: typeof run;
|
|
61
|
+
aggregate: typeof aggregate;
|
|
62
|
+
hook: typeof hook;
|
|
63
|
+
endpoint: typeof endpoint;
|
|
64
|
+
tickController: typeof tickController;
|
|
65
|
+
validator: typeof validator;
|
|
66
|
+
requestTick: typeof requestTick;
|
|
67
|
+
};
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### STUB_SPEECH_DURATION_MS
|
|
71
|
+
|
|
72
|
+
How long the stubbed speech clip is, in milliseconds.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
const STUB_SPEECH_DURATION_MS = 100;
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### TEST_NOW
|
|
79
|
+
|
|
80
|
+
The `meta.now` every builder uses unless told otherwise: 2026-01-01T00:00:00Z.
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
const TEST_NOW: number;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### TEST_SEED
|
|
87
|
+
|
|
88
|
+
The `meta.seed` every builder uses unless told otherwise.
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
const TEST_SEED = 'test-seed';
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Types
|
|
95
|
+
|
|
96
|
+
### AggregateArgsInput
|
|
97
|
+
|
|
98
|
+
Input to `logicArgs.aggregate`.
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
type AggregateArgsInput<
|
|
102
|
+
TTeamContext,
|
|
103
|
+
TSharedContext,
|
|
104
|
+
TSettings,
|
|
105
|
+
TCallbacks,
|
|
106
|
+
TTeamState,
|
|
107
|
+
TSharedState,
|
|
108
|
+
> = CommonInput<TCallbacks> &
|
|
109
|
+
SettingsInput<TSettings> &
|
|
110
|
+
(Empty extends TSharedContext
|
|
111
|
+
? {
|
|
112
|
+
shared?: AggregateFunctionShared<TSharedContext, TSharedState>;
|
|
113
|
+
}
|
|
114
|
+
: {
|
|
115
|
+
shared: AggregateFunctionShared<TSharedContext, TSharedState>;
|
|
116
|
+
}) & {
|
|
117
|
+
teams: (Omit<AggregateFunctionTeam<TTeamContext, TTeamState>, 'teamId'> & {
|
|
118
|
+
teamId?: string;
|
|
119
|
+
})[];
|
|
120
|
+
meta?: Partial<RunMeta>;
|
|
121
|
+
};
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### EndpointArgsInput
|
|
125
|
+
|
|
126
|
+
Input to `logicArgs.endpoint`.
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
type EndpointArgsInput<TRequest, TContext, TCallbacks, TTeamContext, TSettings> =
|
|
130
|
+
CommonInput<TCallbacks> &
|
|
131
|
+
SettingsInput<TSettings> & {
|
|
132
|
+
request: TRequest;
|
|
133
|
+
context: TContext;
|
|
134
|
+
caller?: Partial<EndpointCaller>;
|
|
135
|
+
team?: Partial<TeamInfo>;
|
|
136
|
+
teams?: EndpointTeamEntry<TTeamContext>[];
|
|
137
|
+
session?: Partial<EndpointSession>;
|
|
138
|
+
meta?: Partial<LogicMeta>;
|
|
139
|
+
};
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### EngineArgsInput
|
|
143
|
+
|
|
144
|
+
Input to `logicArgs.init` and `logicArgs.run`.
|
|
145
|
+
|
|
146
|
+
```ts
|
|
147
|
+
type EngineArgsInput<TContext, TSettings, TCallbacks, TState> = CommonInput<TCallbacks> &
|
|
148
|
+
SettingsInput<TSettings> & {
|
|
149
|
+
context: TContext;
|
|
150
|
+
meta?: Partial<TeamRunMeta>;
|
|
151
|
+
state?: TState;
|
|
152
|
+
};
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### HookArgsInput
|
|
156
|
+
|
|
157
|
+
Input to `logicArgs.hook`.
|
|
158
|
+
|
|
159
|
+
```ts
|
|
160
|
+
type HookArgsInput<
|
|
161
|
+
S extends HookSignal,
|
|
162
|
+
TContext,
|
|
163
|
+
TSettings,
|
|
164
|
+
TCallbacks,
|
|
165
|
+
> = CommonInput<TCallbacks> &
|
|
166
|
+
SettingsInput<TSettings> &
|
|
167
|
+
HookPayloadMap[S] & {
|
|
168
|
+
signal?: S;
|
|
169
|
+
context: TContext;
|
|
170
|
+
meta?: Partial<LogicMeta>;
|
|
171
|
+
};
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### RequestTickArgsInput
|
|
175
|
+
|
|
176
|
+
Input to `logicArgs.requestTick`.
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
type RequestTickArgsInput<TContext, TSettings> = SettingsInput<TSettings> & {
|
|
180
|
+
context: TContext;
|
|
181
|
+
requestedTick?: number;
|
|
182
|
+
actor?: ValidatorActor;
|
|
183
|
+
meta?: Partial<LogicMeta>;
|
|
184
|
+
participants?: readonly Readonly<Participant>[];
|
|
185
|
+
};
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### TickControllerArgsInput
|
|
189
|
+
|
|
190
|
+
Input to `logicArgs.tickController`.
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
type TickControllerArgsInput<TContext, TSettings, TCallbacks> = CommonInput<TCallbacks> &
|
|
194
|
+
SettingsInput<TSettings> & {
|
|
195
|
+
context: TContext;
|
|
196
|
+
meta?: Partial<TeamRunMeta>;
|
|
197
|
+
teams?: AggregateFunctionTeam<TContext>[];
|
|
198
|
+
waitingRoomOpen?: boolean;
|
|
199
|
+
};
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### ValidatorArgsInput
|
|
203
|
+
|
|
204
|
+
Input to `logicArgs.validator`.
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
type ValidatorArgsInput<TContext, TSettings> = SettingsInput<TSettings> & {
|
|
208
|
+
previous: TContext;
|
|
209
|
+
next: TContext;
|
|
210
|
+
actor?: ValidatorActor;
|
|
211
|
+
meta?: Partial<LogicMeta>;
|
|
212
|
+
participants?: readonly Readonly<Participant>[];
|
|
213
|
+
};
|
|
214
|
+
```
|