@aeolus-fleet/core 0.0.0 → 0.19.0
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 +201 -0
- package/README.md +98 -1
- package/dist/adapters/cli/fleet-init.d.ts +14 -0
- package/dist/adapters/cli/fleet-init.js +68 -0
- package/dist/adapters/cli/fleet-init.js.map +1 -0
- package/dist/adapters/cli/io.d.ts +35 -0
- package/dist/adapters/cli/io.js +21 -0
- package/dist/adapters/cli/io.js.map +1 -0
- package/dist/adapters/cli/migrate.d.ts +11 -0
- package/dist/adapters/cli/migrate.js +12 -0
- package/dist/adapters/cli/migrate.js.map +1 -0
- package/dist/adapters/cli/operator-reset-password.d.ts +12 -0
- package/dist/adapters/cli/operator-reset-password.js +49 -0
- package/dist/adapters/cli/operator-reset-password.js.map +1 -0
- package/dist/adapters/cli/run.d.ts +14 -0
- package/dist/adapters/cli/run.js +40 -0
- package/dist/adapters/cli/run.js.map +1 -0
- package/dist/adapters/cli/terminal.d.ts +20 -0
- package/dist/adapters/cli/terminal.js +68 -0
- package/dist/adapters/cli/terminal.js.map +1 -0
- package/dist/adapters/crypto/passwords.d.ts +2 -0
- package/dist/adapters/crypto/passwords.js +59 -0
- package/dist/adapters/crypto/passwords.js.map +1 -0
- package/dist/adapters/crypto/secrets.d.ts +5 -0
- package/dist/adapters/crypto/secrets.js +10 -0
- package/dist/adapters/crypto/secrets.js.map +1 -0
- package/dist/adapters/http/device-label.d.ts +9 -0
- package/dist/adapters/http/device-label.js +39 -0
- package/dist/adapters/http/device-label.js.map +1 -0
- package/dist/adapters/http/rate-limiter.d.ts +21 -0
- package/dist/adapters/http/rate-limiter.js +44 -0
- package/dist/adapters/http/rate-limiter.js.map +1 -0
- package/dist/adapters/http/request-credentials.d.ts +23 -0
- package/dist/adapters/http/request-credentials.js +45 -0
- package/dist/adapters/http/request-credentials.js.map +1 -0
- package/dist/adapters/http/server.d.ts +47 -0
- package/dist/adapters/http/server.js +216 -0
- package/dist/adapters/http/server.js.map +1 -0
- package/dist/adapters/http/version.d.ts +9 -0
- package/dist/adapters/http/version.js +23 -0
- package/dist/adapters/http/version.js.map +1 -0
- package/dist/adapters/mcp/mcp-endpoint.d.ts +8 -0
- package/dist/adapters/mcp/mcp-endpoint.js +127 -0
- package/dist/adapters/mcp/mcp-endpoint.js.map +1 -0
- package/dist/adapters/prisma/client.d.ts +10 -0
- package/dist/adapters/prisma/client.js +20 -0
- package/dist/adapters/prisma/client.js.map +1 -0
- package/dist/adapters/prisma/delivery-notices.d.ts +34 -0
- package/dist/adapters/prisma/delivery-notices.js +113 -0
- package/dist/adapters/prisma/delivery-notices.js.map +1 -0
- package/dist/adapters/prisma/event-log.d.ts +11 -0
- package/dist/adapters/prisma/event-log.js +61 -0
- package/dist/adapters/prisma/event-log.js.map +1 -0
- package/dist/adapters/prisma/failure-log.d.ts +22 -0
- package/dist/adapters/prisma/failure-log.js +70 -0
- package/dist/adapters/prisma/failure-log.js.map +1 -0
- package/dist/adapters/prisma/fleet-counter.d.ts +3 -0
- package/dist/adapters/prisma/fleet-counter.js +6 -0
- package/dist/adapters/prisma/fleet-counter.js.map +1 -0
- package/dist/adapters/prisma/fleet-event-wakeups.d.ts +33 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js +86 -0
- package/dist/adapters/prisma/fleet-event-wakeups.js.map +1 -0
- package/dist/adapters/prisma/generated/browser.d.ts +127 -0
- package/dist/adapters/prisma/generated/browser.js +18 -0
- package/dist/adapters/prisma/generated/browser.js.map +1 -0
- package/dist/adapters/prisma/generated/client.d.ts +146 -0
- package/dist/adapters/prisma/generated/client.js +38 -0
- package/dist/adapters/prisma/generated/client.js.map +1 -0
- package/dist/adapters/prisma/generated/commonInputTypes.d.ts +879 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js +11 -0
- package/dist/adapters/prisma/generated/commonInputTypes.js.map +1 -0
- package/dist/adapters/prisma/generated/enums.d.ts +75 -0
- package/dist/adapters/prisma/generated/enums.js +73 -0
- package/dist/adapters/prisma/generated/enums.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/class.d.ts +308 -0
- package/dist/adapters/prisma/generated/internal/class.js +52 -0
- package/dist/adapters/prisma/generated/internal/class.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +2131 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js +295 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +273 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +265 -0
- package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.d.ts +2137 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js +2 -0
- package/dist/adapters/prisma/generated/models/ConsoleSession.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Credential.d.ts +1360 -0
- package/dist/adapters/prisma/generated/models/Credential.js +2 -0
- package/dist/adapters/prisma/generated/models/Credential.js.map +1 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.d.ts +1558 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/CrewRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Delivery.d.ts +2211 -0
- package/dist/adapters/prisma/generated/models/Delivery.js +2 -0
- package/dist/adapters/prisma/generated/models/Delivery.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Event.d.ts +1991 -0
- package/dist/adapters/prisma/generated/models/Event.js +2 -0
- package/dist/adapters/prisma/generated/models/Event.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Fleet.d.ts +3032 -0
- package/dist/adapters/prisma/generated/models/Fleet.js +2 -0
- package/dist/adapters/prisma/generated/models/Fleet.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Guide.d.ts +943 -0
- package/dist/adapters/prisma/generated/models/Guide.js +2 -0
- package/dist/adapters/prisma/generated/models/Guide.js.map +1 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.d.ts +1323 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js +2 -0
- package/dist/adapters/prisma/generated/models/GuideProgress.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.d.ts +1036 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationRequest.js.map +1 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.d.ts +1027 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js +2 -0
- package/dist/adapters/prisma/generated/models/InstallationSettings.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Lease.d.ts +2076 -0
- package/dist/adapters/prisma/generated/models/Lease.js +2 -0
- package/dist/adapters/prisma/generated/models/Lease.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Message.d.ts +2869 -0
- package/dist/adapters/prisma/generated/models/Message.js +2 -0
- package/dist/adapters/prisma/generated/models/Message.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Notice.d.ts +1068 -0
- package/dist/adapters/prisma/generated/models/Notice.js +2 -0
- package/dist/adapters/prisma/generated/models/Notice.js.map +1 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.d.ts +1245 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js +2 -0
- package/dist/adapters/prisma/generated/models/NoticeDismissal.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Operator.d.ts +1173 -0
- package/dist/adapters/prisma/generated/models/Operator.js +2 -0
- package/dist/adapters/prisma/generated/models/Operator.js.map +1 -0
- package/dist/adapters/prisma/generated/models/Ship.d.ts +3320 -0
- package/dist/adapters/prisma/generated/models/Ship.js +2 -0
- package/dist/adapters/prisma/generated/models/Ship.js.map +1 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.d.ts +1222 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js +2 -0
- package/dist/adapters/prisma/generated/models/SignInTicket.js.map +1 -0
- package/dist/adapters/prisma/generated/models.d.ts +18 -0
- package/dist/adapters/prisma/generated/models.js +2 -0
- package/dist/adapters/prisma/generated/models.js.map +1 -0
- package/dist/adapters/prisma/history.d.ts +3 -0
- package/dist/adapters/prisma/history.js +289 -0
- package/dist/adapters/prisma/history.js.map +1 -0
- package/dist/adapters/prisma/identity.d.ts +10 -0
- package/dist/adapters/prisma/identity.js +213 -0
- package/dist/adapters/prisma/identity.js.map +1 -0
- package/dist/adapters/prisma/installation.d.ts +13 -0
- package/dist/adapters/prisma/installation.js +155 -0
- package/dist/adapters/prisma/installation.js.map +1 -0
- package/dist/adapters/prisma/messaging.d.ts +4 -0
- package/dist/adapters/prisma/messaging.js +156 -0
- package/dist/adapters/prisma/messaging.js.map +1 -0
- package/dist/adapters/prisma/migrate.d.ts +5 -0
- package/dist/adapters/prisma/migrate.js +40 -0
- package/dist/adapters/prisma/migrate.js.map +1 -0
- package/dist/adapters/prisma/receiver-wakeups.d.ts +26 -0
- package/dist/adapters/prisma/receiver-wakeups.js +79 -0
- package/dist/adapters/prisma/receiver-wakeups.js.map +1 -0
- package/dist/adapters/prisma/registry.d.ts +8 -0
- package/dist/adapters/prisma/registry.js +427 -0
- package/dist/adapters/prisma/registry.js.map +1 -0
- package/dist/adapters/prisma/rows.d.ts +58 -0
- package/dist/adapters/prisma/rows.js +408 -0
- package/dist/adapters/prisma/rows.js.map +1 -0
- package/dist/adapters/prisma/unit-of-work.d.ts +36 -0
- package/dist/adapters/prisma/unit-of-work.js +66 -0
- package/dist/adapters/prisma/unit-of-work.js.map +1 -0
- package/dist/adapters/rest/openapi.d.ts +12 -0
- package/dist/adapters/rest/openapi.js +62 -0
- package/dist/adapters/rest/openapi.js.map +1 -0
- package/dist/adapters/rest/rest-api.d.ts +8 -0
- package/dist/adapters/rest/rest-api.js +61 -0
- package/dist/adapters/rest/rest-api.js.map +1 -0
- package/dist/adapters/trpc/console.d.ts +150 -0
- package/dist/adapters/trpc/console.js +102 -0
- package/dist/adapters/trpc/console.js.map +1 -0
- package/dist/adapters/trpc/context.d.ts +201 -0
- package/dist/adapters/trpc/context.js +2 -0
- package/dist/adapters/trpc/context.js.map +1 -0
- package/dist/adapters/trpc/fleet.d.ts +637 -0
- package/dist/adapters/trpc/fleet.js +437 -0
- package/dist/adapters/trpc/fleet.js.map +1 -0
- package/dist/adapters/trpc/installation.d.ts +414 -0
- package/dist/adapters/trpc/installation.js +138 -0
- package/dist/adapters/trpc/installation.js.map +1 -0
- package/dist/adapters/trpc/router.d.ts +1263 -0
- package/dist/adapters/trpc/router.js +15 -0
- package/dist/adapters/trpc/router.js.map +1 -0
- package/dist/adapters/trpc/ship-contract.d.ts +107 -0
- package/dist/adapters/trpc/ship-contract.js +165 -0
- package/dist/adapters/trpc/ship-contract.js.map +1 -0
- package/dist/adapters/trpc/ship-protocol.d.ts +9 -0
- package/dist/adapters/trpc/ship-protocol.js +25 -0
- package/dist/adapters/trpc/ship-protocol.js.map +1 -0
- package/dist/adapters/trpc/ship.d.ts +209 -0
- package/dist/adapters/trpc/ship.js +214 -0
- package/dist/adapters/trpc/ship.js.map +1 -0
- package/dist/adapters/trpc/starting-prompt-text.d.ts +7 -0
- package/dist/adapters/trpc/starting-prompt-text.js +60 -0
- package/dist/adapters/trpc/starting-prompt-text.js.map +1 -0
- package/dist/adapters/trpc/system.d.ts +29 -0
- package/dist/adapters/trpc/system.js +15 -0
- package/dist/adapters/trpc/system.js.map +1 -0
- package/dist/adapters/trpc/trpc.d.ts +131 -0
- package/dist/adapters/trpc/trpc.js +350 -0
- package/dist/adapters/trpc/trpc.js.map +1 -0
- package/dist/app.d.ts +31 -0
- package/dist/app.js +80 -0
- package/dist/app.js.map +1 -0
- package/dist/bin/aeolus-core.d.ts +2 -0
- package/dist/bin/aeolus-core.js +45 -0
- package/dist/bin/aeolus-core.js.map +1 -0
- package/dist/config.d.ts +35 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/domain/identity/authenticate.d.ts +46 -0
- package/dist/domain/identity/authenticate.js +18 -0
- package/dist/domain/identity/authenticate.js.map +1 -0
- package/dist/domain/identity/console-session.d.ts +54 -0
- package/dist/domain/identity/console-session.js +29 -0
- package/dist/domain/identity/console-session.js.map +1 -0
- package/dist/domain/identity/credential.d.ts +76 -0
- package/dist/domain/identity/credential.js +63 -0
- package/dist/domain/identity/credential.js.map +1 -0
- package/dist/domain/identity/dismiss-notice.d.ts +19 -0
- package/dist/domain/identity/dismiss-notice.js +23 -0
- package/dist/domain/identity/dismiss-notice.js.map +1 -0
- package/dist/domain/identity/get-guide.d.ts +7 -0
- package/dist/domain/identity/get-guide.js +5 -0
- package/dist/domain/identity/get-guide.js.map +1 -0
- package/dist/domain/identity/get-notices.d.ts +7 -0
- package/dist/domain/identity/get-notices.js +5 -0
- package/dist/domain/identity/get-notices.js.map +1 -0
- package/dist/domain/identity/guide.d.ts +24 -0
- package/dist/domain/identity/guide.js +3 -0
- package/dist/domain/identity/guide.js.map +1 -0
- package/dist/domain/identity/issue-sign-in-ticket.d.ts +38 -0
- package/dist/domain/identity/issue-sign-in-ticket.js +39 -0
- package/dist/domain/identity/issue-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/notice.d.ts +16 -0
- package/dist/domain/identity/notice.js +12 -0
- package/dist/domain/identity/notice.js.map +1 -0
- package/dist/domain/identity/operator-account.d.ts +28 -0
- package/dist/domain/identity/operator-account.js +21 -0
- package/dist/domain/identity/operator-account.js.map +1 -0
- package/dist/domain/identity/ports.d.ts +193 -0
- package/dist/domain/identity/ports.js +2 -0
- package/dist/domain/identity/ports.js.map +1 -0
- package/dist/domain/identity/public.d.ts +3 -0
- package/dist/domain/identity/public.js +5 -0
- package/dist/domain/identity/public.js.map +1 -0
- package/dist/domain/identity/read-account.d.ts +35 -0
- package/dist/domain/identity/read-account.js +27 -0
- package/dist/domain/identity/read-account.js.map +1 -0
- package/dist/domain/identity/read-guide.d.ts +18 -0
- package/dist/domain/identity/read-guide.js +21 -0
- package/dist/domain/identity/read-guide.js.map +1 -0
- package/dist/domain/identity/read-notices.d.ts +13 -0
- package/dist/domain/identity/read-notices.js +17 -0
- package/dist/domain/identity/read-notices.js.map +1 -0
- package/dist/domain/identity/record-guide-progress.d.ts +19 -0
- package/dist/domain/identity/record-guide-progress.js +24 -0
- package/dist/domain/identity/record-guide-progress.js.map +1 -0
- package/dist/domain/identity/redeem-sign-in-ticket.d.ts +34 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js +25 -0
- package/dist/domain/identity/redeem-sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/reset-operator-password.d.ts +34 -0
- package/dist/domain/identity/reset-operator-password.js +55 -0
- package/dist/domain/identity/reset-operator-password.js.map +1 -0
- package/dist/domain/identity/set-guide.d.ts +13 -0
- package/dist/domain/identity/set-guide.js +12 -0
- package/dist/domain/identity/set-guide.js.map +1 -0
- package/dist/domain/identity/set-notices.d.ts +13 -0
- package/dist/domain/identity/set-notices.js +12 -0
- package/dist/domain/identity/set-notices.js.map +1 -0
- package/dist/domain/identity/set-theme.d.ts +21 -0
- package/dist/domain/identity/set-theme.js +19 -0
- package/dist/domain/identity/set-theme.js.map +1 -0
- package/dist/domain/identity/sign-in-ticket.d.ts +21 -0
- package/dist/domain/identity/sign-in-ticket.js +5 -0
- package/dist/domain/identity/sign-in-ticket.js.map +1 -0
- package/dist/domain/identity/sign-in.d.ts +51 -0
- package/dist/domain/identity/sign-in.js +43 -0
- package/dist/domain/identity/sign-in.js.map +1 -0
- package/dist/domain/identity/sign-out.d.ts +20 -0
- package/dist/domain/identity/sign-out.js +32 -0
- package/dist/domain/identity/sign-out.js.map +1 -0
- package/dist/domain/identity/start-console-session.d.ts +27 -0
- package/dist/domain/identity/start-console-session.js +54 -0
- package/dist/domain/identity/start-console-session.js.map +1 -0
- package/dist/domain/identity/start-viewer-session.d.ts +29 -0
- package/dist/domain/identity/start-viewer-session.js +42 -0
- package/dist/domain/identity/start-viewer-session.js.map +1 -0
- package/dist/domain/messaging/acknowledge-delivery.d.ts +30 -0
- package/dist/domain/messaging/acknowledge-delivery.js +31 -0
- package/dist/domain/messaging/acknowledge-delivery.js.map +1 -0
- package/dist/domain/messaging/answer-ping.d.ts +33 -0
- package/dist/domain/messaging/answer-ping.js +37 -0
- package/dist/domain/messaging/answer-ping.js.map +1 -0
- package/dist/domain/messaging/check-inbox.d.ts +33 -0
- package/dist/domain/messaging/check-inbox.js +61 -0
- package/dist/domain/messaging/check-inbox.js.map +1 -0
- package/dist/domain/messaging/content-type.d.ts +9 -0
- package/dist/domain/messaging/content-type.js +18 -0
- package/dist/domain/messaging/content-type.js.map +1 -0
- package/dist/domain/messaging/daily-message-limit.d.ts +19 -0
- package/dist/domain/messaging/daily-message-limit.js +24 -0
- package/dist/domain/messaging/daily-message-limit.js.map +1 -0
- package/dist/domain/messaging/delivery.d.ts +116 -0
- package/dist/domain/messaging/delivery.js +201 -0
- package/dist/domain/messaging/delivery.js.map +1 -0
- package/dist/domain/messaging/dismiss-delivery.d.ts +28 -0
- package/dist/domain/messaging/dismiss-delivery.js +29 -0
- package/dist/domain/messaging/dismiss-delivery.js.map +1 -0
- package/dist/domain/messaging/inbox-wait.d.ts +8 -0
- package/dist/domain/messaging/inbox-wait.js +19 -0
- package/dist/domain/messaging/inbox-wait.js.map +1 -0
- package/dist/domain/messaging/mark-done.d.ts +45 -0
- package/dist/domain/messaging/mark-done.js +49 -0
- package/dist/domain/messaging/mark-done.js.map +1 -0
- package/dist/domain/messaging/mark-read.d.ts +27 -0
- package/dist/domain/messaging/mark-read.js +34 -0
- package/dist/domain/messaging/mark-read.js.map +1 -0
- package/dist/domain/messaging/message.d.ts +104 -0
- package/dist/domain/messaging/message.js +84 -0
- package/dist/domain/messaging/message.js.map +1 -0
- package/dist/domain/messaging/payload.d.ts +9 -0
- package/dist/domain/messaging/payload.js +16 -0
- package/dist/domain/messaging/payload.js.map +1 -0
- package/dist/domain/messaging/ping-ship.d.ts +38 -0
- package/dist/domain/messaging/ping-ship.js +42 -0
- package/dist/domain/messaging/ping-ship.js.map +1 -0
- package/dist/domain/messaging/ports.d.ts +116 -0
- package/dist/domain/messaging/ports.js +2 -0
- package/dist/domain/messaging/ports.js.map +1 -0
- package/dist/domain/messaging/receive-deliveries.d.ts +68 -0
- package/dist/domain/messaging/receive-deliveries.js +119 -0
- package/dist/domain/messaging/receive-deliveries.js.map +1 -0
- package/dist/domain/messaging/receive-max.d.ts +8 -0
- package/dist/domain/messaging/receive-max.js +17 -0
- package/dist/domain/messaging/receive-max.js.map +1 -0
- package/dist/domain/messaging/reply-to-message.d.ts +35 -0
- package/dist/domain/messaging/reply-to-message.js +49 -0
- package/dist/domain/messaging/reply-to-message.js.map +1 -0
- package/dist/domain/messaging/resend-delivery.d.ts +48 -0
- package/dist/domain/messaging/resend-delivery.js +97 -0
- package/dist/domain/messaging/resend-delivery.js.map +1 -0
- package/dist/domain/messaging/send-message.d.ts +88 -0
- package/dist/domain/messaging/send-message.js +115 -0
- package/dist/domain/messaging/send-message.js.map +1 -0
- package/dist/domain/messaging/send-request.d.ts +16 -0
- package/dist/domain/messaging/send-request.js +18 -0
- package/dist/domain/messaging/send-request.js.map +1 -0
- package/dist/domain/registry/applied-limits.d.ts +15 -0
- package/dist/domain/registry/applied-limits.js +15 -0
- package/dist/domain/registry/applied-limits.js.map +1 -0
- package/dist/domain/registry/assign-crew.d.ts +31 -0
- package/dist/domain/registry/assign-crew.js +35 -0
- package/dist/domain/registry/assign-crew.js.map +1 -0
- package/dist/domain/registry/claim-ship.d.ts +49 -0
- package/dist/domain/registry/claim-ship.js +59 -0
- package/dist/domain/registry/claim-ship.js.map +1 -0
- package/dist/domain/registry/commission-ship.d.ts +54 -0
- package/dist/domain/registry/commission-ship.js +70 -0
- package/dist/domain/registry/commission-ship.js.map +1 -0
- package/dist/domain/registry/confirm-crew-release.d.ts +28 -0
- package/dist/domain/registry/confirm-crew-release.js +28 -0
- package/dist/domain/registry/confirm-crew-release.js.map +1 -0
- package/dist/domain/registry/create-fleet.d.ts +39 -0
- package/dist/domain/registry/create-fleet.js +56 -0
- package/dist/domain/registry/create-fleet.js.map +1 -0
- package/dist/domain/registry/crew-request.d.ts +148 -0
- package/dist/domain/registry/crew-request.js +175 -0
- package/dist/domain/registry/crew-request.js.map +1 -0
- package/dist/domain/registry/delete-fleet.d.ts +46 -0
- package/dist/domain/registry/delete-fleet.js +34 -0
- package/dist/domain/registry/delete-fleet.js.map +1 -0
- package/dist/domain/registry/deregister.d.ts +32 -0
- package/dist/domain/registry/deregister.js +38 -0
- package/dist/domain/registry/deregister.js.map +1 -0
- package/dist/domain/registry/explain-crew-request.d.ts +30 -0
- package/dist/domain/registry/explain-crew-request.js +31 -0
- package/dist/domain/registry/explain-crew-request.js.map +1 -0
- package/dist/domain/registry/fleet.d.ts +12 -0
- package/dist/domain/registry/fleet.js +12 -0
- package/dist/domain/registry/fleet.js.map +1 -0
- package/dist/domain/registry/found-fleet.d.ts +32 -0
- package/dist/domain/registry/found-fleet.js +43 -0
- package/dist/domain/registry/found-fleet.js.map +1 -0
- package/dist/domain/registry/get-fleet-limits.d.ts +17 -0
- package/dist/domain/registry/get-fleet-limits.js +14 -0
- package/dist/domain/registry/get-fleet-limits.js.map +1 -0
- package/dist/domain/registry/get-installation-fleet.d.ts +15 -0
- package/dist/domain/registry/get-installation-fleet.js +12 -0
- package/dist/domain/registry/get-installation-fleet.js.map +1 -0
- package/dist/domain/registry/get-installation-settings.d.ts +7 -0
- package/dist/domain/registry/get-installation-settings.js +5 -0
- package/dist/domain/registry/get-installation-settings.js.map +1 -0
- package/dist/domain/registry/get-ship.d.ts +34 -0
- package/dist/domain/registry/get-ship.js +36 -0
- package/dist/domain/registry/get-ship.js.map +1 -0
- package/dist/domain/registry/get-starting-prompt.d.ts +24 -0
- package/dist/domain/registry/get-starting-prompt.js +46 -0
- package/dist/domain/registry/get-starting-prompt.js.map +1 -0
- package/dist/domain/registry/initialise-fleet.d.ts +28 -0
- package/dist/domain/registry/initialise-fleet.js +39 -0
- package/dist/domain/registry/initialise-fleet.js.map +1 -0
- package/dist/domain/registry/installation-fleet.d.ts +36 -0
- package/dist/domain/registry/installation-fleet.js +22 -0
- package/dist/domain/registry/installation-fleet.js.map +1 -0
- package/dist/domain/registry/installation-request.d.ts +23 -0
- package/dist/domain/registry/installation-request.js +5 -0
- package/dist/domain/registry/installation-request.js.map +1 -0
- package/dist/domain/registry/lease.d.ts +51 -0
- package/dist/domain/registry/lease.js +39 -0
- package/dist/domain/registry/lease.js.map +1 -0
- package/dist/domain/registry/leases.d.ts +66 -0
- package/dist/domain/registry/leases.js +80 -0
- package/dist/domain/registry/leases.js.map +1 -0
- package/dist/domain/registry/limits.d.ts +50 -0
- package/dist/domain/registry/limits.js +24 -0
- package/dist/domain/registry/limits.js.map +1 -0
- package/dist/domain/registry/list-fleet.d.ts +70 -0
- package/dist/domain/registry/list-fleet.js +47 -0
- package/dist/domain/registry/list-fleet.js.map +1 -0
- package/dist/domain/registry/list-fleets.d.ts +11 -0
- package/dist/domain/registry/list-fleets.js +9 -0
- package/dist/domain/registry/list-fleets.js.map +1 -0
- package/dist/domain/registry/list-installation-fleets.d.ts +15 -0
- package/dist/domain/registry/list-installation-fleets.js +15 -0
- package/dist/domain/registry/list-installation-fleets.js.map +1 -0
- package/dist/domain/registry/ping-status.d.ts +17 -0
- package/dist/domain/registry/ping-status.js +28 -0
- package/dist/domain/registry/ping-status.js.map +1 -0
- package/dist/domain/registry/pingable-ship.d.ts +22 -0
- package/dist/domain/registry/pingable-ship.js +21 -0
- package/dist/domain/registry/pingable-ship.js.map +1 -0
- package/dist/domain/registry/ports.d.ts +318 -0
- package/dist/domain/registry/ports.js +2 -0
- package/dist/domain/registry/ports.js.map +1 -0
- package/dist/domain/registry/public.d.ts +8 -0
- package/dist/domain/registry/public.js +10 -0
- package/dist/domain/registry/public.js.map +1 -0
- package/dist/domain/registry/read-assigned-crew-requests.d.ts +14 -0
- package/dist/domain/registry/read-assigned-crew-requests.js +15 -0
- package/dist/domain/registry/read-assigned-crew-requests.js.map +1 -0
- package/dist/domain/registry/recrew-ship.d.ts +33 -0
- package/dist/domain/registry/recrew-ship.js +34 -0
- package/dist/domain/registry/recrew-ship.js.map +1 -0
- package/dist/domain/registry/release-ship.d.ts +38 -0
- package/dist/domain/registry/release-ship.js +47 -0
- package/dist/domain/registry/release-ship.js.map +1 -0
- package/dist/domain/registry/remove-crew-request.d.ts +28 -0
- package/dist/domain/registry/remove-crew-request.js +36 -0
- package/dist/domain/registry/remove-crew-request.js.map +1 -0
- package/dist/domain/registry/rename-ship.d.ts +30 -0
- package/dist/domain/registry/rename-ship.js +39 -0
- package/dist/domain/registry/rename-ship.js.map +1 -0
- package/dist/domain/registry/report-crew-status.d.ts +29 -0
- package/dist/domain/registry/report-crew-status.js +30 -0
- package/dist/domain/registry/report-crew-status.js.map +1 -0
- package/dist/domain/registry/report-details.d.ts +18 -0
- package/dist/domain/registry/report-details.js +41 -0
- package/dist/domain/registry/report-details.js.map +1 -0
- package/dist/domain/registry/report-log.d.ts +21 -0
- package/dist/domain/registry/report-log.js +16 -0
- package/dist/domain/registry/report-log.js.map +1 -0
- package/dist/domain/registry/report.d.ts +30 -0
- package/dist/domain/registry/report.js +30 -0
- package/dist/domain/registry/report.js.map +1 -0
- package/dist/domain/registry/request-crew.d.ts +32 -0
- package/dist/domain/registry/request-crew.js +29 -0
- package/dist/domain/registry/request-crew.js.map +1 -0
- package/dist/domain/registry/resolve-selector.d.ts +25 -0
- package/dist/domain/registry/resolve-selector.js +32 -0
- package/dist/domain/registry/resolve-selector.js.map +1 -0
- package/dist/domain/registry/retire-ship.d.ts +42 -0
- package/dist/domain/registry/retire-ship.js +68 -0
- package/dist/domain/registry/retire-ship.js.map +1 -0
- package/dist/domain/registry/set-fleet-limits.d.ts +30 -0
- package/dist/domain/registry/set-fleet-limits.js +54 -0
- package/dist/domain/registry/set-fleet-limits.js.map +1 -0
- package/dist/domain/registry/set-installation-settings.d.ts +18 -0
- package/dist/domain/registry/set-installation-settings.js +31 -0
- package/dist/domain/registry/set-installation-settings.js.map +1 -0
- package/dist/domain/registry/ship-handle.d.ts +5 -0
- package/dist/domain/registry/ship-handle.js +20 -0
- package/dist/domain/registry/ship-handle.js.map +1 -0
- package/dist/domain/registry/ship-note.d.ts +7 -0
- package/dist/domain/registry/ship-note.js +15 -0
- package/dist/domain/registry/ship-note.js.map +1 -0
- package/dist/domain/registry/ship-report.d.ts +42 -0
- package/dist/domain/registry/ship-report.js +93 -0
- package/dist/domain/registry/ship-report.js.map +1 -0
- package/dist/domain/registry/ship.d.ts +190 -0
- package/dist/domain/registry/ship.js +334 -0
- package/dist/domain/registry/ship.js.map +1 -0
- package/dist/domain/registry/ships.d.ts +25 -0
- package/dist/domain/registry/ships.js +22 -0
- package/dist/domain/registry/ships.js.map +1 -0
- package/dist/domain/registry/starting-prompt.d.ts +32 -0
- package/dist/domain/registry/starting-prompt.js +22 -0
- package/dist/domain/registry/starting-prompt.js.map +1 -0
- package/dist/domain/registry/whoami.d.ts +20 -0
- package/dist/domain/registry/whoami.js +15 -0
- package/dist/domain/registry/whoami.js.map +1 -0
- package/dist/domain/shared/caller.d.ts +25 -0
- package/dist/domain/shared/caller.js +8 -0
- package/dist/domain/shared/caller.js.map +1 -0
- package/dist/domain/shared/clock.d.ts +4 -0
- package/dist/domain/shared/clock.js +2 -0
- package/dist/domain/shared/clock.js.map +1 -0
- package/dist/domain/shared/errors.d.ts +13 -0
- package/dist/domain/shared/errors.js +6 -0
- package/dist/domain/shared/errors.js.map +1 -0
- package/dist/domain/shared/events.d.ts +75 -0
- package/dist/domain/shared/events.js +9 -0
- package/dist/domain/shared/events.js.map +1 -0
- package/dist/domain/shared/follow-fleet.d.ts +32 -0
- package/dist/domain/shared/follow-fleet.js +65 -0
- package/dist/domain/shared/follow-fleet.js.map +1 -0
- package/dist/domain/shared/history.d.ts +124 -0
- package/dist/domain/shared/history.js +16 -0
- package/dist/domain/shared/history.js.map +1 -0
- package/dist/domain/shared/idempotency-key.d.ts +8 -0
- package/dist/domain/shared/idempotency-key.js +14 -0
- package/dist/domain/shared/idempotency-key.js.map +1 -0
- package/dist/domain/shared/notifier.d.ts +17 -0
- package/dist/domain/shared/notifier.js +2 -0
- package/dist/domain/shared/notifier.js.map +1 -0
- package/dist/domain/shared/ping.d.ts +18 -0
- package/dist/domain/shared/ping.js +8 -0
- package/dist/domain/shared/ping.js.map +1 -0
- package/dist/domain/shared/read-fleet-events.d.ts +29 -0
- package/dist/domain/shared/read-fleet-events.js +25 -0
- package/dist/domain/shared/read-fleet-events.js.map +1 -0
- package/dist/domain/shared/read-fleet-limits.d.ts +39 -0
- package/dist/domain/shared/read-fleet-limits.js +24 -0
- package/dist/domain/shared/read-fleet-limits.js.map +1 -0
- package/dist/domain/shared/read-inbox.d.ts +20 -0
- package/dist/domain/shared/read-inbox.js +16 -0
- package/dist/domain/shared/read-inbox.js.map +1 -0
- package/dist/domain/shared/read-message.d.ts +21 -0
- package/dist/domain/shared/read-message.js +18 -0
- package/dist/domain/shared/read-message.js.map +1 -0
- package/dist/domain/shared/read-needs-attention.d.ts +12 -0
- package/dist/domain/shared/read-needs-attention.js +10 -0
- package/dist/domain/shared/read-needs-attention.js.map +1 -0
- package/dist/domain/shared/read-ship-messages.d.ts +28 -0
- package/dist/domain/shared/read-ship-messages.js +30 -0
- package/dist/domain/shared/read-ship-messages.js.map +1 -0
- package/dist/domain/shared/read-ship-timeline.d.ts +18 -0
- package/dist/domain/shared/read-ship-timeline.js +16 -0
- package/dist/domain/shared/read-ship-timeline.js.map +1 -0
- package/dist/domain/shared/result.d.ts +16 -0
- package/dist/domain/shared/result.js +7 -0
- package/dist/domain/shared/result.js.map +1 -0
- package/dist/domain/shared/secrets.d.ts +26 -0
- package/dist/domain/shared/secrets.js +2 -0
- package/dist/domain/shared/secrets.js.map +1 -0
- package/dist/domain/shared/selector.d.ts +29 -0
- package/dist/domain/shared/selector.js +2 -0
- package/dist/domain/shared/selector.js.map +1 -0
- package/dist/domain/shared/unit-of-work.d.ts +13 -0
- package/dist/domain/shared/unit-of-work.js +2 -0
- package/dist/domain/shared/unit-of-work.js.map +1 -0
- package/dist/domain/shared/utc-day.d.ts +4 -0
- package/dist/domain/shared/utc-day.js +9 -0
- package/dist/domain/shared/utc-day.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/start.d.ts +6 -0
- package/dist/start.js +29 -0
- package/dist/start.js.map +1 -0
- package/dist/wiring.d.ts +158 -0
- package/dist/wiring.js +185 -0
- package/dist/wiring.js.map +1 -0
- package/package.json +58 -3
- package/prisma.config.ts +18 -0
- package/src/adapters/prisma/migrations/20260929124818_init/migration.sql +201 -0
- package/src/adapters/prisma/migrations/20260929160000_fleet_argo_console_session/migration.sql +130 -0
- package/src/adapters/prisma/migrations/20260929220017_operator_login/migration.sql +27 -0
- package/src/adapters/prisma/migrations/20260930090000_crew_token/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20260930120000_send/migration.sql +30 -0
- package/src/adapters/prisma/migrations/20260930150000_receive/migration.sql +24 -0
- package/src/adapters/prisma/migrations/20261001010000_event_seq/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261001020000_console_session_end_reason/migration.sql +14 -0
- package/src/adapters/prisma/migrations/20261001030000_account_theme_session_device/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261001040000_lease_last_seen/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261002190000_lease_report/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003140000_commission_key/migration.sql +7 -0
- package/src/adapters/prisma/migrations/20261003200000_message_model/migration.sql +5 -0
- package/src/adapters/prisma/migrations/20261003201000_lease_harness/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004120000_operator_without_password/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261004121000_installation_requests/migration.sql +21 -0
- package/src/adapters/prisma/migrations/20261004122000_events_deleted_with_their_fleet/migration.sql +11 -0
- package/src/adapters/prisma/migrations/20261004130000_sign_in_tickets/migration.sql +16 -0
- package/src/adapters/prisma/migrations/20261004140000_fleet_limits/migration.sql +6 -0
- package/src/adapters/prisma/migrations/20261004141000_installation_settings/migration.sql +12 -0
- package/src/adapters/prisma/migrations/20261005090000_viewer_ship/migration.sql +2 -0
- package/src/adapters/prisma/migrations/20261005100000_viewer_sessions/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261005110000_notices/migration.sql +37 -0
- package/src/adapters/prisma/migrations/20261005120000_guide/migration.sql +34 -0
- package/src/adapters/prisma/migrations/20261006100000_fleet_crew_scope/migration.sql +8 -0
- package/src/adapters/prisma/migrations/20261006140000_lease_report_details/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261006160000_crew_requests/migration.sql +20 -0
- package/src/adapters/prisma/migrations/20261006180000_crew_scopes/migration.sql +9 -0
- package/src/adapters/prisma/migrations/20261006190000_crew_assignment/migration.sql +13 -0
- package/src/adapters/prisma/migrations/20261006200000_crew_request_reason/migration.sql +3 -0
- package/src/adapters/prisma/migrations/20261007020000_broad_crewing_scope_retired/migration.sql +8 -0
- package/src/adapters/prisma/migrations/migration_lock.toml +3 -0
- package/src/adapters/prisma/schema.prisma +558 -0
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { commissionShipInputSchema, commissionShipOutputSchema, dismissDeliveryInputSchema, dismissDeliveryOutputSchema, fleetEventsInputSchema, followFleetInputSchema, followFleetOutputSchema, inboxActionOutputSchema, markDoneInputSchema, markReadInputSchema, fleetLimitsOutputSchema, fleetListOutputSchema, messageInputSchema, messageOutputSchema, needsAttentionOutputSchema, operatorInboxInputSchema, operatorInboxOutputSchema, pingShipInputSchema, pingShipOutputSchema, shipDetailOutputSchema, shipInputSchema, shipMessagesOutputSchema, shipTimelineOutputSchema, getStartingPromptInputSchema, recrewShipInputSchema, releaseShipInputSchema, releaseShipOutputSchema, assignCrewInputSchema, assignCrewOutputSchema, assignedCrewRequestsOutputSchema, confirmCrewReleaseInputSchema, explainCrewRequestInputSchema, explainCrewRequestOutputSchema, confirmCrewReleaseOutputSchema, crewRequestInputSchema, crewRequestOutputSchema, reportCrewStatusInputSchema, reportCrewStatusOutputSchema, removeCrewRequestInputSchema, removeCrewRequestOutputSchema, renameShipInputSchema, renameShipOutputSchema, replyInputSchema, replyOutputSchema, resendDeliveryInputSchema, resendDeliveryOutputSchema, retireShipInputSchema, retireShipOutputSchema, startingPromptOutputSchema, } from '@aeolus-fleet/common';
|
|
2
|
+
import { tracked } from '@trpc/server';
|
|
3
|
+
import { presentStartingPrompt } from './starting-prompt-text.js';
|
|
4
|
+
import { anyScopeProcedure, checkCallerStillHolds, okOrThrow, router, scopedCrewCallerProcedure, scopedProcedure } from './trpc.js';
|
|
5
|
+
/** A ship's last ping as the API states it: its dates in ISO 8601. */
|
|
6
|
+
function pingOutputOf(ping) {
|
|
7
|
+
return ping && { state: ping.state, sentAt: ping.sentAt.toISOString(), answeredAt: ping.answeredAt?.toISOString() ?? null };
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fleet procedures: commission ships, hand out their starting prompts, release
|
|
11
|
+
* them, list the fleet and follow it live, read a ship's page (the ship, its
|
|
12
|
+
* timeline, its messages and one message's delivery history), and Needs
|
|
13
|
+
* attention: the undeliverable deliveries, resent or dismissed, and argo's
|
|
14
|
+
* inbox: the messages to it, read, marked done or replied to. The caller's
|
|
15
|
+
* fleet and ship come from its credentials, never from the input.
|
|
16
|
+
*/
|
|
17
|
+
export const fleetRouter = router({
|
|
18
|
+
/** A new agent ship awaiting crew, and its first starting prompt: shown once. */
|
|
19
|
+
commission: scopedProcedure('fleet:manage')
|
|
20
|
+
.meta({
|
|
21
|
+
description: [
|
|
22
|
+
'Needs fleet:manage. Commissions a new agent ship awaiting crew: name and type are handles (lowercase letters, digits, hyphens, colons).',
|
|
23
|
+
'fleetScopes adds fleet:read and/or fleet:manage to its scopes; they never change later.',
|
|
24
|
+
'Answers its shipId, its first starting prompt, one crew line per harness (claude-code, codex) and its secret, shown only this once.',
|
|
25
|
+
'idempotencyKey is a new unique string for every commission. Reuse one only to retry the same commission after an error or a lost answer:',
|
|
26
|
+
'the retry answers the same shipId with prompt, crewLines and secret null and how its starting prompt stands (fleet_getStartingPrompt gives a new one), and a different commission with a used key is refused (CONFLICT).',
|
|
27
|
+
].join(' '),
|
|
28
|
+
})
|
|
29
|
+
.input(commissionShipInputSchema)
|
|
30
|
+
.output(commissionShipOutputSchema)
|
|
31
|
+
.mutation(async ({ ctx, input }) => {
|
|
32
|
+
const { shipId, secret, startingPrompt } = okOrThrow(await ctx.useCases.commissionShip(ctx.caller, input));
|
|
33
|
+
const presented = secret === null ? { prompt: null, crewLines: null, secret: null } : presentStartingPrompt({ fleetUrl: ctx.fleetUrl, shipId, secret });
|
|
34
|
+
return { ...presented, shipId, startingPrompt: startingPrompt && { ...startingPrompt, issuedAt: startingPrompt.issuedAt.toISOString() } };
|
|
35
|
+
}),
|
|
36
|
+
/** A new starting prompt for a ship awaiting crew. Its secret invalidates the previous one. */
|
|
37
|
+
getStartingPrompt: anyScopeProcedure('fleet:manage', 'crew:run')
|
|
38
|
+
.meta({
|
|
39
|
+
description: [
|
|
40
|
+
'Needs fleet:manage, or crew:run for a ship whose crew request is assigned to yours. A new starting prompt, one crew line per harness and the secret for a ship awaiting crew; its new secret stops any earlier one working.',
|
|
41
|
+
].join(' '),
|
|
42
|
+
})
|
|
43
|
+
.input(getStartingPromptInputSchema)
|
|
44
|
+
.output(startingPromptOutputSchema)
|
|
45
|
+
.mutation(async ({ ctx, input }) => presentStartingPrompt({ fleetUrl: ctx.fleetUrl, ...okOrThrow(await ctx.useCases.getStartingPrompt(ctx.caller, input)) })),
|
|
46
|
+
/**
|
|
47
|
+
* Pings a crewed ship: a message its session answers with pong, proving
|
|
48
|
+
* its model is working. Pings never stack: while one waits unanswered, this
|
|
49
|
+
* answers with that one. Never argo, a ship awaiting crew or a retired one.
|
|
50
|
+
*/
|
|
51
|
+
ping: scopedProcedure('fleet:manage')
|
|
52
|
+
.meta({
|
|
53
|
+
description: [
|
|
54
|
+
'Needs fleet:manage. Pings a crewed ship: its session answers with pong, proving it is working.',
|
|
55
|
+
'Pings never stack: while one waits unanswered, this answers with that one (isNew false). Never argo, a ship awaiting crew or a retired one.',
|
|
56
|
+
].join(' '),
|
|
57
|
+
})
|
|
58
|
+
.input(pingShipInputSchema)
|
|
59
|
+
.output(pingShipOutputSchema)
|
|
60
|
+
.mutation(async ({ ctx, input }) => {
|
|
61
|
+
const pinged = okOrThrow(await ctx.useCases.pingShip(ctx.caller, input));
|
|
62
|
+
return { ...pinged, sentAt: pinged.sentAt.toISOString() };
|
|
63
|
+
}),
|
|
64
|
+
/**
|
|
65
|
+
* Frees a crewed ship from the session crewing it: its crew token and secret
|
|
66
|
+
* stop working, and what it held in flight returns to pending for the next
|
|
67
|
+
* crew. Never argo; a ship awaiting crew gets a new starting prompt instead.
|
|
68
|
+
*/
|
|
69
|
+
release: anyScopeProcedure('fleet:manage', 'crew:run')
|
|
70
|
+
.meta({
|
|
71
|
+
description: [
|
|
72
|
+
'Needs fleet:manage, or crew:run for a ship whose crew request is assigned to yours. Frees a crewed ship from its session: its crew token and secret stop working, and what it held in flight returns to pending.',
|
|
73
|
+
'Never argo; a ship awaiting crew gets a new starting prompt instead.',
|
|
74
|
+
].join(' '),
|
|
75
|
+
})
|
|
76
|
+
.input(releaseShipInputSchema)
|
|
77
|
+
.output(releaseShipOutputSchema)
|
|
78
|
+
.mutation(async ({ ctx, input }) => {
|
|
79
|
+
okOrThrow(await ctx.useCases.releaseShip(ctx.caller, input));
|
|
80
|
+
return {};
|
|
81
|
+
}),
|
|
82
|
+
/**
|
|
83
|
+
* Ends a ship for good, crewed or not, never argo: its lease and secret end,
|
|
84
|
+
* its direct deliveries are abandoned, deliveries to its type stay for the
|
|
85
|
+
* other ships of the type. Answers how many it abandoned.
|
|
86
|
+
*/
|
|
87
|
+
retire: scopedProcedure('fleet:manage')
|
|
88
|
+
.meta({
|
|
89
|
+
description: [
|
|
90
|
+
'Needs fleet:manage. Ends a ship permanently, never argo: its lease and secret end and its direct deliveries are abandoned.',
|
|
91
|
+
'Answers how many it abandoned.',
|
|
92
|
+
].join(' '),
|
|
93
|
+
})
|
|
94
|
+
.input(retireShipInputSchema)
|
|
95
|
+
.output(retireShipOutputSchema)
|
|
96
|
+
.mutation(async ({ ctx, input }) => okOrThrow(await ctx.useCases.retireShip(ctx.caller, input))),
|
|
97
|
+
/**
|
|
98
|
+
* Asks that a ship be kept crewed, with settings stored without meaning,
|
|
99
|
+
* replacing any request it holds (decision 0029).
|
|
100
|
+
*/
|
|
101
|
+
crewRequest: scopedProcedure('fleet:manage')
|
|
102
|
+
.meta({
|
|
103
|
+
description: [
|
|
104
|
+
'Needs fleet:manage. Asks that a ship be kept crewed, with settings: one JSON object of at most 16 KB (harness, workspace, options,',
|
|
105
|
+
'an optional first prompt and squadron), stored without meaning. Replaces the settings of a request the ship holds.',
|
|
106
|
+
'Never argo, the viewer or a retired ship. Answers the settings version, one more on every request.',
|
|
107
|
+
].join(' '),
|
|
108
|
+
})
|
|
109
|
+
.input(crewRequestInputSchema)
|
|
110
|
+
.output(crewRequestOutputSchema)
|
|
111
|
+
.mutation(async ({ ctx, input }) => okOrThrow(await ctx.useCases.requestCrew(ctx.caller, input))),
|
|
112
|
+
/** Removes a ship's crew request; its crew, if any, stays aboard. */
|
|
113
|
+
removeCrewRequest: scopedProcedure('fleet:manage')
|
|
114
|
+
.meta({
|
|
115
|
+
description: ["Needs fleet:manage. Removes a ship's crew request. NOT_FOUND when it holds none."].join(' '),
|
|
116
|
+
})
|
|
117
|
+
.input(removeCrewRequestInputSchema)
|
|
118
|
+
.output(removeCrewRequestOutputSchema)
|
|
119
|
+
.mutation(async ({ ctx, input }) => {
|
|
120
|
+
okOrThrow(await ctx.useCases.removeCrewRequest(ctx.caller, input));
|
|
121
|
+
return {};
|
|
122
|
+
}),
|
|
123
|
+
/** Assigns a ship's crew request to a trierarch, only while it is unassigned (optimistic claim, decision 0029). */
|
|
124
|
+
assignCrew: scopedProcedure('crew:assign')
|
|
125
|
+
.meta({
|
|
126
|
+
description: [
|
|
127
|
+
"Needs crew:assign. Assigns a ship's crew request to a trierarch ship (any active ship of the fleet), only while it is unassigned:",
|
|
128
|
+
'a lost claim is CONFLICT, so read again. Never a crewed ship: crewing it by hand fulfils its request.',
|
|
129
|
+
].join(' '),
|
|
130
|
+
})
|
|
131
|
+
.input(assignCrewInputSchema)
|
|
132
|
+
.output(assignCrewOutputSchema)
|
|
133
|
+
.mutation(async ({ ctx, input }) => {
|
|
134
|
+
okOrThrow(await ctx.useCases.assignCrew(ctx.caller, input));
|
|
135
|
+
return {};
|
|
136
|
+
}),
|
|
137
|
+
/** The assigner writes why no trierarch can take a ship's unassigned crew request. */
|
|
138
|
+
explainCrewRequest: scopedProcedure('crew:assign')
|
|
139
|
+
.meta({
|
|
140
|
+
description: [
|
|
141
|
+
"Needs crew:assign. Writes why no trierarch can take a ship's unassigned crew request (one line, at most 200 characters),",
|
|
142
|
+
"shown in the operator's needs-crew to-do; null clears it, and an assignment clears it.",
|
|
143
|
+
].join(' '),
|
|
144
|
+
})
|
|
145
|
+
.input(explainCrewRequestInputSchema)
|
|
146
|
+
.output(explainCrewRequestOutputSchema)
|
|
147
|
+
.mutation(async ({ ctx, input }) => {
|
|
148
|
+
okOrThrow(await ctx.useCases.explainCrewRequest(ctx.caller, input));
|
|
149
|
+
return {};
|
|
150
|
+
}),
|
|
151
|
+
/** The assigned trierarch writes how its crew of a ship stands. */
|
|
152
|
+
reportCrewStatus: scopedProcedure('crew:run')
|
|
153
|
+
.meta({
|
|
154
|
+
description: [
|
|
155
|
+
"Needs crew:run, for a ship whose crew request is assigned to yours. Says how its crew stands: crewing, running, restarting, crashed or releasing.",
|
|
156
|
+
'Once the request is releasing, only releasing: stop its session, end its lease, then call confirmCrewRelease.',
|
|
157
|
+
].join(' '),
|
|
158
|
+
})
|
|
159
|
+
.input(reportCrewStatusInputSchema)
|
|
160
|
+
.output(reportCrewStatusOutputSchema)
|
|
161
|
+
.mutation(async ({ ctx, input }) => {
|
|
162
|
+
okOrThrow(await ctx.useCases.reportCrewStatus(ctx.caller, input));
|
|
163
|
+
return {};
|
|
164
|
+
}),
|
|
165
|
+
/** The assigned trierarch confirms it released the ship of a releasing request, which then goes (the finalizer). */
|
|
166
|
+
confirmCrewRelease: scopedProcedure('crew:run')
|
|
167
|
+
.meta({
|
|
168
|
+
description: [
|
|
169
|
+
'Needs crew:run, for a ship whose crew request is assigned to yours and releasing. Confirms you stopped its session,',
|
|
170
|
+
'ended its lease and cleaned its workspace; the request then goes.',
|
|
171
|
+
].join(' '),
|
|
172
|
+
})
|
|
173
|
+
.input(confirmCrewReleaseInputSchema)
|
|
174
|
+
.output(confirmCrewReleaseOutputSchema)
|
|
175
|
+
.mutation(async ({ ctx, input }) => {
|
|
176
|
+
okOrThrow(await ctx.useCases.confirmCrewRelease(ctx.caller, input));
|
|
177
|
+
return {};
|
|
178
|
+
}),
|
|
179
|
+
/** The crew requests assigned to the caller's ship: a trierarch's ships. */
|
|
180
|
+
assignedCrewRequests: scopedProcedure('crew:run')
|
|
181
|
+
.meta({
|
|
182
|
+
description: ['Needs crew:run. The crew requests assigned to your ship, oldest ship first: each ship, its settings and their version, and its status.'].join(' '),
|
|
183
|
+
})
|
|
184
|
+
.output(assignedCrewRequestsOutputSchema)
|
|
185
|
+
.query(async ({ ctx }) => (await ctx.useCases.readAssignedCrewRequests(ctx.caller)).map((request) => ({ ...request, requestedAt: request.requestedAt.toISOString() }))),
|
|
186
|
+
/**
|
|
187
|
+
* Gives a ship a new name, any ship but argo or a retired one. Its id,
|
|
188
|
+
* history and session stay; a sender addressing the old name no longer
|
|
189
|
+
* reaches it.
|
|
190
|
+
*/
|
|
191
|
+
rename: scopedProcedure('fleet:manage')
|
|
192
|
+
.input(renameShipInputSchema)
|
|
193
|
+
.output(renameShipOutputSchema)
|
|
194
|
+
.mutation(async ({ ctx, input }) => {
|
|
195
|
+
okOrThrow(await ctx.useCases.renameShip(ctx.caller, input));
|
|
196
|
+
return {};
|
|
197
|
+
}),
|
|
198
|
+
/**
|
|
199
|
+
* A new crew for a crewed ship whose session is gone: a release and a new
|
|
200
|
+
* starting prompt in one transaction. Its prompt, crew lines and secret are shown once.
|
|
201
|
+
*/
|
|
202
|
+
recrew: scopedProcedure('fleet:manage')
|
|
203
|
+
.meta({
|
|
204
|
+
description: [
|
|
205
|
+
'Needs fleet:manage. A new crew for a crewed ship whose session is gone: releases it and answers a fresh starting prompt, one crew line per harness and the secret, shown once. Never argo.',
|
|
206
|
+
].join(' '),
|
|
207
|
+
})
|
|
208
|
+
.input(recrewShipInputSchema)
|
|
209
|
+
.output(startingPromptOutputSchema)
|
|
210
|
+
.mutation(async ({ ctx, input }) => presentStartingPrompt({ fleetUrl: ctx.fleetUrl, ...okOrThrow(await ctx.useCases.recrewShip(ctx.caller, input)) })),
|
|
211
|
+
/**
|
|
212
|
+
* The fleet's ship and daily message limits with what each counts, and when
|
|
213
|
+
* today's message count starts again: what the console shows at a limit.
|
|
214
|
+
*/
|
|
215
|
+
limits: scopedProcedure('fleet:read')
|
|
216
|
+
.meta({
|
|
217
|
+
description: [
|
|
218
|
+
"Needs fleet:read. The fleet's ship limit with its ships that are not retired (argo included), and its daily message limit with the messages it stored since 00:00 UTC and when that count starts again. A limit of null is none.",
|
|
219
|
+
].join(' '),
|
|
220
|
+
})
|
|
221
|
+
.output(fleetLimitsOutputSchema)
|
|
222
|
+
.query(async ({ ctx }) => {
|
|
223
|
+
const { ships, dailyMessages } = await ctx.useCases.readFleetLimits(ctx.caller);
|
|
224
|
+
return { ships, dailyMessages: { ...dailyMessages, resetsAt: dailyMessages.resetsAt.toISOString() } };
|
|
225
|
+
}),
|
|
226
|
+
/** Every ship of the caller's fleet with its status and prompt state. Never a secret. */
|
|
227
|
+
list: scopedProcedure('fleet:read')
|
|
228
|
+
.meta({
|
|
229
|
+
description: [
|
|
230
|
+
'Needs fleet:read. Every ship of the fleet, argo included: id, name, type, kind, status, scopes, where its session runs and in which harness, when it was last seen, its last ping, and its current model (the last its sessions stated). Never a secret.',
|
|
231
|
+
].join(' '),
|
|
232
|
+
})
|
|
233
|
+
.output(fleetListOutputSchema)
|
|
234
|
+
.query(async ({ ctx }) => (await ctx.useCases.listFleet(ctx.caller)).map((ship) => ({
|
|
235
|
+
...ship,
|
|
236
|
+
startingPrompt: ship.startingPrompt && {
|
|
237
|
+
issuedAt: ship.startingPrompt.issuedAt.toISOString(),
|
|
238
|
+
isClaimed: ship.startingPrompt.isClaimed,
|
|
239
|
+
},
|
|
240
|
+
lastSeenAt: ship.lastSeenAt?.toISOString() ?? null,
|
|
241
|
+
ping: pingOutputOf(ship.ping),
|
|
242
|
+
scopes: [...ship.scopes],
|
|
243
|
+
report: ship.report && { ...ship.report, reportedAt: ship.report.reportedAt.toISOString() },
|
|
244
|
+
crewRequest: ship.crewRequest && { ...ship.crewRequest, requestedAt: ship.crewRequest.requestedAt.toISOString() },
|
|
245
|
+
model: ship.model && { id: ship.model.id, statedAt: ship.model.statedAt.toISOString() },
|
|
246
|
+
awaitingCrewSince: ship.awaitingCrewSince?.toISOString() ?? null,
|
|
247
|
+
retiredAt: ship.retiredAt?.toISOString() ?? null,
|
|
248
|
+
}))),
|
|
249
|
+
/** One ship of the fleet, retired ones included, with when it was commissioned, crewed and retired. */
|
|
250
|
+
ship: anyScopeProcedure('fleet:read', 'crew:run')
|
|
251
|
+
.meta({
|
|
252
|
+
description: [
|
|
253
|
+
'Needs fleet:read, or crew:run for a ship whose crew request is assigned to yours. One ship of the fleet, retired ones included: as fleet_list shows it, plus when it was commissioned, crewed and retired, and its open and in-flight deliveries.',
|
|
254
|
+
].join(' '),
|
|
255
|
+
})
|
|
256
|
+
.input(shipInputSchema)
|
|
257
|
+
.output(shipDetailOutputSchema)
|
|
258
|
+
.query(async ({ ctx, input }) => {
|
|
259
|
+
const ship = okOrThrow(await ctx.useCases.getShip(ctx.caller, input));
|
|
260
|
+
return {
|
|
261
|
+
...ship,
|
|
262
|
+
startingPrompt: ship.startingPrompt && {
|
|
263
|
+
issuedAt: ship.startingPrompt.issuedAt.toISOString(),
|
|
264
|
+
isClaimed: ship.startingPrompt.isClaimed,
|
|
265
|
+
},
|
|
266
|
+
lastSeenAt: ship.lastSeenAt?.toISOString() ?? null,
|
|
267
|
+
ping: pingOutputOf(ship.ping),
|
|
268
|
+
scopes: [...ship.scopes],
|
|
269
|
+
report: ship.report && { ...ship.report, reportedAt: ship.report.reportedAt.toISOString() },
|
|
270
|
+
crewRequest: ship.crewRequest && { ...ship.crewRequest, requestedAt: ship.crewRequest.requestedAt.toISOString() },
|
|
271
|
+
model: ship.model && { id: ship.model.id, statedAt: ship.model.statedAt.toISOString() },
|
|
272
|
+
awaitingCrewSince: ship.awaitingCrewSince?.toISOString() ?? null,
|
|
273
|
+
commissionedAt: ship.commissionedAt.toISOString(),
|
|
274
|
+
crewedSince: ship.crewedSince?.toISOString() ?? null,
|
|
275
|
+
retiredAt: ship.retiredAt?.toISOString() ?? null,
|
|
276
|
+
};
|
|
277
|
+
}),
|
|
278
|
+
/** Every change to a ship, newest first: the events naming it and the ones it caused. */
|
|
279
|
+
shipTimeline: scopedProcedure('fleet:read')
|
|
280
|
+
.input(shipInputSchema)
|
|
281
|
+
.output(shipTimelineOutputSchema)
|
|
282
|
+
.query(async ({ ctx, input }) => okOrThrow(await ctx.useCases.readShipTimeline(ctx.caller, input)).map((entry) => ({
|
|
283
|
+
...entry,
|
|
284
|
+
occurredAt: entry.occurredAt.toISOString(),
|
|
285
|
+
}))),
|
|
286
|
+
/** The messages a ship sent, was sent, or claimed as a ship of their type, newest first. */
|
|
287
|
+
shipMessages: scopedProcedure('fleet:read')
|
|
288
|
+
.input(shipInputSchema)
|
|
289
|
+
.output(shipMessagesOutputSchema)
|
|
290
|
+
.query(async ({ ctx, input }) => okOrThrow(await ctx.useCases.readShipMessages(ctx.caller, input)).map((message) => ({
|
|
291
|
+
...message,
|
|
292
|
+
sentAt: message.sentAt.toISOString(),
|
|
293
|
+
}))),
|
|
294
|
+
/** One message: envelope, payload, and its delivery with every change, newest first. */
|
|
295
|
+
message: scopedProcedure('fleet:read')
|
|
296
|
+
.input(messageInputSchema)
|
|
297
|
+
.output(messageOutputSchema)
|
|
298
|
+
.query(async ({ ctx, input }) => {
|
|
299
|
+
const message = okOrThrow(await ctx.useCases.readMessage(ctx.caller, input));
|
|
300
|
+
return {
|
|
301
|
+
...message,
|
|
302
|
+
sentAt: message.sentAt.toISOString(),
|
|
303
|
+
delivery: {
|
|
304
|
+
...message.delivery,
|
|
305
|
+
history: message.delivery.history.map((change) => ({ ...change, occurredAt: change.occurredAt.toISOString() })),
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}),
|
|
309
|
+
/** Needs attention: every undeliverable delivery of the fleet, oldest first, with its whole message. */
|
|
310
|
+
needsAttention: scopedProcedure('fleet:read')
|
|
311
|
+
.output(needsAttentionOutputSchema)
|
|
312
|
+
.query(async ({ ctx }) => (await ctx.useCases.readNeedsAttention(ctx.caller)).map((entry) => ({
|
|
313
|
+
...entry,
|
|
314
|
+
since: entry.since.toISOString(),
|
|
315
|
+
message: { ...entry.message, sentAt: entry.message.sentAt.toISOString() },
|
|
316
|
+
}))),
|
|
317
|
+
/** Lets an undeliverable delivery go: dismissed, kept in history. Dismissing it again is OK. */
|
|
318
|
+
dismiss: scopedProcedure('fleet:manage')
|
|
319
|
+
.input(dismissDeliveryInputSchema)
|
|
320
|
+
.output(dismissDeliveryOutputSchema)
|
|
321
|
+
.mutation(async ({ ctx, input }) => {
|
|
322
|
+
okOrThrow(await ctx.useCases.dismissDelivery(ctx.caller, input));
|
|
323
|
+
return {};
|
|
324
|
+
}),
|
|
325
|
+
/**
|
|
326
|
+
* Sends an undeliverable delivery again: a new message from the same sender
|
|
327
|
+
* to the same recipient that names the original, which is dismissed.
|
|
328
|
+
* Answers the new message; a second resend of the delivery answers the same.
|
|
329
|
+
*/
|
|
330
|
+
resend: scopedProcedure('fleet:manage')
|
|
331
|
+
.input(resendDeliveryInputSchema)
|
|
332
|
+
.output(resendDeliveryOutputSchema)
|
|
333
|
+
.mutation(async ({ ctx, input }) => okOrThrow(await ctx.useCases.resendDelivery(ctx.caller, input))),
|
|
334
|
+
/** The caller's inbox, argo's for the console: the messages to it the filter keeps, newest first. */
|
|
335
|
+
inbox: scopedProcedure('fleet:read')
|
|
336
|
+
.input(operatorInboxInputSchema)
|
|
337
|
+
.output(operatorInboxOutputSchema)
|
|
338
|
+
.query(async ({ ctx, input }) => (await ctx.useCases.readInbox(ctx.caller, input)).map((entry) => ({
|
|
339
|
+
...entry,
|
|
340
|
+
readAt: entry.readAt?.toISOString() ?? null,
|
|
341
|
+
doneAt: entry.doneAt?.toISOString() ?? null,
|
|
342
|
+
message: { ...entry.message, sentAt: entry.message.sentAt.toISOString() },
|
|
343
|
+
}))),
|
|
344
|
+
/** Marks a message to argo read, as opening it does, or unread again. Read is not done. */
|
|
345
|
+
markRead: scopedCrewCallerProcedure('messages:receive')
|
|
346
|
+
.input(markReadInputSchema)
|
|
347
|
+
.output(inboxActionOutputSchema)
|
|
348
|
+
.mutation(async ({ ctx, input }) => {
|
|
349
|
+
okOrThrow(await ctx.useCases.markRead(ctx.crew, input));
|
|
350
|
+
return {};
|
|
351
|
+
}),
|
|
352
|
+
/** Marks a message to argo done without a reply: acknowledged under the console session's lease. */
|
|
353
|
+
markDone: scopedCrewCallerProcedure('messages:receive')
|
|
354
|
+
.input(markDoneInputSchema)
|
|
355
|
+
.output(inboxActionOutputSchema)
|
|
356
|
+
.mutation(async ({ ctx, input }) => {
|
|
357
|
+
okOrThrow(await ctx.useCases.markDone(ctx.crew, input));
|
|
358
|
+
return {};
|
|
359
|
+
}),
|
|
360
|
+
/** Replies to a message to argo as plain text to its sender, and marks it done, in one transaction. */
|
|
361
|
+
reply: scopedCrewCallerProcedure('messages:send', 'messages:receive')
|
|
362
|
+
.input(replyInputSchema)
|
|
363
|
+
.output(replyOutputSchema)
|
|
364
|
+
.mutation(async ({ ctx, input }) => okOrThrow(await ctx.useCases.replyToMessage(ctx.crew, input))),
|
|
365
|
+
/**
|
|
366
|
+
* The fleet's committed events after a position, for a client that is no
|
|
367
|
+
* browser: the same numbers the live stream sends, waiting up to
|
|
368
|
+
* waitSeconds while none has come. A query: it changes nothing.
|
|
369
|
+
*/
|
|
370
|
+
follow: scopedProcedure('fleet:read')
|
|
371
|
+
.meta({
|
|
372
|
+
description: [
|
|
373
|
+
'Needs fleet:read. The fleet\'s events after afterSeq, oldest first, up to max (1 to 100, 100 when left out):',
|
|
374
|
+
'each with its seq, type, time, the ship that caused it and the ship, message and delivery it concerns, never its details.',
|
|
375
|
+
'Pass the lastSeq it answers as afterSeq next, so you miss nothing across reconnects.',
|
|
376
|
+
'Without afterSeq it answers no events and the current lastSeq to start from.',
|
|
377
|
+
'With waitSeconds (0 to 25) it waits while none has come, and answers as soon as one commits.',
|
|
378
|
+
].join(' '),
|
|
379
|
+
})
|
|
380
|
+
.input(followFleetInputSchema)
|
|
381
|
+
.output(followFleetOutputSchema)
|
|
382
|
+
.query(async ({ ctx, input }) => {
|
|
383
|
+
const { events, lastSeq } = okOrThrow(await ctx.useCases.followFleet(ctx.caller, input ?? {}));
|
|
384
|
+
return { events: events.map(liveEventOf), lastSeq };
|
|
385
|
+
}),
|
|
386
|
+
/**
|
|
387
|
+
* The fleet's committed events, live, over the WebSocket: each with its
|
|
388
|
+
* number, which tRPC sends back as `lastEventId` when the browser
|
|
389
|
+
* reconnects, so it misses none. Without a number, or too far behind, the
|
|
390
|
+
* browser is told to load the fleet again first (`resync`). Each wake-up
|
|
391
|
+
* asks again whether the caller still holds, so a console session that ended
|
|
392
|
+
* hears no more.
|
|
393
|
+
*/
|
|
394
|
+
events: scopedProcedure('fleet:read')
|
|
395
|
+
.input(fleetEventsInputSchema)
|
|
396
|
+
.subscription(async function* ({ ctx, input, signal }) {
|
|
397
|
+
const watch = ctx.fleetEvents.watch(ctx.caller.fleetId);
|
|
398
|
+
const stopped = signal ?? new AbortController().signal;
|
|
399
|
+
try {
|
|
400
|
+
let afterSeq = input.lastEventId == null ? undefined : Number(input.lastEventId);
|
|
401
|
+
do {
|
|
402
|
+
const read = await ctx.useCases.readFleetEvents(ctx.caller, afterSeq);
|
|
403
|
+
if (read.kind === 'resync') {
|
|
404
|
+
afterSeq = read.seq;
|
|
405
|
+
yield tracked(String(read.seq), { kind: 'resync' });
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
for (const event of read.events) {
|
|
409
|
+
afterSeq = event.seq;
|
|
410
|
+
yield tracked(String(event.seq), { kind: 'event', event: liveEventOf(event) });
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
if (!(await watch.next(stopped))) {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
await checkCallerStillHolds(ctx);
|
|
417
|
+
} while (!stopped.aborted);
|
|
418
|
+
}
|
|
419
|
+
finally {
|
|
420
|
+
watch.stop();
|
|
421
|
+
}
|
|
422
|
+
}),
|
|
423
|
+
});
|
|
424
|
+
/** An event as the browser hears it: never its details. */
|
|
425
|
+
function liveEventOf(event) {
|
|
426
|
+
return {
|
|
427
|
+
seq: event.seq,
|
|
428
|
+
id: event.id,
|
|
429
|
+
type: event.type,
|
|
430
|
+
occurredAt: event.occurredAt.toISOString(),
|
|
431
|
+
actorShipId: event.actor.kind === 'ship' ? event.actor.shipId : null,
|
|
432
|
+
shipId: event.shipId ?? null,
|
|
433
|
+
messageId: event.messageId ?? null,
|
|
434
|
+
deliveryId: event.deliveryId ?? null,
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
//# sourceMappingURL=fleet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../src/adapters/trpc/fleet.ts"],"names":[],"mappings":"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"}
|