@pome-sh/cli 0.1.0 → 0.1.1
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/dist/build-info.json +3 -3
- package/dist/src/doctor/checks.js +2 -2
- package/node_modules/@pome-sh/sdk/dist/db.d.ts +4 -4
- package/node_modules/@pome-sh/sdk/dist/db.js +93 -25
- package/node_modules/@pome-sh/sdk/dist/db.js.map +1 -1
- package/node_modules/@pome-sh/sdk/package.json +2 -6
- package/node_modules/@pome-sh/twin-github/README.md +2 -1
- package/node_modules/@pome-sh/twin-github/package.json +2 -3
- package/node_modules/@pome-sh/twin-slack/package.json +2 -3
- package/node_modules/@pome-sh/twin-stripe/README.md +2 -2
- package/node_modules/@pome-sh/twin-stripe/package.json +2 -3
- package/package.json +6 -7
- package/dist/src/recorder/verdictArtifact.d.ts +0 -71
- package/dist/src/recorder/verdictArtifact.js +0 -207
- package/dist/src/score/view.d.ts +0 -38
- package/dist/src/score/view.js +0 -59
- package/dist/src/twin/github/app.d.ts +0 -10
- package/dist/src/twin/github/app.js +0 -316
- package/dist/src/twin/github/db/migrations.d.ts +0 -2
- package/dist/src/twin/github/db/migrations.js +0 -64
- package/dist/src/twin/github/db/openDatabase.d.ts +0 -2
- package/dist/src/twin/github/db/openDatabase.js +0 -13
- package/dist/src/twin/github/db/queries.d.ts +0 -77
- package/dist/src/twin/github/db/queries.js +0 -93
- package/dist/src/twin/github/domain/seed.d.ts +0 -74
- package/dist/src/twin/github/domain/seed.js +0 -104
- package/dist/src/twin/github/domain/serializers.d.ts +0 -113
- package/dist/src/twin/github/domain/serializers.js +0 -76
- package/dist/src/twin/github/types.d.ts +0 -66
- package/dist/src/twin/github/types.js +0 -1
- package/dist/src/twin-github/app.d.ts +0 -9
- package/dist/src/twin-github/app.js +0 -327
- package/dist/src/twin-github/auth.d.ts +0 -16
- package/dist/src/twin-github/auth.js +0 -142
- package/dist/src/twin-github/build-info.d.ts +0 -7
- package/dist/src/twin-github/build-info.js +0 -52
- package/dist/src/twin-github/db.d.ts +0 -4
- package/dist/src/twin-github/db.js +0 -362
- package/dist/src/twin-github/domain.d.ts +0 -1649
- package/dist/src/twin-github/domain.js +0 -957
- package/dist/src/twin-github/errors.d.ts +0 -14
- package/dist/src/twin-github/errors.js +0 -34
- package/dist/src/twin-github/index.d.ts +0 -9
- package/dist/src/twin-github/index.js +0 -7
- package/dist/src/twin-github/mcp.d.ts +0 -17
- package/dist/src/twin-github/mcp.js +0 -281
- package/dist/src/twin-github/recorder.d.ts +0 -2
- package/dist/src/twin-github/recorder.js +0 -29
- package/dist/src/twin-github/seed.d.ts +0 -74
- package/dist/src/twin-github/seed.js +0 -107
- package/dist/src/twin-github/serializers.d.ts +0 -449
- package/dist/src/twin-github/serializers.js +0 -429
- package/dist/src/twin-github/server.d.ts +0 -1
- package/dist/src/twin-github/server.js +0 -34
- package/dist/src/twin-github/tools.d.ts +0 -1545
- package/dist/src/twin-github/tools.js +0 -347
- package/dist/src/twin-github/types.d.ts +0 -198
- package/dist/src/twin-github/types.js +0 -1
- package/dist/src/twin-github/unsupported-envelope.d.ts +0 -10
- package/dist/src/twin-github/unsupported-envelope.js +0 -29
- package/dist/src/twin-github/util.d.ts +0 -13
- package/dist/src/twin-github/util.js +0 -61
- package/dist/src/twin-slack/app.d.ts +0 -17
- package/dist/src/twin-slack/app.js +0 -683
- package/dist/src/twin-slack/auth.d.ts +0 -38
- package/dist/src/twin-slack/auth.js +0 -219
- package/dist/src/twin-slack/build-info.d.ts +0 -7
- package/dist/src/twin-slack/build-info.js +0 -9
- package/dist/src/twin-slack/db.d.ts +0 -4
- package/dist/src/twin-slack/db.js +0 -213
- package/dist/src/twin-slack/domain.d.ts +0 -236
- package/dist/src/twin-slack/domain.js +0 -1293
- package/dist/src/twin-slack/errors.d.ts +0 -16
- package/dist/src/twin-slack/errors.js +0 -60
- package/dist/src/twin-slack/index.d.ts +0 -8
- package/dist/src/twin-slack/index.js +0 -8
- package/dist/src/twin-slack/mcp.d.ts +0 -17
- package/dist/src/twin-slack/mcp.js +0 -226
- package/dist/src/twin-slack/recorder.d.ts +0 -2
- package/dist/src/twin-slack/recorder.js +0 -15
- package/dist/src/twin-slack/seed.d.ts +0 -49
- package/dist/src/twin-slack/seed.js +0 -139
- package/dist/src/twin-slack/serializers.d.ts +0 -141
- package/dist/src/twin-slack/serializers.js +0 -377
- package/dist/src/twin-slack/tools.d.ts +0 -97
- package/dist/src/twin-slack/tools.js +0 -171
- package/dist/src/twin-slack/types.d.ts +0 -164
- package/dist/src/twin-slack/types.js +0 -1
- package/dist/src/twin-slack/unsupported-envelope.d.ts +0 -12
- package/dist/src/twin-slack/unsupported-envelope.js +0 -61
- package/dist/src/twin-slack/upstream-types.d.ts +0 -19
- package/dist/src/twin-slack/upstream-types.js +0 -1
- package/dist/src/twin-slack/util.d.ts +0 -31
- package/dist/src/twin-slack/util.js +0 -136
- package/node_modules/base64-js/LICENSE +0 -21
- package/node_modules/base64-js/README.md +0 -34
- package/node_modules/base64-js/base64js.min.js +0 -1
- package/node_modules/base64-js/index.d.ts +0 -3
- package/node_modules/base64-js/index.js +0 -150
- package/node_modules/base64-js/package.json +0 -47
- package/node_modules/better-sqlite3/LICENSE +0 -21
- package/node_modules/better-sqlite3/README.md +0 -99
- package/node_modules/better-sqlite3/binding.gyp +0 -38
- package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/node_modules/better-sqlite3/deps/common.gypi +0 -68
- package/node_modules/better-sqlite3/deps/copy.js +0 -31
- package/node_modules/better-sqlite3/deps/defines.gypi +0 -42
- package/node_modules/better-sqlite3/deps/download.sh +0 -123
- package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -269395
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -14347
- package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -739
- package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
- package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
- package/node_modules/better-sqlite3/lib/database.js +0 -90
- package/node_modules/better-sqlite3/lib/index.js +0 -3
- package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
- package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
- package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
- package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
- package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
- package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
- package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
- package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
- package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
- package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
- package/node_modules/better-sqlite3/lib/util.js +0 -12
- package/node_modules/better-sqlite3/package.json +0 -59
- package/node_modules/better-sqlite3/src/addon.cpp +0 -47
- package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
- package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
- package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
- package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
- package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
- package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
- package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
- package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
- package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
- package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
- package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
- package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
- package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
- package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
- package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
- package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
- package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
- package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
- package/node_modules/better-sqlite3/src/util/macros.cpp +0 -90
- package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
- package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
- package/node_modules/bindings/LICENSE.md +0 -22
- package/node_modules/bindings/README.md +0 -98
- package/node_modules/bindings/bindings.js +0 -221
- package/node_modules/bindings/package.json +0 -28
- package/node_modules/bl/.travis.yml +0 -17
- package/node_modules/bl/BufferList.js +0 -396
- package/node_modules/bl/LICENSE.md +0 -13
- package/node_modules/bl/README.md +0 -247
- package/node_modules/bl/bl.js +0 -84
- package/node_modules/bl/package.json +0 -37
- package/node_modules/bl/test/convert.js +0 -21
- package/node_modules/bl/test/indexOf.js +0 -492
- package/node_modules/bl/test/isBufferList.js +0 -32
- package/node_modules/bl/test/test.js +0 -869
- package/node_modules/buffer/AUTHORS.md +0 -70
- package/node_modules/buffer/LICENSE +0 -21
- package/node_modules/buffer/README.md +0 -410
- package/node_modules/buffer/index.d.ts +0 -186
- package/node_modules/buffer/index.js +0 -1817
- package/node_modules/buffer/package.json +0 -96
- package/node_modules/chownr/LICENSE +0 -15
- package/node_modules/chownr/README.md +0 -3
- package/node_modules/chownr/chownr.js +0 -167
- package/node_modules/chownr/package.json +0 -29
- package/node_modules/decompress-response/index.d.ts +0 -22
- package/node_modules/decompress-response/index.js +0 -58
- package/node_modules/decompress-response/license +0 -9
- package/node_modules/decompress-response/package.json +0 -56
- package/node_modules/decompress-response/readme.md +0 -48
- package/node_modules/deep-extend/CHANGELOG.md +0 -46
- package/node_modules/deep-extend/LICENSE +0 -20
- package/node_modules/deep-extend/README.md +0 -91
- package/node_modules/deep-extend/index.js +0 -1
- package/node_modules/deep-extend/lib/deep-extend.js +0 -150
- package/node_modules/deep-extend/package.json +0 -62
- package/node_modules/detect-libc/LICENSE +0 -201
- package/node_modules/detect-libc/README.md +0 -163
- package/node_modules/detect-libc/index.d.ts +0 -14
- package/node_modules/detect-libc/lib/detect-libc.js +0 -313
- package/node_modules/detect-libc/lib/elf.js +0 -39
- package/node_modules/detect-libc/lib/filesystem.js +0 -51
- package/node_modules/detect-libc/lib/process.js +0 -24
- package/node_modules/detect-libc/package.json +0 -44
- package/node_modules/end-of-stream/LICENSE +0 -21
- package/node_modules/end-of-stream/README.md +0 -54
- package/node_modules/end-of-stream/index.js +0 -96
- package/node_modules/end-of-stream/package.json +0 -37
- package/node_modules/expand-template/.travis.yml +0 -6
- package/node_modules/expand-template/LICENSE +0 -21
- package/node_modules/expand-template/README.md +0 -43
- package/node_modules/expand-template/index.js +0 -26
- package/node_modules/expand-template/package.json +0 -29
- package/node_modules/expand-template/test.js +0 -67
- package/node_modules/file-uri-to-path/.npmignore +0 -1
- package/node_modules/file-uri-to-path/.travis.yml +0 -30
- package/node_modules/file-uri-to-path/History.md +0 -21
- package/node_modules/file-uri-to-path/LICENSE +0 -20
- package/node_modules/file-uri-to-path/README.md +0 -74
- package/node_modules/file-uri-to-path/index.d.ts +0 -2
- package/node_modules/file-uri-to-path/index.js +0 -66
- package/node_modules/file-uri-to-path/package.json +0 -32
- package/node_modules/file-uri-to-path/test/test.js +0 -24
- package/node_modules/file-uri-to-path/test/tests.json +0 -13
- package/node_modules/fs-constants/LICENSE +0 -21
- package/node_modules/fs-constants/README.md +0 -26
- package/node_modules/fs-constants/browser.js +0 -1
- package/node_modules/fs-constants/index.js +0 -1
- package/node_modules/fs-constants/package.json +0 -19
- package/node_modules/github-from-package/.travis.yml +0 -4
- package/node_modules/github-from-package/LICENSE +0 -18
- package/node_modules/github-from-package/example/package.json +0 -8
- package/node_modules/github-from-package/example/url.js +0 -3
- package/node_modules/github-from-package/index.js +0 -17
- package/node_modules/github-from-package/package.json +0 -30
- package/node_modules/github-from-package/readme.markdown +0 -53
- package/node_modules/github-from-package/test/a.json +0 -8
- package/node_modules/github-from-package/test/b.json +0 -5
- package/node_modules/github-from-package/test/c.json +0 -5
- package/node_modules/github-from-package/test/d.json +0 -7
- package/node_modules/github-from-package/test/e.json +0 -5
- package/node_modules/github-from-package/test/url.js +0 -19
- package/node_modules/ieee754/LICENSE +0 -11
- package/node_modules/ieee754/README.md +0 -51
- package/node_modules/ieee754/index.d.ts +0 -10
- package/node_modules/ieee754/index.js +0 -85
- package/node_modules/ieee754/package.json +0 -52
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/ini/LICENSE +0 -15
- package/node_modules/ini/README.md +0 -102
- package/node_modules/ini/ini.js +0 -206
- package/node_modules/ini/package.json +0 -33
- package/node_modules/mimic-response/index.d.ts +0 -17
- package/node_modules/mimic-response/index.js +0 -77
- package/node_modules/mimic-response/license +0 -9
- package/node_modules/mimic-response/package.json +0 -42
- package/node_modules/mimic-response/readme.md +0 -78
- package/node_modules/minimist/.eslintrc +0 -29
- package/node_modules/minimist/.github/FUNDING.yml +0 -12
- package/node_modules/minimist/.nycrc +0 -14
- package/node_modules/minimist/CHANGELOG.md +0 -298
- package/node_modules/minimist/LICENSE +0 -18
- package/node_modules/minimist/README.md +0 -121
- package/node_modules/minimist/example/parse.js +0 -4
- package/node_modules/minimist/index.js +0 -263
- package/node_modules/minimist/package.json +0 -75
- package/node_modules/minimist/test/all_bool.js +0 -34
- package/node_modules/minimist/test/bool.js +0 -177
- package/node_modules/minimist/test/dash.js +0 -43
- package/node_modules/minimist/test/default_bool.js +0 -37
- package/node_modules/minimist/test/dotted.js +0 -24
- package/node_modules/minimist/test/kv_short.js +0 -32
- package/node_modules/minimist/test/long.js +0 -33
- package/node_modules/minimist/test/num.js +0 -38
- package/node_modules/minimist/test/parse.js +0 -209
- package/node_modules/minimist/test/parse_modified.js +0 -11
- package/node_modules/minimist/test/proto.js +0 -64
- package/node_modules/minimist/test/short.js +0 -69
- package/node_modules/minimist/test/stop_early.js +0 -17
- package/node_modules/minimist/test/unknown.js +0 -104
- package/node_modules/minimist/test/whitespace.js +0 -10
- package/node_modules/mkdirp-classic/LICENSE +0 -21
- package/node_modules/mkdirp-classic/README.md +0 -18
- package/node_modules/mkdirp-classic/index.js +0 -98
- package/node_modules/mkdirp-classic/package.json +0 -18
- package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
- package/node_modules/napi-build-utils/LICENSE +0 -21
- package/node_modules/napi-build-utils/README.md +0 -52
- package/node_modules/napi-build-utils/index.js +0 -214
- package/node_modules/napi-build-utils/index.md +0 -0
- package/node_modules/napi-build-utils/package.json +0 -42
- package/node_modules/node-abi/LICENSE +0 -21
- package/node_modules/node-abi/README.md +0 -54
- package/node_modules/node-abi/abi_registry.json +0 -453
- package/node_modules/node-abi/index.js +0 -179
- package/node_modules/node-abi/package.json +0 -45
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/prebuild-install/CHANGELOG.md +0 -131
- package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
- package/node_modules/prebuild-install/LICENSE +0 -21
- package/node_modules/prebuild-install/README.md +0 -163
- package/node_modules/prebuild-install/asset.js +0 -44
- package/node_modules/prebuild-install/bin.js +0 -78
- package/node_modules/prebuild-install/download.js +0 -142
- package/node_modules/prebuild-install/error.js +0 -14
- package/node_modules/prebuild-install/help.txt +0 -16
- package/node_modules/prebuild-install/index.js +0 -1
- package/node_modules/prebuild-install/log.js +0 -33
- package/node_modules/prebuild-install/package.json +0 -67
- package/node_modules/prebuild-install/proxy.js +0 -35
- package/node_modules/prebuild-install/rc.js +0 -64
- package/node_modules/prebuild-install/util.js +0 -143
- package/node_modules/pump/.github/FUNDING.yml +0 -2
- package/node_modules/pump/.travis.yml +0 -5
- package/node_modules/pump/LICENSE +0 -21
- package/node_modules/pump/README.md +0 -74
- package/node_modules/pump/SECURITY.md +0 -5
- package/node_modules/pump/empty.js +0 -1
- package/node_modules/pump/index.js +0 -86
- package/node_modules/pump/package.json +0 -30
- package/node_modules/pump/test-browser.js +0 -66
- package/node_modules/pump/test-node.js +0 -53
- package/node_modules/rc/LICENSE.APACHE2 +0 -15
- package/node_modules/rc/LICENSE.BSD +0 -26
- package/node_modules/rc/LICENSE.MIT +0 -24
- package/node_modules/rc/README.md +0 -227
- package/node_modules/rc/browser.js +0 -7
- package/node_modules/rc/cli.js +0 -4
- package/node_modules/rc/index.js +0 -53
- package/node_modules/rc/lib/utils.js +0 -104
- package/node_modules/rc/package.json +0 -29
- package/node_modules/rc/test/ini.js +0 -16
- package/node_modules/rc/test/nested-env-vars.js +0 -50
- package/node_modules/rc/test/test.js +0 -59
- package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
- package/node_modules/readable-stream/GOVERNANCE.md +0 -136
- package/node_modules/readable-stream/LICENSE +0 -47
- package/node_modules/readable-stream/README.md +0 -106
- package/node_modules/readable-stream/errors-browser.js +0 -127
- package/node_modules/readable-stream/errors.js +0 -116
- package/node_modules/readable-stream/experimentalWarning.js +0 -17
- package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
- package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
- package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
- package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
- package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
- package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
- package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
- package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
- package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
- package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
- package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
- package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
- package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
- package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
- package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
- package/node_modules/readable-stream/package.json +0 -68
- package/node_modules/readable-stream/readable-browser.js +0 -9
- package/node_modules/readable-stream/readable.js +0 -16
- package/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/safe-buffer/index.js +0 -65
- package/node_modules/safe-buffer/package.json +0 -51
- package/node_modules/semver/LICENSE +0 -15
- package/node_modules/semver/README.md +0 -680
- package/node_modules/semver/bin/semver.js +0 -195
- package/node_modules/semver/classes/comparator.js +0 -143
- package/node_modules/semver/classes/index.js +0 -7
- package/node_modules/semver/classes/range.js +0 -577
- package/node_modules/semver/classes/semver.js +0 -350
- package/node_modules/semver/functions/clean.js +0 -8
- package/node_modules/semver/functions/cmp.js +0 -54
- package/node_modules/semver/functions/coerce.js +0 -62
- package/node_modules/semver/functions/compare-build.js +0 -9
- package/node_modules/semver/functions/compare-loose.js +0 -5
- package/node_modules/semver/functions/compare.js +0 -7
- package/node_modules/semver/functions/diff.js +0 -60
- package/node_modules/semver/functions/eq.js +0 -5
- package/node_modules/semver/functions/gt.js +0 -5
- package/node_modules/semver/functions/gte.js +0 -5
- package/node_modules/semver/functions/inc.js +0 -21
- package/node_modules/semver/functions/lt.js +0 -5
- package/node_modules/semver/functions/lte.js +0 -5
- package/node_modules/semver/functions/major.js +0 -5
- package/node_modules/semver/functions/minor.js +0 -5
- package/node_modules/semver/functions/neq.js +0 -5
- package/node_modules/semver/functions/parse.js +0 -18
- package/node_modules/semver/functions/patch.js +0 -5
- package/node_modules/semver/functions/prerelease.js +0 -8
- package/node_modules/semver/functions/rcompare.js +0 -5
- package/node_modules/semver/functions/rsort.js +0 -5
- package/node_modules/semver/functions/satisfies.js +0 -12
- package/node_modules/semver/functions/sort.js +0 -5
- package/node_modules/semver/functions/truncate.js +0 -48
- package/node_modules/semver/functions/valid.js +0 -8
- package/node_modules/semver/index.js +0 -93
- package/node_modules/semver/internal/constants.js +0 -37
- package/node_modules/semver/internal/debug.js +0 -11
- package/node_modules/semver/internal/identifiers.js +0 -29
- package/node_modules/semver/internal/lrucache.js +0 -42
- package/node_modules/semver/internal/parse-options.js +0 -17
- package/node_modules/semver/internal/re.js +0 -223
- package/node_modules/semver/package.json +0 -78
- package/node_modules/semver/preload.js +0 -4
- package/node_modules/semver/range.bnf +0 -17
- package/node_modules/semver/ranges/gtr.js +0 -6
- package/node_modules/semver/ranges/intersects.js +0 -9
- package/node_modules/semver/ranges/ltr.js +0 -6
- package/node_modules/semver/ranges/max-satisfying.js +0 -27
- package/node_modules/semver/ranges/min-satisfying.js +0 -26
- package/node_modules/semver/ranges/min-version.js +0 -63
- package/node_modules/semver/ranges/outside.js +0 -82
- package/node_modules/semver/ranges/simplify.js +0 -49
- package/node_modules/semver/ranges/subset.js +0 -249
- package/node_modules/semver/ranges/to-comparators.js +0 -10
- package/node_modules/semver/ranges/valid.js +0 -13
- package/node_modules/simple-concat/.travis.yml +0 -3
- package/node_modules/simple-concat/LICENSE +0 -20
- package/node_modules/simple-concat/README.md +0 -44
- package/node_modules/simple-concat/index.js +0 -15
- package/node_modules/simple-concat/package.json +0 -47
- package/node_modules/simple-concat/test/basic.js +0 -41
- package/node_modules/simple-get/.github/dependabot.yml +0 -15
- package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
- package/node_modules/simple-get/LICENSE +0 -20
- package/node_modules/simple-get/README.md +0 -333
- package/node_modules/simple-get/index.js +0 -108
- package/node_modules/simple-get/package.json +0 -67
- package/node_modules/string_decoder/LICENSE +0 -48
- package/node_modules/string_decoder/README.md +0 -47
- package/node_modules/string_decoder/lib/string_decoder.js +0 -296
- package/node_modules/string_decoder/package.json +0 -34
- package/node_modules/strip-json-comments/index.js +0 -70
- package/node_modules/strip-json-comments/license +0 -21
- package/node_modules/strip-json-comments/package.json +0 -42
- package/node_modules/strip-json-comments/readme.md +0 -64
- package/node_modules/tar-fs/.travis.yml +0 -6
- package/node_modules/tar-fs/LICENSE +0 -21
- package/node_modules/tar-fs/README.md +0 -165
- package/node_modules/tar-fs/index.js +0 -392
- package/node_modules/tar-fs/package.json +0 -46
- package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
- package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
- package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
- package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
- package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
- package/node_modules/tar-fs/test/fixtures/e/file +0 -0
- package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
- package/node_modules/tar-fs/test/index.js +0 -457
- package/node_modules/tar-stream/LICENSE +0 -21
- package/node_modules/tar-stream/README.md +0 -168
- package/node_modules/tar-stream/extract.js +0 -257
- package/node_modules/tar-stream/headers.js +0 -295
- package/node_modules/tar-stream/index.js +0 -2
- package/node_modules/tar-stream/pack.js +0 -255
- package/node_modules/tar-stream/package.json +0 -58
- package/node_modules/tar-stream/sandbox.js +0 -11
- package/node_modules/tunnel-agent/LICENSE +0 -55
- package/node_modules/tunnel-agent/README.md +0 -4
- package/node_modules/tunnel-agent/index.js +0 -244
- package/node_modules/tunnel-agent/package.json +0 -22
- package/node_modules/util-deprecate/History.md +0 -16
- package/node_modules/util-deprecate/LICENSE +0 -24
- package/node_modules/util-deprecate/README.md +0 -53
- package/node_modules/util-deprecate/browser.js +0 -67
- package/node_modules/util-deprecate/node.js +0 -6
- package/node_modules/util-deprecate/package.json +0 -27
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
package/dist/build-info.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"package": "pome-sh",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"git_sha": "
|
|
5
|
-
"build_time": "2026-07-
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"git_sha": "304c1dd67a202ab5c6142553736fd9e85b4d8061",
|
|
5
|
+
"build_time": "2026-07-10T18:51:42.983Z"
|
|
6
6
|
}
|
|
@@ -97,8 +97,8 @@ async function checkTwinReachable(_configDir) {
|
|
|
97
97
|
});
|
|
98
98
|
let harness;
|
|
99
99
|
try {
|
|
100
|
-
// Dynamic import: the twin harness pulls in
|
|
101
|
-
// hosted-mode gate must never load
|
|
100
|
+
// Dynamic import: the twin harness pulls in the twin packages and their
|
|
101
|
+
// node:sqlite-backed state, which the hosted-mode gate must never load.
|
|
102
102
|
const { bootTwin } = await import("../twin/twinHarness.js");
|
|
103
103
|
harness = await bootTwin({
|
|
104
104
|
twin: "github",
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mutation outcome — the shape both better-sqlite3's `RunResult` and
|
|
3
|
-
* node:sqlite's `StatementResultingChanges` return
|
|
4
|
-
*
|
|
3
|
+
* node:sqlite's `StatementResultingChanges` return; `changes` is coerced to
|
|
4
|
+
* number, `lastInsertRowid` may be a bigint for rowids beyond safe-integer
|
|
5
|
+
* range.
|
|
5
6
|
*/
|
|
6
7
|
export interface TwinRunResult {
|
|
7
8
|
changes: number;
|
|
@@ -15,8 +16,7 @@ export interface TwinStatement {
|
|
|
15
16
|
/**
|
|
16
17
|
* A wrapped transaction function (better-sqlite3's shape). The `.immediate`
|
|
17
18
|
* variant takes the write lock up front (BEGIN IMMEDIATE) — github's domain
|
|
18
|
-
* runs its mutations under it.
|
|
19
|
-
* call forms with explicit BEGIN [IMMEDIATE]/COMMIT/ROLLBACK.
|
|
19
|
+
* runs its mutations under it.
|
|
20
20
|
*/
|
|
21
21
|
export type TwinTransaction<F extends (...args: never[]) => unknown> = F & {
|
|
22
22
|
immediate: F;
|
|
@@ -1,28 +1,97 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
//
|
|
3
|
-
// Engine SQLite driver wrapper (F-681)
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
// database never pay for (or compile) the native module.
|
|
3
|
+
// Engine SQLite driver wrapper (F-681), backed by node:sqlite since F-703 —
|
|
4
|
+
// zero native deps, no compiler toolchain at install. Twins never import a
|
|
5
|
+
// sqlite driver directly — they call `openTwinDatabase()` and consume the
|
|
6
|
+
// `TwinDatabase` interface below. The interface keeps better-sqlite3's shape
|
|
7
|
+
// (prepare/exec/pragma/transaction/close) because twin domain code has dozens
|
|
8
|
+
// of call sites relying on it; node:sqlite ships no pragma()/transaction()
|
|
9
|
+
// equivalents, so this file emulates them: `pragma()` prepares a `PRAGMA …`
|
|
10
|
+
// statement, `transaction(fn)` (+ `.immediate`) wraps fn in explicit
|
|
11
|
+
// BEGIN [IMMEDIATE]/COMMIT/ROLLBACK at the outermost level and in a SAVEPOINT
|
|
12
|
+
// when called inside an open transaction — better-sqlite3's nesting semantics,
|
|
13
|
+
// which twin-github's seed() relies on (it wraps createIssue et al., each of
|
|
14
|
+
// which opens its own transaction).
|
|
16
15
|
import { mkdirSync } from "node:fs";
|
|
17
|
-
import { createRequire } from "node:module";
|
|
18
16
|
import { dirname } from "node:path";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
import { DatabaseSync } from "node:sqlite";
|
|
18
|
+
class NodeSqliteTwinDatabase {
|
|
19
|
+
#db;
|
|
20
|
+
#savepointId = 0;
|
|
21
|
+
constructor(path) {
|
|
22
|
+
this.#db = new DatabaseSync(path);
|
|
23
|
+
}
|
|
24
|
+
prepare(sql) {
|
|
25
|
+
const statement = this.#db.prepare(sql);
|
|
26
|
+
return {
|
|
27
|
+
run: (...params) => {
|
|
28
|
+
const result = statement.run(...params);
|
|
29
|
+
return { changes: Number(result.changes), lastInsertRowid: result.lastInsertRowid };
|
|
30
|
+
},
|
|
31
|
+
get: (...params) => statement.get(...params),
|
|
32
|
+
all: (...params) => statement.all(...params),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
exec(sql) {
|
|
36
|
+
this.#db.exec(sql);
|
|
37
|
+
}
|
|
38
|
+
pragma(statement, options = {}) {
|
|
39
|
+
const rows = this.#db.prepare(`PRAGMA ${statement}`).all();
|
|
40
|
+
if (!options.simple)
|
|
41
|
+
return rows;
|
|
42
|
+
const row = rows[0];
|
|
43
|
+
if (row === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
return row[Object.keys(row)[0]];
|
|
46
|
+
}
|
|
47
|
+
transaction(fn) {
|
|
48
|
+
const wrap = (begin) => ((...args) => {
|
|
49
|
+
if (this.#db.isTransaction)
|
|
50
|
+
return this.#nested(fn, args);
|
|
51
|
+
this.#db.exec(begin);
|
|
52
|
+
try {
|
|
53
|
+
const out = fn(...args);
|
|
54
|
+
this.#db.exec("COMMIT");
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
// Certain failures (e.g. ON CONFLICT ROLLBACK) end the transaction
|
|
59
|
+
// themselves — only roll back when one is still open.
|
|
60
|
+
if (this.#db.isTransaction)
|
|
61
|
+
this.#db.exec("ROLLBACK");
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const tx = wrap("BEGIN");
|
|
66
|
+
tx.immediate = wrap("BEGIN IMMEDIATE");
|
|
67
|
+
return tx;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A transaction function called inside an open transaction joins it under a
|
|
71
|
+
* SAVEPOINT (better-sqlite3's semantics): success releases the savepoint,
|
|
72
|
+
* failure rolls back only the inner work. The BEGIN variant is irrelevant
|
|
73
|
+
* here — the outermost transaction already holds the lock mode.
|
|
74
|
+
*/
|
|
75
|
+
#nested(fn, args) {
|
|
76
|
+
const name = `_pome_tx_${this.#savepointId++}`;
|
|
77
|
+
this.#db.exec(`SAVEPOINT ${name}`);
|
|
78
|
+
try {
|
|
79
|
+
const out = fn(...args);
|
|
80
|
+
this.#db.exec(`RELEASE ${name}`);
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (this.#db.isTransaction) {
|
|
85
|
+
this.#db.exec(`ROLLBACK TO ${name}`);
|
|
86
|
+
this.#db.exec(`RELEASE ${name}`);
|
|
87
|
+
}
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
close() {
|
|
92
|
+
if (this.#db.isOpen)
|
|
93
|
+
this.#db.close();
|
|
24
94
|
}
|
|
25
|
-
return driver;
|
|
26
95
|
}
|
|
27
96
|
/**
|
|
28
97
|
* Open a twin database with the pome pragma set applied:
|
|
@@ -34,11 +103,10 @@ export function openTwinDatabase(path = ":memory:", options = {}) {
|
|
|
34
103
|
if (path !== ":memory:") {
|
|
35
104
|
mkdirSync(dirname(path), { recursive: true });
|
|
36
105
|
}
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
db.
|
|
40
|
-
db.
|
|
41
|
-
db.pragma("foreign_keys = ON");
|
|
106
|
+
const db = new NodeSqliteTwinDatabase(path);
|
|
107
|
+
db.exec("PRAGMA busy_timeout = 5000");
|
|
108
|
+
db.exec("PRAGMA journal_mode = WAL");
|
|
109
|
+
db.exec("PRAGMA foreign_keys = ON");
|
|
42
110
|
options.migrate?.(db);
|
|
43
111
|
return db;
|
|
44
112
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Twin engine for Pome digital twins — defineTwin() + serve(): HTTP mounting, bearer auth, trace recorder, MCP dispatch, SQLite-backed state.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -37,15 +37,11 @@
|
|
|
37
37
|
"zod": "^4.1.13"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@hono/node-server": "^2.0.8"
|
|
41
|
-
"better-sqlite3": "^12.5.0"
|
|
40
|
+
"@hono/node-server": "^2.0.8"
|
|
42
41
|
},
|
|
43
42
|
"peerDependenciesMeta": {
|
|
44
43
|
"@hono/node-server": {
|
|
45
44
|
"optional": true
|
|
46
|
-
},
|
|
47
|
-
"better-sqlite3": {
|
|
48
|
-
"optional": true
|
|
49
45
|
}
|
|
50
46
|
},
|
|
51
47
|
"engines": {
|
|
@@ -105,7 +105,8 @@ that pins and verifies the new signed digest.
|
|
|
105
105
|
build regenerates one on each rebuild)
|
|
106
106
|
- `npm run build` exits 0 and emits `dist/src/server.js`
|
|
107
107
|
- Built output is loadable under Node 24 — the snapshot runs `runtime: "node24"`.
|
|
108
|
-
|
|
108
|
+
SQLite is the built-in `node:sqlite` (via the sdk's `openTwinDatabase()`,
|
|
109
|
+
F-703) — no native modules, no compiler toolchain.
|
|
109
110
|
|
|
110
111
|
### Runtime
|
|
111
112
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-github",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Deterministic GitHub-shaped twin for agent testing — REST + MCP, SQLite-backed state.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -33,9 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@hono/node-server": "^2.0.8",
|
|
36
|
-
"@pome-sh/sdk": "0.3.
|
|
36
|
+
"@pome-sh/sdk": "0.3.1",
|
|
37
37
|
"@pome-sh/shared-types": "0.6.0",
|
|
38
|
-
"better-sqlite3": "^12.5.0",
|
|
39
38
|
"hono": "^4.12.27",
|
|
40
39
|
"zod": "^4.1.13"
|
|
41
40
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-slack",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Deterministic Slack Web API twin for agent testing — REST + MCP, SQLite-backed state.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -33,9 +33,8 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@hono/node-server": "^2.0.8",
|
|
36
|
-
"@pome-sh/sdk": "0.3.
|
|
36
|
+
"@pome-sh/sdk": "0.3.1",
|
|
37
37
|
"@pome-sh/shared-types": "0.6.0",
|
|
38
|
-
"better-sqlite3": "^12.5.0",
|
|
39
38
|
"hono": "^4.12.27",
|
|
40
39
|
"zod": "^4.1.13"
|
|
41
40
|
},
|
|
@@ -182,8 +182,8 @@ that pins and verifies the new signed digest.
|
|
|
182
182
|
required, the snapshot build regenerates one on each rebuild).
|
|
183
183
|
- `npm run build` exits 0 and emits `dist/src/server.js`.
|
|
184
184
|
- Built output is loadable under Node 24 — the snapshot runs
|
|
185
|
-
`runtime: "node24"`.
|
|
186
|
-
|
|
185
|
+
`runtime: "node24"`. SQLite is the built-in `node:sqlite` (via the sdk's
|
|
186
|
+
`openTwinDatabase()`, F-703) — no native modules, no compiler toolchain.
|
|
187
187
|
|
|
188
188
|
### Runtime
|
|
189
189
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-stripe",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Deterministic test double for Stripe x402 machine payments — stateful clone agents can drive without burning sandbox quota or real chain gas.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -52,9 +52,8 @@
|
|
|
52
52
|
"license": "Apache-2.0",
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@hono/node-server": "^2.0.8",
|
|
55
|
-
"@pome-sh/sdk": "0.3.
|
|
55
|
+
"@pome-sh/sdk": "0.3.1",
|
|
56
56
|
"@pome-sh/shared-types": "0.6.0",
|
|
57
|
-
"better-sqlite3": "^12.5.0",
|
|
58
57
|
"hono": "^4.12.27",
|
|
59
58
|
"zod": "^4.1.13"
|
|
60
59
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Digital-twin testing for AI agents — run scenarios against resettable local or hosted twins, record tool calls, and score the result.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"test": "vitest run",
|
|
53
53
|
"test:e2e": "vitest run test/e2e",
|
|
54
54
|
"gate:no-eval": "node ../scripts/no-eval-in-oss.mjs",
|
|
55
|
+
"gate:no-native": "node ../scripts/no-native-modules.mjs --root .",
|
|
55
56
|
"gate:recorder-overhead": "tsx scripts/recorder-overhead-gate.ts",
|
|
56
57
|
"changeset": "changeset",
|
|
57
58
|
"changeset:version": "changeset version",
|
|
@@ -65,13 +66,12 @@
|
|
|
65
66
|
"@anthropic-ai/sdk": "^0.110.0",
|
|
66
67
|
"@hono/node-server": "^2.0.6",
|
|
67
68
|
"@openrouter/ai-sdk-provider": "^3.0.0",
|
|
68
|
-
"@pome-sh/sdk": "0.3.
|
|
69
|
+
"@pome-sh/sdk": "0.3.1",
|
|
69
70
|
"@pome-sh/shared-types": "0.6.0",
|
|
70
|
-
"@pome-sh/twin-github": "0.1.
|
|
71
|
-
"@pome-sh/twin-slack": "0.1.
|
|
72
|
-
"@pome-sh/twin-stripe": "0.2.
|
|
71
|
+
"@pome-sh/twin-github": "0.1.2",
|
|
72
|
+
"@pome-sh/twin-slack": "0.1.2",
|
|
73
|
+
"@pome-sh/twin-stripe": "0.2.2",
|
|
73
74
|
"ai": "^7.0.18",
|
|
74
|
-
"better-sqlite3": "^12.5.0",
|
|
75
75
|
"commander": "^15.0.0",
|
|
76
76
|
"hono": "^4.10.7",
|
|
77
77
|
"yaml": "^2.8.2",
|
|
@@ -80,7 +80,6 @@
|
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@changesets/changelog-github": "^0.5.1",
|
|
82
82
|
"@changesets/cli": "^2.31.0",
|
|
83
|
-
"@types/better-sqlite3": "^7.6.13",
|
|
84
83
|
"@types/node": "^26.0.1",
|
|
85
84
|
"tsx": "^4.21.0",
|
|
86
85
|
"typescript": "^5.9.3",
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { CriterionResult } from "../types/shared.js";
|
|
2
|
-
export declare const VERDICT_ARTIFACT_VERSION = 1;
|
|
3
|
-
export declare const VERDICT_FILENAME = "verdict.json";
|
|
4
|
-
export interface VerdictArtifact {
|
|
5
|
-
version: number;
|
|
6
|
-
/** Provenance: the only writer is the /finalize response path. */
|
|
7
|
-
source: "cloud-finalize";
|
|
8
|
-
task_name: string;
|
|
9
|
-
/** The scenario path as the run invocation saw it (may move later —
|
|
10
|
-
* readers must tolerate a dangling path). */
|
|
11
|
-
scenario_path: string;
|
|
12
|
-
/** Shared trial-group id (`grp_` + nanoid21); null on single runs. */
|
|
13
|
-
group_id: string | null;
|
|
14
|
-
session_id: string;
|
|
15
|
-
cloud_run_id: string;
|
|
16
|
-
cloud_dashboard_url: string;
|
|
17
|
-
judge_model: string | null;
|
|
18
|
-
/** Cloud-authoritative satisfaction score, 0-100. */
|
|
19
|
-
score: number;
|
|
20
|
-
pass_threshold: number;
|
|
21
|
-
passed: boolean;
|
|
22
|
-
criteria_results: CriterionResult[];
|
|
23
|
-
duration_ms: number;
|
|
24
|
-
finalized_at: string;
|
|
25
|
-
}
|
|
26
|
-
export interface TrialVerdict {
|
|
27
|
-
runDir: string;
|
|
28
|
-
verdict: VerdictArtifact;
|
|
29
|
-
}
|
|
30
|
-
export declare function writeVerdictArtifact(runDir: string, verdict: VerdictArtifact): Promise<void>;
|
|
31
|
-
export declare function readVerdictArtifact(runDir: string): Promise<TrialVerdict | null>;
|
|
32
|
-
/** Scan an artifacts root for finalized trials — exactly the two-level
|
|
33
|
-
* layout `<root>/<task-slug>/<session-id>/verdict.json`. Anything
|
|
34
|
-
* unreadable is skipped. */
|
|
35
|
-
export declare function scanVerdictArtifacts(artifactsRoot: string): Promise<TrialVerdict[]>;
|
|
36
|
-
export interface RunSet {
|
|
37
|
-
/** null = a single run that never had a group. */
|
|
38
|
-
groupId: string | null;
|
|
39
|
-
taskName: string;
|
|
40
|
-
/** The scenario path recorded at run time (first trial's). */
|
|
41
|
-
scenarioPath: string;
|
|
42
|
-
/** Trials sorted by finalized_at ascending. */
|
|
43
|
-
trials: TrialVerdict[];
|
|
44
|
-
latestFinalizedAt: string;
|
|
45
|
-
anyFailed: boolean;
|
|
46
|
-
}
|
|
47
|
-
/** Group trials into run sets: trials sharing a group_id form one set; a
|
|
48
|
-
* null group_id is its own single-run set. */
|
|
49
|
-
export declare function groupRunSets(trials: TrialVerdict[]): RunSet[];
|
|
50
|
-
/** The newest run set with at least one failed (completed) trial. */
|
|
51
|
-
export declare function latestFailedRunSet(sets: RunSet[]): RunSet | null;
|
|
52
|
-
export interface RunSetDiscovery {
|
|
53
|
-
kind: "trial-dir" | "root";
|
|
54
|
-
/** The set to build a fix prompt from (per `kind` semantics: a trial dir
|
|
55
|
-
* targets ITS set regardless of outcome; a root targets the latest
|
|
56
|
-
* FAILED set). Null when nothing matches. */
|
|
57
|
-
set: RunSet | null;
|
|
58
|
-
/** Total finalized run sets seen — lets the caller distinguish "no runs
|
|
59
|
-
* at all" from "runs exist but none failed". */
|
|
60
|
-
totalSets: number;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Resolve what `pome fix-prompt [target]` should read.
|
|
64
|
-
* - `target` = a trial run dir (has verdict.json): that trial's whole set —
|
|
65
|
-
* the user pointed at it, outcome doesn't matter.
|
|
66
|
-
* - `target` = an artifacts root: the latest failed set under it.
|
|
67
|
-
*/
|
|
68
|
-
export declare function discoverRunSet(target: string): Promise<RunSetDiscovery>;
|
|
69
|
-
/** Load a trial's captured events.jsonl (raw trace) for prompt assembly.
|
|
70
|
-
* Missing/corrupt lines are skipped — the prompt degrades, never throws. */
|
|
71
|
-
export declare function loadTrialEvents(runDir: string): Promise<unknown[]>;
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
// FDRS-644 — the per-trial CLOUD verdict artifact.
|
|
3
|
-
//
|
|
4
|
-
// Hosted `pome run` persists each finalized trial's cloud verdict payload
|
|
5
|
-
// (what /finalize returned and the terminal rendered) as `verdict.json`
|
|
6
|
-
// next to the trial's raw trace. This is a provenance-labeled CACHE of the
|
|
7
|
-
// cloud judge's output — NOT a local score: the OSS CLI still has no
|
|
8
|
-
// scoring engine (FDRS-657 / no-eval-in-oss), score.json is still never
|
|
9
|
-
// written, and deleting verdict.json loses nothing the dashboard doesn't
|
|
10
|
-
// hold. `pome fix-prompt` reads these to hand grouped failure signatures
|
|
11
|
-
// to the user's coding agent without a credentialed cloud round-trip —
|
|
12
|
-
// the F0-3 / L5 intent recorded in uploadAndFinalize.ts ("so the CLI can
|
|
13
|
-
// render per-criterion verdicts … without a follow-up cloud round-trip").
|
|
14
|
-
//
|
|
15
|
-
// Artifact-layout knowledge lives HERE and only here:
|
|
16
|
-
// <artifacts-root>/<task-slug>/<session-id>/verdict.json
|
|
17
|
-
// (runDir shape from recorder/artifacts.ts `writeRunArtifactsCore`).
|
|
18
|
-
import { existsSync } from "node:fs";
|
|
19
|
-
import { readdir, readFile, writeFile } from "node:fs/promises";
|
|
20
|
-
import { join } from "node:path";
|
|
21
|
-
export const VERDICT_ARTIFACT_VERSION = 1;
|
|
22
|
-
export const VERDICT_FILENAME = "verdict.json";
|
|
23
|
-
export async function writeVerdictArtifact(runDir, verdict) {
|
|
24
|
-
await writeFile(join(runDir, VERDICT_FILENAME), `${JSON.stringify(verdict, null, 2)}\n`, "utf8");
|
|
25
|
-
}
|
|
26
|
-
/** Read one trial's verdict.json. Returns null when absent or when the file
|
|
27
|
-
* isn't a recognizable verdict artifact (foreign/corrupt files are skipped,
|
|
28
|
-
* never thrown on — fix-prompt discovery must survive a messy runs/). */
|
|
29
|
-
/** Every field the fix-prompt pipeline dereferences must hold its declared
|
|
30
|
-
* shape, or the FILE is rejected — discovery treats a half-recognizable
|
|
31
|
-
* verdict.json as foreign rather than crashing downstream on it. */
|
|
32
|
-
function isVerdictArtifact(parsed) {
|
|
33
|
-
if (typeof parsed !== "object" || parsed === null)
|
|
34
|
-
return false;
|
|
35
|
-
const v = parsed;
|
|
36
|
-
if (v.source !== "cloud-finalize")
|
|
37
|
-
return false;
|
|
38
|
-
if (typeof v.session_id !== "string")
|
|
39
|
-
return false;
|
|
40
|
-
if (typeof v.task_name !== "string")
|
|
41
|
-
return false;
|
|
42
|
-
if (typeof v.scenario_path !== "string")
|
|
43
|
-
return false;
|
|
44
|
-
if (v.group_id !== null && typeof v.group_id !== "string")
|
|
45
|
-
return false;
|
|
46
|
-
if (typeof v.finalized_at !== "string")
|
|
47
|
-
return false;
|
|
48
|
-
if (typeof v.passed !== "boolean")
|
|
49
|
-
return false;
|
|
50
|
-
if (typeof v.score !== "number")
|
|
51
|
-
return false;
|
|
52
|
-
if (!Array.isArray(v.criteria_results))
|
|
53
|
-
return false;
|
|
54
|
-
return v.criteria_results.every((r) => {
|
|
55
|
-
if (typeof r !== "object" || r === null)
|
|
56
|
-
return false;
|
|
57
|
-
const result = r;
|
|
58
|
-
const criterion = result.criterion;
|
|
59
|
-
return (typeof criterion === "object" &&
|
|
60
|
-
criterion !== null &&
|
|
61
|
-
typeof criterion.text === "string" &&
|
|
62
|
-
typeof result.reason === "string" &&
|
|
63
|
-
typeof result.passed === "boolean" &&
|
|
64
|
-
typeof result.skipped === "boolean");
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
export async function readVerdictArtifact(runDir) {
|
|
68
|
-
const path = join(runDir, VERDICT_FILENAME);
|
|
69
|
-
let raw;
|
|
70
|
-
try {
|
|
71
|
-
raw = await readFile(path, "utf8");
|
|
72
|
-
}
|
|
73
|
-
catch {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
const parsed = JSON.parse(raw);
|
|
78
|
-
if (!isVerdictArtifact(parsed))
|
|
79
|
-
return null;
|
|
80
|
-
return { runDir, verdict: parsed };
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
return null;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/** Scan an artifacts root for finalized trials — exactly the two-level
|
|
87
|
-
* layout `<root>/<task-slug>/<session-id>/verdict.json`. Anything
|
|
88
|
-
* unreadable is skipped. */
|
|
89
|
-
export async function scanVerdictArtifacts(artifactsRoot) {
|
|
90
|
-
const found = [];
|
|
91
|
-
let slugs;
|
|
92
|
-
try {
|
|
93
|
-
slugs = await readdir(artifactsRoot);
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
return found;
|
|
97
|
-
}
|
|
98
|
-
for (const slug of slugs) {
|
|
99
|
-
const slugDir = join(artifactsRoot, slug);
|
|
100
|
-
let runIds;
|
|
101
|
-
try {
|
|
102
|
-
runIds = await readdir(slugDir);
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
for (const runId of runIds) {
|
|
108
|
-
const trial = await readVerdictArtifact(join(slugDir, runId));
|
|
109
|
-
if (trial)
|
|
110
|
-
found.push(trial);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return found;
|
|
114
|
-
}
|
|
115
|
-
/** Group trials into run sets: trials sharing a group_id form one set; a
|
|
116
|
-
* null group_id is its own single-run set. */
|
|
117
|
-
export function groupRunSets(trials) {
|
|
118
|
-
const byKey = new Map();
|
|
119
|
-
for (const trial of trials) {
|
|
120
|
-
const key = trial.verdict.group_id ?? `solo:${trial.verdict.session_id}`;
|
|
121
|
-
const bucket = byKey.get(key);
|
|
122
|
-
if (bucket)
|
|
123
|
-
bucket.push(trial);
|
|
124
|
-
else
|
|
125
|
-
byKey.set(key, [trial]);
|
|
126
|
-
}
|
|
127
|
-
const sets = [];
|
|
128
|
-
for (const bucket of byKey.values()) {
|
|
129
|
-
bucket.sort((a, b) => a.verdict.finalized_at.localeCompare(b.verdict.finalized_at));
|
|
130
|
-
const last = bucket[bucket.length - 1];
|
|
131
|
-
sets.push({
|
|
132
|
-
groupId: bucket[0].verdict.group_id,
|
|
133
|
-
taskName: bucket[0].verdict.task_name,
|
|
134
|
-
scenarioPath: bucket[0].verdict.scenario_path,
|
|
135
|
-
trials: bucket,
|
|
136
|
-
latestFinalizedAt: last.verdict.finalized_at,
|
|
137
|
-
anyFailed: bucket.some((t) => !t.verdict.passed),
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
sets.sort((a, b) => a.latestFinalizedAt.localeCompare(b.latestFinalizedAt));
|
|
141
|
-
return sets;
|
|
142
|
-
}
|
|
143
|
-
/** The newest run set with at least one failed (completed) trial. */
|
|
144
|
-
export function latestFailedRunSet(sets) {
|
|
145
|
-
for (let i = sets.length - 1; i >= 0; i -= 1) {
|
|
146
|
-
if (sets[i].anyFailed)
|
|
147
|
-
return sets[i];
|
|
148
|
-
}
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Resolve what `pome fix-prompt [target]` should read.
|
|
153
|
-
* - `target` = a trial run dir (has verdict.json): that trial's whole set —
|
|
154
|
-
* the user pointed at it, outcome doesn't matter.
|
|
155
|
-
* - `target` = an artifacts root: the latest failed set under it.
|
|
156
|
-
*/
|
|
157
|
-
export async function discoverRunSet(target) {
|
|
158
|
-
const anchor = await readVerdictArtifact(target);
|
|
159
|
-
if (anchor) {
|
|
160
|
-
// Trial dir → its set. Layout is <root>/<slug>/<runId>, so the root is
|
|
161
|
-
// two levels up; a moved/isolated dir degrades to a set of one.
|
|
162
|
-
const root = join(target, "..", "..");
|
|
163
|
-
const sets = groupRunSets(await scanVerdictArtifacts(root));
|
|
164
|
-
const own = sets.find((s) => (anchor.verdict.group_id !== null &&
|
|
165
|
-
s.groupId === anchor.verdict.group_id) ||
|
|
166
|
-
(anchor.verdict.group_id === null &&
|
|
167
|
-
s.trials.length === 1 &&
|
|
168
|
-
s.trials[0].verdict.session_id === anchor.verdict.session_id)) ?? groupRunSets([anchor])[0];
|
|
169
|
-
return { kind: "trial-dir", set: own, totalSets: Math.max(sets.length, 1) };
|
|
170
|
-
}
|
|
171
|
-
if (!existsSync(target))
|
|
172
|
-
return { kind: "root", set: null, totalSets: 0 };
|
|
173
|
-
const sets = groupRunSets(await scanVerdictArtifacts(target));
|
|
174
|
-
return {
|
|
175
|
-
kind: "root",
|
|
176
|
-
set: latestFailedRunSet(sets),
|
|
177
|
-
totalSets: sets.length,
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
/** Load a trial's captured events.jsonl (raw trace) for prompt assembly.
|
|
181
|
-
* Missing/corrupt lines are skipped — the prompt degrades, never throws. */
|
|
182
|
-
export async function loadTrialEvents(runDir) {
|
|
183
|
-
let raw;
|
|
184
|
-
try {
|
|
185
|
-
raw = await readFile(join(runDir, "events.jsonl"), "utf8");
|
|
186
|
-
}
|
|
187
|
-
catch {
|
|
188
|
-
return [];
|
|
189
|
-
}
|
|
190
|
-
const events = [];
|
|
191
|
-
for (const line of raw.split("\n")) {
|
|
192
|
-
const trimmed = line.trim();
|
|
193
|
-
if (!trimmed)
|
|
194
|
-
continue;
|
|
195
|
-
try {
|
|
196
|
-
const parsed = JSON.parse(trimmed);
|
|
197
|
-
// Valid JSON but not an event object (`null`, `3`, `"x"`) is corrupt
|
|
198
|
-
// for our purposes — renderEvent dereferences fields on it.
|
|
199
|
-
if (typeof parsed === "object" && parsed !== null)
|
|
200
|
-
events.push(parsed);
|
|
201
|
-
}
|
|
202
|
-
catch {
|
|
203
|
-
// skip corrupt row
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
return events;
|
|
207
|
-
}
|
package/dist/src/score/view.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { z } from "zod";
|
|
2
|
-
import type { criterionSchema } from "../types/shared.js";
|
|
3
|
-
type WireCriterion = z.infer<typeof criterionSchema>;
|
|
4
|
-
export type CriterionOutcome = "passed" | "failed" | "skipped" | "errored";
|
|
5
|
-
export type CriterionResult = {
|
|
6
|
-
criterion: WireCriterion;
|
|
7
|
-
outcome?: CriterionOutcome;
|
|
8
|
-
passed: boolean;
|
|
9
|
-
skipped: boolean;
|
|
10
|
-
reason: string;
|
|
11
|
-
confidence?: number;
|
|
12
|
-
judge_model?: string;
|
|
13
|
-
judge_tokens_in?: number;
|
|
14
|
-
judge_tokens_out?: number;
|
|
15
|
-
judge_has_usage?: boolean;
|
|
16
|
-
};
|
|
17
|
-
export type Score = {
|
|
18
|
-
satisfaction: number;
|
|
19
|
-
passed: number;
|
|
20
|
-
failed: number;
|
|
21
|
-
skipped: number;
|
|
22
|
-
errored: number;
|
|
23
|
-
total_required: number;
|
|
24
|
-
evaluated: boolean;
|
|
25
|
-
can_pass: boolean;
|
|
26
|
-
results: CriterionResult[];
|
|
27
|
-
judge_model: string | null;
|
|
28
|
-
judge_tokens_in: number | null;
|
|
29
|
-
judge_tokens_out: number | null;
|
|
30
|
-
};
|
|
31
|
-
export declare function outcomeOf(result: CriterionResult): CriterionOutcome;
|
|
32
|
-
export type ScoreStatus = "pass" | "fail" | "unevaluated";
|
|
33
|
-
export declare function scoreStatus(score: Score, passThreshold: number): ScoreStatus;
|
|
34
|
-
export declare function scenarioPassed(score: Score, passThreshold: number): boolean;
|
|
35
|
-
export declare function markerFor(outcome: CriterionOutcome): string;
|
|
36
|
-
export declare function scoreCountsSummary(score: Score): string;
|
|
37
|
-
export declare function runScoreLine(score: Score, passThreshold: number, unevaluatedNumericLabel: string): string;
|
|
38
|
-
export {};
|