@smthrs/gateway 0.35.0 → 1.0.0-rc.3
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/CHANGELOG.md +198 -0
- package/LICENSE +1 -1
- package/README.md +92 -0
- package/dist/cjs/Diagnosis.d.ts +275 -0
- package/dist/cjs/Diagnosis.d.ts.map +1 -0
- package/dist/cjs/Diagnosis.js +476 -0
- package/dist/cjs/Diagnosis.js.map +7 -0
- package/dist/cjs/EngineTrace.d.ts +76 -0
- package/dist/cjs/EngineTrace.d.ts.map +1 -0
- package/dist/cjs/EngineTrace.js +501 -0
- package/dist/cjs/EngineTrace.js.map +7 -0
- package/dist/cjs/GatewayError.d.ts +54 -0
- package/dist/cjs/GatewayError.d.ts.map +1 -0
- package/dist/cjs/GatewayError.js +51 -0
- package/dist/cjs/GatewayError.js.map +7 -0
- package/dist/cjs/GatewayProjection.d.ts +480 -0
- package/dist/cjs/GatewayProjection.d.ts.map +1 -0
- package/dist/cjs/GatewayProjection.js +462 -0
- package/dist/cjs/GatewayProjection.js.map +7 -0
- package/dist/cjs/GatewayRpcs.d.ts +1886 -0
- package/dist/cjs/GatewayRpcs.d.ts.map +1 -0
- package/dist/cjs/GatewayRpcs.js +121 -0
- package/dist/cjs/GatewayRpcs.js.map +7 -0
- package/dist/cjs/GatewaySchema.d.ts +3274 -0
- package/dist/cjs/GatewaySchema.d.ts.map +1 -0
- package/dist/cjs/GatewaySchema.js +141 -0
- package/dist/cjs/GatewaySchema.js.map +7 -0
- package/dist/cjs/GatewayServer.d.ts +427 -0
- package/dist/cjs/GatewayServer.d.ts.map +1 -0
- package/dist/cjs/GatewayServer.js +428 -0
- package/dist/cjs/GatewayServer.js.map +7 -0
- package/dist/cjs/HostBranchPresence.d.ts +12 -0
- package/dist/cjs/HostBranchPresence.d.ts.map +1 -0
- package/dist/cjs/HostBranchPresence.js +82 -0
- package/dist/cjs/HostBranchPresence.js.map +7 -0
- package/dist/cjs/Projections.d.ts +209 -0
- package/dist/cjs/Projections.d.ts.map +1 -0
- package/dist/cjs/Projections.js +906 -0
- package/dist/cjs/Projections.js.map +7 -0
- package/dist/cjs/RunDevTools.d.ts +181 -0
- package/dist/cjs/RunDevTools.d.ts.map +1 -0
- package/dist/cjs/RunDevTools.js +195 -0
- package/dist/cjs/RunDevTools.js.map +7 -0
- package/dist/cjs/RunHistory.d.ts +185 -0
- package/dist/cjs/RunHistory.d.ts.map +1 -0
- package/dist/cjs/RunHistory.js +68 -0
- package/dist/cjs/RunHistory.js.map +7 -0
- package/dist/cjs/RunTrace.d.ts +753 -0
- package/dist/cjs/RunTrace.d.ts.map +1 -0
- package/dist/cjs/RunTrace.js +1593 -0
- package/dist/cjs/RunTrace.js.map +7 -0
- package/dist/cjs/RuntimeBridge.d.ts +1386 -0
- package/dist/cjs/RuntimeBridge.d.ts.map +1 -0
- package/dist/cjs/RuntimeBridge.js +598 -0
- package/dist/cjs/RuntimeBridge.js.map +7 -0
- package/dist/cjs/bun/BunGateway.d.ts +20 -0
- package/dist/cjs/bun/BunGateway.d.ts.map +1 -0
- package/dist/cjs/bun/BunGateway.js +62 -0
- package/dist/cjs/bun/BunGateway.js.map +7 -0
- package/dist/cjs/index.d.ts +65 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +59 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/NativeGateway.d.ts +176 -0
- package/dist/cjs/internal/NativeGateway.d.ts.map +1 -0
- package/dist/cjs/internal/NativeGateway.js +187 -0
- package/dist/cjs/internal/NativeGateway.js.map +7 -0
- package/dist/cjs/internal/actionRenderings.d.ts +2 -0
- package/dist/cjs/internal/actionRenderings.d.ts.map +1 -0
- package/dist/cjs/internal/actionRenderings.js +224 -0
- package/dist/cjs/internal/actionRenderings.js.map +7 -0
- package/dist/cjs/internal/callEvents.d.ts +97 -0
- package/dist/cjs/internal/callEvents.d.ts.map +1 -0
- package/dist/cjs/internal/callEvents.js +169 -0
- package/dist/cjs/internal/callEvents.js.map +7 -0
- package/dist/cjs/internal/digestIndex.d.ts +31 -0
- package/dist/cjs/internal/digestIndex.d.ts.map +1 -0
- package/dist/cjs/internal/digestIndex.js +105 -0
- package/dist/cjs/internal/digestIndex.js.map +7 -0
- package/dist/cjs/internal/digestMemory.d.ts +19 -0
- package/dist/cjs/internal/digestMemory.d.ts.map +1 -0
- package/dist/cjs/internal/digestMemory.js +33 -0
- package/dist/cjs/internal/digestMemory.js.map +7 -0
- package/dist/cjs/internal/inspectLabels.d.ts +8 -0
- package/dist/cjs/internal/inspectLabels.d.ts.map +1 -0
- package/dist/cjs/internal/inspectLabels.js +29 -0
- package/dist/cjs/internal/inspectLabels.js.map +7 -0
- package/dist/cjs/internal/nativeResolution.d.ts +41 -0
- package/dist/cjs/internal/nativeResolution.d.ts.map +1 -0
- package/dist/cjs/internal/nativeResolution.js +62 -0
- package/dist/cjs/internal/nativeResolution.js.map +7 -0
- package/dist/cjs/internal/nodeEvents.d.ts +47 -0
- package/dist/cjs/internal/nodeEvents.d.ts.map +1 -0
- package/dist/cjs/internal/nodeEvents.js +60 -0
- package/dist/cjs/internal/nodeEvents.js.map +7 -0
- package/dist/cjs/node/NodeGateway.d.ts +16 -0
- package/dist/cjs/node/NodeGateway.d.ts.map +1 -0
- package/dist/cjs/node/NodeGateway.js +48 -0
- package/dist/cjs/node/NodeGateway.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/Diagnosis.d.ts +275 -0
- package/dist/esm/Diagnosis.d.ts.map +1 -0
- package/dist/esm/Diagnosis.js +697 -0
- package/dist/esm/Diagnosis.js.map +1 -0
- package/dist/esm/EngineTrace.d.ts +76 -0
- package/dist/esm/EngineTrace.d.ts.map +1 -0
- package/dist/esm/EngineTrace.js +548 -0
- package/dist/esm/EngineTrace.js.map +1 -0
- package/dist/esm/GatewayError.d.ts +54 -0
- package/dist/esm/GatewayError.d.ts.map +1 -0
- package/dist/esm/GatewayError.js +60 -0
- package/dist/esm/GatewayError.js.map +1 -0
- package/dist/esm/GatewayProjection.d.ts +480 -0
- package/dist/esm/GatewayProjection.d.ts.map +1 -0
- package/dist/esm/GatewayProjection.js +792 -0
- package/dist/esm/GatewayProjection.js.map +1 -0
- package/dist/esm/GatewayRpcs.d.ts +1886 -0
- package/dist/esm/GatewayRpcs.d.ts.map +1 -0
- package/dist/esm/GatewayRpcs.js +145 -0
- package/dist/esm/GatewayRpcs.js.map +1 -0
- package/dist/esm/GatewaySchema.d.ts +3274 -0
- package/dist/esm/GatewaySchema.d.ts.map +1 -0
- package/dist/esm/GatewaySchema.js +244 -0
- package/dist/esm/GatewaySchema.js.map +1 -0
- package/dist/esm/GatewayServer.d.ts +427 -0
- package/dist/esm/GatewayServer.d.ts.map +1 -0
- package/dist/esm/GatewayServer.js +725 -0
- package/dist/esm/GatewayServer.js.map +1 -0
- package/dist/esm/HostBranchPresence.d.ts +12 -0
- package/dist/esm/HostBranchPresence.d.ts.map +1 -0
- package/dist/esm/HostBranchPresence.js +54 -0
- package/dist/esm/HostBranchPresence.js.map +1 -0
- package/dist/esm/Projections.d.ts +209 -0
- package/dist/esm/Projections.d.ts.map +1 -0
- package/dist/esm/Projections.js +1254 -0
- package/dist/esm/Projections.js.map +1 -0
- package/dist/esm/RunDevTools.d.ts +181 -0
- package/dist/esm/RunDevTools.d.ts.map +1 -0
- package/dist/esm/RunDevTools.js +281 -0
- package/dist/esm/RunDevTools.js.map +1 -0
- package/dist/esm/RunHistory.d.ts +185 -0
- package/dist/esm/RunHistory.d.ts.map +1 -0
- package/dist/esm/RunHistory.js +109 -0
- package/dist/esm/RunHistory.js.map +1 -0
- package/dist/esm/RunTrace.d.ts +753 -0
- package/dist/esm/RunTrace.d.ts.map +1 -0
- package/dist/esm/RunTrace.js +2105 -0
- package/dist/esm/RunTrace.js.map +1 -0
- package/dist/esm/RuntimeBridge.d.ts +1386 -0
- package/dist/esm/RuntimeBridge.d.ts.map +1 -0
- package/dist/esm/RuntimeBridge.js +659 -0
- package/dist/esm/RuntimeBridge.js.map +1 -0
- package/dist/esm/bun/BunGateway.d.ts +20 -0
- package/dist/esm/bun/BunGateway.d.ts.map +1 -0
- package/dist/esm/bun/BunGateway.js +32 -0
- package/dist/esm/bun/BunGateway.js.map +1 -0
- package/dist/esm/index.d.ts +65 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +65 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/NativeGateway.d.ts +176 -0
- package/dist/esm/internal/NativeGateway.d.ts.map +1 -0
- package/dist/esm/internal/NativeGateway.js +268 -0
- package/dist/esm/internal/NativeGateway.js.map +1 -0
- package/dist/esm/internal/actionRenderings.d.ts +2 -0
- package/dist/esm/internal/actionRenderings.d.ts.map +1 -0
- package/dist/esm/internal/actionRenderings.js +202 -0
- package/dist/esm/internal/actionRenderings.js.map +1 -0
- package/dist/esm/internal/callEvents.d.ts +97 -0
- package/dist/esm/internal/callEvents.d.ts.map +1 -0
- package/dist/esm/internal/callEvents.js +206 -0
- package/dist/esm/internal/callEvents.js.map +1 -0
- package/dist/esm/internal/digestIndex.d.ts +31 -0
- package/dist/esm/internal/digestIndex.d.ts.map +1 -0
- package/dist/esm/internal/digestIndex.js +87 -0
- package/dist/esm/internal/digestIndex.js.map +1 -0
- package/dist/esm/internal/digestMemory.d.ts +19 -0
- package/dist/esm/internal/digestMemory.d.ts.map +1 -0
- package/dist/esm/internal/digestMemory.js +23 -0
- package/dist/esm/internal/digestMemory.js.map +1 -0
- package/dist/esm/internal/inspectLabels.d.ts +8 -0
- package/dist/esm/internal/inspectLabels.d.ts.map +1 -0
- package/dist/esm/internal/inspectLabels.js +12 -0
- package/dist/esm/internal/inspectLabels.js.map +1 -0
- package/dist/esm/internal/nativeResolution.d.ts +41 -0
- package/dist/esm/internal/nativeResolution.d.ts.map +1 -0
- package/dist/esm/internal/nativeResolution.js +78 -0
- package/dist/esm/internal/nativeResolution.js.map +1 -0
- package/dist/esm/internal/nodeEvents.d.ts +47 -0
- package/dist/esm/internal/nodeEvents.d.ts.map +1 -0
- package/dist/esm/internal/nodeEvents.js +60 -0
- package/dist/esm/internal/nodeEvents.js.map +1 -0
- package/dist/esm/node/NodeGateway.d.ts +16 -0
- package/dist/esm/node/NodeGateway.d.ts.map +1 -0
- package/dist/esm/node/NodeGateway.js +13 -0
- package/dist/esm/node/NodeGateway.js.map +1 -0
- package/dist/vendor/adapters.json +2707 -0
- package/dist/vendor/bun/BunChildProcessSpawner.d.ts +7 -0
- package/dist/vendor/bun/BunChildProcessSpawner.js +14 -0
- package/dist/vendor/bun/BunClusterHttp.d.ts +83 -0
- package/dist/vendor/bun/BunClusterHttp.js +39 -0
- package/dist/vendor/bun/BunClusterSocket.d.ts +65 -0
- package/dist/vendor/bun/BunClusterSocket.js +22 -0
- package/dist/vendor/bun/BunCrypto.d.ts +10 -0
- package/dist/vendor/bun/BunCrypto.js +8 -0
- package/dist/vendor/bun/BunFileSystem.d.ts +10 -0
- package/dist/vendor/bun/BunFileSystem.js +9 -0
- package/dist/vendor/bun/BunHttpClient.d.ts +9 -0
- package/dist/vendor/bun/BunHttpClient.js +1 -0
- package/dist/vendor/bun/BunHttpPlatform.d.ts +10 -0
- package/dist/vendor/bun/BunHttpPlatform.js +11 -0
- package/dist/vendor/bun/BunHttpServer.d.ts +142 -0
- package/dist/vendor/bun/BunHttpServer.js +38 -0
- package/dist/vendor/bun/BunHttpServerRequest.d.ts +18 -0
- package/dist/vendor/bun/BunHttpServerRequest.js +7 -0
- package/dist/vendor/bun/BunMultipart.d.ts +31 -0
- package/dist/vendor/bun/BunMultipart.js +12 -0
- package/dist/vendor/bun/BunPath.d.ts +24 -0
- package/dist/vendor/bun/BunPath.js +12 -0
- package/dist/vendor/bun/BunRedis.d.ts +49 -0
- package/dist/vendor/bun/BunRedis.js +11 -0
- package/dist/vendor/bun/BunRuntime.d.ts +85 -0
- package/dist/vendor/bun/BunRuntime.js +8 -0
- package/dist/vendor/bun/BunServices.d.ts +34 -0
- package/dist/vendor/bun/BunServices.js +23 -0
- package/dist/vendor/bun/BunSink.d.ts +8 -0
- package/dist/vendor/bun/BunSink.js +12 -0
- package/dist/vendor/bun/BunSocket.d.ts +40 -0
- package/dist/vendor/bun/BunSocket.js +29 -0
- package/dist/vendor/bun/BunSocketServer.d.ts +8 -0
- package/dist/vendor/bun/BunSocketServer.js +21 -0
- package/dist/vendor/bun/BunStdio.d.ts +11 -0
- package/dist/vendor/bun/BunStdio.js +10 -0
- package/dist/vendor/bun/BunStream.d.ts +19 -0
- package/dist/vendor/bun/BunStream.js +30 -0
- package/dist/vendor/bun/BunTerminal.d.ts +21 -0
- package/dist/vendor/bun/BunTerminal.js +10 -0
- package/dist/vendor/bun/BunWorker.d.ts +20 -0
- package/dist/vendor/bun/BunWorker.js +9 -0
- package/dist/vendor/bun/BunWorkerRunner.d.ts +12 -0
- package/dist/vendor/bun/BunWorkerRunner.js +7 -0
- package/dist/vendor/bun/LICENSE +21 -0
- package/dist/vendor/bun/index.d.ts +92 -0
- package/dist/vendor/bun/index.js +107 -0
- package/dist/vendor/chunk-2GCOZTTW.js +48 -0
- package/dist/vendor/chunk-37CUR3PO.js +81 -0
- package/dist/vendor/chunk-3ARKKENZ.js +45 -0
- package/dist/vendor/chunk-3NV2UDBI.js +7 -0
- package/dist/vendor/chunk-3OSW7CT7.js +143 -0
- package/dist/vendor/chunk-62R63L74.js +62 -0
- package/dist/vendor/chunk-6AQLBC2I.js +118 -0
- package/dist/vendor/chunk-6C5H7S6B.js +18 -0
- package/dist/vendor/chunk-6DY5RBZD.js +85 -0
- package/dist/vendor/chunk-6UPBD47P.js +53 -0
- package/dist/vendor/chunk-AVVVN75Z.js +96 -0
- package/dist/vendor/chunk-B4DHEMBB.js +14 -0
- package/dist/vendor/chunk-BCK3NJOX.js +15 -0
- package/dist/vendor/chunk-BFBIHJ6X.js +0 -0
- package/dist/vendor/chunk-CES4OUM4.js +63 -0
- package/dist/vendor/chunk-D64L6YND.js +59 -0
- package/dist/vendor/chunk-DS2R6WOM.js +18 -0
- package/dist/vendor/chunk-DX4Z23DM.js +65 -0
- package/dist/vendor/chunk-DZ2VOUDP.js +564 -0
- package/dist/vendor/chunk-FOXN6JPJ.js +61 -0
- package/dist/vendor/chunk-FPQF7CR5.js +55 -0
- package/dist/vendor/chunk-FUTCTCEG.js +20 -0
- package/dist/vendor/chunk-GUPAV2YZ.js +18 -0
- package/dist/vendor/chunk-H2Z2Y4QH.js +70 -0
- package/dist/vendor/chunk-HAEDVSSM.js +129 -0
- package/dist/vendor/chunk-HY7BBL3K.js +93 -0
- package/dist/vendor/chunk-IFTTT6D5.js +31 -0
- package/dist/vendor/chunk-KQDSNB7M.js +26 -0
- package/dist/vendor/chunk-LIHLXXGQ.js +26 -0
- package/dist/vendor/chunk-LKCGQEE5.js +28 -0
- package/dist/vendor/chunk-MH2J3BYB.js +0 -0
- package/dist/vendor/chunk-ML2NAFH2.js +131 -0
- package/dist/vendor/chunk-MLFIZ5O2.js +0 -0
- package/dist/vendor/chunk-MLKGABMK.js +9 -0
- package/dist/vendor/chunk-MSCLEMYX.js +71 -0
- package/dist/vendor/chunk-OBWXQKVP.js +57 -0
- package/dist/vendor/chunk-QR557K66.js +20 -0
- package/dist/vendor/chunk-R4QUY7DH.js +18 -0
- package/dist/vendor/chunk-RGECXXJS.js +18 -0
- package/dist/vendor/chunk-TFY7W6D4.js +36 -0
- package/dist/vendor/chunk-TGPIVY4A.js +104 -0
- package/dist/vendor/chunk-TGXCX6W3.js +398 -0
- package/dist/vendor/chunk-TOHSFXMV.js +437 -0
- package/dist/vendor/chunk-UHIDPUFF.js +34 -0
- package/dist/vendor/chunk-ULT6CWUI.js +109 -0
- package/dist/vendor/chunk-UXBGYQR3.js +18 -0
- package/dist/vendor/chunk-V6LUGQ7O.js +21 -0
- package/dist/vendor/chunk-W4OASVX6.js +92 -0
- package/dist/vendor/chunk-WAII54GA.js +18 -0
- package/dist/vendor/chunk-WECQDT36.js +426 -0
- package/dist/vendor/chunk-WHKMOC7Z.js +28 -0
- package/dist/vendor/chunk-WVFOZ2UL.js +40 -0
- package/dist/vendor/chunk-X73E2UPI.js +18 -0
- package/dist/vendor/chunk-XCYARUII.js +63 -0
- package/dist/vendor/chunk-XFEVTDVD.js +34 -0
- package/dist/vendor/chunk-XFZZYSJ4.js +22 -0
- package/dist/vendor/chunk-XJWJXLXJ.js +18 -0
- package/dist/vendor/chunk-XY3Q62EO.js +18 -0
- package/dist/vendor/chunk-YDASSC75.js +394 -0
- package/dist/vendor/chunk-Z6C7SO5Z.js +507 -0
- package/dist/vendor/chunk-Z7QNPJEB.js +229 -0
- package/dist/vendor/chunk-Z7QPP4YH.js +249 -0
- package/dist/vendor/chunk-ZCHYLHJH.js +86 -0
- package/dist/vendor/chunk-ZIQVYVMA.js +22 -0
- package/dist/vendor/chunk-ZPIG2CUA.js +34 -0
- package/dist/vendor/cjs/bun/BunChildProcessSpawner.d.ts +7 -0
- package/dist/vendor/cjs/bun/BunChildProcessSpawner.js +1 -0
- package/dist/vendor/cjs/bun/BunClusterHttp.d.ts +83 -0
- package/dist/vendor/cjs/bun/BunClusterHttp.js +1 -0
- package/dist/vendor/cjs/bun/BunClusterSocket.d.ts +65 -0
- package/dist/vendor/cjs/bun/BunClusterSocket.js +1 -0
- package/dist/vendor/cjs/bun/BunCrypto.d.ts +10 -0
- package/dist/vendor/cjs/bun/BunCrypto.js +1 -0
- package/dist/vendor/cjs/bun/BunFileSystem.d.ts +10 -0
- package/dist/vendor/cjs/bun/BunFileSystem.js +1 -0
- package/dist/vendor/cjs/bun/BunHttpClient.d.ts +9 -0
- package/dist/vendor/cjs/bun/BunHttpClient.js +1 -0
- package/dist/vendor/cjs/bun/BunHttpPlatform.d.ts +10 -0
- package/dist/vendor/cjs/bun/BunHttpPlatform.js +1 -0
- package/dist/vendor/cjs/bun/BunHttpServer.d.ts +142 -0
- package/dist/vendor/cjs/bun/BunHttpServer.js +1 -0
- package/dist/vendor/cjs/bun/BunHttpServerRequest.d.ts +18 -0
- package/dist/vendor/cjs/bun/BunHttpServerRequest.js +1 -0
- package/dist/vendor/cjs/bun/BunMultipart.d.ts +31 -0
- package/dist/vendor/cjs/bun/BunMultipart.js +1 -0
- package/dist/vendor/cjs/bun/BunPath.d.ts +24 -0
- package/dist/vendor/cjs/bun/BunPath.js +1 -0
- package/dist/vendor/cjs/bun/BunRedis.d.ts +49 -0
- package/dist/vendor/cjs/bun/BunRedis.js +1 -0
- package/dist/vendor/cjs/bun/BunRuntime.d.ts +85 -0
- package/dist/vendor/cjs/bun/BunRuntime.js +1 -0
- package/dist/vendor/cjs/bun/BunServices.d.ts +34 -0
- package/dist/vendor/cjs/bun/BunServices.js +1 -0
- package/dist/vendor/cjs/bun/BunSink.d.ts +8 -0
- package/dist/vendor/cjs/bun/BunSink.js +1 -0
- package/dist/vendor/cjs/bun/BunSocket.d.ts +40 -0
- package/dist/vendor/cjs/bun/BunSocket.js +1 -0
- package/dist/vendor/cjs/bun/BunSocketServer.d.ts +8 -0
- package/dist/vendor/cjs/bun/BunSocketServer.js +1 -0
- package/dist/vendor/cjs/bun/BunStdio.d.ts +11 -0
- package/dist/vendor/cjs/bun/BunStdio.js +1 -0
- package/dist/vendor/cjs/bun/BunStream.d.ts +19 -0
- package/dist/vendor/cjs/bun/BunStream.js +1 -0
- package/dist/vendor/cjs/bun/BunTerminal.d.ts +21 -0
- package/dist/vendor/cjs/bun/BunTerminal.js +1 -0
- package/dist/vendor/cjs/bun/BunWorker.d.ts +20 -0
- package/dist/vendor/cjs/bun/BunWorker.js +1 -0
- package/dist/vendor/cjs/bun/BunWorkerRunner.d.ts +12 -0
- package/dist/vendor/cjs/bun/BunWorkerRunner.js +1 -0
- package/dist/vendor/cjs/bun/index.d.ts +92 -0
- package/dist/vendor/cjs/bun/index.js +1 -0
- package/dist/vendor/cjs/node/NodeChildProcessSpawner.d.ts +7 -0
- package/dist/vendor/cjs/node/NodeChildProcessSpawner.js +1 -0
- package/dist/vendor/cjs/node/NodeClusterHttp.d.ts +63 -0
- package/dist/vendor/cjs/node/NodeClusterHttp.js +1 -0
- package/dist/vendor/cjs/node/NodeClusterSocket.d.ts +79 -0
- package/dist/vendor/cjs/node/NodeClusterSocket.js +1 -0
- package/dist/vendor/cjs/node/NodeCrypto.d.ts +10 -0
- package/dist/vendor/cjs/node/NodeCrypto.js +1 -0
- package/dist/vendor/cjs/node/NodeFileSystem.d.ts +10 -0
- package/dist/vendor/cjs/node/NodeFileSystem.js +1 -0
- package/dist/vendor/cjs/node/NodeHttpClient.d.ts +179 -0
- package/dist/vendor/cjs/node/NodeHttpClient.js +1 -0
- package/dist/vendor/cjs/node/NodeHttpIncomingMessage.d.ts +62 -0
- package/dist/vendor/cjs/node/NodeHttpIncomingMessage.js +1 -0
- package/dist/vendor/cjs/node/NodeHttpPlatform.d.ts +36 -0
- package/dist/vendor/cjs/node/NodeHttpPlatform.js +1 -0
- package/dist/vendor/cjs/node/NodeHttpServer.d.ts +120 -0
- package/dist/vendor/cjs/node/NodeHttpServer.js +1 -0
- package/dist/vendor/cjs/node/NodeHttpServerRequest.d.ts +29 -0
- package/dist/vendor/cjs/node/NodeHttpServerRequest.js +1 -0
- package/dist/vendor/cjs/node/NodeMultipart.d.ts +46 -0
- package/dist/vendor/cjs/node/NodeMultipart.js +1 -0
- package/dist/vendor/cjs/node/NodeMultipartParser.d.ts +97 -0
- package/dist/vendor/cjs/node/NodeMultipartParser.js +1 -0
- package/dist/vendor/cjs/node/NodePath.d.ts +27 -0
- package/dist/vendor/cjs/node/NodePath.js +1 -0
- package/dist/vendor/cjs/node/NodeRedis.d.ts +74 -0
- package/dist/vendor/cjs/node/NodeRedis.js +1 -0
- package/dist/vendor/cjs/node/NodeRuntime.d.ts +85 -0
- package/dist/vendor/cjs/node/NodeRuntime.js +1 -0
- package/dist/vendor/cjs/node/NodeServices.d.ts +34 -0
- package/dist/vendor/cjs/node/NodeServices.js +1 -0
- package/dist/vendor/cjs/node/NodeSink.d.ts +8 -0
- package/dist/vendor/cjs/node/NodeSink.js +1 -0
- package/dist/vendor/cjs/node/NodeSocket.d.ts +38 -0
- package/dist/vendor/cjs/node/NodeSocket.js +1 -0
- package/dist/vendor/cjs/node/NodeSocketServer.d.ts +8 -0
- package/dist/vendor/cjs/node/NodeSocketServer.js +1 -0
- package/dist/vendor/cjs/node/NodeStdio.d.ts +11 -0
- package/dist/vendor/cjs/node/NodeStdio.js +1 -0
- package/dist/vendor/cjs/node/NodeStream.d.ts +8 -0
- package/dist/vendor/cjs/node/NodeStream.js +1 -0
- package/dist/vendor/cjs/node/NodeTerminal.d.ts +21 -0
- package/dist/vendor/cjs/node/NodeTerminal.js +1 -0
- package/dist/vendor/cjs/node/NodeWorker.d.ts +22 -0
- package/dist/vendor/cjs/node/NodeWorker.js +1 -0
- package/dist/vendor/cjs/node/NodeWorkerRunner.d.ts +12 -0
- package/dist/vendor/cjs/node/NodeWorkerRunner.js +1 -0
- package/dist/vendor/cjs/node/Undici.d.ts +28 -0
- package/dist/vendor/cjs/node/Undici.js +1 -0
- package/dist/vendor/cjs/node/index.d.ts +100 -0
- package/dist/vendor/cjs/node/index.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.d.ts +57 -0
- package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeClusterSocket.d.ts +22 -0
- package/dist/vendor/cjs/node-shared/NodeClusterSocket.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeCrypto.d.ts +27 -0
- package/dist/vendor/cjs/node-shared/NodeCrypto.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeFileSystem.d.ts +11 -0
- package/dist/vendor/cjs/node-shared/NodeFileSystem.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeHttpCompression.d.ts +36 -0
- package/dist/vendor/cjs/node-shared/NodeHttpCompression.js +1 -0
- package/dist/vendor/cjs/node-shared/NodePath.d.ts +27 -0
- package/dist/vendor/cjs/node-shared/NodePath.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeRuntime.d.ts +47 -0
- package/dist/vendor/cjs/node-shared/NodeRuntime.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeSink.d.ts +69 -0
- package/dist/vendor/cjs/node-shared/NodeSink.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeSocket.d.ts +134 -0
- package/dist/vendor/cjs/node-shared/NodeSocket.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeSocketServer.d.ts +80 -0
- package/dist/vendor/cjs/node-shared/NodeSocketServer.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeStdio.d.ts +12 -0
- package/dist/vendor/cjs/node-shared/NodeStdio.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeStream.d.ts +179 -0
- package/dist/vendor/cjs/node-shared/NodeStream.js +1 -0
- package/dist/vendor/cjs/node-shared/NodeTerminal.d.ts +22 -0
- package/dist/vendor/cjs/node-shared/NodeTerminal.js +1 -0
- package/dist/vendor/cjs/node-shared/index.d.ts +56 -0
- package/dist/vendor/cjs/node-shared/index.js +1 -0
- package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
- package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.js +1 -0
- package/dist/vendor/cjs/node-shared/internal/utils.d.ts +2 -0
- package/dist/vendor/cjs/node-shared/internal/utils.js +1 -0
- package/dist/vendor/cjs/package.json +1 -0
- package/dist/vendor/cjs/platform-bun.d.ts +92 -0
- package/dist/vendor/cjs/platform-bun.js +1 -0
- package/dist/vendor/cjs/platform-node-shared.d.ts +56 -0
- package/dist/vendor/cjs/platform-node-shared.js +1 -0
- package/dist/vendor/cjs/platform-node.d.ts +100 -0
- package/dist/vendor/cjs/platform-node.js +1 -0
- package/dist/vendor/node/LICENSE +21 -0
- package/dist/vendor/node/NodeChildProcessSpawner.d.ts +7 -0
- package/dist/vendor/node/NodeChildProcessSpawner.js +14 -0
- package/dist/vendor/node/NodeClusterHttp.d.ts +63 -0
- package/dist/vendor/node/NodeClusterHttp.js +43 -0
- package/dist/vendor/node/NodeClusterSocket.d.ts +79 -0
- package/dist/vendor/node/NodeClusterSocket.js +30 -0
- package/dist/vendor/node/NodeCrypto.d.ts +10 -0
- package/dist/vendor/node/NodeCrypto.js +8 -0
- package/dist/vendor/node/NodeFileSystem.d.ts +10 -0
- package/dist/vendor/node/NodeFileSystem.js +9 -0
- package/dist/vendor/node/NodeHttpClient.d.ts +179 -0
- package/dist/vendor/node/NodeHttpClient.js +46 -0
- package/dist/vendor/node/NodeHttpIncomingMessage.d.ts +62 -0
- package/dist/vendor/node/NodeHttpIncomingMessage.js +10 -0
- package/dist/vendor/node/NodeHttpPlatform.d.ts +36 -0
- package/dist/vendor/node/NodeHttpPlatform.js +16 -0
- package/dist/vendor/node/NodeHttpServer.d.ts +120 -0
- package/dist/vendor/node/NodeHttpServer.js +46 -0
- package/dist/vendor/node/NodeHttpServerRequest.d.ts +29 -0
- package/dist/vendor/node/NodeHttpServerRequest.js +9 -0
- package/dist/vendor/node/NodeMultipart.d.ts +46 -0
- package/dist/vendor/node/NodeMultipart.js +15 -0
- package/dist/vendor/node/NodeMultipartParser.d.ts +97 -0
- package/dist/vendor/node/NodeMultipartParser.js +11 -0
- package/dist/vendor/node/NodePath.d.ts +27 -0
- package/dist/vendor/node/NodePath.js +12 -0
- package/dist/vendor/node/NodeRedis.d.ts +74 -0
- package/dist/vendor/node/NodeRedis.js +11 -0
- package/dist/vendor/node/NodeRuntime.d.ts +85 -0
- package/dist/vendor/node/NodeRuntime.js +8 -0
- package/dist/vendor/node/NodeServices.d.ts +34 -0
- package/dist/vendor/node/NodeServices.js +23 -0
- package/dist/vendor/node/NodeSink.d.ts +8 -0
- package/dist/vendor/node/NodeSink.js +12 -0
- package/dist/vendor/node/NodeSocket.d.ts +38 -0
- package/dist/vendor/node/NodeSocket.js +31 -0
- package/dist/vendor/node/NodeSocketServer.d.ts +8 -0
- package/dist/vendor/node/NodeSocketServer.js +21 -0
- package/dist/vendor/node/NodeStdio.d.ts +11 -0
- package/dist/vendor/node/NodeStdio.js +10 -0
- package/dist/vendor/node/NodeStream.d.ts +8 -0
- package/dist/vendor/node/NodeStream.js +27 -0
- package/dist/vendor/node/NodeTerminal.d.ts +21 -0
- package/dist/vendor/node/NodeTerminal.js +10 -0
- package/dist/vendor/node/NodeWorker.d.ts +22 -0
- package/dist/vendor/node/NodeWorker.js +9 -0
- package/dist/vendor/node/NodeWorkerRunner.d.ts +12 -0
- package/dist/vendor/node/NodeWorkerRunner.js +7 -0
- package/dist/vendor/node/Undici.d.ts +28 -0
- package/dist/vendor/node/Undici.js +9 -0
- package/dist/vendor/node/index.d.ts +100 -0
- package/dist/vendor/node/index.js +115 -0
- package/dist/vendor/node-shared/LICENSE +21 -0
- package/dist/vendor/node-shared/NodeChildProcessSpawner.d.ts +57 -0
- package/dist/vendor/node-shared/NodeChildProcessSpawner.js +13 -0
- package/dist/vendor/node-shared/NodeClusterSocket.d.ts +22 -0
- package/dist/vendor/node-shared/NodeClusterSocket.js +11 -0
- package/dist/vendor/node-shared/NodeCrypto.d.ts +27 -0
- package/dist/vendor/node-shared/NodeCrypto.js +9 -0
- package/dist/vendor/node-shared/NodeFileSystem.d.ts +11 -0
- package/dist/vendor/node-shared/NodeFileSystem.js +8 -0
- package/dist/vendor/node-shared/NodeHttpCompression.d.ts +36 -0
- package/dist/vendor/node-shared/NodeHttpCompression.js +13 -0
- package/dist/vendor/node-shared/NodePath.d.ts +27 -0
- package/dist/vendor/node-shared/NodePath.js +11 -0
- package/dist/vendor/node-shared/NodeRuntime.d.ts +47 -0
- package/dist/vendor/node-shared/NodeRuntime.js +7 -0
- package/dist/vendor/node-shared/NodeSink.d.ts +69 -0
- package/dist/vendor/node-shared/NodeSink.js +11 -0
- package/dist/vendor/node-shared/NodeSocket.d.ts +134 -0
- package/dist/vendor/node-shared/NodeSocket.js +23 -0
- package/dist/vendor/node-shared/NodeSocketServer.d.ts +80 -0
- package/dist/vendor/node-shared/NodeSocketServer.js +20 -0
- package/dist/vendor/node-shared/NodeStdio.d.ts +12 -0
- package/dist/vendor/node-shared/NodeStdio.js +9 -0
- package/dist/vendor/node-shared/NodeStream.d.ts +179 -0
- package/dist/vendor/node-shared/NodeStream.js +26 -0
- package/dist/vendor/node-shared/NodeTerminal.d.ts +22 -0
- package/dist/vendor/node-shared/NodeTerminal.js +9 -0
- package/dist/vendor/node-shared/index.d.ts +56 -0
- package/dist/vendor/node-shared/index.js +58 -0
- package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
- package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.js +7 -0
- package/dist/vendor/node-shared/internal/utils.d.ts +2 -0
- package/dist/vendor/node-shared/internal/utils.js +7 -0
- package/dist/vendor/platform-bun.d.ts +92 -0
- package/dist/vendor/platform-bun.js +107 -0
- package/dist/vendor/platform-node-shared.d.ts +56 -0
- package/dist/vendor/platform-node-shared.js +58 -0
- package/dist/vendor/platform-node.d.ts +100 -0
- package/dist/vendor/platform-node.js +115 -0
- package/docs/README.md +158 -0
- package/docs/api.md +601 -0
- package/docs/concepts/projections.md +250 -0
- package/docs/concepts/subscriptions.md +204 -0
- package/docs/concepts/trust-boundary.md +256 -0
- package/docs/guides/diagnose-a-run.md +115 -0
- package/docs/guides/follow-a-run.md +150 -0
- package/docs/guides/host-the-gateway.md +153 -0
- package/docs/guides/read-a-projection.md +138 -0
- package/docs/guides/serve-beyond-loopback.md +166 -0
- package/docs/guides/submit-an-approval.md +187 -0
- package/docs/guides/testing.md +148 -0
- package/docs/installation.md +89 -0
- package/docs/quickstart.md +200 -0
- package/docs/troubleshooting.md +355 -0
- package/package.json +264 -32
- package/src/Diagnosis.ts +892 -0
- package/src/EngineTrace.ts +605 -0
- package/src/GatewayError.ts +71 -0
- package/src/GatewayProjection.ts +948 -0
- package/src/GatewayRpcs.ts +179 -0
- package/src/GatewaySchema.ts +516 -0
- package/src/GatewayServer.ts +932 -0
- package/src/HostBranchPresence.ts +72 -0
- package/src/Projections.ts +1735 -0
- package/src/RunDevTools.ts +394 -0
- package/src/RunHistory.ts +174 -0
- package/src/RunTrace.ts +2793 -0
- package/src/RuntimeBridge.ts +835 -0
- package/src/bun/BunGateway.ts +52 -0
- package/src/index.ts +77 -0
- package/src/internal/NativeGateway.ts +360 -0
- package/src/internal/actionRenderings.ts +201 -0
- package/src/internal/callEvents.ts +257 -0
- package/src/internal/digestIndex.ts +134 -0
- package/src/internal/digestMemory.ts +27 -0
- package/src/internal/inspectLabels.ts +13 -0
- package/src/internal/nativeResolution.ts +103 -0
- package/src/internal/nodeEvents.ts +100 -0
- package/src/node/NodeGateway.ts +30 -0
- package/openapi.yaml +0 -29945
- package/src/README.md +0 -39
- package/src/api/README.md +0 -23
- package/src/api/apiCollectionNames.js +0 -10
- package/src/api/index.d.ts +0 -126
- package/src/api/index.js +0 -14
- package/src/api/normalizeApiRow.js +0 -36
- package/src/api/serializeAccountRow.js +0 -10
- package/src/api/serializeApprovalRow.js +0 -53
- package/src/api/serializeComparisonScoreRow.js +0 -18
- package/src/api/serializeCronRow.js +0 -30
- package/src/api/serializeDocRow.js +0 -20
- package/src/api/serializeMemoryFactRow.js +0 -21
- package/src/api/serializePromptRow.js +0 -10
- package/src/api/serializeRunEventRow.js +0 -28
- package/src/api/serializeRunRow.js +0 -93
- package/src/api/serializeScoreDetailRow.js +0 -25
- package/src/api/serializeScoreRow.js +0 -26
- package/src/api/serializeTicketRow.js +0 -20
- package/src/api/serializeWorkflowRow.js +0 -10
- package/src/auth/scopes.d.ts +0 -19
- package/src/auth/scopes.js +0 -164
- package/src/index.d.ts +0 -316
- package/src/index.js +0 -108
- package/src/rpc/gatewayRpcTypes.ts +0 -186
- package/src/rpc/index.d.ts +0 -223
- package/src/rpc/index.js +0 -2527
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared native gateway bind policy, credential policy,
|
|
3
|
+
* and the one composition a `smithers serve` verb hosts.
|
|
4
|
+
*
|
|
5
|
+
* Two rules decide whether a bind is allowed, and both fail closed:
|
|
6
|
+
*
|
|
7
|
+
* 1. A non-loopback host requires an explicit `listen` opt-in. Binding
|
|
8
|
+
* `0.0.0.0` because a port was free is how a workspace gateway ends up on
|
|
9
|
+
* a shared network by accident.
|
|
10
|
+
* 2. A non-loopback bind requires a bearer credential. The control plane can
|
|
11
|
+
* launch runs, cancel them, and approve capability grants; reachable from
|
|
12
|
+
* another machine, an unauthenticated one is a remote execution service.
|
|
13
|
+
*
|
|
14
|
+
* A loopback bind with no network credential allows anonymous reads; approval
|
|
15
|
+
* decisions require the session operator token. Ingress still checks Host and
|
|
16
|
+
* Origin so a web page cannot exercise the loopback endpoint.
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
import { ControlRpcs, ScopedToken } from "@smthrs/control";
|
|
21
|
+
import { Effect, Layer } from "effect";
|
|
22
|
+
import { HttpRouter } from "effect/unstable/http";
|
|
23
|
+
import { RpcSerialization } from "effect/unstable/rpc";
|
|
24
|
+
import { GatewayError, settingRefusal } from "../GatewayError.js";
|
|
25
|
+
import * as GatewayServer from "../GatewayServer.js";
|
|
26
|
+
/**
|
|
27
|
+
* The default bind: loopback, port 7331, no credential.
|
|
28
|
+
*
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
* @category models
|
|
31
|
+
*/
|
|
32
|
+
export const defaultServerOptions = { host: "127.0.0.1", port: 7331 };
|
|
33
|
+
/**
|
|
34
|
+
* Whether a host names this machine only.
|
|
35
|
+
*
|
|
36
|
+
* @param host the host to classify
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
* @category predicates
|
|
39
|
+
*/
|
|
40
|
+
export const isLoopbackHost = (host) => GatewayServer.loopbackHostNames.includes(host);
|
|
41
|
+
/**
|
|
42
|
+
* The typed refusal a requested bind earns, or `undefined` when it is allowed.
|
|
43
|
+
*
|
|
44
|
+
* Every start-time rule this module enforces answers here as a `bind_failed`
|
|
45
|
+
* `GatewayError`, so a host that wants to report a refusal rather than crash on
|
|
46
|
+
* one asks this before it composes a layer. {@link listenOptions} and
|
|
47
|
+
* {@link layer} fail with exactly what this returns.
|
|
48
|
+
*
|
|
49
|
+
* @param options the requested bind
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
* @category constructors
|
|
52
|
+
*/
|
|
53
|
+
export const bindRefusal = (options) => {
|
|
54
|
+
const setting = settingRefusal("The gateway keepalive cadence", options.heartbeatMillis) ??
|
|
55
|
+
settingRefusal("The gateway request body limit", options.maxRequestBodyBytes);
|
|
56
|
+
if (setting !== undefined)
|
|
57
|
+
return setting;
|
|
58
|
+
// The bridge authenticates only with the bearer credential, even on
|
|
59
|
+
// loopback, so a bridge without one would answer 401 to every request.
|
|
60
|
+
if (options.runtimeBridge !== undefined && (options.credential === undefined || options.credential === "")) {
|
|
61
|
+
return new GatewayError({
|
|
62
|
+
code: "bind_failed",
|
|
63
|
+
message: "Refusing to enable the runtime bridge without a bearer credential"
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
const host = options.host ?? "127.0.0.1";
|
|
67
|
+
if (isLoopbackHost(host))
|
|
68
|
+
return undefined;
|
|
69
|
+
if (options.listen !== true) {
|
|
70
|
+
return new GatewayError({
|
|
71
|
+
code: "bind_failed",
|
|
72
|
+
message: `Refusing non-loopback gateway bind ${host} without an explicit --listen opt-in`
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (options.credential === undefined || options.credential === "") {
|
|
76
|
+
return new GatewayError({
|
|
77
|
+
code: "bind_failed",
|
|
78
|
+
message: `Refusing non-loopback gateway bind ${host} without a bearer credential`
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Applies the bind policy, returning the admitted Node options or a typed
|
|
85
|
+
* `bind_failed` refusal.
|
|
86
|
+
*
|
|
87
|
+
* @param options the requested bind
|
|
88
|
+
* @since 1.0.0
|
|
89
|
+
* @category constructors
|
|
90
|
+
*/
|
|
91
|
+
export const listenOptions = (options) => Effect.suspend(() => {
|
|
92
|
+
const refusal = bindRefusal(options);
|
|
93
|
+
if (refusal !== undefined)
|
|
94
|
+
return Effect.fail(refusal);
|
|
95
|
+
// `credential`, `listen`, and the keepalive cadence are this module's, not
|
|
96
|
+
// `node:net`'s: they are named here so the rest is exactly a bind.
|
|
97
|
+
const { allowedHosts: _allowedHosts, credential: _credential, heartbeatMillis: _cadence, listen: _listen, maxRequestBodyBytes: _maxBody, runtimeBridge: _runtimeBridge, ...node } = options;
|
|
98
|
+
return Effect.succeed({ ...node, host: node.host ?? "127.0.0.1" });
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* The authentication both RPC mounts run under.
|
|
102
|
+
*
|
|
103
|
+
* A configured credential authenticates every request that presents it and
|
|
104
|
+
* stamps the same server-owned principal. A scoped token minted under that
|
|
105
|
+
* credential (`@smthrs/control` `ScopedToken`) authenticates only the
|
|
106
|
+
* procedures, run, or flow it names, until it expires, and stamps
|
|
107
|
+
* {@link scopedPrincipal}. With no credential the composition is
|
|
108
|
+
* loopback-only (see {@link listenOptions}) and every request runs as the
|
|
109
|
+
* anonymous read principal. A session operator token alone stamps the local
|
|
110
|
+
* operator for approval decisions; without it approvals are unauthorized.
|
|
111
|
+
*
|
|
112
|
+
* @param options the requested bind
|
|
113
|
+
* @since 1.0.0
|
|
114
|
+
* @category layers
|
|
115
|
+
*/
|
|
116
|
+
export const layerAuth = (options) => options.credential === undefined || options.credential === ""
|
|
117
|
+
? ControlRpcs.layerAuth({
|
|
118
|
+
authenticate: (headers) => {
|
|
119
|
+
const token = options.operatorToken;
|
|
120
|
+
if (token === undefined || token === "") {
|
|
121
|
+
return Effect.succeed({ id: "loopback", kind: "anonymous", stampedAt: 0 });
|
|
122
|
+
}
|
|
123
|
+
return ControlRpcs.bearerAuthenticator({
|
|
124
|
+
token,
|
|
125
|
+
principal: { id: "local", kind: "operator" }
|
|
126
|
+
}).authenticate(headers).pipe(Effect.catchTag("/control/Unauthorized", () => Effect.succeed({ id: "loopback", kind: "anonymous", stampedAt: 0 })));
|
|
127
|
+
}
|
|
128
|
+
}, gatewayRunVisibility)
|
|
129
|
+
: ControlRpcs.layerAuth(credentialAuthenticator(options.credential), gatewayRunVisibility);
|
|
130
|
+
/**
|
|
131
|
+
* Every identity this gateway stamps reads every run. They all stand for the
|
|
132
|
+
* one operator who holds the gateway's credential, or the machine's loopback
|
|
133
|
+
* user when there is none; a scoped token is that operator's grant, confined
|
|
134
|
+
* by the procedures, run, or flow it names rather than by who launched a run.
|
|
135
|
+
*/
|
|
136
|
+
const gatewayRunVisibility = { seesAllRuns: () => true };
|
|
137
|
+
/**
|
|
138
|
+
* The bearer credential itself, or a scoped token minted under it.
|
|
139
|
+
*
|
|
140
|
+
* The runtime bridge deliberately does not use this: it accepts the bearer
|
|
141
|
+
* alone, because a scoped token names control procedures and the bridge's
|
|
142
|
+
* versioned commands are not those.
|
|
143
|
+
*/
|
|
144
|
+
const credentialAuthenticator = (credential) => ControlRpcs.anyAuthenticator([
|
|
145
|
+
ControlRpcs.bearerAuthenticator({ token: credential, principal: bearerPrincipal }),
|
|
146
|
+
ScopedToken.authenticator({ key: credential, principal: scopedPrincipal })
|
|
147
|
+
]);
|
|
148
|
+
/**
|
|
149
|
+
* The identity stamped only after this gateway verifies its configured token.
|
|
150
|
+
* Hosts may explicitly delegate operator decisions to this exact identity.
|
|
151
|
+
* @category constants
|
|
152
|
+
* @since 1.0.0
|
|
153
|
+
*/
|
|
154
|
+
export const bearerPrincipal = Object.freeze({ id: "gateway", kind: "bearer" });
|
|
155
|
+
/**
|
|
156
|
+
* The protected mounts a scoped token may reach: those guarded in band by
|
|
157
|
+
* `ControlAuth`, which checks each frame's procedure against the token, and
|
|
158
|
+
* the ticket exchange that opens their sockets.
|
|
159
|
+
* @category constants
|
|
160
|
+
* @since 1.0.0
|
|
161
|
+
*/
|
|
162
|
+
export const scopedTokenPaths = [
|
|
163
|
+
"/rpc",
|
|
164
|
+
"/rpc/ws",
|
|
165
|
+
"/projections",
|
|
166
|
+
"/projections/ws",
|
|
167
|
+
"/auth/ticket"
|
|
168
|
+
];
|
|
169
|
+
/**
|
|
170
|
+
* The identity stamped after this gateway verifies a scoped token minted
|
|
171
|
+
* under its configured credential. It is its own kind so that delegating
|
|
172
|
+
* approval to {@link bearerPrincipal} does not delegate it to every token
|
|
173
|
+
* minted from the bearer; a host that wants a scoped `approve:runs` token to
|
|
174
|
+
* decide delegates to this identity explicitly.
|
|
175
|
+
* @category constants
|
|
176
|
+
* @since 1.0.0
|
|
177
|
+
*/
|
|
178
|
+
export const scopedPrincipal = Object.freeze({ id: "gateway", kind: "scoped" });
|
|
179
|
+
/**
|
|
180
|
+
* The ingress policy a requested bind runs behind.
|
|
181
|
+
*
|
|
182
|
+
* The accepted Host names are the loopback names, the operator's
|
|
183
|
+
* `allowedHosts`, and the concrete bind host itself, so `--host 192.168.1.10`
|
|
184
|
+
* is reachable at that address without naming it twice. A wildcard bind
|
|
185
|
+
* (`0.0.0.0` or `::`) adds nothing: every interface is not a Host name, and
|
|
186
|
+
* the operator names the reachable ones. Protected paths are authenticated
|
|
187
|
+
* before any request body is read.
|
|
188
|
+
*
|
|
189
|
+
* @param options the requested bind
|
|
190
|
+
* @since 1.0.0
|
|
191
|
+
* @category constructors
|
|
192
|
+
*/
|
|
193
|
+
export const ingressOptions = (options) => {
|
|
194
|
+
const maxRequestBodyBytes = options.maxRequestBodyBytes;
|
|
195
|
+
const host = options.host ?? "127.0.0.1";
|
|
196
|
+
const allowedHosts = [...GatewayServer.loopbackHostHeaderNames, ...options.allowedHosts ?? []];
|
|
197
|
+
const bindAuthority = URL.parse(`http://${host.includes(":") ? `[${host}]` : host}`);
|
|
198
|
+
if (host !== "0.0.0.0" && host !== "::" && bindAuthority !== null && !allowedHosts.includes(bindAuthority.hostname)) {
|
|
199
|
+
allowedHosts.push(bindAuthority.hostname);
|
|
200
|
+
}
|
|
201
|
+
if (options.credential === undefined || options.credential === "") {
|
|
202
|
+
return {
|
|
203
|
+
loopbackOnly: true,
|
|
204
|
+
...(maxRequestBodyBytes === undefined ? {} : { maxRequestBodyBytes }),
|
|
205
|
+
allowedHosts
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
// The edge knows no call, so a scoped token passes here on its signature
|
|
209
|
+
// and expiry, and only toward the mounts whose every frame `ControlAuth`
|
|
210
|
+
// judges in band; journal sync and the runtime bridge take the bearer alone.
|
|
211
|
+
const bearer = ControlRpcs.bearerAuthenticator({ token: options.credential, principal: bearerPrincipal });
|
|
212
|
+
const scoped = credentialAuthenticator(options.credential);
|
|
213
|
+
return {
|
|
214
|
+
allowedHosts,
|
|
215
|
+
...(maxRequestBodyBytes === undefined ? {} : { maxRequestBodyBytes }),
|
|
216
|
+
authorize: (headers, path) => (scopedTokenPaths.includes(path) ? scoped : bearer).authenticate(headers).pipe(Effect.match({ onFailure: () => false, onSuccess: () => true }))
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
const bindFailure = (failure) => new GatewayError({
|
|
220
|
+
code: "bind_failed",
|
|
221
|
+
message: "The gateway socket could not be bound",
|
|
222
|
+
cause: { _tag: failure._tag }
|
|
223
|
+
});
|
|
224
|
+
/**
|
|
225
|
+
* Fails the layer with the sanitized refusal every bearer holder may see, after
|
|
226
|
+
* logging the operator's copy: the requested authority and the operating-system
|
|
227
|
+
* cause (`EADDRINUSE`, `EACCES`, `EADDRNOTAVAIL`), which the wire error omits.
|
|
228
|
+
*/
|
|
229
|
+
const mapServeError = (bind, server) => server.pipe(Layer.catch((failure) => Layer.effectContext(Effect.logError({
|
|
230
|
+
message: "The gateway socket could not be bound",
|
|
231
|
+
host: bind.host,
|
|
232
|
+
port: bind.port,
|
|
233
|
+
cause: failure
|
|
234
|
+
}).pipe(Effect.andThen(Effect.fail(bindFailure(failure)))))));
|
|
235
|
+
/**
|
|
236
|
+
* Hosts the assembled gateway on an injected native HTTP server.
|
|
237
|
+
*
|
|
238
|
+
* Supplies the bind policy, the shared-credential authentication both RPC
|
|
239
|
+
* mounts run under, and newline-delimited JSON as the wire serialization. The
|
|
240
|
+
* caller supplies what the mounts read through: `Control`, `Projections`,
|
|
241
|
+
* `SyncServer`, and the `SyncAuth` middleware.
|
|
242
|
+
*
|
|
243
|
+
* The returned layer retains the concrete `HttpServer` service, so a caller
|
|
244
|
+
* that bound port 0 can read the ephemeral address it got.
|
|
245
|
+
*
|
|
246
|
+
* Policy refusals and operating-system listen failures both fail the layer as
|
|
247
|
+
* sanitized `bind_failed` `GatewayError` values.
|
|
248
|
+
*
|
|
249
|
+
* @param health the identity `GET /health` answers with
|
|
250
|
+
* @param options the requested bind
|
|
251
|
+
* @since 1.0.0
|
|
252
|
+
* @category layers
|
|
253
|
+
*/
|
|
254
|
+
export const makeLayer = (server) => (health, options = defaultServerOptions) => Layer.unwrap(Effect.map(listenOptions(options), (nodeOptions) => HttpRouter.serve(GatewayServer.layer(health, {
|
|
255
|
+
...(options.heartbeatMillis === undefined ? {} : { heartbeatMillis: options.heartbeatMillis }),
|
|
256
|
+
ingress: ingressOptions(options),
|
|
257
|
+
...(options.runtimeBridge === undefined ? {} : {
|
|
258
|
+
runtimeBridge: {
|
|
259
|
+
...options.runtimeBridge,
|
|
260
|
+
authenticate: ControlRpcs.bearerAuthenticator({
|
|
261
|
+
// listenOptions rejects a runtime bridge without a credential.
|
|
262
|
+
token: options.credential,
|
|
263
|
+
principal: bearerPrincipal
|
|
264
|
+
}).authenticate
|
|
265
|
+
}
|
|
266
|
+
})
|
|
267
|
+
}).pipe(Layer.provide(layerAuth(options)), Layer.provide(RpcSerialization.layerNdjson)), { disableListenLog: true, disableLogger: true }).pipe(Layer.provideMerge(mapServeError(nodeOptions, server(nodeOptions))))));
|
|
268
|
+
//# sourceMappingURL=NativeGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeGateway.js","sourceRoot":"","sources":["../../../src/internal/NativeGateway.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shared native gateway bind policy, credential policy,\n * and the one composition a `smithers serve` verb hosts.\n *\n * Two rules decide whether a bind is allowed, and both fail closed:\n *\n * 1. A non-loopback host requires an explicit `listen` opt-in. Binding\n * `0.0.0.0` because a port was free is how a workspace gateway ends up on\n * a shared network by accident.\n * 2. A non-loopback bind requires a bearer credential. The control plane can\n * launch runs, cancel them, and approve capability grants; reachable from\n * another machine, an unauthenticated one is a remote execution service.\n *\n * A loopback bind with no network credential allows anonymous reads; approval\n * decisions require the session operator token. Ingress still checks Host and\n * Origin so a web page cannot exercise the loopback endpoint.\n *\n * @since 1.0.0\n */\n\nimport { ControlRpcs, ScopedToken } from \"@smthrs/control\"\nimport { Effect, Layer } from \"effect\"\nimport { HttpRouter } from \"effect/unstable/http\"\nimport type { HttpServer } from \"effect/unstable/http/HttpServer\"\nimport type { ServeError } from \"effect/unstable/http/HttpServerError\"\nimport { RpcSerialization } from \"effect/unstable/rpc\"\nimport type { ListenOptions } from \"node:net\"\nimport { GatewayError, settingRefusal } from \"../GatewayError.ts\"\nimport * as GatewayServer from \"../GatewayServer.ts\"\nimport type * as RuntimeBridge from \"../RuntimeBridge.ts\"\n\n/**\n * Where the gateway binds, and whether a non-loopback bind was asked for.\n *\n * @since 1.0.0\n * @category models\n */\nexport interface ServerOptions extends ListenOptions {\n /** Additional accepted Host header names (without ports), for network or proxy access. */\n readonly allowedHosts?: ReadonlyArray<string> | undefined\n /** The `--listen` opt-in required for a non-loopback host. */\n readonly listen?: boolean | undefined\n /** The shared bearer credential, required for a non-loopback bind. */\n readonly credential?: string | undefined\n /** Per-session approval token on credential-free loopback. Read calls remain anonymous. */\n readonly operatorToken?: string | undefined\n /**\n * How often an idle followed `Watch` on `/rpc/ws` and an idle followed\n * `Projection.Subscribe` on `/projections/ws` emit a keepalive frame. Unset,\n * both run at `Projections.heartbeatIntervalMillis` unless the supplied\n * `Projections` service was built with its own cadence. A relay with an idle\n * cut shorter than that one needs a shorter cadence here.\n */\n readonly heartbeatMillis?: number | undefined\n /** Maximum bytes accepted on one HTTP RPC request. Default one MiB. */\n readonly maxRequestBodyBytes?: number | undefined\n /** Immutable identity of an opt-in packaged Flow runtime bridge. */\n readonly runtimeBridge?: Omit<RuntimeBridge.Config, \"authenticate\"> | undefined\n}\n\n/**\n * The default bind: loopback, port 7331, no credential.\n *\n * @since 1.0.0\n * @category models\n */\nexport const defaultServerOptions: ServerOptions = { host: \"127.0.0.1\", port: 7331 }\n\n/**\n * Whether a host names this machine only.\n *\n * @param host the host to classify\n * @since 1.0.0\n * @category predicates\n */\nexport const isLoopbackHost = (host: string): boolean => GatewayServer.loopbackHostNames.includes(host)\n\n/**\n * The typed refusal a requested bind earns, or `undefined` when it is allowed.\n *\n * Every start-time rule this module enforces answers here as a `bind_failed`\n * `GatewayError`, so a host that wants to report a refusal rather than crash on\n * one asks this before it composes a layer. {@link listenOptions} and\n * {@link layer} fail with exactly what this returns.\n *\n * @param options the requested bind\n * @since 1.0.0\n * @category constructors\n */\nexport const bindRefusal = (options: ServerOptions): GatewayError | undefined => {\n const setting = settingRefusal(\"The gateway keepalive cadence\", options.heartbeatMillis) ??\n settingRefusal(\"The gateway request body limit\", options.maxRequestBodyBytes)\n if (setting !== undefined) return setting\n // The bridge authenticates only with the bearer credential, even on\n // loopback, so a bridge without one would answer 401 to every request.\n if (options.runtimeBridge !== undefined && (options.credential === undefined || options.credential === \"\")) {\n return new GatewayError({\n code: \"bind_failed\",\n message: \"Refusing to enable the runtime bridge without a bearer credential\"\n })\n }\n const host = options.host ?? \"127.0.0.1\"\n if (isLoopbackHost(host)) return undefined\n if (options.listen !== true) {\n return new GatewayError({\n code: \"bind_failed\",\n message: `Refusing non-loopback gateway bind ${host} without an explicit --listen opt-in`\n })\n }\n if (options.credential === undefined || options.credential === \"\") {\n return new GatewayError({\n code: \"bind_failed\",\n message: `Refusing non-loopback gateway bind ${host} without a bearer credential`\n })\n }\n return undefined\n}\n\n/**\n * Applies the bind policy, returning the admitted Node options or a typed\n * `bind_failed` refusal.\n *\n * @param options the requested bind\n * @since 1.0.0\n * @category constructors\n */\nexport const listenOptions = (options: ServerOptions): Effect.Effect<ListenOptions, GatewayError> =>\n Effect.suspend(() => {\n const refusal = bindRefusal(options)\n if (refusal !== undefined) return Effect.fail(refusal)\n // `credential`, `listen`, and the keepalive cadence are this module's, not\n // `node:net`'s: they are named here so the rest is exactly a bind.\n const {\n allowedHosts: _allowedHosts,\n credential: _credential,\n heartbeatMillis: _cadence,\n listen: _listen,\n maxRequestBodyBytes: _maxBody,\n runtimeBridge: _runtimeBridge,\n ...node\n } = options\n return Effect.succeed({ ...node, host: node.host ?? \"127.0.0.1\" })\n })\n\n/**\n * The authentication both RPC mounts run under.\n *\n * A configured credential authenticates every request that presents it and\n * stamps the same server-owned principal. A scoped token minted under that\n * credential (`@smthrs/control` `ScopedToken`) authenticates only the\n * procedures, run, or flow it names, until it expires, and stamps\n * {@link scopedPrincipal}. With no credential the composition is\n * loopback-only (see {@link listenOptions}) and every request runs as the\n * anonymous read principal. A session operator token alone stamps the local\n * operator for approval decisions; without it approvals are unauthorized.\n *\n * @param options the requested bind\n * @since 1.0.0\n * @category layers\n */\nexport const layerAuth = (options: ServerOptions): Layer.Layer<ControlRpcs.ControlAuth> =>\n options.credential === undefined || options.credential === \"\"\n ? ControlRpcs.layerAuth({\n authenticate: (headers) => {\n const token = options.operatorToken\n if (token === undefined || token === \"\") {\n return Effect.succeed({ id: \"loopback\", kind: \"anonymous\", stampedAt: 0 })\n }\n return ControlRpcs.bearerAuthenticator({\n token,\n principal: { id: \"local\", kind: \"operator\" }\n }).authenticate(headers).pipe(\n Effect.catchTag(\n \"/control/Unauthorized\",\n () => Effect.succeed({ id: \"loopback\", kind: \"anonymous\", stampedAt: 0 })\n )\n )\n }\n }, gatewayRunVisibility)\n : ControlRpcs.layerAuth(credentialAuthenticator(options.credential), gatewayRunVisibility)\n\n/**\n * Every identity this gateway stamps reads every run. They all stand for the\n * one operator who holds the gateway's credential, or the machine's loopback\n * user when there is none; a scoped token is that operator's grant, confined\n * by the procedures, run, or flow it names rather than by who launched a run.\n */\nconst gatewayRunVisibility: ControlRpcs.AuthOptions = { seesAllRuns: () => true }\n\n/**\n * The bearer credential itself, or a scoped token minted under it.\n *\n * The runtime bridge deliberately does not use this: it accepts the bearer\n * alone, because a scoped token names control procedures and the bridge's\n * versioned commands are not those.\n */\nconst credentialAuthenticator = (credential: string): ControlRpcs.Authenticator =>\n ControlRpcs.anyAuthenticator([\n ControlRpcs.bearerAuthenticator({ token: credential, principal: bearerPrincipal }),\n ScopedToken.authenticator({ key: credential, principal: scopedPrincipal })\n ])\n\n/**\n * The identity stamped only after this gateway verifies its configured token.\n * Hosts may explicitly delegate operator decisions to this exact identity.\n * @category constants\n * @since 1.0.0\n */\nexport const bearerPrincipal = Object.freeze({ id: \"gateway\", kind: \"bearer\" })\n\n/**\n * The protected mounts a scoped token may reach: those guarded in band by\n * `ControlAuth`, which checks each frame's procedure against the token, and\n * the ticket exchange that opens their sockets.\n * @category constants\n * @since 1.0.0\n */\nexport const scopedTokenPaths: ReadonlyArray<string> = [\n \"/rpc\",\n \"/rpc/ws\",\n \"/projections\",\n \"/projections/ws\",\n \"/auth/ticket\"\n]\n\n/**\n * The identity stamped after this gateway verifies a scoped token minted\n * under its configured credential. It is its own kind so that delegating\n * approval to {@link bearerPrincipal} does not delegate it to every token\n * minted from the bearer; a host that wants a scoped `approve:runs` token to\n * decide delegates to this identity explicitly.\n * @category constants\n * @since 1.0.0\n */\nexport const scopedPrincipal = Object.freeze({ id: \"gateway\", kind: \"scoped\" })\n\n/**\n * The ingress policy a requested bind runs behind.\n *\n * The accepted Host names are the loopback names, the operator's\n * `allowedHosts`, and the concrete bind host itself, so `--host 192.168.1.10`\n * is reachable at that address without naming it twice. A wildcard bind\n * (`0.0.0.0` or `::`) adds nothing: every interface is not a Host name, and\n * the operator names the reachable ones. Protected paths are authenticated\n * before any request body is read.\n *\n * @param options the requested bind\n * @since 1.0.0\n * @category constructors\n */\nexport const ingressOptions = (options: ServerOptions): GatewayServer.IngressOptions => {\n const maxRequestBodyBytes = options.maxRequestBodyBytes\n const host = options.host ?? \"127.0.0.1\"\n const allowedHosts = [...GatewayServer.loopbackHostHeaderNames, ...options.allowedHosts ?? []]\n const bindAuthority = URL.parse(`http://${host.includes(\":\") ? `[${host}]` : host}`)\n if (host !== \"0.0.0.0\" && host !== \"::\" && bindAuthority !== null && !allowedHosts.includes(bindAuthority.hostname)) {\n allowedHosts.push(bindAuthority.hostname)\n }\n if (options.credential === undefined || options.credential === \"\") {\n return {\n loopbackOnly: true,\n ...(maxRequestBodyBytes === undefined ? {} : { maxRequestBodyBytes }),\n allowedHosts\n }\n }\n // The edge knows no call, so a scoped token passes here on its signature\n // and expiry, and only toward the mounts whose every frame `ControlAuth`\n // judges in band; journal sync and the runtime bridge take the bearer alone.\n const bearer = ControlRpcs.bearerAuthenticator({ token: options.credential, principal: bearerPrincipal })\n const scoped = credentialAuthenticator(options.credential)\n return {\n allowedHosts,\n ...(maxRequestBodyBytes === undefined ? {} : { maxRequestBodyBytes }),\n authorize: (headers, path) =>\n (scopedTokenPaths.includes(path) ? scoped : bearer).authenticate(headers).pipe(\n Effect.match({ onFailure: () => false, onSuccess: () => true })\n )\n }\n}\n\nconst bindFailure = (failure: ServeError | GatewayError): GatewayError =>\n new GatewayError({\n code: \"bind_failed\",\n message: \"The gateway socket could not be bound\",\n cause: { _tag: failure._tag }\n })\n\n/**\n * Fails the layer with the sanitized refusal every bearer holder may see, after\n * logging the operator's copy: the requested authority and the operating-system\n * cause (`EADDRINUSE`, `EACCES`, `EADDRNOTAVAIL`), which the wire error omits.\n */\nconst mapServeError = <A, R>(\n bind: ListenOptions,\n server: Layer.Layer<A, ServeError | GatewayError, R>\n): Layer.Layer<A, GatewayError, R> =>\n server.pipe(\n Layer.catch((failure) =>\n Layer.effectContext<A, GatewayError, never>(\n Effect.logError({\n message: \"The gateway socket could not be bound\",\n host: bind.host,\n port: bind.port,\n cause: failure\n }).pipe(Effect.andThen(Effect.fail(bindFailure(failure))))\n )\n )\n )\n\n/**\n * Hosts the assembled gateway on an injected native HTTP server.\n *\n * Supplies the bind policy, the shared-credential authentication both RPC\n * mounts run under, and newline-delimited JSON as the wire serialization. The\n * caller supplies what the mounts read through: `Control`, `Projections`,\n * `SyncServer`, and the `SyncAuth` middleware.\n *\n * The returned layer retains the concrete `HttpServer` service, so a caller\n * that bound port 0 can read the ephemeral address it got.\n *\n * Policy refusals and operating-system listen failures both fail the layer as\n * sanitized `bind_failed` `GatewayError` values.\n *\n * @param health the identity `GET /health` answers with\n * @param options the requested bind\n * @since 1.0.0\n * @category layers\n */\nexport const makeLayer = (\n server: (options: ListenOptions) => Layer.Layer<HttpServer, ServeError | GatewayError>\n) =>\n(\n health: GatewayServer.Health,\n options: ServerOptions = defaultServerOptions\n) =>\n Layer.unwrap(\n Effect.map(listenOptions(options), (nodeOptions) =>\n HttpRouter.serve(\n GatewayServer.layer(health, {\n ...(options.heartbeatMillis === undefined ? {} : { heartbeatMillis: options.heartbeatMillis }),\n ingress: ingressOptions(options),\n ...(options.runtimeBridge === undefined ? {} : {\n runtimeBridge: {\n ...options.runtimeBridge,\n authenticate: ControlRpcs.bearerAuthenticator({\n // listenOptions rejects a runtime bridge without a credential.\n token: options.credential!,\n principal: bearerPrincipal\n }).authenticate\n }\n })\n }).pipe(\n Layer.provide(layerAuth(options)),\n Layer.provide(RpcSerialization.layerNdjson)\n ),\n { disableListenLog: true, disableLogger: true }\n ).pipe(\n Layer.provideMerge(mapServeError(nodeOptions, server(nodeOptions)))\n ))\n )\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionRenderings.d.ts","sourceRoot":"","sources":["../../../src/internal/actionRenderings.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAuMrE,CAAA"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// Generated by scripts/catalog-mvp.ts from Appendix C; do not edit.
|
|
2
|
+
export const ACTION_RENDERINGS = {
|
|
3
|
+
"<boundary:name>": null,
|
|
4
|
+
"<park>/parked": null,
|
|
5
|
+
"<quota-park>/<session>": null,
|
|
6
|
+
"<seal-step>": null,
|
|
7
|
+
"<structured-output-count>/<name>": null,
|
|
8
|
+
"agent/capacity/<seat>/cool/<n>": "Waiting for a model",
|
|
9
|
+
"agent/opening-instructions": "Read the instructions",
|
|
10
|
+
"agent/opening-memory": "Loaded context",
|
|
11
|
+
"agent/route-seat": "Chose a model",
|
|
12
|
+
"agent/run": "Worked a turn",
|
|
13
|
+
"agent/send (stamp)": null,
|
|
14
|
+
"agent/trace/checkpoint": null,
|
|
15
|
+
"apply_patch": "An attributed edit in the File and Diff cards",
|
|
16
|
+
"ask": "Needs you",
|
|
17
|
+
"bash": "Terminal card (agent session). Missing: no terminal today",
|
|
18
|
+
"checks/lint": "Linted the change",
|
|
19
|
+
"checks/review": "Reviewed the change",
|
|
20
|
+
"checks/security": "Reviewed security",
|
|
21
|
+
"checks/wiki": "Checked the wiki",
|
|
22
|
+
"coding/AdmitVibe": "Opened the change for landing",
|
|
23
|
+
"coding/ApplyNative": "Applied the changes",
|
|
24
|
+
"coding/CleanVibeHistory": "Tidied the history",
|
|
25
|
+
"coding/CommandCheck": "Ran checks",
|
|
26
|
+
"coding/CoordinateRequest": "Worked the TODO",
|
|
27
|
+
"coding/CorrectPlan": "Fixed review findings",
|
|
28
|
+
"coding/CorrectionRound": "Fixed review findings",
|
|
29
|
+
"coding/DescribeFinalAtom": "Wrote the commit message",
|
|
30
|
+
"coding/Dispatch": "Ran an agent turn",
|
|
31
|
+
"coding/FlowLoad": "Validated the flows",
|
|
32
|
+
"coding/ImplementAtom": "Implemented one step",
|
|
33
|
+
"coding/ImplementAtoms": "Implemented the plan",
|
|
34
|
+
"coding/ImplementPlan": "Implemented the plan",
|
|
35
|
+
"coding/JevCheck": "Checked rules",
|
|
36
|
+
"coding/LandVibe": "Landed the change",
|
|
37
|
+
"coding/ObservePlan": "Tracked progress",
|
|
38
|
+
"coding/Poc": "Drafted a prototype",
|
|
39
|
+
"coding/PreparePlan": "Planned the change",
|
|
40
|
+
"coding/PrepareRequest": "Prepared the request",
|
|
41
|
+
"coding/ProposeFinalHistory": "Reviewed the history",
|
|
42
|
+
"coding/Prototype": "Drafted a prototype",
|
|
43
|
+
"coding/PublishVibeSource": "Published the change",
|
|
44
|
+
"coding/ReadNative": "Read the changes",
|
|
45
|
+
"coding/RecheckCorrected": "Re-checked the fix",
|
|
46
|
+
"coding/RecheckFinalHistory": "Re-checked the history",
|
|
47
|
+
"coding/RefreshWiki": "Refreshed wiki pages",
|
|
48
|
+
"coding/RepairPass": "Repaired the change",
|
|
49
|
+
"coding/ReviewCapturedChange": "Reviewed the change",
|
|
50
|
+
"coding/ReviewCapturedWiki": "Checked the wiki",
|
|
51
|
+
"coding/ReviewCheck": "Reviewed the change",
|
|
52
|
+
"coding/RewriteFinalHistory": "Tidied the history",
|
|
53
|
+
"coding/SecurityAudit": "Audited security",
|
|
54
|
+
"coding/SecurityReviewCheck": "Reviewed security",
|
|
55
|
+
"coding/VerifyVibe": "Verified before landing",
|
|
56
|
+
"coding/Wiki": "Refreshed the wiki",
|
|
57
|
+
"coding/WikiCheck": "Checked the wiki",
|
|
58
|
+
"coding/admit-retained-source": "Opened the source",
|
|
59
|
+
"coding/admit-verify-source": "Opened the candidate",
|
|
60
|
+
"coding/assess": "Assessed the change",
|
|
61
|
+
"coding/audit-security": "Audited security",
|
|
62
|
+
"coding/begin-correction": "Started a fix round",
|
|
63
|
+
"coding/capture-poc-source": "Captured the source",
|
|
64
|
+
"coding/capture-review-check": "Captured the change",
|
|
65
|
+
"coding/capture-wiki-check": "Captured the wiki",
|
|
66
|
+
"coding/check": "Ran checks",
|
|
67
|
+
"coding/check-command": "Ran checks",
|
|
68
|
+
"coding/check-jev-rules": "Checked rules",
|
|
69
|
+
"coding/configure-planning-wiki": "Chose wiki pages",
|
|
70
|
+
"coding/confirm-final-description": "Confirmed the commit message",
|
|
71
|
+
"coding/create-stack-base": "Created the stack base",
|
|
72
|
+
"coding/create-vibe-landing": "Added to the stack",
|
|
73
|
+
"coding/decline-request": "Declined the request",
|
|
74
|
+
"coding/dispatch-turn": "Worked a turn",
|
|
75
|
+
"coding/draft-plan": "Drafted the plan",
|
|
76
|
+
"coding/draft-poc": "Drafted a prototype",
|
|
77
|
+
"coding/edit-atom": "Edited the files",
|
|
78
|
+
"coding/fast-forward-vibe": "Moved the branch forward",
|
|
79
|
+
"coding/fast-gate": "Ran quick checks",
|
|
80
|
+
"coding/fence-vibe-source": "Pinned the change",
|
|
81
|
+
"coding/finalize-plan": "Finalized the plan",
|
|
82
|
+
"coding/find-planning-wiki-review": "Found wiki notes",
|
|
83
|
+
"coding/finish-correction": "Finished the fix round",
|
|
84
|
+
"coding/finish-final-history": "Finished the history",
|
|
85
|
+
"coding/finish-review-check": "Collected review findings",
|
|
86
|
+
"coding/finish-wiki-check": "Checked the wiki",
|
|
87
|
+
"coding/gather-planning-context": "Gathered context",
|
|
88
|
+
"coding/implement-change": "Implemented the change",
|
|
89
|
+
"coding/import-dependency-docs": "Imported dependency docs",
|
|
90
|
+
"coding/install-dependency-pages": "Added dependency pages",
|
|
91
|
+
"coding/load-flows": "Validated the flows",
|
|
92
|
+
"coding/materialize-poc": "Applied the prototype",
|
|
93
|
+
"coding/merge-request-feedback": "Took in your steer",
|
|
94
|
+
"coding/merge-vibe-local-pull": "Merged the change",
|
|
95
|
+
"coding/observe-atom": "Saved the edit",
|
|
96
|
+
"coding/observe-dispatch": "Saved the turn",
|
|
97
|
+
"coding/observe-vibe-append": "Added to the stack",
|
|
98
|
+
"coding/observe-vibe-pull-checks": "Watched PR checks",
|
|
99
|
+
"coding/open-vibe-local-pull": "Opened the pull request",
|
|
100
|
+
"coding/open-vibe-pull": "Opened the pull request",
|
|
101
|
+
"coding/prepare-atom": "Opened the working copy",
|
|
102
|
+
"coding/prepare-atom-mutation": "Prepared to edit",
|
|
103
|
+
"coding/prepare-final-description": "Drafted the commit message",
|
|
104
|
+
"coding/prepare-owner-repair": "Prepared the repair",
|
|
105
|
+
"coding/prepare-repair-context": "Gathered repair context",
|
|
106
|
+
"coding/prepare-return-mythical-tip": "Returned to the stack tip",
|
|
107
|
+
"coding/prepare-stack-base": "Prepared the stack",
|
|
108
|
+
"coding/prepare-vibe-append": "Prepared to add to the stack",
|
|
109
|
+
"coding/prepare-vibe-candidate": "Prepared the change",
|
|
110
|
+
"coding/publish-vibe-source": "Published the change",
|
|
111
|
+
"coding/queue-vibe-append": "Queued for the stack",
|
|
112
|
+
"coding/read-correction-history": "Read earlier fixes",
|
|
113
|
+
"coding/read-feedback-cancellation": "Read your steer",
|
|
114
|
+
"coding/read-published-wiki": "Read the wiki",
|
|
115
|
+
"coding/read-vibe-delivery": "Read delivery status",
|
|
116
|
+
"coding/read-vibe-lander": "Read landing state",
|
|
117
|
+
"coding/read-vibe-request": "Read the request",
|
|
118
|
+
"coding/read-vibe-stack": "Read the stack",
|
|
119
|
+
"coding/receive-request-feedback": "Waited for your steer",
|
|
120
|
+
"coding/record-fast-gated-progress": "Recorded progress",
|
|
121
|
+
"coding/record-learning": "Saved a lesson",
|
|
122
|
+
"coding/record-slow-feedback": "Recorded feedback",
|
|
123
|
+
"coding/refresh-final-history": "Refreshed the history",
|
|
124
|
+
"coding/refresh-planning-wiki": "Refreshed wiki pages",
|
|
125
|
+
"coding/refresh-restacked-evidence": "Refreshed evidence",
|
|
126
|
+
"coding/refuse-plan-approval": "Refused a plan approval",
|
|
127
|
+
"coding/repair-final-history": "Corrected the history",
|
|
128
|
+
"coding/retain-poc": "Saved the prototype",
|
|
129
|
+
"coding/review-final-history": "Reviewed the history",
|
|
130
|
+
"coding/review-lens": "Reviewed through one lens",
|
|
131
|
+
"coding/review-poc": "Reviewed the prototype",
|
|
132
|
+
"coding/review-request": "Reviewed the request",
|
|
133
|
+
"coding/review-security": "Reviewed security",
|
|
134
|
+
"coding/run-correction-round": "Fixed review findings",
|
|
135
|
+
"coding/select-owner-repair": "Chose what to fix",
|
|
136
|
+
"coding/submit-vibe-lane": "Queued the change",
|
|
137
|
+
"coding/todo-boundary": null,
|
|
138
|
+
"coding/todo-delivery": "Prepared the delivery",
|
|
139
|
+
"coding/todo-pause-requested": null,
|
|
140
|
+
"coding/todo-resume": null,
|
|
141
|
+
"coding/todo-review": null,
|
|
142
|
+
"coding/todo-review-input": null,
|
|
143
|
+
"coding/validate-final-history": "Checked the history",
|
|
144
|
+
"coding/validate-plan": "Checked the plan",
|
|
145
|
+
"coding/verify-planning-context": "Checked the context",
|
|
146
|
+
"coding/verify-vibe-landed": "Confirmed it landed",
|
|
147
|
+
"create-flow": "Created a flow",
|
|
148
|
+
"create-flow/clarify": "Asked what the flow should do",
|
|
149
|
+
"create-flow/design": "Designed the flow",
|
|
150
|
+
"create-flow/document": "Documented the flow",
|
|
151
|
+
"create-flow/fix": "Fixed the flow",
|
|
152
|
+
"create-flow/provision": "Set up the flow",
|
|
153
|
+
"create-flow/scaffold": "Wrote the flow",
|
|
154
|
+
"edit": "An attributed edit in the File and Diff cards",
|
|
155
|
+
"factory/Todo": "Routed the TODO",
|
|
156
|
+
"factory/route-todo": "Chose how to start",
|
|
157
|
+
"factory/stamp-route": "Declined the TODO",
|
|
158
|
+
"glob": "A \"read\" line in branch activity, opening the File card",
|
|
159
|
+
"grep": "A \"read\" line in branch activity, opening the File card",
|
|
160
|
+
"jev": "Inspect only: \"Decided <question>\"",
|
|
161
|
+
"ls": "A \"read\" line in branch activity, opening the File card",
|
|
162
|
+
"memory": "The \"Context\" line and the preflight cell in Inspect",
|
|
163
|
+
"memory/mine": "Saved lessons",
|
|
164
|
+
"memory/mine/run": "Saved lessons",
|
|
165
|
+
"read": "A \"read\" line in branch activity, opening the File card",
|
|
166
|
+
"recall": "The \"Context\" line and the preflight cell in Inspect",
|
|
167
|
+
"recall (namespaced)": "The \"Context\" line and the preflight cell in Inspect",
|
|
168
|
+
"remember": "Learning receipt",
|
|
169
|
+
"review": "Reviewed the change",
|
|
170
|
+
"smithers-review/ApplyVerdicts": "Settled findings",
|
|
171
|
+
"smithers-review/FinalizeReview": "Finished the review",
|
|
172
|
+
"smithers-review/MergeFileBatch": "Collected findings",
|
|
173
|
+
"smithers-review/NarrateChanges": "Wrote the walkthrough",
|
|
174
|
+
"smithers-review/NarrateReview": "Wrote the walkthrough",
|
|
175
|
+
"smithers-review/PrepareReview": "Prepared the review",
|
|
176
|
+
"smithers-review/RenderWalkthrough": "Rendered the walkthrough",
|
|
177
|
+
"smithers-review/ReviewFile": "Reviewed one file",
|
|
178
|
+
"smithers-review/ReviewFiles": "Reviewed the files",
|
|
179
|
+
"smithers-review/VerifyFindings": "Verified findings",
|
|
180
|
+
"smithers-review/VerifyReview": "Verified findings",
|
|
181
|
+
"smithers/IncrementalWiki": "Refreshed the wiki",
|
|
182
|
+
"smithers/Wiki": "Refreshed the wiki",
|
|
183
|
+
"stack.candidate": "Saved the candidate",
|
|
184
|
+
"stack.propose": "Proposed the candidate",
|
|
185
|
+
"system/human-task": "Waited for your answer",
|
|
186
|
+
"system/sleep": null,
|
|
187
|
+
"system/wait-for": null,
|
|
188
|
+
"test": "Terminal card plus checks. Missing: needs SMITHERS_TEST_COMMAND",
|
|
189
|
+
"wait": "Waited",
|
|
190
|
+
"wiki/assess-review": "Assessed a wiki page",
|
|
191
|
+
"wiki/bind-review-provenance": "Linked a review to its source",
|
|
192
|
+
"wiki/check-citations": "Checked citations",
|
|
193
|
+
"wiki/collect-page": "Collected sources for a page",
|
|
194
|
+
"wiki/load-recorded-reviews": "Found earlier reviews",
|
|
195
|
+
"wiki/publish-recorded-reviews": "Saved wiki pages",
|
|
196
|
+
"wiki/review-page": "Reviewed a wiki page",
|
|
197
|
+
"wiki/select-recorded-review": "Reused a review",
|
|
198
|
+
"wiki/validate-review": "Checked a wiki page",
|
|
199
|
+
"wiki/write-snapshot": "Saved wiki pages",
|
|
200
|
+
"write": "An attributed edit in the File and Diff cards"
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=actionRenderings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionRenderings.js","sourceRoot":"","sources":["../../../src/internal/actionRenderings.ts"],"names":[],"mappings":"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","sourcesContent":["// Generated by scripts/catalog-mvp.ts from Appendix C; do not edit.\nexport const ACTION_RENDERINGS: Readonly<Record<string, string | null>> = {\n \"<boundary:name>\": null,\n \"<park>/parked\": null,\n \"<quota-park>/<session>\": null,\n \"<seal-step>\": null,\n \"<structured-output-count>/<name>\": null,\n \"agent/capacity/<seat>/cool/<n>\": \"Waiting for a model\",\n \"agent/opening-instructions\": \"Read the instructions\",\n \"agent/opening-memory\": \"Loaded context\",\n \"agent/route-seat\": \"Chose a model\",\n \"agent/run\": \"Worked a turn\",\n \"agent/send (stamp)\": null,\n \"agent/trace/checkpoint\": null,\n \"apply_patch\": \"An attributed edit in the File and Diff cards\",\n \"ask\": \"Needs you\",\n \"bash\": \"Terminal card (agent session). Missing: no terminal today\",\n \"checks/lint\": \"Linted the change\",\n \"checks/review\": \"Reviewed the change\",\n \"checks/security\": \"Reviewed security\",\n \"checks/wiki\": \"Checked the wiki\",\n \"coding/AdmitVibe\": \"Opened the change for landing\",\n \"coding/ApplyNative\": \"Applied the changes\",\n \"coding/CleanVibeHistory\": \"Tidied the history\",\n \"coding/CommandCheck\": \"Ran checks\",\n \"coding/CoordinateRequest\": \"Worked the TODO\",\n \"coding/CorrectPlan\": \"Fixed review findings\",\n \"coding/CorrectionRound\": \"Fixed review findings\",\n \"coding/DescribeFinalAtom\": \"Wrote the commit message\",\n \"coding/Dispatch\": \"Ran an agent turn\",\n \"coding/FlowLoad\": \"Validated the flows\",\n \"coding/ImplementAtom\": \"Implemented one step\",\n \"coding/ImplementAtoms\": \"Implemented the plan\",\n \"coding/ImplementPlan\": \"Implemented the plan\",\n \"coding/JevCheck\": \"Checked rules\",\n \"coding/LandVibe\": \"Landed the change\",\n \"coding/ObservePlan\": \"Tracked progress\",\n \"coding/Poc\": \"Drafted a prototype\",\n \"coding/PreparePlan\": \"Planned the change\",\n \"coding/PrepareRequest\": \"Prepared the request\",\n \"coding/ProposeFinalHistory\": \"Reviewed the history\",\n \"coding/Prototype\": \"Drafted a prototype\",\n \"coding/PublishVibeSource\": \"Published the change\",\n \"coding/ReadNative\": \"Read the changes\",\n \"coding/RecheckCorrected\": \"Re-checked the fix\",\n \"coding/RecheckFinalHistory\": \"Re-checked the history\",\n \"coding/RefreshWiki\": \"Refreshed wiki pages\",\n \"coding/RepairPass\": \"Repaired the change\",\n \"coding/ReviewCapturedChange\": \"Reviewed the change\",\n \"coding/ReviewCapturedWiki\": \"Checked the wiki\",\n \"coding/ReviewCheck\": \"Reviewed the change\",\n \"coding/RewriteFinalHistory\": \"Tidied the history\",\n \"coding/SecurityAudit\": \"Audited security\",\n \"coding/SecurityReviewCheck\": \"Reviewed security\",\n \"coding/VerifyVibe\": \"Verified before landing\",\n \"coding/Wiki\": \"Refreshed the wiki\",\n \"coding/WikiCheck\": \"Checked the wiki\",\n \"coding/admit-retained-source\": \"Opened the source\",\n \"coding/admit-verify-source\": \"Opened the candidate\",\n \"coding/assess\": \"Assessed the change\",\n \"coding/audit-security\": \"Audited security\",\n \"coding/begin-correction\": \"Started a fix round\",\n \"coding/capture-poc-source\": \"Captured the source\",\n \"coding/capture-review-check\": \"Captured the change\",\n \"coding/capture-wiki-check\": \"Captured the wiki\",\n \"coding/check\": \"Ran checks\",\n \"coding/check-command\": \"Ran checks\",\n \"coding/check-jev-rules\": \"Checked rules\",\n \"coding/configure-planning-wiki\": \"Chose wiki pages\",\n \"coding/confirm-final-description\": \"Confirmed the commit message\",\n \"coding/create-stack-base\": \"Created the stack base\",\n \"coding/create-vibe-landing\": \"Added to the stack\",\n \"coding/decline-request\": \"Declined the request\",\n \"coding/dispatch-turn\": \"Worked a turn\",\n \"coding/draft-plan\": \"Drafted the plan\",\n \"coding/draft-poc\": \"Drafted a prototype\",\n \"coding/edit-atom\": \"Edited the files\",\n \"coding/fast-forward-vibe\": \"Moved the branch forward\",\n \"coding/fast-gate\": \"Ran quick checks\",\n \"coding/fence-vibe-source\": \"Pinned the change\",\n \"coding/finalize-plan\": \"Finalized the plan\",\n \"coding/find-planning-wiki-review\": \"Found wiki notes\",\n \"coding/finish-correction\": \"Finished the fix round\",\n \"coding/finish-final-history\": \"Finished the history\",\n \"coding/finish-review-check\": \"Collected review findings\",\n \"coding/finish-wiki-check\": \"Checked the wiki\",\n \"coding/gather-planning-context\": \"Gathered context\",\n \"coding/implement-change\": \"Implemented the change\",\n \"coding/import-dependency-docs\": \"Imported dependency docs\",\n \"coding/install-dependency-pages\": \"Added dependency pages\",\n \"coding/load-flows\": \"Validated the flows\",\n \"coding/materialize-poc\": \"Applied the prototype\",\n \"coding/merge-request-feedback\": \"Took in your steer\",\n \"coding/merge-vibe-local-pull\": \"Merged the change\",\n \"coding/observe-atom\": \"Saved the edit\",\n \"coding/observe-dispatch\": \"Saved the turn\",\n \"coding/observe-vibe-append\": \"Added to the stack\",\n \"coding/observe-vibe-pull-checks\": \"Watched PR checks\",\n \"coding/open-vibe-local-pull\": \"Opened the pull request\",\n \"coding/open-vibe-pull\": \"Opened the pull request\",\n \"coding/prepare-atom\": \"Opened the working copy\",\n \"coding/prepare-atom-mutation\": \"Prepared to edit\",\n \"coding/prepare-final-description\": \"Drafted the commit message\",\n \"coding/prepare-owner-repair\": \"Prepared the repair\",\n \"coding/prepare-repair-context\": \"Gathered repair context\",\n \"coding/prepare-return-mythical-tip\": \"Returned to the stack tip\",\n \"coding/prepare-stack-base\": \"Prepared the stack\",\n \"coding/prepare-vibe-append\": \"Prepared to add to the stack\",\n \"coding/prepare-vibe-candidate\": \"Prepared the change\",\n \"coding/publish-vibe-source\": \"Published the change\",\n \"coding/queue-vibe-append\": \"Queued for the stack\",\n \"coding/read-correction-history\": \"Read earlier fixes\",\n \"coding/read-feedback-cancellation\": \"Read your steer\",\n \"coding/read-published-wiki\": \"Read the wiki\",\n \"coding/read-vibe-delivery\": \"Read delivery status\",\n \"coding/read-vibe-lander\": \"Read landing state\",\n \"coding/read-vibe-request\": \"Read the request\",\n \"coding/read-vibe-stack\": \"Read the stack\",\n \"coding/receive-request-feedback\": \"Waited for your steer\",\n \"coding/record-fast-gated-progress\": \"Recorded progress\",\n \"coding/record-learning\": \"Saved a lesson\",\n \"coding/record-slow-feedback\": \"Recorded feedback\",\n \"coding/refresh-final-history\": \"Refreshed the history\",\n \"coding/refresh-planning-wiki\": \"Refreshed wiki pages\",\n \"coding/refresh-restacked-evidence\": \"Refreshed evidence\",\n \"coding/refuse-plan-approval\": \"Refused a plan approval\",\n \"coding/repair-final-history\": \"Corrected the history\",\n \"coding/retain-poc\": \"Saved the prototype\",\n \"coding/review-final-history\": \"Reviewed the history\",\n \"coding/review-lens\": \"Reviewed through one lens\",\n \"coding/review-poc\": \"Reviewed the prototype\",\n \"coding/review-request\": \"Reviewed the request\",\n \"coding/review-security\": \"Reviewed security\",\n \"coding/run-correction-round\": \"Fixed review findings\",\n \"coding/select-owner-repair\": \"Chose what to fix\",\n \"coding/submit-vibe-lane\": \"Queued the change\",\n \"coding/todo-boundary\": null,\n \"coding/todo-delivery\": \"Prepared the delivery\",\n \"coding/todo-pause-requested\": null,\n \"coding/todo-resume\": null,\n \"coding/todo-review\": null,\n \"coding/todo-review-input\": null,\n \"coding/validate-final-history\": \"Checked the history\",\n \"coding/validate-plan\": \"Checked the plan\",\n \"coding/verify-planning-context\": \"Checked the context\",\n \"coding/verify-vibe-landed\": \"Confirmed it landed\",\n \"create-flow\": \"Created a flow\",\n \"create-flow/clarify\": \"Asked what the flow should do\",\n \"create-flow/design\": \"Designed the flow\",\n \"create-flow/document\": \"Documented the flow\",\n \"create-flow/fix\": \"Fixed the flow\",\n \"create-flow/provision\": \"Set up the flow\",\n \"create-flow/scaffold\": \"Wrote the flow\",\n \"edit\": \"An attributed edit in the File and Diff cards\",\n \"factory/Todo\": \"Routed the TODO\",\n \"factory/route-todo\": \"Chose how to start\",\n \"factory/stamp-route\": \"Declined the TODO\",\n \"glob\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"grep\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"jev\": \"Inspect only: \\\"Decided <question>\\\"\",\n \"ls\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"memory\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"memory/mine\": \"Saved lessons\",\n \"memory/mine/run\": \"Saved lessons\",\n \"read\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"recall\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"recall (namespaced)\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"remember\": \"Learning receipt\",\n \"review\": \"Reviewed the change\",\n \"smithers-review/ApplyVerdicts\": \"Settled findings\",\n \"smithers-review/FinalizeReview\": \"Finished the review\",\n \"smithers-review/MergeFileBatch\": \"Collected findings\",\n \"smithers-review/NarrateChanges\": \"Wrote the walkthrough\",\n \"smithers-review/NarrateReview\": \"Wrote the walkthrough\",\n \"smithers-review/PrepareReview\": \"Prepared the review\",\n \"smithers-review/RenderWalkthrough\": \"Rendered the walkthrough\",\n \"smithers-review/ReviewFile\": \"Reviewed one file\",\n \"smithers-review/ReviewFiles\": \"Reviewed the files\",\n \"smithers-review/VerifyFindings\": \"Verified findings\",\n \"smithers-review/VerifyReview\": \"Verified findings\",\n \"smithers/IncrementalWiki\": \"Refreshed the wiki\",\n \"smithers/Wiki\": \"Refreshed the wiki\",\n \"stack.candidate\": \"Saved the candidate\",\n \"stack.propose\": \"Proposed the candidate\",\n \"system/human-task\": \"Waited for your answer\",\n \"system/sleep\": null,\n \"system/wait-for\": null,\n \"test\": \"Terminal card plus checks. Missing: needs SMITHERS_TEST_COMMAND\",\n \"wait\": \"Waited\",\n \"wiki/assess-review\": \"Assessed a wiki page\",\n \"wiki/bind-review-provenance\": \"Linked a review to its source\",\n \"wiki/check-citations\": \"Checked citations\",\n \"wiki/collect-page\": \"Collected sources for a page\",\n \"wiki/load-recorded-reviews\": \"Found earlier reviews\",\n \"wiki/publish-recorded-reviews\": \"Saved wiki pages\",\n \"wiki/review-page\": \"Reviewed a wiki page\",\n \"wiki/select-recorded-review\": \"Reused a review\",\n \"wiki/validate-review\": \"Checked a wiki page\",\n \"wiki/write-snapshot\": \"Saved wiki pages\",\n \"write\": \"An attributed edit in the File and Diff cards\"\n}\n"]}
|