taskchef 8.6.2 → 8.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +8 -4
- package/assets/README.md +19 -0
- package/assets/taskchef-app-rounded.png +0 -0
- package/assets/taskchef-avatar-square.png +0 -0
- package/assets/taskchef-avatar-square.svg +8 -0
- package/assets/taskchef-sidebar-dark.svg +6 -0
- package/assets/taskchef-sidebar-light.svg +6 -0
- package/assets/taskchef-sidebar.svg +6 -0
- package/docs/advanced-guide.md +20 -29
- package/docs/dashboard-ui.md +15 -0
- package/docs/diagrams/taskchef-next-reply-lookup.drawio +38 -0
- package/docs/diagrams/taskchef-next-reply-lookup.drawio.png +0 -0
- package/docs/diagrams/taskchef-next-storage.drawio +41 -0
- package/docs/diagrams/taskchef-next-storage.drawio.png +0 -0
- package/docs/images/taskchef-pr-icon-comparison.jpg +0 -0
- package/docs/images/taskchef-unified-status-popup.jpg +0 -0
- package/docs/mcp-app.md +261 -6
- package/docs/spec.md +24 -69
- package/docs/taskchef-next-github.md +206 -0
- package/docs/taskchef-next-status-research.md +102 -0
- package/docs/taskchef-next-storage.md +167 -0
- package/docs/workflows.md +4 -2
- package/node_modules/@napi-rs/keyring/LICENSE +21 -0
- package/node_modules/@napi-rs/keyring/README.md +45 -0
- package/node_modules/@napi-rs/keyring/index.d.ts +232 -0
- package/node_modules/@napi-rs/keyring/index.js +706 -0
- package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
- package/node_modules/@napi-rs/keyring/keytar.js +26 -0
- package/node_modules/@napi-rs/keyring/package.json +126 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
- package/node_modules/@napi-rs/keyring-darwin-x64/README.md +3 -0
- package/node_modules/@napi-rs/keyring-darwin-x64/keyring.darwin-x64.node +0 -0
- package/node_modules/@napi-rs/keyring-darwin-x64/package.json +32 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-gnu/README.md +3 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-gnu/keyring.linux-arm64-gnu.node +0 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-gnu/package.json +35 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-musl/README.md +3 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-musl/keyring.linux-arm64-musl.node +0 -0
- package/node_modules/@napi-rs/keyring-linux-arm64-musl/package.json +35 -0
- package/node_modules/@napi-rs/keyring-linux-x64-gnu/README.md +3 -0
- package/node_modules/@napi-rs/keyring-linux-x64-gnu/keyring.linux-x64-gnu.node +0 -0
- package/node_modules/@napi-rs/keyring-linux-x64-gnu/package.json +35 -0
- package/node_modules/@napi-rs/keyring-linux-x64-musl/README.md +3 -0
- package/node_modules/@napi-rs/keyring-linux-x64-musl/keyring.linux-x64-musl.node +0 -0
- package/node_modules/@napi-rs/keyring-linux-x64-musl/package.json +35 -0
- package/node_modules/@napi-rs/keyring-win32-arm64-msvc/README.md +3 -0
- package/node_modules/@napi-rs/keyring-win32-arm64-msvc/keyring.win32-arm64-msvc.node +0 -0
- package/node_modules/@napi-rs/keyring-win32-arm64-msvc/package.json +32 -0
- package/node_modules/@napi-rs/keyring-win32-x64-msvc/README.md +3 -0
- package/node_modules/@napi-rs/keyring-win32-x64-msvc/keyring.win32-x64-msvc.node +0 -0
- package/node_modules/@napi-rs/keyring-win32-x64-msvc/package.json +32 -0
- package/node_modules/@types/debug/LICENSE +21 -0
- package/node_modules/@types/debug/README.md +69 -0
- package/node_modules/@types/debug/index.d.ts +50 -0
- package/node_modules/@types/debug/package.json +58 -0
- package/node_modules/@types/mdast/LICENSE +21 -0
- package/node_modules/@types/mdast/README.md +15 -0
- package/node_modules/@types/mdast/index.d.ts +1123 -0
- package/node_modules/@types/mdast/package.json +47 -0
- package/node_modules/@types/ms/LICENSE +21 -0
- package/node_modules/@types/ms/README.md +82 -0
- package/node_modules/@types/ms/index.d.ts +63 -0
- package/node_modules/@types/ms/package.json +26 -0
- package/node_modules/@types/unist/LICENSE +21 -0
- package/node_modules/@types/unist/README.md +15 -0
- package/node_modules/@types/unist/index.d.ts +119 -0
- package/node_modules/@types/unist/package.json +60 -0
- package/node_modules/character-entities/index.d.ts +6 -0
- package/node_modules/character-entities/index.js +2132 -0
- package/node_modules/character-entities/license +22 -0
- package/node_modules/character-entities/package.json +78 -0
- package/node_modules/character-entities/readme.md +152 -0
- package/node_modules/decode-named-character-reference/index.d.ts +13 -0
- package/node_modules/decode-named-character-reference/index.d.ts.map +1 -0
- package/node_modules/decode-named-character-reference/index.dom.d.ts +6 -0
- package/node_modules/decode-named-character-reference/index.dom.d.ts.map +1 -0
- package/node_modules/decode-named-character-reference/index.dom.js +32 -0
- package/node_modules/decode-named-character-reference/index.js +19 -0
- package/node_modules/decode-named-character-reference/license +22 -0
- package/node_modules/decode-named-character-reference/package.json +90 -0
- package/node_modules/decode-named-character-reference/readme.md +136 -0
- package/node_modules/dequal/dist/index.js +86 -0
- package/node_modules/dequal/dist/index.min.js +1 -0
- package/node_modules/dequal/dist/index.mjs +84 -0
- package/node_modules/dequal/index.d.ts +1 -0
- package/node_modules/dequal/license +21 -0
- package/node_modules/dequal/lite/index.d.ts +1 -0
- package/node_modules/dequal/lite/index.js +31 -0
- package/node_modules/dequal/lite/index.min.js +1 -0
- package/node_modules/dequal/lite/index.mjs +29 -0
- package/node_modules/dequal/package.json +57 -0
- package/node_modules/dequal/readme.md +112 -0
- package/node_modules/devlop/lib/default.js +9 -0
- package/node_modules/devlop/lib/development.d.ts +84 -0
- package/node_modules/devlop/lib/development.js +238 -0
- package/node_modules/devlop/license +22 -0
- package/node_modules/devlop/package.json +80 -0
- package/node_modules/devlop/readme.md +360 -0
- package/node_modules/mdast-util-from-markdown/dev/index.d.ts +23 -0
- package/node_modules/mdast-util-from-markdown/dev/index.js +2 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts +53 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.d.ts.map +1 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/index.js +1348 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/types.d.ts +295 -0
- package/node_modules/mdast-util-from-markdown/dev/lib/types.js +2 -0
- package/node_modules/mdast-util-from-markdown/index.d.ts +23 -0
- package/node_modules/mdast-util-from-markdown/index.js +2 -0
- package/node_modules/mdast-util-from-markdown/lib/index.d.ts +53 -0
- package/node_modules/mdast-util-from-markdown/lib/index.js +1177 -0
- package/node_modules/mdast-util-from-markdown/lib/types.d.ts +295 -0
- package/node_modules/mdast-util-from-markdown/lib/types.js +2 -0
- package/node_modules/mdast-util-from-markdown/license +22 -0
- package/node_modules/mdast-util-from-markdown/package.json +139 -0
- package/node_modules/mdast-util-from-markdown/readme.md +537 -0
- package/node_modules/mdast-util-to-string/index.d.ts +2 -0
- package/node_modules/mdast-util-to-string/index.js +5 -0
- package/node_modules/mdast-util-to-string/lib/index.d.ts +31 -0
- package/node_modules/mdast-util-to-string/lib/index.js +108 -0
- package/node_modules/mdast-util-to-string/license +22 -0
- package/node_modules/mdast-util-to-string/package.json +78 -0
- package/node_modules/mdast-util-to-string/readme.md +218 -0
- package/node_modules/micromark/dev/index.d.ts +82 -0
- package/node_modules/micromark/dev/index.d.ts.map +1 -0
- package/node_modules/micromark/dev/index.js +68 -0
- package/node_modules/micromark/dev/lib/compile.d.ts +16 -0
- package/node_modules/micromark/dev/lib/compile.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/compile.js +1162 -0
- package/node_modules/micromark/dev/lib/constructs.d.ts +73 -0
- package/node_modules/micromark/dev/lib/constructs.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/constructs.js +101 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.d.ts +46 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/create-tokenizer.js +718 -0
- package/node_modules/micromark/dev/lib/initialize/content.d.ts +4 -0
- package/node_modules/micromark/dev/lib/initialize/content.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/content.js +99 -0
- package/node_modules/micromark/dev/lib/initialize/document.d.ts +10 -0
- package/node_modules/micromark/dev/lib/initialize/document.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/document.js +449 -0
- package/node_modules/micromark/dev/lib/initialize/flow.d.ts +4 -0
- package/node_modules/micromark/dev/lib/initialize/flow.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/flow.js +86 -0
- package/node_modules/micromark/dev/lib/initialize/text.d.ts +8 -0
- package/node_modules/micromark/dev/lib/initialize/text.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/initialize/text.js +248 -0
- package/node_modules/micromark/dev/lib/parse.d.ts +10 -0
- package/node_modules/micromark/dev/lib/parse.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/parse.js +58 -0
- package/node_modules/micromark/dev/lib/postprocess.d.ts +9 -0
- package/node_modules/micromark/dev/lib/postprocess.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/postprocess.js +19 -0
- package/node_modules/micromark/dev/lib/preprocess.d.ts +13 -0
- package/node_modules/micromark/dev/lib/preprocess.d.ts.map +1 -0
- package/node_modules/micromark/dev/lib/preprocess.js +139 -0
- package/node_modules/micromark/dev/stream.d.ts +35 -0
- package/node_modules/micromark/dev/stream.d.ts.map +1 -0
- package/node_modules/micromark/dev/stream.js +270 -0
- package/node_modules/micromark/index.d.ts +82 -0
- package/node_modules/micromark/index.d.ts.map +1 -0
- package/node_modules/micromark/index.js +60 -0
- package/node_modules/micromark/lib/compile.d.ts +16 -0
- package/node_modules/micromark/lib/compile.d.ts.map +1 -0
- package/node_modules/micromark/lib/compile.js +1068 -0
- package/node_modules/micromark/lib/constructs.d.ts +73 -0
- package/node_modules/micromark/lib/constructs.d.ts.map +1 -0
- package/node_modules/micromark/lib/constructs.js +85 -0
- package/node_modules/micromark/lib/create-tokenizer.d.ts +46 -0
- package/node_modules/micromark/lib/create-tokenizer.d.ts.map +1 -0
- package/node_modules/micromark/lib/create-tokenizer.js +613 -0
- package/node_modules/micromark/lib/initialize/content.d.ts +4 -0
- package/node_modules/micromark/lib/initialize/content.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/content.js +79 -0
- package/node_modules/micromark/lib/initialize/document.d.ts +10 -0
- package/node_modules/micromark/lib/initialize/document.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/document.js +370 -0
- package/node_modules/micromark/lib/initialize/flow.d.ts +4 -0
- package/node_modules/micromark/lib/initialize/flow.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/flow.js +58 -0
- package/node_modules/micromark/lib/initialize/text.d.ts +8 -0
- package/node_modules/micromark/lib/initialize/text.d.ts.map +1 -0
- package/node_modules/micromark/lib/initialize/text.js +216 -0
- package/node_modules/micromark/lib/parse.d.ts +10 -0
- package/node_modules/micromark/lib/parse.d.ts.map +1 -0
- package/node_modules/micromark/lib/parse.js +56 -0
- package/node_modules/micromark/lib/postprocess.d.ts +9 -0
- package/node_modules/micromark/lib/postprocess.d.ts.map +1 -0
- package/node_modules/micromark/lib/postprocess.js +18 -0
- package/node_modules/micromark/lib/preprocess.d.ts +13 -0
- package/node_modules/micromark/lib/preprocess.d.ts.map +1 -0
- package/node_modules/micromark/lib/preprocess.js +112 -0
- package/node_modules/micromark/license +22 -0
- package/node_modules/micromark/package.json +87 -0
- package/node_modules/micromark/readme.md +488 -0
- package/node_modules/micromark/stream.d.ts +35 -0
- package/node_modules/micromark/stream.d.ts.map +1 -0
- package/node_modules/micromark/stream.js +256 -0
- package/node_modules/micromark-core-commonmark/dev/index.d.ts +23 -0
- package/node_modules/micromark-core-commonmark/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/index.js +22 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/attention.js +294 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/autolink.js +269 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/blank-line.js +62 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/block-quote.js +162 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-escape.js +69 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/character-reference.js +166 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-fenced.js +472 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-indented.js +178 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/code-text.js +257 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts +7 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/content.js +185 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/definition.js +295 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/hard-break-escape.js +65 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/heading-atx.js +229 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-flow.js +938 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/html-text.js +783 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-end.js +658 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-image.js +119 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/label-start-link.js +71 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/line-ending.js +34 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/list.js +306 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/partial-non-lazy-continuation.js +67 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/setext-underline.js +213 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/dev/lib/thematic-break.js +120 -0
- package/node_modules/micromark-core-commonmark/index.d.ts +23 -0
- package/node_modules/micromark-core-commonmark/index.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/index.js +22 -0
- package/node_modules/micromark-core-commonmark/lib/attention.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/attention.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/attention.js +231 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/autolink.js +233 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/blank-line.js +61 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/block-quote.js +143 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/character-escape.js +64 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/character-reference.js +149 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-fenced.js +422 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-indented.js +159 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/code-text.js +225 -0
- package/node_modules/micromark-core-commonmark/lib/content.d.ts +7 -0
- package/node_modules/micromark-core-commonmark/lib/content.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/content.js +163 -0
- package/node_modules/micromark-core-commonmark/lib/definition.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/definition.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/definition.js +254 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/hard-break-escape.js +60 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/heading-atx.js +191 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/html-flow.js +827 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/html-text.js +678 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-end.js +561 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-image.js +110 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/label-start-link.js +63 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/line-ending.js +33 -0
- package/node_modules/micromark-core-commonmark/lib/list.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/list.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/list.js +213 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js +61 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/setext-underline.js +187 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts +4 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.d.ts.map +1 -0
- package/node_modules/micromark-core-commonmark/lib/thematic-break.js +102 -0
- package/node_modules/micromark-core-commonmark/license +22 -0
- package/node_modules/micromark-core-commonmark/package.json +62 -0
- package/node_modules/micromark-core-commonmark/readme.md +171 -0
- package/node_modules/micromark-factory-destination/dev/index.d.ts +42 -0
- package/node_modules/micromark-factory-destination/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-destination/dev/index.js +255 -0
- package/node_modules/micromark-factory-destination/index.d.ts +42 -0
- package/node_modules/micromark-factory-destination/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-destination/index.js +206 -0
- package/node_modules/micromark-factory-destination/license +22 -0
- package/node_modules/micromark-factory-destination/package.json +57 -0
- package/node_modules/micromark-factory-destination/readme.md +234 -0
- package/node_modules/micromark-factory-label/dev/index.d.ts +37 -0
- package/node_modules/micromark-factory-label/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-label/dev/index.js +172 -0
- package/node_modules/micromark-factory-label/index.d.ts +37 -0
- package/node_modules/micromark-factory-label/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-label/index.js +148 -0
- package/node_modules/micromark-factory-label/license +22 -0
- package/node_modules/micromark-factory-label/package.json +60 -0
- package/node_modules/micromark-factory-label/readme.md +224 -0
- package/node_modules/micromark-factory-space/dev/index.d.ts +60 -0
- package/node_modules/micromark-factory-space/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-space/dev/index.js +122 -0
- package/node_modules/micromark-factory-space/index.d.ts +60 -0
- package/node_modules/micromark-factory-space/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-space/index.js +116 -0
- package/node_modules/micromark-factory-space/license +22 -0
- package/node_modules/micromark-factory-space/package.json +46 -0
- package/node_modules/micromark-factory-space/readme.md +225 -0
- package/node_modules/micromark-factory-title/dev/index.d.ts +36 -0
- package/node_modules/micromark-factory-title/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-title/dev/index.js +169 -0
- package/node_modules/micromark-factory-title/index.d.ts +36 -0
- package/node_modules/micromark-factory-title/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-title/index.js +158 -0
- package/node_modules/micromark-factory-title/license +22 -0
- package/node_modules/micromark-factory-title/package.json +58 -0
- package/node_modules/micromark-factory-title/readme.md +229 -0
- package/node_modules/micromark-factory-whitespace/dev/index.d.ts +22 -0
- package/node_modules/micromark-factory-whitespace/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-whitespace/dev/index.js +53 -0
- package/node_modules/micromark-factory-whitespace/index.d.ts +22 -0
- package/node_modules/micromark-factory-whitespace/index.d.ts.map +1 -0
- package/node_modules/micromark-factory-whitespace/index.js +44 -0
- package/node_modules/micromark-factory-whitespace/license +22 -0
- package/node_modules/micromark-factory-whitespace/package.json +57 -0
- package/node_modules/micromark-factory-whitespace/readme.md +205 -0
- package/node_modules/micromark-util-character/dev/index.d.ts +195 -0
- package/node_modules/micromark-util-character/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-character/dev/index.js +252 -0
- package/node_modules/micromark-util-character/index.d.ts +195 -0
- package/node_modules/micromark-util-character/index.d.ts.map +1 -0
- package/node_modules/micromark-util-character/index.js +246 -0
- package/node_modules/micromark-util-character/license +22 -0
- package/node_modules/micromark-util-character/package.json +57 -0
- package/node_modules/micromark-util-character/readme.md +446 -0
- package/node_modules/micromark-util-chunked/dev/index.d.ts +41 -0
- package/node_modules/micromark-util-chunked/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-chunked/dev/index.js +89 -0
- package/node_modules/micromark-util-chunked/index.d.ts +41 -0
- package/node_modules/micromark-util-chunked/index.d.ts.map +1 -0
- package/node_modules/micromark-util-chunked/index.js +81 -0
- package/node_modules/micromark-util-chunked/license +22 -0
- package/node_modules/micromark-util-chunked/package.json +57 -0
- package/node_modules/micromark-util-chunked/readme.md +219 -0
- package/node_modules/micromark-util-classify-character/dev/index.d.ts +18 -0
- package/node_modules/micromark-util-classify-character/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-classify-character/dev/index.js +38 -0
- package/node_modules/micromark-util-classify-character/index.d.ts +18 -0
- package/node_modules/micromark-util-classify-character/index.d.ts.map +1 -0
- package/node_modules/micromark-util-classify-character/index.js +27 -0
- package/node_modules/micromark-util-classify-character/license +22 -0
- package/node_modules/micromark-util-classify-character/package.json +59 -0
- package/node_modules/micromark-util-classify-character/readme.md +205 -0
- package/node_modules/micromark-util-combine-extensions/index.d.ts +22 -0
- package/node_modules/micromark-util-combine-extensions/index.d.ts.map +1 -0
- package/node_modules/micromark-util-combine-extensions/index.js +143 -0
- package/node_modules/micromark-util-combine-extensions/license +22 -0
- package/node_modules/micromark-util-combine-extensions/package.json +52 -0
- package/node_modules/micromark-util-combine-extensions/readme.md +201 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts +16 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/dev/index.js +42 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts +16 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/index.js +32 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/license +22 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/package.json +59 -0
- package/node_modules/micromark-util-decode-numeric-character-reference/readme.md +184 -0
- package/node_modules/micromark-util-decode-string/dev/index.d.ts +14 -0
- package/node_modules/micromark-util-decode-string/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-string/dev/index.js +53 -0
- package/node_modules/micromark-util-decode-string/index.d.ts +14 -0
- package/node_modules/micromark-util-decode-string/index.d.ts.map +1 -0
- package/node_modules/micromark-util-decode-string/index.js +45 -0
- package/node_modules/micromark-util-decode-string/license +22 -0
- package/node_modules/micromark-util-decode-string/package.json +63 -0
- package/node_modules/micromark-util-decode-string/readme.md +179 -0
- package/node_modules/micromark-util-edit-map/dev/index.d.ts +78 -0
- package/node_modules/micromark-util-edit-map/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-edit-map/dev/index.js +237 -0
- package/node_modules/micromark-util-edit-map/index.d.ts +78 -0
- package/node_modules/micromark-util-edit-map/index.d.ts.map +1 -0
- package/node_modules/micromark-util-edit-map/index.js +225 -0
- package/node_modules/micromark-util-edit-map/license +22 -0
- package/node_modules/micromark-util-edit-map/package.json +48 -0
- package/node_modules/micromark-util-edit-map/readme.md +234 -0
- package/node_modules/micromark-util-encode/index.d.ts +14 -0
- package/node_modules/micromark-util-encode/index.d.ts.map +1 -0
- package/node_modules/micromark-util-encode/index.js +33 -0
- package/node_modules/micromark-util-encode/license +22 -0
- package/node_modules/micromark-util-encode/package.json +47 -0
- package/node_modules/micromark-util-encode/readme.md +176 -0
- package/node_modules/micromark-util-html-tag-name/index.d.ts +30 -0
- package/node_modules/micromark-util-html-tag-name/index.d.ts.map +1 -0
- package/node_modules/micromark-util-html-tag-name/index.js +93 -0
- package/node_modules/micromark-util-html-tag-name/license +22 -0
- package/node_modules/micromark-util-html-tag-name/package.json +47 -0
- package/node_modules/micromark-util-html-tag-name/readme.md +193 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts +21 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-normalize-identifier/dev/index.js +38 -0
- package/node_modules/micromark-util-normalize-identifier/index.d.ts +21 -0
- package/node_modules/micromark-util-normalize-identifier/index.d.ts.map +1 -0
- package/node_modules/micromark-util-normalize-identifier/index.js +33 -0
- package/node_modules/micromark-util-normalize-identifier/license +22 -0
- package/node_modules/micromark-util-normalize-identifier/package.json +58 -0
- package/node_modules/micromark-util-normalize-identifier/readme.md +187 -0
- package/node_modules/micromark-util-resolve-all/index.d.ts +22 -0
- package/node_modules/micromark-util-resolve-all/index.d.ts.map +1 -0
- package/node_modules/micromark-util-resolve-all/index.js +32 -0
- package/node_modules/micromark-util-resolve-all/license +22 -0
- package/node_modules/micromark-util-resolve-all/package.json +48 -0
- package/node_modules/micromark-util-resolve-all/readme.md +238 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts +36 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-sanitize-uri/dev/index.js +124 -0
- package/node_modules/micromark-util-sanitize-uri/index.d.ts +36 -0
- package/node_modules/micromark-util-sanitize-uri/index.d.ts.map +1 -0
- package/node_modules/micromark-util-sanitize-uri/index.js +107 -0
- package/node_modules/micromark-util-sanitize-uri/license +22 -0
- package/node_modules/micromark-util-sanitize-uri/package.json +59 -0
- package/node_modules/micromark-util-sanitize-uri/readme.md +214 -0
- package/node_modules/micromark-util-subtokenize/dev/index.d.ts +12 -0
- package/node_modules/micromark-util-subtokenize/dev/index.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/dev/index.js +284 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts +161 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/dev/lib/splice-buffer.js +288 -0
- package/node_modules/micromark-util-subtokenize/index.d.ts +12 -0
- package/node_modules/micromark-util-subtokenize/index.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/index.js +228 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts +161 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.d.ts.map +1 -0
- package/node_modules/micromark-util-subtokenize/lib/splice-buffer.js +251 -0
- package/node_modules/micromark-util-subtokenize/license +22 -0
- package/node_modules/micromark-util-subtokenize/package.json +60 -0
- package/node_modules/micromark-util-subtokenize/readme.md +181 -0
- package/node_modules/micromark-util-symbol/lib/codes.d.ts +139 -0
- package/node_modules/micromark-util-symbol/lib/codes.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/codes.js +158 -0
- package/node_modules/micromark-util-symbol/lib/constants.d.ts +37 -0
- package/node_modules/micromark-util-symbol/lib/constants.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/constants.js +44 -0
- package/node_modules/micromark-util-symbol/lib/default.d.ts +5 -0
- package/node_modules/micromark-util-symbol/lib/default.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/default.js +4 -0
- package/node_modules/micromark-util-symbol/lib/types.d.ts +106 -0
- package/node_modules/micromark-util-symbol/lib/types.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/types.js +453 -0
- package/node_modules/micromark-util-symbol/lib/values.d.ts +102 -0
- package/node_modules/micromark-util-symbol/lib/values.d.ts.map +1 -0
- package/node_modules/micromark-util-symbol/lib/values.js +109 -0
- package/node_modules/micromark-util-symbol/license +22 -0
- package/node_modules/micromark-util-symbol/package.json +43 -0
- package/node_modules/micromark-util-symbol/readme.md +168 -0
- package/node_modules/micromark-util-types/index.d.ts +1315 -0
- package/node_modules/micromark-util-types/index.js +2 -0
- package/node_modules/micromark-util-types/license +22 -0
- package/node_modules/micromark-util-types/package.json +37 -0
- package/node_modules/micromark-util-types/readme.md +151 -0
- package/node_modules/smol-toml/LICENSE +24 -0
- package/node_modules/smol-toml/README.md +605 -0
- package/node_modules/smol-toml/dist/date.d.ts +41 -0
- package/node_modules/smol-toml/dist/date.js +156 -0
- package/node_modules/smol-toml/dist/error.d.ts +37 -0
- package/node_modules/smol-toml/dist/error.js +67 -0
- package/node_modules/smol-toml/dist/extract.js +289 -0
- package/node_modules/smol-toml/dist/index.cjs +770 -0
- package/node_modules/smol-toml/dist/index.d.ts +44 -0
- package/node_modules/smol-toml/dist/index.js +34 -0
- package/node_modules/smol-toml/dist/parse.d.ts +73 -0
- package/node_modules/smol-toml/dist/parse.js +164 -0
- package/node_modules/smol-toml/dist/primitive.js +151 -0
- package/node_modules/smol-toml/dist/stringify.d.ts +32 -0
- package/node_modules/smol-toml/dist/stringify.js +219 -0
- package/node_modules/smol-toml/dist/struct.js +156 -0
- package/node_modules/smol-toml/dist/util.d.ts +43 -0
- package/node_modules/smol-toml/dist/util.js +57 -0
- package/node_modules/smol-toml/package.json +68 -0
- package/node_modules/unist-util-stringify-position/index.d.ts +1 -0
- package/node_modules/unist-util-stringify-position/index.js +1 -0
- package/node_modules/unist-util-stringify-position/lib/index.d.ts +61 -0
- package/node_modules/unist-util-stringify-position/lib/index.js +84 -0
- package/node_modules/unist-util-stringify-position/license +22 -0
- package/node_modules/unist-util-stringify-position/package.json +80 -0
- package/node_modules/unist-util-stringify-position/readme.md +206 -0
- package/package.json +27 -8
- package/scripts/prepare-github-keyring.js +29 -0
- package/src/codex-app.js +20 -2
- package/src/codex-pricing.js +79 -0
- package/src/codex-projects.js +90 -0
- package/src/codex-session-scanner.js +748 -0
- package/src/codex-session-usage.js +332 -0
- package/src/dashboard/app.js +2 -2
- package/src/dashboard/dist/app.js +135 -60
- package/src/dashboard/dist/app.js.map +1 -1
- package/src/dashboard/dist/styles.css +1 -1
- package/src/dashboard/react/components/AnimatedUsage.test.tsx +78 -0
- package/src/dashboard/react/components/CardStatusIcons.test.tsx +146 -0
- package/src/dashboard/react/components/CardStatusIcons.tsx +138 -0
- package/src/dashboard/react/components/ImageGallery.tsx +22 -0
- package/src/dashboard/react/components/ModelSettings.test.tsx +4 -4
- package/src/dashboard/react/components/ModelSettings.tsx +1 -1
- package/src/dashboard/react/components/OpenChatButton.test.tsx +19 -0
- package/src/dashboard/react/components/OpenChatButton.tsx +2 -1
- package/src/dashboard/react/components/PrGlyph.tsx +35 -0
- package/src/dashboard/react/components/PullRequestBadges.tsx +18 -0
- package/src/dashboard/react/components/QueuedPrompts.test.tsx +42 -0
- package/src/dashboard/react/components/QueuedPrompts.tsx +34 -0
- package/src/dashboard/react/components/RelativeTime.test.tsx +100 -0
- package/src/dashboard/react/components/RelativeTime.tsx +46 -11
- package/src/dashboard/react/components/ReplyCover.test.tsx +30 -0
- package/src/dashboard/react/components/ReplyCover.tsx +33 -0
- package/src/dashboard/react/components/ReplyImagePreview.test.tsx +90 -0
- package/src/dashboard/react/components/ReplyImagePreview.tsx +34 -0
- package/src/dashboard/react/components/ReplyMarkdown.test.tsx +108 -0
- package/src/dashboard/react/components/ReplyMarkdown.tsx +112 -0
- package/src/dashboard/react/components/SavedUsageFormat.test.tsx +11 -0
- package/src/dashboard/react/components/SavedUsageFormat.tsx +68 -0
- package/src/dashboard/react/components/StatusBadge.tsx +2 -2
- package/src/dashboard/react/components/TaskBoard.test.tsx +256 -1
- package/src/dashboard/react/components/TaskBoard.tsx +136 -28
- package/src/dashboard/react/components/TaskCard.tsx +7 -4
- package/src/dashboard/react/components/TaskDetail.test.tsx +92 -1
- package/src/dashboard/react/components/TaskDetail.tsx +37 -10
- package/src/dashboard/react/components/TurnContent.test.tsx +44 -0
- package/src/dashboard/react/components/TurnContent.tsx +53 -0
- package/src/dashboard/react/components/UsagePanel.tsx +2 -2
- package/src/dashboard/react/image-cache.test.ts +23 -0
- package/src/dashboard/react/image-cache.ts +33 -0
- package/src/dashboard/react/presentation.test.tsx +31 -0
- package/src/dashboard/react/styles.css +126 -2
- package/src/dashboard/react/types.ts +55 -1
- package/src/dashboard/time.js +39 -0
- package/src/dashboard.js +4 -3
- package/src/data/codex-pricing.json +537 -0
- package/src/mcp-app/dist/index.html +216 -112
- package/src/mcp-app/react/AppearancePicker.test.tsx +50 -0
- package/src/mcp-app/react/AppearancePicker.tsx +56 -0
- package/src/mcp-app/react/GitHubConnection.test.tsx +78 -0
- package/src/mcp-app/react/GitHubConnection.tsx +78 -0
- package/src/mcp-app/react/NextNotificationCenter.test.tsx +121 -0
- package/src/mcp-app/react/NextNotificationCenter.tsx +94 -0
- package/src/mcp-app/react/NextTaskDetail.test.tsx +124 -0
- package/src/mcp-app/react/NextTaskDetail.tsx +147 -0
- package/src/mcp-app/react/ProjectPicker.tsx +49 -0
- package/src/mcp-app/react/main.test.tsx +499 -49
- package/src/mcp-app/react/main.tsx +359 -86
- package/src/mcp-app/react/styles.css +186 -9
- package/src/mcp-app/react/themes.test.ts +34 -0
- package/src/mcp-app/react/themes.ts +112 -0
- package/src/mcp-app.js +238 -120
- package/src/mcp.js +8 -1
- package/src/next-cache.js +16 -0
- package/src/next-github.js +273 -0
- package/src/next-notifications.js +90 -0
- package/src/recorded-usage-tracker.js +92 -0
- package/src/reply-image.js +65 -0
- package/src/usage-tracker.js +7 -6
- package/src/usage.js +7 -355
- package/src/user-prompt.js +55 -0
- package/src/version.js +0 -1
- package/node_modules/proper-lockfile/CHANGELOG.md +0 -108
- package/node_modules/which/CHANGELOG.md +0 -166
- package/src/resolve-ccusage.js +0 -17
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import('unist').Node} Node
|
|
3
|
+
* @typedef {import('unist').Point} Point
|
|
4
|
+
* @typedef {import('unist').Position} Position
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @typedef NodeLike
|
|
9
|
+
* @property {string} type
|
|
10
|
+
* @property {PositionLike | null | undefined} [position]
|
|
11
|
+
*
|
|
12
|
+
* @typedef PointLike
|
|
13
|
+
* @property {number | null | undefined} [line]
|
|
14
|
+
* @property {number | null | undefined} [column]
|
|
15
|
+
* @property {number | null | undefined} [offset]
|
|
16
|
+
*
|
|
17
|
+
* @typedef PositionLike
|
|
18
|
+
* @property {PointLike | null | undefined} [start]
|
|
19
|
+
* @property {PointLike | null | undefined} [end]
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Serialize the positional info of a point, position (start and end points),
|
|
24
|
+
* or node.
|
|
25
|
+
*
|
|
26
|
+
* @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]
|
|
27
|
+
* Node, position, or point.
|
|
28
|
+
* @returns {string}
|
|
29
|
+
* Pretty printed positional info of a node (`string`).
|
|
30
|
+
*
|
|
31
|
+
* In the format of a range `ls:cs-le:ce` (when given `node` or `position`)
|
|
32
|
+
* or a point `l:c` (when given `point`), where `l` stands for line, `c` for
|
|
33
|
+
* column, `s` for `start`, and `e` for end.
|
|
34
|
+
* An empty string (`''`) is returned if the given value is neither `node`,
|
|
35
|
+
* `position`, nor `point`.
|
|
36
|
+
*/
|
|
37
|
+
export function stringifyPosition(value) {
|
|
38
|
+
// Nothing.
|
|
39
|
+
if (!value || typeof value !== 'object') {
|
|
40
|
+
return ''
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Node.
|
|
44
|
+
if ('position' in value || 'type' in value) {
|
|
45
|
+
return position(value.position)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Position.
|
|
49
|
+
if ('start' in value || 'end' in value) {
|
|
50
|
+
return position(value)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Point.
|
|
54
|
+
if ('line' in value || 'column' in value) {
|
|
55
|
+
return point(value)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ?
|
|
59
|
+
return ''
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @param {Point | PointLike | null | undefined} point
|
|
64
|
+
* @returns {string}
|
|
65
|
+
*/
|
|
66
|
+
function point(point) {
|
|
67
|
+
return index(point && point.line) + ':' + index(point && point.column)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @param {Position | PositionLike | null | undefined} pos
|
|
72
|
+
* @returns {string}
|
|
73
|
+
*/
|
|
74
|
+
function position(pos) {
|
|
75
|
+
return point(pos && pos.start) + '-' + point(pos && pos.end)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @param {number | null | undefined} value
|
|
80
|
+
* @returns {number}
|
|
81
|
+
*/
|
|
82
|
+
function index(value) {
|
|
83
|
+
return value && typeof value === 'number' ? value : 1
|
|
84
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "unist-util-stringify-position",
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "unist utility to serialize a node, position, or point as a human readable location",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"unist",
|
|
8
|
+
"unist-util",
|
|
9
|
+
"util",
|
|
10
|
+
"utility",
|
|
11
|
+
"position",
|
|
12
|
+
"location",
|
|
13
|
+
"point",
|
|
14
|
+
"node",
|
|
15
|
+
"stringify",
|
|
16
|
+
"tostring"
|
|
17
|
+
],
|
|
18
|
+
"repository": "syntax-tree/unist-util-stringify-position",
|
|
19
|
+
"bugs": "https://github.com/syntax-tree/unist-util-stringify-position/issues",
|
|
20
|
+
"funding": {
|
|
21
|
+
"type": "opencollective",
|
|
22
|
+
"url": "https://opencollective.com/unified"
|
|
23
|
+
},
|
|
24
|
+
"author": "Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)",
|
|
25
|
+
"contributors": [
|
|
26
|
+
"Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)"
|
|
27
|
+
],
|
|
28
|
+
"sideEffects": false,
|
|
29
|
+
"type": "module",
|
|
30
|
+
"exports": "./index.js",
|
|
31
|
+
"files": [
|
|
32
|
+
"lib/",
|
|
33
|
+
"index.d.ts",
|
|
34
|
+
"index.js"
|
|
35
|
+
],
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@types/unist": "^3.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/mdast": "^4.0.0",
|
|
41
|
+
"@types/node": "^20.0.0",
|
|
42
|
+
"c8": "^8.0.0",
|
|
43
|
+
"prettier": "^2.0.0",
|
|
44
|
+
"remark-cli": "^11.0.0",
|
|
45
|
+
"remark-preset-wooorm": "^9.0.0",
|
|
46
|
+
"type-coverage": "^2.0.0",
|
|
47
|
+
"typescript": "^5.0.0",
|
|
48
|
+
"xo": "^0.54.0"
|
|
49
|
+
},
|
|
50
|
+
"scripts": {
|
|
51
|
+
"prepack": "npm run build && npm run format",
|
|
52
|
+
"build": "tsc --build --clean && tsc --build && type-coverage",
|
|
53
|
+
"format": "remark . -qfo && prettier . -w --loglevel warn && xo --fix",
|
|
54
|
+
"test-api": "node --conditions development test.js",
|
|
55
|
+
"test-coverage": "c8 --100 --reporter lcov npm run test-api",
|
|
56
|
+
"test": "npm run build && npm run format && npm run test-coverage"
|
|
57
|
+
},
|
|
58
|
+
"prettier": {
|
|
59
|
+
"bracketSpacing": false,
|
|
60
|
+
"semi": false,
|
|
61
|
+
"singleQuote": true,
|
|
62
|
+
"tabWidth": 2,
|
|
63
|
+
"trailingComma": "none",
|
|
64
|
+
"useTabs": false
|
|
65
|
+
},
|
|
66
|
+
"remarkConfig": {
|
|
67
|
+
"plugins": [
|
|
68
|
+
"remark-preset-wooorm"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"typeCoverage": {
|
|
72
|
+
"atLeast": 100,
|
|
73
|
+
"detail": true,
|
|
74
|
+
"ignoreCatch": true,
|
|
75
|
+
"strict": true
|
|
76
|
+
},
|
|
77
|
+
"xo": {
|
|
78
|
+
"prettier": true
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# unist-util-stringify-position
|
|
2
|
+
|
|
3
|
+
[![Build][build-badge]][build]
|
|
4
|
+
[![Coverage][coverage-badge]][coverage]
|
|
5
|
+
[![Downloads][downloads-badge]][downloads]
|
|
6
|
+
[![Size][size-badge]][size]
|
|
7
|
+
[![Sponsors][sponsors-badge]][collective]
|
|
8
|
+
[![Backers][backers-badge]][collective]
|
|
9
|
+
[![Chat][chat-badge]][chat]
|
|
10
|
+
|
|
11
|
+
[unist][] utility to pretty print the positional info of a node.
|
|
12
|
+
|
|
13
|
+
## Contents
|
|
14
|
+
|
|
15
|
+
* [What is this?](#what-is-this)
|
|
16
|
+
* [When should I use this?](#when-should-i-use-this)
|
|
17
|
+
* [Install](#install)
|
|
18
|
+
* [Use](#use)
|
|
19
|
+
* [API](#api)
|
|
20
|
+
* [`stringifyPosition(node|position|point)`](#stringifypositionnodepositionpoint)
|
|
21
|
+
* [Types](#types)
|
|
22
|
+
* [Compatibility](#compatibility)
|
|
23
|
+
* [Security](#security)
|
|
24
|
+
* [Related](#related)
|
|
25
|
+
* [Contribute](#contribute)
|
|
26
|
+
* [License](#license)
|
|
27
|
+
|
|
28
|
+
## What is this?
|
|
29
|
+
|
|
30
|
+
This package is a utility that takes any [unist][] (whether mdast, hast, etc)
|
|
31
|
+
node, position, or point, and serializes its positional info.
|
|
32
|
+
|
|
33
|
+
## When should I use this?
|
|
34
|
+
|
|
35
|
+
This utility is useful to display where something occurred in the original
|
|
36
|
+
document, in one standard way, for humans.
|
|
37
|
+
For example, when throwing errors or warning messages about something.
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
This package is [ESM only][esm].
|
|
42
|
+
In Node.js (version 16+), install with [npm][]:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
npm install unist-util-stringify-position
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
In Deno with [`esm.sh`][esmsh]:
|
|
49
|
+
|
|
50
|
+
```js
|
|
51
|
+
import {stringifyPosition} from 'https://esm.sh/unist-util-stringify-position@4'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
In browsers with [`esm.sh`][esmsh]:
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<script type="module">
|
|
58
|
+
import {stringifyPosition} from 'https://esm.sh/unist-util-stringify-position@4?bundle'
|
|
59
|
+
</script>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Use
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
import {stringifyPosition} from 'unist-util-stringify-position'
|
|
66
|
+
|
|
67
|
+
stringifyPosition({line: 2, column: 3}) // => '2:3' (point)
|
|
68
|
+
stringifyPosition({start: {line: 2}, end: {line: 3}}) // => '2:1-3:1' (position)
|
|
69
|
+
stringifyPosition({
|
|
70
|
+
type: 'text',
|
|
71
|
+
value: '!',
|
|
72
|
+
position: {
|
|
73
|
+
start: {line: 5, column: 11},
|
|
74
|
+
end: {line: 5, column: 12}
|
|
75
|
+
}
|
|
76
|
+
}) // => '5:11-5:12' (node)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## API
|
|
80
|
+
|
|
81
|
+
This package exports the identifier [`stringifyPosition`][stringifyposition].
|
|
82
|
+
There is no default export.
|
|
83
|
+
|
|
84
|
+
### `stringifyPosition(node|position|point)`
|
|
85
|
+
|
|
86
|
+
Serialize the positional info of a point, position (start and end points), or
|
|
87
|
+
node.
|
|
88
|
+
|
|
89
|
+
###### Parameters
|
|
90
|
+
|
|
91
|
+
* `node` ([`Node`][node])
|
|
92
|
+
— node whose `position` fields to serialize
|
|
93
|
+
* `position` ([`Position`][position])
|
|
94
|
+
— position whose `start` and `end` points to serialize
|
|
95
|
+
* `point` ([`Point`][point])
|
|
96
|
+
— point whose `line` and `column` fields to serialize
|
|
97
|
+
|
|
98
|
+
###### Returns
|
|
99
|
+
|
|
100
|
+
Pretty printed positional info of a node (`string`).
|
|
101
|
+
|
|
102
|
+
In the format of a range `ls:cs-le:ce` (when given `node` or `position`) or a
|
|
103
|
+
point `l:c` (when given `point`), where `l` stands for line, `c` for column, `s`
|
|
104
|
+
for `start`, and `e` for end.
|
|
105
|
+
An empty string (`''`) is returned if the given value is neither `node`,
|
|
106
|
+
`position`, nor `point`.
|
|
107
|
+
|
|
108
|
+
## Types
|
|
109
|
+
|
|
110
|
+
This package is fully typed with [TypeScript][].
|
|
111
|
+
It exports no additional types.
|
|
112
|
+
|
|
113
|
+
## Compatibility
|
|
114
|
+
|
|
115
|
+
Projects maintained by the unified collective are compatible with maintained
|
|
116
|
+
versions of Node.js.
|
|
117
|
+
|
|
118
|
+
When we cut a new major release, we drop support for unmaintained versions of
|
|
119
|
+
Node.
|
|
120
|
+
This means we try to keep the current release line,
|
|
121
|
+
`unist-util-stringify-position@^4`, compatible with Node.js 16.
|
|
122
|
+
|
|
123
|
+
## Security
|
|
124
|
+
|
|
125
|
+
This project is safe.
|
|
126
|
+
|
|
127
|
+
## Related
|
|
128
|
+
|
|
129
|
+
* [`unist-util-generated`](https://github.com/syntax-tree/unist-util-generated)
|
|
130
|
+
— check if a node is generated
|
|
131
|
+
* [`unist-util-position`](https://github.com/syntax-tree/unist-util-position)
|
|
132
|
+
— get positional info of nodes
|
|
133
|
+
* [`unist-util-remove-position`](https://github.com/syntax-tree/unist-util-remove-position)
|
|
134
|
+
— remove positional info from trees
|
|
135
|
+
* [`unist-util-source`](https://github.com/syntax-tree/unist-util-source)
|
|
136
|
+
— get the source of a value (node or position) in a file
|
|
137
|
+
|
|
138
|
+
## Contribute
|
|
139
|
+
|
|
140
|
+
See [`contributing.md` in `syntax-tree/.github`][contributing] for ways to get
|
|
141
|
+
started.
|
|
142
|
+
See [`support.md`][support] for ways to get help.
|
|
143
|
+
|
|
144
|
+
This project has a [code of conduct][coc].
|
|
145
|
+
By interacting with this repository, organization, or community you agree to
|
|
146
|
+
abide by its terms.
|
|
147
|
+
|
|
148
|
+
## License
|
|
149
|
+
|
|
150
|
+
[MIT][license] © [Titus Wormer][author]
|
|
151
|
+
|
|
152
|
+
<!-- Definition -->
|
|
153
|
+
|
|
154
|
+
[build-badge]: https://github.com/syntax-tree/unist-util-stringify-position/workflows/main/badge.svg
|
|
155
|
+
|
|
156
|
+
[build]: https://github.com/syntax-tree/unist-util-stringify-position/actions
|
|
157
|
+
|
|
158
|
+
[coverage-badge]: https://img.shields.io/codecov/c/github/syntax-tree/unist-util-stringify-position.svg
|
|
159
|
+
|
|
160
|
+
[coverage]: https://codecov.io/github/syntax-tree/unist-util-stringify-position
|
|
161
|
+
|
|
162
|
+
[downloads-badge]: https://img.shields.io/npm/dm/unist-util-stringify-position.svg
|
|
163
|
+
|
|
164
|
+
[downloads]: https://www.npmjs.com/package/unist-util-stringify-position
|
|
165
|
+
|
|
166
|
+
[size-badge]: https://img.shields.io/badge/dynamic/json?label=minzipped%20size&query=$.size.compressedSize&url=https://deno.bundlejs.com/?q=unist-util-stringify-position
|
|
167
|
+
|
|
168
|
+
[size]: https://bundlejs.com/?q=unist-util-stringify-position
|
|
169
|
+
|
|
170
|
+
[sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg
|
|
171
|
+
|
|
172
|
+
[backers-badge]: https://opencollective.com/unified/backers/badge.svg
|
|
173
|
+
|
|
174
|
+
[collective]: https://opencollective.com/unified
|
|
175
|
+
|
|
176
|
+
[chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg
|
|
177
|
+
|
|
178
|
+
[chat]: https://github.com/syntax-tree/unist/discussions
|
|
179
|
+
|
|
180
|
+
[npm]: https://docs.npmjs.com/cli/install
|
|
181
|
+
|
|
182
|
+
[license]: license
|
|
183
|
+
|
|
184
|
+
[author]: https://wooorm.com
|
|
185
|
+
|
|
186
|
+
[esm]: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c
|
|
187
|
+
|
|
188
|
+
[esmsh]: https://esm.sh
|
|
189
|
+
|
|
190
|
+
[typescript]: https://www.typescriptlang.org
|
|
191
|
+
|
|
192
|
+
[contributing]: https://github.com/syntax-tree/.github/blob/main/contributing.md
|
|
193
|
+
|
|
194
|
+
[support]: https://github.com/syntax-tree/.github/blob/main/support.md
|
|
195
|
+
|
|
196
|
+
[coc]: https://github.com/syntax-tree/.github/blob/main/code-of-conduct.md
|
|
197
|
+
|
|
198
|
+
[unist]: https://github.com/syntax-tree/unist
|
|
199
|
+
|
|
200
|
+
[node]: https://github.com/syntax-tree/unist#node
|
|
201
|
+
|
|
202
|
+
[position]: https://github.com/syntax-tree/unist#position
|
|
203
|
+
|
|
204
|
+
[point]: https://github.com/syntax-tree/unist#point
|
|
205
|
+
|
|
206
|
+
[stringifyposition]: #stringifypositionnodepositionpoint
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taskchef",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.7.0",
|
|
4
4
|
"description": "A non-blocking interactive dispatcher for visible Codex tasks.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Favo Yang",
|
|
@@ -29,8 +29,16 @@
|
|
|
29
29
|
"docs/dashboard-lifecycle.md",
|
|
30
30
|
"docs/dashboard-ui.md",
|
|
31
31
|
"docs/mcp-app.md",
|
|
32
|
+
"docs/taskchef-next-storage.md",
|
|
33
|
+
"docs/diagrams/taskchef-next-storage.drawio",
|
|
34
|
+
"docs/diagrams/taskchef-next-storage.drawio.png",
|
|
35
|
+
"docs/diagrams/taskchef-next-reply-lookup.drawio",
|
|
36
|
+
"docs/diagrams/taskchef-next-reply-lookup.drawio.png",
|
|
37
|
+
"docs/taskchef-next-status-research.md",
|
|
32
38
|
"docs/firstmate-taskchef-comparison.md",
|
|
33
39
|
"docs/images/dashboard-identity.jpg",
|
|
40
|
+
"docs/images/taskchef-unified-status-popup.jpg",
|
|
41
|
+
"docs/images/taskchef-pr-icon-comparison.jpg",
|
|
34
42
|
"docs/images/ccusage-token-consumption.png",
|
|
35
43
|
"docs/images/notification-event-snapshots.jpg",
|
|
36
44
|
"docs/images/result-history-dashboard.jpg",
|
|
@@ -53,7 +61,9 @@
|
|
|
53
61
|
"skills/taskchef-dashboard",
|
|
54
62
|
"skills/taskchef-delegate",
|
|
55
63
|
"skills/taskchef-executor",
|
|
56
|
-
"skills/taskchef-copilot"
|
|
64
|
+
"skills/taskchef-copilot",
|
|
65
|
+
"docs/taskchef-next-github.md",
|
|
66
|
+
"scripts/prepare-github-keyring.js"
|
|
57
67
|
],
|
|
58
68
|
"engines": {
|
|
59
69
|
"node": ">=18"
|
|
@@ -81,30 +91,39 @@
|
|
|
81
91
|
"benchmark:e2e": "node scripts/e2e-benchmark.js",
|
|
82
92
|
"build:dashboard": "vite build --config vite.config.ts",
|
|
83
93
|
"build:mcp-app": "vite build --config vite.mcp-app.config.ts",
|
|
94
|
+
"update:mcp-app-preview": "npm run build:mcp-app && node scripts/update-mcp-app-preview.js",
|
|
84
95
|
"check:dashboard": "tsc --noEmit -p tsconfig.dashboard.json",
|
|
85
96
|
"check:mcp-app": "tsc --noEmit -p tsconfig.mcp-app.json",
|
|
86
97
|
"preview:dashboard": "node scripts/preview-dashboard.js",
|
|
87
98
|
"test": "npm run test:node && npm run test:dashboard",
|
|
88
99
|
"test:node": "node --test tests/*.test.js",
|
|
89
|
-
"test:dashboard": "vitest run --config vitest.config.ts"
|
|
100
|
+
"test:dashboard": "vitest run --config vitest.config.ts",
|
|
101
|
+
"prepack": "node scripts/prepare-github-keyring.js"
|
|
90
102
|
},
|
|
91
103
|
"dependencies": {
|
|
92
104
|
"@mantine/core": "9.5.2",
|
|
93
105
|
"@mantine/hooks": "9.5.2",
|
|
94
106
|
"@mantine/notifications": "9.5.2",
|
|
95
107
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
108
|
+
"@napi-rs/keyring": "2.1.0",
|
|
96
109
|
"@tabler/icons-react": "3.35.0",
|
|
110
|
+
"mdast-util-from-markdown": "2.0.2",
|
|
111
|
+
"micromark-util-sanitize-uri": "2.0.1",
|
|
97
112
|
"proper-lockfile": "^4.1.2",
|
|
98
113
|
"react": "19.2.0",
|
|
99
114
|
"react-dom": "19.2.0",
|
|
115
|
+
"react-markdown": "10.1.0",
|
|
116
|
+
"remark-gfm": "4.0.1",
|
|
117
|
+
"smol-toml": "^1.9.0",
|
|
100
118
|
"zod": "^4.4.3"
|
|
101
119
|
},
|
|
102
120
|
"bundleDependencies": [
|
|
103
121
|
"@modelcontextprotocol/sdk",
|
|
104
122
|
"proper-lockfile",
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"
|
|
109
|
-
|
|
123
|
+
"smol-toml",
|
|
124
|
+
"zod",
|
|
125
|
+
"mdast-util-from-markdown",
|
|
126
|
+
"@napi-rs/keyring",
|
|
127
|
+
"micromark-util-sanitize-uri"
|
|
128
|
+
]
|
|
110
129
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { promisify } from "node:util";
|
|
3
|
+
import { cp, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
// Codex extracts bundled plugins without installing platform-specific dependencies.
|
|
9
|
+
// The release package must include native credential-store bindings for each desktop target.
|
|
10
|
+
const root = fileURLToPath(new URL("../", import.meta.url));
|
|
11
|
+
const targets = ["darwin-arm64", "darwin-x64", "win32-arm64-msvc", "win32-x64-msvc", "linux-arm64-gnu", "linux-arm64-musl", "linux-x64-gnu", "linux-x64-musl"];
|
|
12
|
+
const version = JSON.parse(await readFile(join(root, "package.json"), "utf8")).dependencies["@napi-rs/keyring"];
|
|
13
|
+
if (!/^\d+\.\d+\.\d+$/.test(version)) throw new Error("Keyring must have an exact release version.");
|
|
14
|
+
const npmCli = process.env.npm_execpath;
|
|
15
|
+
if (!npmCli) throw new Error("Run this packaging step through npm run prepack.");
|
|
16
|
+
const temporary = await mkdtemp(join(tmpdir(), "taskchef-keyring-package-"));
|
|
17
|
+
try {
|
|
18
|
+
await writeFile(join(temporary, "package.json"), JSON.stringify({ private: true }));
|
|
19
|
+
await promisify(execFile)(process.execPath, [npmCli,
|
|
20
|
+
"install", "--prefix", temporary, "--cache", join(temporary, "cache"),
|
|
21
|
+
"--registry", "https://registry.npmjs.org", "--force", "--dry-run=false", "--global=false", "--package-lock=false", "--ignore-scripts", "--no-save", "--no-audit", "--no-fund",
|
|
22
|
+
...targets.map((target) => `@napi-rs/keyring-${target}@${version}`),
|
|
23
|
+
], { timeout: 120_000, maxBuffer: 1024 * 1024 });
|
|
24
|
+
for (const target of targets) {
|
|
25
|
+
const name = `@napi-rs/keyring-${target}`;
|
|
26
|
+
await cp(join(temporary, "node_modules", name), join(root, "node_modules", name), { recursive: true });
|
|
27
|
+
}
|
|
28
|
+
console.error("Bundled GitHub credential-store bindings for macOS, Windows, and Linux.");
|
|
29
|
+
} finally { await rm(temporary, { recursive: true, force: true }); }
|
package/src/codex-app.js
CHANGED
|
@@ -153,9 +153,28 @@ export async function openThreadInCodex(threadId, options = {}) {
|
|
|
153
153
|
if (!isCodexThreadDeepLinkId(threadId)) {
|
|
154
154
|
throw new Error("Codex thread ID is not supported by the desktop deep link");
|
|
155
155
|
}
|
|
156
|
+
const url = `codex://threads/${encodeURIComponent(threadId)}`;
|
|
157
|
+
await openDesktopLink(url, options);
|
|
158
|
+
return { status: "requested", mechanism: "codex-deep-link", threadId, url };
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export async function openPluginSettingsInCodex(url, options = {}) {
|
|
162
|
+
if (typeof url !== "string") throw new Error("Cannot resolve the installed plugin settings page. Open TaskChef from Plugins.");
|
|
163
|
+
const link = new URL(url);
|
|
164
|
+
if (link.protocol !== "codex:" || link.hostname !== "plugins" || !/^\/[^/]+$/.test(link.pathname)
|
|
165
|
+
|| link.username || link.password || link.port || link.hash
|
|
166
|
+
|| [...link.searchParams.keys()].some((key) => key !== "marketplacePath")
|
|
167
|
+
|| link.searchParams.getAll("marketplacePath").length !== 1
|
|
168
|
+
|| !path.isAbsolute(link.searchParams.get("marketplacePath"))) {
|
|
169
|
+
throw new Error("Cannot resolve the installed plugin settings page. Open TaskChef from Plugins.");
|
|
170
|
+
}
|
|
171
|
+
await openDesktopLink(url, options);
|
|
172
|
+
return { status: "requested", mechanism: "codex-deep-link", url };
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
async function openDesktopLink(url, options) {
|
|
156
176
|
const run = options.run ?? execFile;
|
|
157
177
|
const platform = options.platform ?? process.platform;
|
|
158
|
-
const url = `codex://threads/${encodeURIComponent(threadId)}`;
|
|
159
178
|
if (platform === "darwin") {
|
|
160
179
|
await runCodex(run, "/usr/bin/open", [url]);
|
|
161
180
|
} else if (platform === "win32") {
|
|
@@ -163,7 +182,6 @@ export async function openThreadInCodex(threadId, options = {}) {
|
|
|
163
182
|
} else {
|
|
164
183
|
await runCodex(run, "xdg-open", [url]);
|
|
165
184
|
}
|
|
166
|
-
return { status: "requested", mechanism: "codex-deep-link", threadId, url };
|
|
167
185
|
}
|
|
168
186
|
|
|
169
187
|
export async function archiveThreadInCodex(threadId, options = {}) {
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { migrateCache } from "./next-cache.js";
|
|
2
|
+
import { readFile, mkdir } from "node:fs/promises";
|
|
3
|
+
import { dirname } from "node:path";
|
|
4
|
+
import { writeDurableAtomic } from "./state-store.js";
|
|
5
|
+
|
|
6
|
+
export const PRICING_URL = "https://developers.openai.com/api/docs/pricing.md";
|
|
7
|
+
const WEEK = 7 * 24 * 60 * 60_000;
|
|
8
|
+
|
|
9
|
+
// Read only the explicitly labelled standard table. Never use batch/fast rates
|
|
10
|
+
// as the default or invent a price for an unknown model.
|
|
11
|
+
export function parsePricing(markdown) {
|
|
12
|
+
const section = markdown.split("### Standard pricing data\n")[1]?.split(/\n### |\nBatch\n/)[0];
|
|
13
|
+
if (!section) throw new Error("Standard pricing table is missing.");
|
|
14
|
+
const models = {};
|
|
15
|
+
for (const line of section.split("\n")) {
|
|
16
|
+
const cells = line.split("|").slice(1, -1).map(value => value.trim());
|
|
17
|
+
if (cells.length !== 9 || !/^(gpt-|o[134])/.test(cells[0])) continue;
|
|
18
|
+
const name = cells[0].replace(/ \(<272K context length\)$/, "");
|
|
19
|
+
const values = cells.slice(1).map(value => value === "-" ? null : /^\$\d+(?:\.\d+)?$/.test(value) ? Number(value.slice(1)) : NaN);
|
|
20
|
+
if (values.some(value => value !== null && !Number.isFinite(value)) || values[0] === null || values[3] === null) continue;
|
|
21
|
+
models[name] = { short: values.slice(0, 4), long: values.slice(4) };
|
|
22
|
+
}
|
|
23
|
+
if (!models["gpt-6.1-sol"] || !models["gpt-6-luna"]) throw new Error("Pricing table is incomplete.");
|
|
24
|
+
return models;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function estimateCallCost(usage, model, models) {
|
|
28
|
+
const rates = models[model]?.[usage.input_tokens > 272_000 ? "long" : "short"];
|
|
29
|
+
if (!rates) return null;
|
|
30
|
+
const cached = usage.cached_input_tokens;
|
|
31
|
+
const writes = usage.cache_write_input_tokens;
|
|
32
|
+
const tokens = [usage.input_tokens - cached - writes, cached, writes, usage.output_tokens];
|
|
33
|
+
if (tokens.some((count, i) => count < 0 || (count > 0 && rates[i] == null))) return null;
|
|
34
|
+
// Reasoning output is already included in output_tokens.
|
|
35
|
+
return tokens.reduce((sum, count, i) => sum + count * (rates[i] ?? 0) / 1_000_000, 0);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class CodexPricing {
|
|
39
|
+
constructor({ cachePath, legacyCachePath, now = Date.now, fetchImpl = globalThis.fetch } = {}) {
|
|
40
|
+
this.cachePath = cachePath; this.legacyCachePath = legacyCachePath; this.now = now; this.fetch = fetchImpl;
|
|
41
|
+
this.pending = null; this.nextCheck = 0;
|
|
42
|
+
}
|
|
43
|
+
async get({ refresh = true } = {}) {
|
|
44
|
+
this.loading ??= this.load();
|
|
45
|
+
await this.loading;
|
|
46
|
+
if (refresh && !this.pending && this.now() >= this.nextCheck) {
|
|
47
|
+
this.nextCheck = this.now() + WEEK;
|
|
48
|
+
this.pending = this.update().catch(() => { this.nextCheck = this.now() + 60 * 60_000; }).finally(() => { this.pending = null; });
|
|
49
|
+
}
|
|
50
|
+
return this.table;
|
|
51
|
+
}
|
|
52
|
+
async load() {
|
|
53
|
+
this.table = JSON.parse(await readFile(new URL("./data/codex-pricing.json", import.meta.url), "utf8"));
|
|
54
|
+
if (!this.cachePath) return;
|
|
55
|
+
try {
|
|
56
|
+
await migrateCache(this.legacyCachePath, this.cachePath);
|
|
57
|
+
const cached = JSON.parse(await readFile(this.cachePath, "utf8"));
|
|
58
|
+
// Validate cached content with the same parser used for the live source.
|
|
59
|
+
const models = parsePricing(cached.markdown);
|
|
60
|
+
if (Number.isFinite(cached.checkedAt) && cached.checkedAt <= this.now()) {
|
|
61
|
+
this.table = { date: new Date(cached.checkedAt).toISOString().slice(0, 10), models };
|
|
62
|
+
this.nextCheck = cached.checkedAt + WEEK;
|
|
63
|
+
}
|
|
64
|
+
} catch { /* The bundled table remains available offline. */ }
|
|
65
|
+
}
|
|
66
|
+
async update() {
|
|
67
|
+
const response = await this.fetch(PRICING_URL, { signal: AbortSignal.timeout(5000), redirect: "error" });
|
|
68
|
+
if (!response.ok) throw new Error("Pricing update failed.");
|
|
69
|
+
const markdown = await response.text();
|
|
70
|
+
if (markdown.length > 1_000_000) throw new Error("Pricing response is too large.");
|
|
71
|
+
const models = parsePricing(markdown);
|
|
72
|
+
const checkedAt = this.now();
|
|
73
|
+
if (this.cachePath) {
|
|
74
|
+
await mkdir(dirname(this.cachePath), { recursive: true, mode: 0o700 });
|
|
75
|
+
await writeDurableAtomic(this.cachePath, JSON.stringify({ markdown, checkedAt }) + "\n");
|
|
76
|
+
}
|
|
77
|
+
this.table = { date: new Date(checkedAt).toISOString().slice(0, 10), models };
|
|
78
|
+
}
|
|
79
|
+
}
|