@owlmeans/viable-sdk 0.1.18-rc.8 → 0.1.18
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/README.md +29 -11
- package/agent-meta/manifest.json +16 -0
- package/agent-meta/skills/viable-sdk/SKILL.md +1033 -0
- package/build/api/collect/types.d.ts +30 -0
- package/build/api/collect/types.d.ts.map +1 -0
- package/build/api/collect/types.js +2 -0
- package/build/api/collect/types.js.map +1 -0
- package/build/api/collect.d.ts +14 -0
- package/build/api/collect.d.ts.map +1 -0
- package/build/api/collect.js +132 -0
- package/build/api/collect.js.map +1 -0
- package/build/api/consts.local.d.ts +21 -0
- package/build/api/consts.local.d.ts.map +1 -0
- package/build/api/consts.local.js +25 -0
- package/build/api/consts.local.js.map +1 -0
- package/build/api/index.d.ts +5 -0
- package/build/api/index.d.ts.map +1 -1
- package/build/api/index.js +2 -0
- package/build/api/index.js.map +1 -1
- package/build/api/remote.d.ts +13 -6
- package/build/api/remote.d.ts.map +1 -1
- package/build/api/remote.js +302 -35
- package/build/api/remote.js.map +1 -1
- package/build/api/transport/types.d.ts +14 -0
- package/build/api/transport/types.d.ts.map +1 -0
- package/build/api/transport/types.js +2 -0
- package/build/api/transport/types.js.map +1 -0
- package/build/api/transport.d.ts +4 -0
- package/build/api/transport.d.ts.map +1 -0
- package/build/api/transport.js +32 -0
- package/build/api/transport.js.map +1 -0
- package/build/api/types.d.ts +9 -0
- package/build/api/types.d.ts.map +1 -0
- package/build/api/types.js +2 -0
- package/build/api/types.js.map +1 -0
- package/build/api/types.local.d.ts +3 -0
- package/build/api/types.local.d.ts.map +1 -0
- package/build/api/types.local.js +2 -0
- package/build/api/types.local.js.map +1 -0
- package/build/consts.d.ts +29 -14
- package/build/consts.d.ts.map +1 -1
- package/build/consts.js +30 -14
- package/build/consts.js.map +1 -1
- package/build/context/consts.local.d.ts +18 -0
- package/build/context/consts.local.d.ts.map +1 -0
- package/build/context/consts.local.js +18 -0
- package/build/context/consts.local.js.map +1 -0
- package/build/context/index.d.ts +3 -7
- package/build/context/index.d.ts.map +1 -1
- package/build/context/index.js +58 -25
- package/build/context/index.js.map +1 -1
- package/build/context/types.d.ts +26 -0
- package/build/context/types.d.ts.map +1 -0
- package/build/context/types.js +2 -0
- package/build/context/types.js.map +1 -0
- package/build/executor/boot-check.d.ts +1 -40
- package/build/executor/boot-check.d.ts.map +1 -1
- package/build/executor/boot-check.js +22 -19
- package/build/executor/boot-check.js.map +1 -1
- package/build/executor/consts.d.ts +55 -0
- package/build/executor/consts.d.ts.map +1 -0
- package/build/executor/consts.js +66 -0
- package/build/executor/consts.js.map +1 -0
- package/build/executor/consts.local.d.ts +63 -0
- package/build/executor/consts.local.d.ts.map +1 -0
- package/build/executor/consts.local.js +69 -0
- package/build/executor/consts.local.js.map +1 -0
- package/build/executor/env/types.d.ts +40 -0
- package/build/executor/env/types.d.ts.map +1 -0
- package/build/executor/env/types.js +2 -0
- package/build/executor/env/types.js.map +1 -0
- package/build/executor/env.d.ts +11 -20
- package/build/executor/env.d.ts.map +1 -1
- package/build/executor/env.js +39 -59
- package/build/executor/env.js.map +1 -1
- package/build/executor/errors.d.ts +15 -0
- package/build/executor/errors.d.ts.map +1 -1
- package/build/executor/errors.js +19 -2
- package/build/executor/errors.js.map +1 -1
- package/build/executor/files/types.d.ts +106 -0
- package/build/executor/files/types.d.ts.map +1 -0
- package/build/executor/files/types.js +2 -0
- package/build/executor/files/types.js.map +1 -0
- package/build/executor/files.d.ts +2 -50
- package/build/executor/files.d.ts.map +1 -1
- package/build/executor/files.js +225 -68
- package/build/executor/files.js.map +1 -1
- package/build/executor/git/types.d.ts +19 -0
- package/build/executor/git/types.d.ts.map +1 -0
- package/build/executor/git/types.js +2 -0
- package/build/executor/git/types.js.map +1 -0
- package/build/executor/git.d.ts +4 -36
- package/build/executor/git.d.ts.map +1 -1
- package/build/executor/git.js +206 -241
- package/build/executor/git.js.map +1 -1
- package/build/executor/glob/types.d.ts +12 -0
- package/build/executor/glob/types.d.ts.map +1 -0
- package/build/executor/glob/types.js +2 -0
- package/build/executor/glob/types.js.map +1 -0
- package/build/executor/glob.d.ts +4 -0
- package/build/executor/glob.d.ts.map +1 -0
- package/build/executor/glob.js +11 -0
- package/build/executor/glob.js.map +1 -0
- package/build/executor/health/types.d.ts +39 -0
- package/build/executor/health/types.d.ts.map +1 -0
- package/build/executor/health/types.js +2 -0
- package/build/executor/health/types.js.map +1 -0
- package/build/executor/health.d.ts +3 -83
- package/build/executor/health.d.ts.map +1 -1
- package/build/executor/health.js +76 -91
- package/build/executor/health.js.map +1 -1
- package/build/executor/index.d.ts +14 -15
- package/build/executor/index.d.ts.map +1 -1
- package/build/executor/index.js +36 -18
- package/build/executor/index.js.map +1 -1
- package/build/executor/integrity/types.d.ts +25 -0
- package/build/executor/integrity/types.d.ts.map +1 -0
- package/build/executor/integrity/types.js +2 -0
- package/build/executor/integrity/types.js.map +1 -0
- package/build/executor/integrity.d.ts +5 -15
- package/build/executor/integrity.d.ts.map +1 -1
- package/build/executor/integrity.js +28 -39
- package/build/executor/integrity.js.map +1 -1
- package/build/executor/layout/types.d.ts +69 -0
- package/build/executor/layout/types.d.ts.map +1 -0
- package/build/executor/layout/types.js +2 -0
- package/build/executor/layout/types.js.map +1 -0
- package/build/executor/layout.d.ts +9 -56
- package/build/executor/layout.d.ts.map +1 -1
- package/build/executor/layout.js +35 -82
- package/build/executor/layout.js.map +1 -1
- package/build/executor/shell/types.d.ts +76 -0
- package/build/executor/shell/types.d.ts.map +1 -0
- package/build/executor/shell/types.js +2 -0
- package/build/executor/shell/types.js.map +1 -0
- package/build/executor/shell.d.ts +3 -78
- package/build/executor/shell.d.ts.map +1 -1
- package/build/executor/shell.js +61 -91
- package/build/executor/shell.js.map +1 -1
- package/build/executor/spawn/types.d.ts +98 -0
- package/build/executor/spawn/types.d.ts.map +1 -0
- package/build/executor/spawn/types.js +2 -0
- package/build/executor/spawn/types.js.map +1 -0
- package/build/executor/spawn.d.ts +3 -103
- package/build/executor/spawn.d.ts.map +1 -1
- package/build/executor/spawn.js +192 -274
- package/build/executor/spawn.js.map +1 -1
- package/build/executor/types.d.ts +123 -0
- package/build/executor/types.d.ts.map +1 -0
- package/build/executor/types.js +2 -0
- package/build/executor/types.js.map +1 -0
- package/build/executor/types.local.d.ts +6 -0
- package/build/executor/types.local.d.ts.map +1 -0
- package/build/executor/types.local.js +2 -0
- package/build/executor/types.local.js.map +1 -0
- package/build/index.d.ts +14 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/project/consts.d.ts +17 -0
- package/build/project/consts.d.ts.map +1 -0
- package/build/project/consts.js +17 -0
- package/build/project/consts.js.map +1 -0
- package/build/project/consts.local.d.ts +4 -0
- package/build/project/consts.local.d.ts.map +1 -0
- package/build/project/consts.local.js +4 -0
- package/build/project/consts.local.js.map +1 -0
- package/build/project/dotenv/types.d.ts +39 -0
- package/build/project/dotenv/types.d.ts.map +1 -0
- package/build/project/dotenv/types.js +2 -0
- package/build/project/dotenv/types.js.map +1 -0
- package/build/project/dotenv.d.ts +4 -0
- package/build/project/dotenv.d.ts.map +1 -0
- package/build/project/dotenv.js +56 -0
- package/build/project/dotenv.js.map +1 -0
- package/build/project/env/types.d.ts +40 -0
- package/build/project/env/types.d.ts.map +1 -0
- package/build/project/env/types.js +2 -0
- package/build/project/env/types.js.map +1 -0
- package/build/project/env.d.ts +2 -98
- package/build/project/env.d.ts.map +1 -1
- package/build/project/env.js +63 -215
- package/build/project/env.js.map +1 -1
- package/build/project/marker/types.d.ts +33 -0
- package/build/project/marker/types.d.ts.map +1 -0
- package/build/project/marker/types.js +2 -0
- package/build/project/marker/types.js.map +1 -0
- package/build/project/marker.d.ts +4 -25
- package/build/project/marker.d.ts.map +1 -1
- package/build/project/marker.js +40 -43
- package/build/project/marker.js.map +1 -1
- package/build/project/probe/types.d.ts +22 -0
- package/build/project/probe/types.d.ts.map +1 -0
- package/build/project/probe/types.js +2 -0
- package/build/project/probe/types.js.map +1 -0
- package/build/project/probe.d.ts +4 -0
- package/build/project/probe.d.ts.map +1 -0
- package/build/project/probe.js +39 -0
- package/build/project/probe.js.map +1 -0
- package/build/project/report/types.d.ts +18 -0
- package/build/project/report/types.d.ts.map +1 -0
- package/build/project/report/types.js +2 -0
- package/build/project/report/types.js.map +1 -0
- package/build/project/report.d.ts +7 -0
- package/build/project/report.d.ts.map +1 -0
- package/build/project/report.js +68 -0
- package/build/project/report.js.map +1 -0
- package/build/project/setup/types.d.ts +32 -0
- package/build/project/setup/types.d.ts.map +1 -0
- package/build/project/setup/types.js +2 -0
- package/build/project/setup/types.js.map +1 -0
- package/build/project/setup.d.ts +4 -53
- package/build/project/setup.d.ts.map +1 -1
- package/build/project/setup.js +112 -175
- package/build/project/setup.js.map +1 -1
- package/build/project/types.d.ts +37 -0
- package/build/project/types.d.ts.map +1 -0
- package/build/project/types.js +2 -0
- package/build/project/types.js.map +1 -0
- package/build/run/consts.local.d.ts +3 -0
- package/build/run/consts.local.d.ts.map +1 -0
- package/build/run/consts.local.js +26 -0
- package/build/run/consts.local.js.map +1 -0
- package/build/run/index.d.ts +11 -69
- package/build/run/index.d.ts.map +1 -1
- package/build/run/index.js +9 -147
- package/build/run/index.js.map +1 -1
- package/build/run/local/types.d.ts +39 -0
- package/build/run/local/types.d.ts.map +1 -0
- package/build/run/local/types.js +2 -0
- package/build/run/local/types.js.map +1 -0
- package/build/run/local.d.ts +3 -0
- package/build/run/local.d.ts.map +1 -0
- package/build/run/local.js +130 -0
- package/build/run/local.js.map +1 -0
- package/build/run/process/types.d.ts +15 -0
- package/build/run/process/types.d.ts.map +1 -0
- package/build/run/process/types.js +2 -0
- package/build/run/process/types.js.map +1 -0
- package/build/run/process.d.ts +4 -0
- package/build/run/process.d.ts.map +1 -0
- package/build/run/process.js +20 -0
- package/build/run/process.js.map +1 -0
- package/build/run/serve.d.ts +14 -9
- package/build/run/serve.d.ts.map +1 -1
- package/build/run/serve.js +1 -25
- package/build/run/serve.js.map +1 -1
- package/build/run/state/types.d.ts +35 -0
- package/build/run/state/types.d.ts.map +1 -0
- package/build/run/state/types.js +2 -0
- package/build/run/state/types.js.map +1 -0
- package/build/run/state.d.ts +3 -62
- package/build/run/state.d.ts.map +1 -1
- package/build/run/state.js +96 -123
- package/build/run/state.js.map +1 -1
- package/build/run/types.d.ts +78 -0
- package/build/run/types.d.ts.map +1 -0
- package/build/run/types.js +2 -0
- package/build/run/types.js.map +1 -0
- package/build/session/consts.local.d.ts +5 -0
- package/build/session/consts.local.d.ts.map +1 -0
- package/build/session/consts.local.js +5 -0
- package/build/session/consts.local.js.map +1 -0
- package/build/session/index.d.ts +5 -10
- package/build/session/index.d.ts.map +1 -1
- package/build/session/index.js +84 -15
- package/build/session/index.js.map +1 -1
- package/build/session/questions.d.ts +16 -0
- package/build/session/questions.d.ts.map +1 -0
- package/build/session/questions.js +17 -0
- package/build/session/questions.js.map +1 -0
- package/build/session/queue.d.ts +61 -0
- package/build/session/queue.d.ts.map +1 -0
- package/build/session/queue.js +156 -0
- package/build/session/queue.js.map +1 -0
- package/build/session/tasks.d.ts +11 -30
- package/build/session/tasks.d.ts.map +1 -1
- package/build/session/tasks.js +18 -78
- package/build/session/tasks.js.map +1 -1
- package/build/session/types.d.ts +20 -0
- package/build/session/types.d.ts.map +1 -0
- package/build/session/types.js +2 -0
- package/build/session/types.js.map +1 -0
- package/build/task/consts.d.ts +12 -0
- package/build/task/consts.d.ts.map +1 -0
- package/build/task/consts.js +12 -0
- package/build/task/consts.js.map +1 -0
- package/build/task/consts.local.d.ts +19 -0
- package/build/task/consts.local.d.ts.map +1 -0
- package/build/task/consts.local.js +72 -0
- package/build/task/consts.local.js.map +1 -0
- package/build/task/driver.d.ts +1 -28
- package/build/task/driver.d.ts.map +1 -1
- package/build/task/driver.js +2 -9
- package/build/task/driver.js.map +1 -1
- package/build/task/envelope/types.d.ts +29 -0
- package/build/task/envelope/types.d.ts.map +1 -0
- package/build/task/envelope/types.js +2 -0
- package/build/task/envelope/types.js.map +1 -0
- package/build/task/envelope.d.ts +4 -34
- package/build/task/envelope.d.ts.map +1 -1
- package/build/task/envelope.js +103 -165
- package/build/task/envelope.js.map +1 -1
- package/build/task/index.d.ts +5 -0
- package/build/task/index.d.ts.map +1 -1
- package/build/task/index.js +2 -0
- package/build/task/index.js.map +1 -1
- package/build/task/inquiry/types.d.ts +38 -0
- package/build/task/inquiry/types.d.ts.map +1 -0
- package/build/task/inquiry/types.js +2 -0
- package/build/task/inquiry/types.js.map +1 -0
- package/build/task/inquiry.d.ts +5 -0
- package/build/task/inquiry.d.ts.map +1 -0
- package/build/task/inquiry.js +188 -0
- package/build/task/inquiry.js.map +1 -0
- package/build/task/types.d.ts +48 -0
- package/build/task/types.d.ts.map +1 -0
- package/build/task/types.js +2 -0
- package/build/task/types.js.map +1 -0
- package/build/tools/account/types.d.ts +24 -0
- package/build/tools/account/types.d.ts.map +1 -0
- package/build/tools/account/types.js +2 -0
- package/build/tools/account/types.js.map +1 -0
- package/build/tools/account.d.ts +4 -0
- package/build/tools/account.d.ts.map +1 -0
- package/build/tools/account.js +72 -0
- package/build/tools/account.js.map +1 -0
- package/build/tools/blueprints/types.d.ts +5 -0
- package/build/tools/blueprints/types.d.ts.map +1 -0
- package/build/tools/blueprints/types.js +2 -0
- package/build/tools/blueprints/types.js.map +1 -0
- package/build/tools/blueprints.d.ts +4 -0
- package/build/tools/blueprints.d.ts.map +1 -0
- package/build/tools/blueprints.js +23 -0
- package/build/tools/blueprints.js.map +1 -0
- package/build/tools/catalogue/types.d.ts +8 -0
- package/build/tools/catalogue/types.d.ts.map +1 -0
- package/build/tools/catalogue/types.js +2 -0
- package/build/tools/catalogue/types.js.map +1 -0
- package/build/tools/catalogue.d.ts +8 -6
- package/build/tools/catalogue.d.ts.map +1 -1
- package/build/tools/catalogue.js +2565 -213
- package/build/tools/catalogue.js.map +1 -1
- package/build/tools/config/types.d.ts +19 -0
- package/build/tools/config/types.d.ts.map +1 -0
- package/build/tools/config/types.js +2 -0
- package/build/tools/config/types.js.map +1 -0
- package/build/tools/config.d.ts +4 -0
- package/build/tools/config.d.ts.map +1 -0
- package/build/tools/config.js +42 -0
- package/build/tools/config.js.map +1 -0
- package/build/tools/consts.d.ts +61 -0
- package/build/tools/consts.d.ts.map +1 -0
- package/build/tools/consts.js +515 -0
- package/build/tools/consts.js.map +1 -0
- package/build/tools/consts.local.d.ts +131 -0
- package/build/tools/consts.local.d.ts.map +1 -0
- package/build/tools/consts.local.js +236 -0
- package/build/tools/consts.local.js.map +1 -0
- package/build/tools/control/types.d.ts +17 -0
- package/build/tools/control/types.d.ts.map +1 -0
- package/build/tools/control/types.js +2 -0
- package/build/tools/control/types.js.map +1 -0
- package/build/tools/control.d.ts +4 -0
- package/build/tools/control.d.ts.map +1 -0
- package/build/tools/control.js +44 -0
- package/build/tools/control.js.map +1 -0
- package/build/tools/feed/types.d.ts +21 -0
- package/build/tools/feed/types.d.ts.map +1 -0
- package/build/tools/feed/types.js +2 -0
- package/build/tools/feed/types.js.map +1 -0
- package/build/tools/feed.d.ts +4 -0
- package/build/tools/feed.d.ts.map +1 -0
- package/build/tools/feed.js +75 -0
- package/build/tools/feed.js.map +1 -0
- package/build/tools/git/types.d.ts +25 -0
- package/build/tools/git/types.d.ts.map +1 -0
- package/build/tools/git/types.js +2 -0
- package/build/tools/git/types.js.map +1 -0
- package/build/tools/git.d.ts +4 -0
- package/build/tools/git.d.ts.map +1 -0
- package/build/tools/git.js +83 -0
- package/build/tools/git.js.map +1 -0
- package/build/tools/handover/types.d.ts +49 -0
- package/build/tools/handover/types.d.ts.map +1 -0
- package/build/tools/handover/types.js +2 -0
- package/build/tools/handover/types.js.map +1 -0
- package/build/tools/handover.d.ts +8 -0
- package/build/tools/handover.d.ts.map +1 -0
- package/build/tools/handover.js +138 -0
- package/build/tools/handover.js.map +1 -0
- package/build/tools/host/types.d.ts +34 -0
- package/build/tools/host/types.d.ts.map +1 -0
- package/build/tools/host/types.js +2 -0
- package/build/tools/host/types.js.map +1 -0
- package/build/tools/host.d.ts +4 -0
- package/build/tools/host.d.ts.map +1 -0
- package/build/tools/host.js +13 -0
- package/build/tools/host.js.map +1 -0
- package/build/tools/iam/types.d.ts +44 -0
- package/build/tools/iam/types.d.ts.map +1 -0
- package/build/tools/iam/types.js +2 -0
- package/build/tools/iam/types.js.map +1 -0
- package/build/tools/iam.d.ts +4 -0
- package/build/tools/iam.d.ts.map +1 -0
- package/build/tools/iam.js +229 -0
- package/build/tools/iam.js.map +1 -0
- package/build/tools/index.d.ts +27 -1
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +14 -1
- package/build/tools/index.js.map +1 -1
- package/build/tools/inflight/types.d.ts +47 -0
- package/build/tools/inflight/types.d.ts.map +1 -0
- package/build/tools/inflight/types.js +2 -0
- package/build/tools/inflight/types.js.map +1 -0
- package/build/tools/inflight.d.ts +3 -0
- package/build/tools/inflight.d.ts.map +1 -0
- package/build/tools/inflight.js +88 -0
- package/build/tools/inflight.js.map +1 -0
- package/build/tools/kits/types.d.ts +12 -0
- package/build/tools/kits/types.d.ts.map +1 -0
- package/build/tools/kits/types.js +2 -0
- package/build/tools/kits/types.js.map +1 -0
- package/build/tools/kits.d.ts +4 -0
- package/build/tools/kits.d.ts.map +1 -0
- package/build/tools/kits.js +33 -0
- package/build/tools/kits.js.map +1 -0
- package/build/tools/mcp.d.ts +13 -19
- package/build/tools/mcp.d.ts.map +1 -1
- package/build/tools/mcp.js +117 -38
- package/build/tools/mcp.js.map +1 -1
- package/build/tools/platform.d.ts +14 -0
- package/build/tools/platform.d.ts.map +1 -0
- package/build/tools/platform.js +90 -0
- package/build/tools/platform.js.map +1 -0
- package/build/tools/production/types.d.ts +22 -0
- package/build/tools/production/types.d.ts.map +1 -0
- package/build/tools/production/types.js +2 -0
- package/build/tools/production/types.js.map +1 -0
- package/build/tools/production.d.ts +4 -0
- package/build/tools/production.d.ts.map +1 -0
- package/build/tools/production.js +80 -0
- package/build/tools/production.js.map +1 -0
- package/build/tools/refusal/types.d.ts +95 -0
- package/build/tools/refusal/types.d.ts.map +1 -0
- package/build/tools/refusal/types.js +2 -0
- package/build/tools/refusal/types.js.map +1 -0
- package/build/tools/refusal.d.ts +4 -0
- package/build/tools/refusal.d.ts.map +1 -0
- package/build/tools/refusal.js +663 -0
- package/build/tools/refusal.js.map +1 -0
- package/build/tools/settings/types.d.ts +42 -0
- package/build/tools/settings/types.d.ts.map +1 -0
- package/build/tools/settings/types.js +2 -0
- package/build/tools/settings/types.js.map +1 -0
- package/build/tools/settings.d.ts +4 -0
- package/build/tools/settings.d.ts.map +1 -0
- package/build/tools/settings.js +71 -0
- package/build/tools/settings.js.map +1 -0
- package/build/tools/status/types.d.ts +25 -0
- package/build/tools/status/types.d.ts.map +1 -0
- package/build/tools/status/types.js +2 -0
- package/build/tools/status/types.js.map +1 -0
- package/build/tools/status.d.ts +4 -0
- package/build/tools/status.d.ts.map +1 -0
- package/build/tools/status.js +183 -0
- package/build/tools/status.js.map +1 -0
- package/build/tools/stories/types.d.ts +48 -0
- package/build/tools/stories/types.d.ts.map +1 -0
- package/build/tools/stories/types.js +2 -0
- package/build/tools/stories/types.js.map +1 -0
- package/build/tools/stories.d.ts +8 -0
- package/build/tools/stories.d.ts.map +1 -0
- package/build/tools/stories.js +79 -0
- package/build/tools/stories.js.map +1 -0
- package/build/tools/types.d.ts +177 -26
- package/build/tools/types.d.ts.map +1 -1
- package/build/tools/types.js +1 -32
- package/build/tools/types.js.map +1 -1
- package/build/types.d.ts +391 -26
- package/build/types.d.ts.map +1 -1
- package/build/utils.d.ts +8 -0
- package/build/utils.d.ts.map +1 -0
- package/build/utils.js +12 -0
- package/build/utils.js.map +1 -0
- package/package.json +30 -34
- package/build/harness/index.d.ts +0 -28
- package/build/harness/index.d.ts.map +0 -1
- package/build/harness/index.js +0 -83
- package/build/harness/index.js.map +0 -1
- package/build/harness/templates.d.ts +0 -30
- package/build/harness/templates.d.ts.map +0 -1
- package/build/harness/templates.js +0 -154
- package/build/harness/templates.js.map +0 -1
- package/build/tools/jobs.d.ts +0 -12
- package/build/tools/jobs.d.ts.map +0 -1
- package/build/tools/jobs.js +0 -47
- package/build/tools/jobs.js.map +0 -1
package/build/session/index.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import { ConnectOpErrorKind, ConnectOpKind, ConnectSessionStatus } from '@owlmeans/viable-common';
|
|
2
2
|
import { PULL_WAIT_MS } from '../consts.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { makeProjectEnvHelper } from '../project/env.js';
|
|
4
|
+
import { makeMarkerHelper } from '../project/marker.js';
|
|
5
|
+
import { QuestionQueue } from './questions.js';
|
|
5
6
|
import { TaskQueue } from './tasks.js';
|
|
7
|
+
import { EMPTY_PULL_PAUSE_MS, FAST_PULL_MS } from './consts.local.js';
|
|
6
8
|
/**
|
|
7
9
|
* One attached connector, running.
|
|
8
10
|
*
|
|
9
|
-
* The loop
|
|
10
|
-
*
|
|
11
|
-
* end of a local operation is a filesystem the platform
|
|
12
|
-
* concurrent template writes into the same tree is not a
|
|
13
|
-
* tree.
|
|
11
|
+
* Two loops. The PULL loop never stops to execute anything: it files model tasks and questions for
|
|
12
|
+
* the parent agent and hands every local operation to the WORKER, which answers them one at a time.
|
|
13
|
+
* Serial because the thing on the other end of a local operation is a filesystem the platform
|
|
14
|
+
* believes it is the only writer of — two concurrent template writes into the same tree is not a
|
|
15
|
+
* throughput problem, it is a corrupted tree. Separate because a local command can take minutes (a
|
|
16
|
+
* `bun install`), and a pull loop that waited for it would leave a model task the platform is
|
|
17
|
+
* blocked on undelivered for exactly that long.
|
|
14
18
|
*
|
|
15
19
|
* Results are remembered by operation id. A connector that reconnects is handed everything still
|
|
16
20
|
* outstanding, including whatever it had already answered when the connection dropped, and
|
|
@@ -32,12 +36,13 @@ const recordMarker = async (opts, projectId) => {
|
|
|
32
36
|
const dir = opts.open.projectDir;
|
|
33
37
|
if (dir == null)
|
|
34
38
|
return;
|
|
39
|
+
const markers = makeMarkerHelper(dir);
|
|
35
40
|
try {
|
|
36
|
-
const existing = await readMarker(
|
|
41
|
+
const existing = await markers.readMarker();
|
|
37
42
|
if (existing?.projectId === projectId)
|
|
38
43
|
return;
|
|
39
44
|
const status = await opts.api.project.status(projectId);
|
|
40
|
-
await writeMarker(
|
|
45
|
+
await markers.writeMarker({
|
|
41
46
|
version: 1,
|
|
42
47
|
apiUrl: opts.apiUrl ?? '',
|
|
43
48
|
projectId,
|
|
@@ -55,12 +60,18 @@ export const openSession = async (opts) => {
|
|
|
55
60
|
if (session.projectId != null)
|
|
56
61
|
await recordMarker(opts, session.projectId);
|
|
57
62
|
const tasks = new TaskQueue();
|
|
63
|
+
const questions = new QuestionQueue();
|
|
58
64
|
const answered = new Map();
|
|
65
|
+
/** Local operations queued for or running on the worker — a redelivery of one is not queued twice. */
|
|
66
|
+
const working = new Set();
|
|
67
|
+
let worker = Promise.resolve();
|
|
59
68
|
const stats = {
|
|
60
69
|
opsDone: 0,
|
|
61
70
|
opsFailed: 0,
|
|
62
71
|
tasksDelivered: 0,
|
|
63
72
|
tasksSubmitted: 0,
|
|
73
|
+
questionsDelivered: 0,
|
|
74
|
+
questionsAnswered: 0,
|
|
64
75
|
lastActivityAt: Date.now(),
|
|
65
76
|
transport: 'pull',
|
|
66
77
|
};
|
|
@@ -92,9 +103,37 @@ export const openSession = async (opts) => {
|
|
|
92
103
|
}
|
|
93
104
|
return;
|
|
94
105
|
}
|
|
106
|
+
if (op.kind === ConnectOpKind.Inquiry) {
|
|
107
|
+
// Executed by nobody: it is a decision about the user's own project, and a connector that
|
|
108
|
+
// answered one itself would build a whole application on a guess nobody made. Queued for
|
|
109
|
+
// the parent agent to put to a person, exactly as a model task is queued for its subagent.
|
|
110
|
+
if (questions.push(op.payload, op.id)) {
|
|
111
|
+
stats.questionsDelivered += 1;
|
|
112
|
+
stats.lastActivityAt = Date.now();
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
// Handed to the worker and never awaited here, so the next pull still delivers the model task
|
|
117
|
+
// the platform may be blocked on while this one runs. A redelivery of an operation that is
|
|
118
|
+
// still queued or running is the same operation, and is not queued again.
|
|
119
|
+
if (working.has(op.id))
|
|
120
|
+
return;
|
|
121
|
+
working.add(op.id);
|
|
122
|
+
worker = worker.then(async () => {
|
|
123
|
+
try {
|
|
124
|
+
if (!closed)
|
|
125
|
+
await execute(op);
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
working.delete(op.id);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
/** One local operation, answered. Never throws: a failure is an answer too. */
|
|
133
|
+
const execute = async (op) => {
|
|
95
134
|
try {
|
|
96
135
|
const value = op.kind === ConnectOpKind.Configure
|
|
97
|
-
? await
|
|
136
|
+
? await makeProjectEnvHelper(requireExecutor().dir).writeEnv(op.payload)
|
|
98
137
|
: await requireExecutor().execute(op.payload);
|
|
99
138
|
stats.opsDone += 1;
|
|
100
139
|
await submit({ opId: op.id, sessionId: session.id, ok: true, value });
|
|
@@ -126,13 +165,13 @@ export const openSession = async (opts) => {
|
|
|
126
165
|
/**
|
|
127
166
|
* The pull loop.
|
|
128
167
|
*
|
|
129
|
-
* A long poll
|
|
130
|
-
*
|
|
131
|
-
* is an optimisation over it, not a replacement for it.
|
|
168
|
+
* A long poll, the connector's only transport: it works through every proxy and needs no
|
|
169
|
+
* reconnection logic.
|
|
132
170
|
*/
|
|
133
171
|
const loop = async () => {
|
|
134
172
|
while (!closed) {
|
|
135
173
|
try {
|
|
174
|
+
const startedAt = Date.now();
|
|
136
175
|
const ops = await opts.api.pullOps(session.id, Math.floor(PULL_WAIT_MS / 1000));
|
|
137
176
|
stats.lastActivityAt = Date.now();
|
|
138
177
|
for (const op of ops) {
|
|
@@ -140,6 +179,11 @@ export const openSession = async (opts) => {
|
|
|
140
179
|
break;
|
|
141
180
|
await perform(op);
|
|
142
181
|
}
|
|
182
|
+
// A long poll that came back empty at once held nothing open — asking again straight away
|
|
183
|
+
// would spin against the platform.
|
|
184
|
+
if (ops.length < 1 && Date.now() - startedAt < FAST_PULL_MS) {
|
|
185
|
+
await new Promise(resolve => setTimeout(resolve, EMPTY_PULL_PAUSE_MS));
|
|
186
|
+
}
|
|
143
187
|
}
|
|
144
188
|
catch (e) {
|
|
145
189
|
if (closed)
|
|
@@ -153,12 +197,13 @@ export const openSession = async (opts) => {
|
|
|
153
197
|
return {
|
|
154
198
|
session,
|
|
155
199
|
stats,
|
|
156
|
-
nextTask: async (waitMs) => {
|
|
157
|
-
const task = await tasks.take(waitMs);
|
|
200
|
+
nextTask: async (waitMs, signal) => {
|
|
201
|
+
const task = await tasks.take(waitMs, signal);
|
|
158
202
|
if (task != null)
|
|
159
203
|
stats.lastActivityAt = Date.now();
|
|
160
204
|
return task;
|
|
161
205
|
},
|
|
206
|
+
taskAvailable: async (waitMs, signal) => await tasks.available(waitMs, signal),
|
|
162
207
|
submitTask: async (result) => {
|
|
163
208
|
const opId = tasks.opIdOf(result.taskId);
|
|
164
209
|
if (opId == null) {
|
|
@@ -172,6 +217,28 @@ export const openSession = async (opts) => {
|
|
|
172
217
|
taskById: taskId => tasks.outstandingById(taskId),
|
|
173
218
|
outstandingTasks: () => tasks.outstandingTasks(),
|
|
174
219
|
pendingTasks: () => tasks.size(),
|
|
220
|
+
nextQuestion: async (waitMs) => {
|
|
221
|
+
const question = await questions.take(waitMs);
|
|
222
|
+
if (question != null)
|
|
223
|
+
stats.lastActivityAt = Date.now();
|
|
224
|
+
return question;
|
|
225
|
+
},
|
|
226
|
+
answerQuestion: async (answer) => {
|
|
227
|
+
const opId = questions.opIdOf(answer.inquiryId);
|
|
228
|
+
if (opId == null) {
|
|
229
|
+
// The question outlived its operation — the run parked and stopped waiting on this
|
|
230
|
+
// session. The answer is not lost: it is sent by id through `connect.inquiry.answer`,
|
|
231
|
+
// which is the caller's fallback and the reason this reports rather than throws.
|
|
232
|
+
log(`no operation is waiting for question ${answer.inquiryId}`);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
questions.settle(answer.inquiryId);
|
|
236
|
+
stats.questionsAnswered += 1;
|
|
237
|
+
await submit({ opId, sessionId: session.id, ok: true, value: answer });
|
|
238
|
+
},
|
|
239
|
+
questionById: inquiryId => questions.outstandingById(inquiryId),
|
|
240
|
+
outstandingQuestions: () => questions.outstandingQuestions(),
|
|
241
|
+
pendingQuestions: () => questions.size(),
|
|
175
242
|
close: async () => {
|
|
176
243
|
closed = true;
|
|
177
244
|
try {
|
|
@@ -184,5 +251,7 @@ export const openSession = async (opts) => {
|
|
|
184
251
|
};
|
|
185
252
|
};
|
|
186
253
|
export { ConnectSessionStatus };
|
|
254
|
+
export * from './queue.js';
|
|
187
255
|
export * from './tasks.js';
|
|
256
|
+
export * from './questions.js';
|
|
188
257
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { InquiryPayload } from '@owlmeans/viable-common';
|
|
2
|
+
import { OpQueue } from './queue.js';
|
|
3
|
+
/**
|
|
4
|
+
* Questions waiting for the person the parent agent is working for.
|
|
5
|
+
*
|
|
6
|
+
* The same queue as the model tasks, and deliberately a SEPARATE one: a question outranks a task
|
|
7
|
+
* because a person is slower than a subagent, and a parent draining one list would hand a question
|
|
8
|
+
* to a subagent — which is precisely the outcome the whole primitive exists to prevent. Nothing
|
|
9
|
+
* here executes anything: a question is delivered, and its answer comes back through the tool the
|
|
10
|
+
* parent calls after asking.
|
|
11
|
+
*/
|
|
12
|
+
export declare class QuestionQueue extends OpQueue<InquiryPayload> {
|
|
13
|
+
/** Put to the parent and still unanswered, oldest first. */
|
|
14
|
+
outstandingQuestions(): InquiryPayload[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=questions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/session/questions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,OAAO,CAAC,cAAc,CAAC;IACxD,4DAA4D;IAC5D,oBAAoB,IAAI,cAAc,EAAE,CAEvC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { OpQueue } from './queue.js';
|
|
2
|
+
/**
|
|
3
|
+
* Questions waiting for the person the parent agent is working for.
|
|
4
|
+
*
|
|
5
|
+
* The same queue as the model tasks, and deliberately a SEPARATE one: a question outranks a task
|
|
6
|
+
* because a person is slower than a subagent, and a parent draining one list would hand a question
|
|
7
|
+
* to a subagent — which is precisely the outcome the whole primitive exists to prevent. Nothing
|
|
8
|
+
* here executes anything: a question is delivered, and its answer comes back through the tool the
|
|
9
|
+
* parent calls after asking.
|
|
10
|
+
*/
|
|
11
|
+
export class QuestionQueue extends OpQueue {
|
|
12
|
+
/** Put to the parent and still unanswered, oldest first. */
|
|
13
|
+
outstandingQuestions() {
|
|
14
|
+
return this.outstanding();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/session/questions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAuB;IACxD,4DAA4D;IAC5D,oBAAoB;QAClB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare class OpQueue<T extends {
|
|
2
|
+
id: string;
|
|
3
|
+
}> {
|
|
4
|
+
private readonly order?;
|
|
5
|
+
private readonly queue;
|
|
6
|
+
private readonly ops;
|
|
7
|
+
/**
|
|
8
|
+
* Every item this session has ever been handed.
|
|
9
|
+
*
|
|
10
|
+
* The platform redelivers an operation on every poll until it is answered — that is what makes a
|
|
11
|
+
* connector restart cost a round trip instead of a run. A model task takes a parent agent tens of
|
|
12
|
+
* seconds to answer, so without this the queue grew one copy per poll for the whole time it was
|
|
13
|
+
* being answered, and the parent then ran the same task over and over: real model calls, paid
|
|
14
|
+
* for, thrown away. Kept after settling too, so a redelivery that raced the platform's deletion
|
|
15
|
+
* is ignored rather than answered a second time.
|
|
16
|
+
*/
|
|
17
|
+
private readonly seen;
|
|
18
|
+
/**
|
|
19
|
+
* Handed out and not yet answered. An answer is checked against the item that asked for it.
|
|
20
|
+
*
|
|
21
|
+
* Named `held` rather than `outstanding` so the public reading of it can carry that name: the
|
|
22
|
+
* two subclasses expose it as `outstandingTasks()` / `outstandingQuestions()`, and a field and
|
|
23
|
+
* a method cannot share one name.
|
|
24
|
+
*/
|
|
25
|
+
private readonly held;
|
|
26
|
+
private readonly waiting;
|
|
27
|
+
/** Callers told when an item is QUEUED, without taking it — see {@link OpQueue.available}. */
|
|
28
|
+
private readonly watching;
|
|
29
|
+
/**
|
|
30
|
+
* @param order Which queued item goes first; absent, the oldest. Applied only among items that
|
|
31
|
+
* are queued — one pushed while a caller waits goes straight to that caller.
|
|
32
|
+
*/
|
|
33
|
+
constructor(order?: ((a: T, b: T) => number) | undefined);
|
|
34
|
+
/** @returns whether the item was accepted — `false` for a redelivery of one already handed over. */
|
|
35
|
+
push(item: T, opId: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The next item, or null once `waitMs` elapses or `signal` aborts. Never rejects: nothing to do
|
|
38
|
+
* is not a failure.
|
|
39
|
+
*
|
|
40
|
+
* An aborted wait is REMOVED, not merely ignored. A caller that gave up — a tool that answered on
|
|
41
|
+
* something else first — would otherwise leave a waiter behind that swallows the next item: handed
|
|
42
|
+
* out to nobody, held as outstanding, and never shown to the parent that has to perform it.
|
|
43
|
+
*/
|
|
44
|
+
take(waitMs: number, signal?: AbortSignal): Promise<T | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Whether an item is queued, waiting up to `waitMs` for one; consumes nothing.
|
|
47
|
+
*
|
|
48
|
+
* For a caller that races an item against something else and must not take one it may not use:
|
|
49
|
+
* it learns one is there, then takes it with `take(0)` — which may still answer null when another
|
|
50
|
+
* caller was quicker, so the race goes on.
|
|
51
|
+
*/
|
|
52
|
+
available(waitMs: number, signal?: AbortSignal): Promise<boolean>;
|
|
53
|
+
opIdOf(id: string): string | null;
|
|
54
|
+
outstandingById(id: string): T | null;
|
|
55
|
+
/** Handed out and still unanswered, oldest first. */
|
|
56
|
+
outstanding(): T[];
|
|
57
|
+
settle(id: string): void;
|
|
58
|
+
size(): number;
|
|
59
|
+
private shiftReady;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/session/queue.ts"],"names":[],"mappings":"AAoBA,qBAAa,OAAO,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IA8B/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IA7BnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA4B;IAChD;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C;;;OAGG;IACH,YAA6B,KAAK,CAAC,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,aAAA,EAAI;IAE/D,oGAAoG;IACpG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgBnC;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CA+BlE;IAED;;;;;;OAMG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBtE;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhC;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAEpC;IAED,qDAAqD;IACrD,WAAW,IAAI,CAAC,EAAE,CAEjB;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGvB;IAED,IAAI,IAAI,MAAM,CAEb;IAED,OAAO,CAAC,UAAU;CASnB"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
export class OpQueue {
|
|
2
|
+
order;
|
|
3
|
+
queue = [];
|
|
4
|
+
ops = new Map();
|
|
5
|
+
/**
|
|
6
|
+
* Every item this session has ever been handed.
|
|
7
|
+
*
|
|
8
|
+
* The platform redelivers an operation on every poll until it is answered — that is what makes a
|
|
9
|
+
* connector restart cost a round trip instead of a run. A model task takes a parent agent tens of
|
|
10
|
+
* seconds to answer, so without this the queue grew one copy per poll for the whole time it was
|
|
11
|
+
* being answered, and the parent then ran the same task over and over: real model calls, paid
|
|
12
|
+
* for, thrown away. Kept after settling too, so a redelivery that raced the platform's deletion
|
|
13
|
+
* is ignored rather than answered a second time.
|
|
14
|
+
*/
|
|
15
|
+
seen = new Set();
|
|
16
|
+
/**
|
|
17
|
+
* Handed out and not yet answered. An answer is checked against the item that asked for it.
|
|
18
|
+
*
|
|
19
|
+
* Named `held` rather than `outstanding` so the public reading of it can carry that name: the
|
|
20
|
+
* two subclasses expose it as `outstandingTasks()` / `outstandingQuestions()`, and a field and
|
|
21
|
+
* a method cannot share one name.
|
|
22
|
+
*/
|
|
23
|
+
held = new Map();
|
|
24
|
+
waiting = [];
|
|
25
|
+
/** Callers told when an item is QUEUED, without taking it — see {@link OpQueue.available}. */
|
|
26
|
+
watching = [];
|
|
27
|
+
/**
|
|
28
|
+
* @param order Which queued item goes first; absent, the oldest. Applied only among items that
|
|
29
|
+
* are queued — one pushed while a caller waits goes straight to that caller.
|
|
30
|
+
*/
|
|
31
|
+
constructor(order) {
|
|
32
|
+
this.order = order;
|
|
33
|
+
}
|
|
34
|
+
/** @returns whether the item was accepted — `false` for a redelivery of one already handed over. */
|
|
35
|
+
push(item, opId) {
|
|
36
|
+
// The op id is refreshed even for a known item: a redelivery carries the same id today, and
|
|
37
|
+
// answering the wrong operation is worse than answering none.
|
|
38
|
+
this.ops.set(item.id, opId);
|
|
39
|
+
if (this.seen.has(item.id))
|
|
40
|
+
return false;
|
|
41
|
+
this.seen.add(item.id);
|
|
42
|
+
const next = this.waiting.shift();
|
|
43
|
+
if (next != null) {
|
|
44
|
+
next.resolve(item);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
this.queue.push(item);
|
|
48
|
+
for (const watcher of this.watching.splice(0))
|
|
49
|
+
watcher.resolve(true);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The next item, or null once `waitMs` elapses or `signal` aborts. Never rejects: nothing to do
|
|
54
|
+
* is not a failure.
|
|
55
|
+
*
|
|
56
|
+
* An aborted wait is REMOVED, not merely ignored. A caller that gave up — a tool that answered on
|
|
57
|
+
* something else first — would otherwise leave a waiter behind that swallows the next item: handed
|
|
58
|
+
* out to nobody, held as outstanding, and never shown to the parent that has to perform it.
|
|
59
|
+
*/
|
|
60
|
+
async take(waitMs, signal) {
|
|
61
|
+
const ready = this.shiftReady();
|
|
62
|
+
if (ready != null) {
|
|
63
|
+
this.held.set(ready.id, ready);
|
|
64
|
+
return ready;
|
|
65
|
+
}
|
|
66
|
+
if (waitMs <= 0 || signal?.aborted === true)
|
|
67
|
+
return null;
|
|
68
|
+
return await new Promise(resolve => {
|
|
69
|
+
const leave = () => {
|
|
70
|
+
clearTimeout(entry.timer);
|
|
71
|
+
signal?.removeEventListener('abort', abandon);
|
|
72
|
+
const at = this.waiting.indexOf(entry);
|
|
73
|
+
if (at >= 0)
|
|
74
|
+
this.waiting.splice(at, 1);
|
|
75
|
+
};
|
|
76
|
+
const abandon = () => {
|
|
77
|
+
leave();
|
|
78
|
+
resolve(null);
|
|
79
|
+
};
|
|
80
|
+
const entry = {
|
|
81
|
+
resolve: item => {
|
|
82
|
+
leave();
|
|
83
|
+
if (item != null)
|
|
84
|
+
this.held.set(item.id, item);
|
|
85
|
+
resolve(item);
|
|
86
|
+
},
|
|
87
|
+
timer: setTimeout(abandon, waitMs),
|
|
88
|
+
};
|
|
89
|
+
signal?.addEventListener('abort', abandon, { once: true });
|
|
90
|
+
this.waiting.push(entry);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Whether an item is queued, waiting up to `waitMs` for one; consumes nothing.
|
|
95
|
+
*
|
|
96
|
+
* For a caller that races an item against something else and must not take one it may not use:
|
|
97
|
+
* it learns one is there, then takes it with `take(0)` — which may still answer null when another
|
|
98
|
+
* caller was quicker, so the race goes on.
|
|
99
|
+
*/
|
|
100
|
+
async available(waitMs, signal) {
|
|
101
|
+
if (this.queue.length > 0)
|
|
102
|
+
return true;
|
|
103
|
+
if (waitMs <= 0 || signal?.aborted === true)
|
|
104
|
+
return false;
|
|
105
|
+
return await new Promise(resolve => {
|
|
106
|
+
const leave = () => {
|
|
107
|
+
clearTimeout(entry.timer);
|
|
108
|
+
signal?.removeEventListener('abort', abandon);
|
|
109
|
+
const at = this.watching.indexOf(entry);
|
|
110
|
+
if (at >= 0)
|
|
111
|
+
this.watching.splice(at, 1);
|
|
112
|
+
};
|
|
113
|
+
const abandon = () => {
|
|
114
|
+
leave();
|
|
115
|
+
resolve(false);
|
|
116
|
+
};
|
|
117
|
+
const entry = {
|
|
118
|
+
resolve: ready => {
|
|
119
|
+
leave();
|
|
120
|
+
resolve(ready);
|
|
121
|
+
},
|
|
122
|
+
timer: setTimeout(abandon, waitMs),
|
|
123
|
+
};
|
|
124
|
+
signal?.addEventListener('abort', abandon, { once: true });
|
|
125
|
+
this.watching.push(entry);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
opIdOf(id) {
|
|
129
|
+
return this.ops.get(id) ?? null;
|
|
130
|
+
}
|
|
131
|
+
outstandingById(id) {
|
|
132
|
+
return this.held.get(id) ?? null;
|
|
133
|
+
}
|
|
134
|
+
/** Handed out and still unanswered, oldest first. */
|
|
135
|
+
outstanding() {
|
|
136
|
+
return [...this.held.values()];
|
|
137
|
+
}
|
|
138
|
+
settle(id) {
|
|
139
|
+
this.ops.delete(id);
|
|
140
|
+
this.held.delete(id);
|
|
141
|
+
}
|
|
142
|
+
size() {
|
|
143
|
+
return this.queue.length;
|
|
144
|
+
}
|
|
145
|
+
shiftReady() {
|
|
146
|
+
if (this.order == null || this.queue.length < 2)
|
|
147
|
+
return this.queue.shift();
|
|
148
|
+
let first = 0;
|
|
149
|
+
for (let at = 1; at < this.queue.length; at++) {
|
|
150
|
+
if (this.order(this.queue[at], this.queue[first]) < 0)
|
|
151
|
+
first = at;
|
|
152
|
+
}
|
|
153
|
+
return this.queue.splice(first, 1)[0];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/session/queue.ts"],"names":[],"mappings":"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"}
|
package/build/session/tasks.d.ts
CHANGED
|
@@ -1,40 +1,21 @@
|
|
|
1
1
|
import type { ModelTask } from '@owlmeans/viable-common';
|
|
2
|
+
import { OpQueue } from './queue.js';
|
|
2
3
|
/**
|
|
3
4
|
* Model tasks waiting for the parent agent.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* The operation id is kept beside each task and never shown to the parent. It is what an answer is
|
|
10
|
-
* routed back on, and a parent that could name one could answer an operation it was never given.
|
|
6
|
+
* Everything about how they queue, redeliver and settle is {@link OpQueue}'s; what is left here is
|
|
7
|
+
* the name the rest of the SDK reads them under. A task is a model CALL — the parent runs it in a
|
|
8
|
+
* clean subagent and submits the answer back — which is a different thing from a question, and the
|
|
9
|
+
* two must never drain into one another's tools.
|
|
11
10
|
*/
|
|
12
|
-
export declare class TaskQueue {
|
|
13
|
-
private readonly queue;
|
|
14
|
-
private readonly ops;
|
|
11
|
+
export declare class TaskQueue extends OpQueue<ModelTask> {
|
|
15
12
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* connector restart cost a round trip instead of a run. A model task takes a parent agent tens of
|
|
20
|
-
* seconds to answer, so without this the queue grew one copy per poll for the whole time it was
|
|
21
|
-
* being answered, and the parent then ran the same task over and over: real model calls, paid
|
|
22
|
-
* for, thrown away. Kept after settling too, so a redelivery that raced the platform's deletion
|
|
23
|
-
* is ignored rather than answered a second time.
|
|
13
|
+
* The task that expires first goes first. The platform gives up on a task at its `expiresAt` —
|
|
14
|
+
* a synchronous check inside a blocked call within seconds, a run's call within minutes — so the
|
|
15
|
+
* one with the least time left is the one a parent must not find behind the others.
|
|
24
16
|
*/
|
|
25
|
-
|
|
26
|
-
/** Handed
|
|
27
|
-
private readonly outstanding;
|
|
28
|
-
private readonly waiting;
|
|
29
|
-
/** @returns whether the task was accepted — `false` for a redelivery of one already handed over. */
|
|
30
|
-
push(task: ModelTask, opId: string): boolean;
|
|
31
|
-
/** The next task, or null once `waitMs` elapses. Never rejects: nothing to do is not a failure. */
|
|
32
|
-
take(waitMs: number): Promise<ModelTask | null>;
|
|
33
|
-
opIdOf(taskId: string): string | null;
|
|
34
|
-
outstandingById(taskId: string): ModelTask | null;
|
|
35
|
-
/** Handed out and still unanswered, oldest first. */
|
|
17
|
+
constructor();
|
|
18
|
+
/** Handed to the parent and still unanswered, oldest first. */
|
|
36
19
|
outstandingTasks(): ModelTask[];
|
|
37
|
-
settle(taskId: string): void;
|
|
38
|
-
size(): number;
|
|
39
20
|
}
|
|
40
21
|
//# sourceMappingURL=tasks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/session/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/session/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AASpC;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,OAAO,CAAC,SAAS,CAAC;IAC/C;;;;OAIG;IACH,cAEC;IAED,+DAA+D;IAC/D,gBAAgB,IAAI,SAAS,EAAE,CAE9B;CACF"}
|