@code-yeongyu/senpi 2026.8.16 → 2026.8.18-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +102 -0
- package/dist/bun/cli.js +1 -0
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-cursor-agent.d.ts +2 -0
- package/dist/bun/register-cursor-agent.d.ts.map +1 -0
- package/dist/bun/register-cursor-agent.js +4 -0
- package/dist/bun/register-cursor-agent.js.map +1 -0
- package/dist/core/agent-session-services.js +2 -2
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +48 -5
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +239 -61
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/cursor-exec-bridge-session.d.ts +11 -0
- package/dist/core/cursor-exec-bridge-session.d.ts.map +1 -0
- package/dist/core/cursor-exec-bridge-session.js +15 -0
- package/dist/core/cursor-exec-bridge-session.js.map +1 -0
- package/dist/core/cursor-exec-bridge.d.ts +52 -0
- package/dist/core/cursor-exec-bridge.d.ts.map +1 -0
- package/dist/core/cursor-exec-bridge.js +205 -0
- package/dist/core/cursor-exec-bridge.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/account-command.d.ts +31 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/account-command.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/account-command.js +298 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/account-command.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/accounts.d.ts +38 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/accounts.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/accounts.js +75 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/accounts.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.d.ts +24 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.js +64 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/affinity.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.d.ts +139 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.js +362 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/diagnostics.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/errors.d.ts +19 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/errors.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/errors.js +122 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/errors.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.d.ts +30 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.js +117 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/executable.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/failover.d.ts +39 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/failover.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/failover.js +155 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/failover.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts +89 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js +147 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/guardrails.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/home-store.d.ts +20 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/home-store.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/home-store.js +99 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/home-store.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.d.ts +26 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js +86 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/index.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.d.ts +27 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.js +242 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/models.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.d.ts +14 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.js +58 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts +77 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js +361 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/oauth-login.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.d.ts +94 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.js +248 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/session-router.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts +37 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js +196 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/settings.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-args.d.ts +11 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-args.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-args.js +17 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/spawn-args.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.d.ts +104 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.js +301 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream-parser.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.d.ts +26 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js +587 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/stream.js.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/transport.d.ts +43 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/transport.d.ts.map +1 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/transport.js +196 -0
- package/dist/core/extensions/builtin/cursor-cli-oauth/transport.js.map +1 -0
- package/dist/core/extensions/builtin/goal/channel-state-subscriptions.d.ts +9 -0
- package/dist/core/extensions/builtin/goal/channel-state-subscriptions.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/channel-state-subscriptions.js +18 -0
- package/dist/core/extensions/builtin/goal/channel-state-subscriptions.js.map +1 -0
- package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/index.js +14 -3
- package/dist/core/extensions/builtin/goal/index.js.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +9 -0
- package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
- package/dist/core/extensions/builtin/goal/monitor-continuation.js +26 -9
- package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
- package/dist/core/extensions/builtin/goal/reload-reengagement.d.ts +30 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.d.ts.map +1 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.js +36 -0
- package/dist/core/extensions/builtin/goal/reload-reengagement.js.map +1 -0
- package/dist/core/extensions/builtin/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/index.js +5 -2
- package/dist/core/extensions/builtin/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/detectors.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/detectors.js +21 -3
- package/dist/core/extensions/builtin/loop-guard/detectors.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/escalation.d.ts +24 -0
- package/dist/core/extensions/builtin/loop-guard/escalation.d.ts.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/escalation.js +77 -0
- package/dist/core/extensions/builtin/loop-guard/escalation.js.map +1 -0
- package/dist/core/extensions/builtin/loop-guard/index.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/index.js +98 -3
- package/dist/core/extensions/builtin/loop-guard/index.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/notice.d.ts +9 -0
- package/dist/core/extensions/builtin/loop-guard/notice.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/notice.js +17 -0
- package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/policy.d.ts +4 -0
- package/dist/core/extensions/builtin/loop-guard/policy.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/policy.js +4 -0
- package/dist/core/extensions/builtin/loop-guard/policy.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/renderer.d.ts +2 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/renderer.js +11 -0
- package/dist/core/extensions/builtin/loop-guard/renderer.js.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/tracker.d.ts +1 -1
- package/dist/core/extensions/builtin/loop-guard/tracker.d.ts.map +1 -1
- package/dist/core/extensions/builtin/loop-guard/tracker.js +3 -1
- package/dist/core/extensions/builtin/loop-guard/tracker.js.map +1 -1
- package/dist/core/extensions/builtin/monitor-state-event.d.ts +6 -0
- package/dist/core/extensions/builtin/monitor-state-event.d.ts.map +1 -1
- package/dist/core/extensions/builtin/monitor-state-event.js +10 -0
- package/dist/core/extensions/builtin/monitor-state-event.js.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +7 -2
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +14 -2
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/prompt-templates.d.ts +5 -0
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js +8 -9
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-display-names.d.ts.map +1 -1
- package/dist/core/provider-display-names.js +1 -0
- package/dist/core/provider-display-names.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +6 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.d.ts +10 -0
- package/dist/modes/interactive/editor-paste-transfer.d.ts.map +1 -1
- package/dist/modes/interactive/editor-paste-transfer.js +16 -0
- package/dist/modes/interactive/editor-paste-transfer.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +14 -7
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
- package/dist/modes/rpc/connection-handler.js +32 -27
- package/dist/modes/rpc/connection-handler.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts +6 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js +47 -14
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/multi-session-host.d.ts.map +1 -1
- package/dist/modes/rpc/multi-session-host.js +26 -4
- package/dist/modes/rpc/multi-session-host.js.map +1 -1
- package/dist/modes/rpc/rpc-command-invocation.d.ts +5 -0
- package/dist/modes/rpc/rpc-command-invocation.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-command-invocation.js +2 -0
- package/dist/modes/rpc/rpc-command-invocation.js.map +1 -0
- package/dist/modes/rpc/rpc-command-surface.d.ts +49 -0
- package/dist/modes/rpc/rpc-command-surface.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-command-surface.js +40 -0
- package/dist/modes/rpc/rpc-command-surface.js.map +1 -0
- package/dist/modes/rpc/rpc-input-validation.d.ts +4 -0
- package/dist/modes/rpc/rpc-input-validation.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-input-validation.js +20 -0
- package/dist/modes/rpc/rpc-input-validation.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +12 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +12 -12
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/docs/providers.md +53 -1
- package/docs/rpc.md +78 -6
- package/docs/skills.md +14 -3
- package/node_modules/@bufbuild/protobuf/README.md +44 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/clone.d.ts +6 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/clone.js +66 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/boot.d.ts +1 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/boot.js +18 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/enum.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/enum.js +31 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/extension.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/extension.js +28 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/file.d.ts +1 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/file.js +18 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/index.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/index.js +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/message.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/message.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/service.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/service.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/symbols.d.ts +140 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/symbols.js +43 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/types.d.ts +79 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv1/types.js +15 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/boot.d.ts +63 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/boot.js +105 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/embed.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/embed.js +244 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/enum.d.ts +29 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/enum.js +58 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/extension.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/extension.js +28 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/file.d.ts +7 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/file.js +35 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/index.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/index.js +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/message.d.ts +15 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/message.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/restore-json-names.d.ts +5 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/restore-json-names.js +29 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/scalar.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/scalar.js +67 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/service.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/service.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/symbols.d.ts +145 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/symbols.js +74 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/types.d.ts +85 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/codegenv2/types.js +15 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/create.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/create.js +259 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/descriptors.d.ts +634 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/descriptors.js +53 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/equals.d.ts +46 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/equals.js +209 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/extensions.d.ts +60 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/extensions.js +168 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/fields.d.ts +23 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/fields.js +45 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-binary.d.ts +48 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-binary.js +247 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-json.d.ts +73 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/from-json.js +739 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/index.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/index.js +55 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/is-message.d.ts +7 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/is-message.js +33 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/json-value.d.ts +16 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/json-value.js +15 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/merge.d.ts +13 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/merge.js +70 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/package.json +4 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/proto-int64.d.ts +98 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/proto-int64.js +131 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/error.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/error.js +36 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/guard.d.ts +20 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/guard.js +78 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/index.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/index.js +41 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/names.d.ts +30 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/names.js +115 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/nested-types.d.ts +35 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/nested-types.js +110 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/path.d.ts +107 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/path.js +376 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-check.js +268 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-types.d.ts +217 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect-types.js +16 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/reflect.js +546 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/scalar.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/scalar.js +129 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/unsafe.d.ts +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/reflect/unsafe.js +149 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/registry.d.ts +98 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/registry.js +945 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.d.ts +24 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-binary.js +199 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-json.d.ts +67 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/to-json.js +391 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/from-text.d.ts +35 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/from-text.js +684 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/index.d.ts +4 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/index.js +21 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/is-group-like.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/is-group-like.js +47 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/reader.d.ts +91 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/reader.js +481 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/to-text.d.ts +34 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/to-text.js +358 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/writer.d.ts +76 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/txtpb/writer.js +220 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/types.d.ts +135 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/types.js +15 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/unknown-enum.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/unknown-enum.js +26 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.d.ts +23 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/base64-encoding.js +156 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.d.ts +268 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/binary-encoding.js +530 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.d.ts +5 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/index.js +34 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/size-delimited.d.ts +69 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/size-delimited.js +191 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.d.ts +28 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-encoding.js +61 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-format.d.ts +13 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/text-format.js +199 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.d.ts +70 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wire/varint.js +322 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/any.d.ts +38 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/any.js +75 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/duration.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/duration.js +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/any_pb.d.ts +238 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/any_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/api_pb.d.ts +537 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/api_pb.js +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +490 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +68 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/cpp_features_pb.d.ts +91 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/cpp_features_pb.js +60 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +4143 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/descriptor_pb.js +892 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/duration_pb.d.ts +161 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/duration_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/empty_pb.d.ts +39 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/empty_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +424 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/field_mask_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/go_features_pb.d.ts +189 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/go_features_pb.js +126 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/java_features_pb.d.ts +194 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/java_features_pb.js +106 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/source_context_pb.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/source_context_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/struct_pb.d.ts +195 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/struct_pb.js +59 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +222 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/timestamp_pb.js +27 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/type_pb.d.ts +722 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/type_pb.js +242 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +330 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/gen/google/protobuf/wrappers_pb.js +67 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/index.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/index.js +48 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/timestamp.d.ts +21 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/timestamp.js +57 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/wrappers.d.ts +25 -0
- package/node_modules/@bufbuild/protobuf/dist/commonjs/wkt/wrappers.js +66 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/clone.d.ts +6 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/clone.js +63 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/boot.d.ts +1 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/boot.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.js +26 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.js +25 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.d.ts +1 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.js +23 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.js +21 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.d.ts +140 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.js +40 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.d.ts +79 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.d.ts +63 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js +101 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.js +239 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.d.ts +29 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.js +53 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.js +25 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.d.ts +7 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js +32 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.js +23 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.d.ts +15 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js +21 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.d.ts +5 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js +26 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.js +63 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.d.ts +145 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.js +71 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.d.ts +85 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/create.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/create.js +256 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +634 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.js +50 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/equals.d.ts +46 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/equals.js +206 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/extensions.d.ts +60 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/extensions.js +159 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/fields.d.ts +23 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/fields.js +41 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.d.ts +48 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +241 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +73 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +731 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/index.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/index.js +29 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/is-message.d.ts +7 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/is-message.js +30 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/json-value.d.ts +16 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/json-value.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/merge.d.ts +13 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/merge.js +67 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/package.json +4 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.d.ts +98 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js +128 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js +31 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.d.ts +20 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js +71 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.d.ts +8 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.js +21 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.d.ts +30 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js +109 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.d.ts +35 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js +105 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +107 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.js +369 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js +262 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.d.ts +217 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js +541 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js +124 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.d.ts +39 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js +140 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/registry.d.ts +98 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +939 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.d.ts +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js +195 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +67 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +386 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/from-text.d.ts +35 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/from-text.js +680 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/index.d.ts +4 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/index.js +15 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/is-group-like.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/is-group-like.js +44 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/reader.d.ts +91 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/reader.js +477 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/to-text.d.ts +34 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/to-text.js +355 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/writer.d.ts +76 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/txtpb/writer.js +214 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +135 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/types.js +14 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/unknown-enum.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/unknown-enum.js +23 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.d.ts +23 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js +152 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +268 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +525 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.d.ts +5 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.js +18 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.d.ts +69 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.js +186 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +28 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +57 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.d.ts +13 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js +195 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.d.ts +70 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js +313 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.d.ts +38 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.js +69 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.d.ts +9 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.js +35 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +238 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +537 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.js +36 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +490 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +65 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.d.ts +91 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.js +57 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +4143 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +888 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +161 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +39 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +424 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +189 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +123 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.d.ts +194 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.js +103 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +43 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +195 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.js +56 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +222 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +722 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.js +239 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +330 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +64 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.d.ts +19 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.js +32 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.d.ts +21 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.js +50 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +25 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +61 -0
- package/node_modules/@bufbuild/protobuf/package.json +147 -0
- package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +38 -0
- package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-runtime.ts +2 -0
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/render.ts +43 -6
- package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +59 -17
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +15 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +18 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +12 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
- package/node_modules/@earendil-works/pi-ai/README.md +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/deterministic-id.d.ts +17 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/deterministic-id.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/deterministic-id.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/deterministic-id.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-lifecycle.d.ts +13 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-lifecycle.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-lifecycle.js +33 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-lifecycle.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-modern.d.ts +79 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-modern.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-modern.js +360 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/exec-modern.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts +16797 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js +3828 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/gen/agent_pb.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/pi-args.d.ts +55 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/pi-args.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/pi-args.js +76 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/pi-args.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts +116 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.js +16 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent/types.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +191 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +3316 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.lazy.d.ts +29 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.lazy.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.lazy.js +33 -0
- package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.lazy.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/compat.js +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/compat.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cursor-agent-provider.d.ts +11 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor-agent-provider.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor-agent-provider.js +11 -0
- package/node_modules/@earendil-works/pi-ai/dist/cursor-agent-provider.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js +2 -0
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts +6 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/model.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.d.ts +6 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.js +42 -9
- package/node_modules/@earendil-works/pi-ai/dist/providers/cursor.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cerebras.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/data/xai.json +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/recovery-message-snapshot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +3 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/block-symbols.d.ts +57 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/block-symbols.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/block-symbols.js +57 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/block-symbols.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js +22 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +3 -2
- package/node_modules/@earendil-works/pi-pty/package.json +1 -1
- package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js +21 -0
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/dollar-invocation-autocomplete.d.ts +9 -0
- package/node_modules/@earendil-works/pi-tui/dist/dollar-invocation-autocomplete.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/dollar-invocation-autocomplete.js +82 -0
- package/node_modules/@earendil-works/pi-tui/dist/dollar-invocation-autocomplete.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/package.json +11 -8
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { mkdir, mkdtemp, open, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { defaultCursorAgentExecutableDeps, resolveCursorAgentExecutable } from "./executable.js";
|
|
6
|
+
const MODEL_PROBE_TIMEOUT_MS = 15_000;
|
|
7
|
+
const DEFAULT_MODEL_CATALOG_TTL_HOURS = 24;
|
|
8
|
+
const ANSI_ESCAPE_SEQUENCE = /\u001B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])/g;
|
|
9
|
+
const MODEL_LINE = /^(\S+)\s+-\s+(.+)$/;
|
|
10
|
+
const MODEL_ID = /^[A-Za-z0-9][A-Za-z0-9._/:+-]*$/;
|
|
11
|
+
const MISLEADING_ERROR_LINE = /^\s*(?:error|failed|failure)(?=\s|:|-|$)/i;
|
|
12
|
+
const REASONING_SUFFIX = /(?:^|-)(?:thinking(?:-(?:low|medium|high|xhigh|max))?|low|medium|high|xhigh|max)(?:-fast)?$/i;
|
|
13
|
+
const STATIC_MODEL_DEFINITIONS = [
|
|
14
|
+
{ id: "auto", label: "Auto" },
|
|
15
|
+
{ id: "composer-2.5", label: "Composer 2.5 (200K context)" },
|
|
16
|
+
{ id: "composer-2.5-fast", label: "Composer 2.5 Fast (200K context)" },
|
|
17
|
+
{ id: "gpt-5.6-sol-high", label: "GPT 5.6 SOL High (272K context)" },
|
|
18
|
+
{ id: "gpt-5.6-luna-high", label: "GPT 5.6 Luna High (272K context)" },
|
|
19
|
+
{ id: "gpt-5.5-high", label: "GPT 5.5 High (272K context)" },
|
|
20
|
+
{ id: "gpt-5.3-codex", label: "GPT 5.3 Codex (272K context)" },
|
|
21
|
+
{ id: "gpt-5.2", label: "GPT 5.2 (272K context)" },
|
|
22
|
+
{ id: "claude-opus-5-high", label: "Claude Opus 5 High (300K context)" },
|
|
23
|
+
{ id: "claude-opus-5-thinking-high", label: "Claude Opus 5 Thinking High (300K context)" },
|
|
24
|
+
{ id: "claude-opus-4-8-thinking-high", label: "Claude Opus 4.8 Thinking High (300K context)" },
|
|
25
|
+
{ id: "claude-fable-5-thinking-high", label: "Claude Fable 5 Thinking High (300K context)" },
|
|
26
|
+
{ id: "claude-sonnet-5-thinking-high", label: "Claude Sonnet 5 Thinking High (300K context)" },
|
|
27
|
+
{ id: "gemini-3.7-flash-high", label: "Gemini 3.7 Flash High (1M context)" },
|
|
28
|
+
{ id: "cursor-grok-4.6-high", label: "Cursor Grok 4.6 High (200K context)" },
|
|
29
|
+
];
|
|
30
|
+
function stripAnsi(value) {
|
|
31
|
+
return value.replace(ANSI_ESCAPE_SEQUENCE, "");
|
|
32
|
+
}
|
|
33
|
+
function contextWindowFor(id, label) {
|
|
34
|
+
if (/\b1\s*M\b/i.test(label))
|
|
35
|
+
return 1_000_000;
|
|
36
|
+
if (id.toLowerCase().startsWith("claude-") && /\b300\s*K\b/i.test(label))
|
|
37
|
+
return 300_000;
|
|
38
|
+
if (id.toLowerCase().startsWith("gpt-") && /\b272\s*K\b/i.test(label))
|
|
39
|
+
return 272_000;
|
|
40
|
+
return 200_000;
|
|
41
|
+
}
|
|
42
|
+
function modelEntry(id, label) {
|
|
43
|
+
return {
|
|
44
|
+
id,
|
|
45
|
+
name: label,
|
|
46
|
+
reasoning: REASONING_SUFFIX.test(id),
|
|
47
|
+
input: ["text"],
|
|
48
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
49
|
+
contextWindow: contextWindowFor(id, label),
|
|
50
|
+
maxTokens: 64_000,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export const STATIC_CURSOR_CLI_MODELS = STATIC_MODEL_DEFINITIONS.map(({ id, label }) => modelEntry(id, label));
|
|
54
|
+
/** Parse the complete `cursor-agent models` listing into extension provider entries. */
|
|
55
|
+
export function parseCursorAgentModelsListing(listing) {
|
|
56
|
+
const plainListing = stripAnsi(listing);
|
|
57
|
+
const lines = plainListing.split(/\r?\n/);
|
|
58
|
+
if (lines.some((line) => MISLEADING_ERROR_LINE.test(line)))
|
|
59
|
+
return [];
|
|
60
|
+
const seen = new Set();
|
|
61
|
+
const models = [];
|
|
62
|
+
for (const rawLine of lines) {
|
|
63
|
+
const match = MODEL_LINE.exec(rawLine.trim());
|
|
64
|
+
if (!match)
|
|
65
|
+
continue;
|
|
66
|
+
const id = match[1];
|
|
67
|
+
const label = match[2].trim();
|
|
68
|
+
if (!MODEL_ID.test(id) || label.length === 0 || seen.has(id))
|
|
69
|
+
continue;
|
|
70
|
+
seen.add(id);
|
|
71
|
+
models.push(modelEntry(id, label));
|
|
72
|
+
}
|
|
73
|
+
return models;
|
|
74
|
+
}
|
|
75
|
+
async function runModelsProbe(executable, stdoutPath, timeoutMs) {
|
|
76
|
+
const output = await open(stdoutPath, "w");
|
|
77
|
+
try {
|
|
78
|
+
await new Promise((resolve, reject) => {
|
|
79
|
+
const child = spawn(executable, ["models"], {
|
|
80
|
+
stdio: ["ignore", output.fd, "ignore"],
|
|
81
|
+
});
|
|
82
|
+
let timedOut = false;
|
|
83
|
+
let settled = false;
|
|
84
|
+
const finish = (error) => {
|
|
85
|
+
if (settled)
|
|
86
|
+
return;
|
|
87
|
+
settled = true;
|
|
88
|
+
clearTimeout(deadline);
|
|
89
|
+
if (error)
|
|
90
|
+
reject(error);
|
|
91
|
+
else
|
|
92
|
+
resolve();
|
|
93
|
+
};
|
|
94
|
+
const deadline = setTimeout(() => {
|
|
95
|
+
timedOut = true;
|
|
96
|
+
child.kill("SIGKILL");
|
|
97
|
+
}, timeoutMs);
|
|
98
|
+
child.once("error", (error) => finish(error));
|
|
99
|
+
child.once("close", (code, signal) => {
|
|
100
|
+
if (timedOut) {
|
|
101
|
+
finish(new Error(`cursor-agent models exceeded its ${timeoutMs}ms deadline`));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (code !== 0) {
|
|
105
|
+
finish(new Error(`cursor-agent models failed with code ${String(code)} and signal ${String(signal)}`));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
finish();
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
await output.close();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function defaultDeps(settings) {
|
|
117
|
+
return {
|
|
118
|
+
now: Date.now,
|
|
119
|
+
resolveExecutable: () => {
|
|
120
|
+
const executableDeps = defaultCursorAgentExecutableDeps();
|
|
121
|
+
return resolveCursorAgentExecutable({
|
|
122
|
+
...executableDeps,
|
|
123
|
+
settings: { executablePath: settings.executablePath },
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
runProbe: runModelsProbe,
|
|
127
|
+
makeTemporaryDirectory: (prefix) => mkdtemp(prefix),
|
|
128
|
+
readTextFile: (path) => readFile(path, "utf8"),
|
|
129
|
+
makeDirectory: async (path) => {
|
|
130
|
+
await mkdir(path, { recursive: true });
|
|
131
|
+
},
|
|
132
|
+
writeTextFile: async (path, contents) => {
|
|
133
|
+
await writeFile(path, contents, "utf8");
|
|
134
|
+
},
|
|
135
|
+
renameFile: async (from, to) => {
|
|
136
|
+
await rename(from, to);
|
|
137
|
+
},
|
|
138
|
+
removeDirectory: async (path) => {
|
|
139
|
+
await rm(path, { recursive: true, force: true });
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
function catalogTtlMs(settings) {
|
|
144
|
+
const hours = settings.modelCatalogTtlHours;
|
|
145
|
+
const validHours = typeof hours === "number" && Number.isFinite(hours) && hours > 0 ? hours : DEFAULT_MODEL_CATALOG_TTL_HOURS;
|
|
146
|
+
return validHours * 60 * 60 * 1_000;
|
|
147
|
+
}
|
|
148
|
+
function parseCachedCatalog(contents) {
|
|
149
|
+
let parsed;
|
|
150
|
+
try {
|
|
151
|
+
parsed = JSON.parse(contents);
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
if (typeof parsed !== "object" || parsed === null || !("cachedAt" in parsed) || !("models" in parsed)) {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const cachedAt = parsed.cachedAt;
|
|
160
|
+
const models = parsed.models;
|
|
161
|
+
if (typeof cachedAt !== "number" || !Number.isFinite(cachedAt) || !Array.isArray(models) || models.length === 0) {
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
const normalized = [];
|
|
165
|
+
const seen = new Set();
|
|
166
|
+
for (const candidate of models) {
|
|
167
|
+
if (typeof candidate !== "object" || candidate === null || !("id" in candidate) || !("name" in candidate)) {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
const id = candidate.id;
|
|
171
|
+
const name = candidate.name;
|
|
172
|
+
if (typeof id !== "string" ||
|
|
173
|
+
!MODEL_ID.test(id) ||
|
|
174
|
+
typeof name !== "string" ||
|
|
175
|
+
name.length === 0 ||
|
|
176
|
+
seen.has(id)) {
|
|
177
|
+
return undefined;
|
|
178
|
+
}
|
|
179
|
+
seen.add(id);
|
|
180
|
+
normalized.push(modelEntry(id, name));
|
|
181
|
+
}
|
|
182
|
+
return { cachedAt, models: normalized };
|
|
183
|
+
}
|
|
184
|
+
async function readFreshCache(cachePath, now, ttlMs, deps) {
|
|
185
|
+
try {
|
|
186
|
+
const cached = parseCachedCatalog(await deps.readTextFile(cachePath));
|
|
187
|
+
if (!cached || now < cached.cachedAt || now - cached.cachedAt >= ttlMs)
|
|
188
|
+
return undefined;
|
|
189
|
+
return cached.models;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
async function writeCache(cacheDirectory, cachePath, catalog, deps) {
|
|
196
|
+
const temporaryPath = `${cachePath}.${process.pid}.${catalog.cachedAt}.tmp`;
|
|
197
|
+
await deps.makeDirectory(cacheDirectory);
|
|
198
|
+
await deps.writeTextFile(temporaryPath, `${JSON.stringify(catalog, null, 2)}\n`);
|
|
199
|
+
await deps.renameFile(temporaryPath, cachePath);
|
|
200
|
+
}
|
|
201
|
+
/** Resolve a cached or probed catalog, always degrading to the exact offline fallback. */
|
|
202
|
+
export async function resolveCursorCliModelCatalog(options) {
|
|
203
|
+
const settings = options.settings ?? {};
|
|
204
|
+
const deps = { ...defaultDeps(settings), ...options.deps };
|
|
205
|
+
const cacheDirectory = join(options.agentDir, "cursor-cli-oauth");
|
|
206
|
+
const cachePath = join(cacheDirectory, "models.json");
|
|
207
|
+
const now = deps.now();
|
|
208
|
+
const cached = await readFreshCache(cachePath, now, catalogTtlMs(settings), deps);
|
|
209
|
+
if (cached)
|
|
210
|
+
return cached;
|
|
211
|
+
let temporaryDirectory;
|
|
212
|
+
try {
|
|
213
|
+
const executable = deps.resolveExecutable();
|
|
214
|
+
temporaryDirectory = await deps.makeTemporaryDirectory(join(tmpdir(), "senpi-cursor-models-"));
|
|
215
|
+
const stdoutPath = join(temporaryDirectory, "stdout.txt");
|
|
216
|
+
await deps.runProbe(executable, stdoutPath, MODEL_PROBE_TIMEOUT_MS);
|
|
217
|
+
const models = parseCursorAgentModelsListing(await deps.readTextFile(stdoutPath));
|
|
218
|
+
if (models.length === 0)
|
|
219
|
+
return STATIC_CURSOR_CLI_MODELS;
|
|
220
|
+
try {
|
|
221
|
+
await writeCache(cacheDirectory, cachePath, { cachedAt: now, models }, deps);
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
// A read-only cache directory must not prevent provider registration.
|
|
225
|
+
}
|
|
226
|
+
return models;
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return STATIC_CURSOR_CLI_MODELS;
|
|
230
|
+
}
|
|
231
|
+
finally {
|
|
232
|
+
if (temporaryDirectory !== undefined) {
|
|
233
|
+
try {
|
|
234
|
+
await deps.removeDirectory(temporaryDirectory);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
// Best-effort cleanup must not replace the catalog result.
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/cursor-cli-oauth/models.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawn } from \"node:child_process\";\nimport { mkdir, mkdtemp, open, readFile, rename, rm, writeFile } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport { join } from \"node:path\";\nimport type { ProviderModelConfig } from \"../../types.ts\";\nimport { defaultCursorAgentExecutableDeps, resolveCursorAgentExecutable } from \"./executable.ts\";\n\nconst MODEL_PROBE_TIMEOUT_MS = 15_000;\nconst DEFAULT_MODEL_CATALOG_TTL_HOURS = 24;\nconst ANSI_ESCAPE_SEQUENCE = /\\u001B(?:[@-Z\\\\-_]|\\[[0-?]*[ -/]*[@-~])/g;\nconst MODEL_LINE = /^(\\S+)\\s+-\\s+(.+)$/;\nconst MODEL_ID = /^[A-Za-z0-9][A-Za-z0-9._/:+-]*$/;\nconst MISLEADING_ERROR_LINE = /^\\s*(?:error|failed|failure)(?=\\s|:|-|$)/i;\nconst REASONING_SUFFIX = /(?:^|-)(?:thinking(?:-(?:low|medium|high|xhigh|max))?|low|medium|high|xhigh|max)(?:-fast)?$/i;\n\nexport type CursorCliModelCatalogSettings = {\n\treadonly modelCatalogTtlHours?: number;\n\treadonly executablePath?: string;\n};\n\nexport type CursorCliModelCatalogDeps = {\n\tnow: () => number;\n\tresolveExecutable: () => string;\n\trunProbe: (executable: string, stdoutPath: string, timeoutMs: number) => Promise<void>;\n\tmakeTemporaryDirectory: (prefix: string) => Promise<string>;\n\treadTextFile: (path: string) => Promise<string>;\n\tmakeDirectory: (path: string) => Promise<void>;\n\twriteTextFile: (path: string, contents: string) => Promise<void>;\n\trenameFile: (from: string, to: string) => Promise<void>;\n\tremoveDirectory: (path: string) => Promise<void>;\n};\n\nexport type ResolveCursorCliModelCatalogOptions = {\n\treadonly agentDir: string;\n\treadonly settings?: CursorCliModelCatalogSettings;\n\treadonly deps?: Partial<CursorCliModelCatalogDeps>;\n};\n\ntype CachedModelCatalog = {\n\treadonly cachedAt: number;\n\treadonly models: readonly ProviderModelConfig[];\n};\n\ntype StaticModelDefinition = {\n\treadonly id: string;\n\treadonly label: string;\n};\n\nconst STATIC_MODEL_DEFINITIONS: readonly StaticModelDefinition[] = [\n\t{ id: \"auto\", label: \"Auto\" },\n\t{ id: \"composer-2.5\", label: \"Composer 2.5 (200K context)\" },\n\t{ id: \"composer-2.5-fast\", label: \"Composer 2.5 Fast (200K context)\" },\n\t{ id: \"gpt-5.6-sol-high\", label: \"GPT 5.6 SOL High (272K context)\" },\n\t{ id: \"gpt-5.6-luna-high\", label: \"GPT 5.6 Luna High (272K context)\" },\n\t{ id: \"gpt-5.5-high\", label: \"GPT 5.5 High (272K context)\" },\n\t{ id: \"gpt-5.3-codex\", label: \"GPT 5.3 Codex (272K context)\" },\n\t{ id: \"gpt-5.2\", label: \"GPT 5.2 (272K context)\" },\n\t{ id: \"claude-opus-5-high\", label: \"Claude Opus 5 High (300K context)\" },\n\t{ id: \"claude-opus-5-thinking-high\", label: \"Claude Opus 5 Thinking High (300K context)\" },\n\t{ id: \"claude-opus-4-8-thinking-high\", label: \"Claude Opus 4.8 Thinking High (300K context)\" },\n\t{ id: \"claude-fable-5-thinking-high\", label: \"Claude Fable 5 Thinking High (300K context)\" },\n\t{ id: \"claude-sonnet-5-thinking-high\", label: \"Claude Sonnet 5 Thinking High (300K context)\" },\n\t{ id: \"gemini-3.7-flash-high\", label: \"Gemini 3.7 Flash High (1M context)\" },\n\t{ id: \"cursor-grok-4.6-high\", label: \"Cursor Grok 4.6 High (200K context)\" },\n];\n\nfunction stripAnsi(value: string): string {\n\treturn value.replace(ANSI_ESCAPE_SEQUENCE, \"\");\n}\n\nfunction contextWindowFor(id: string, label: string): number {\n\tif (/\\b1\\s*M\\b/i.test(label)) return 1_000_000;\n\tif (id.toLowerCase().startsWith(\"claude-\") && /\\b300\\s*K\\b/i.test(label)) return 300_000;\n\tif (id.toLowerCase().startsWith(\"gpt-\") && /\\b272\\s*K\\b/i.test(label)) return 272_000;\n\treturn 200_000;\n}\n\nfunction modelEntry(id: string, label: string): ProviderModelConfig {\n\treturn {\n\t\tid,\n\t\tname: label,\n\t\treasoning: REASONING_SUFFIX.test(id),\n\t\tinput: [\"text\"],\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t\tcontextWindow: contextWindowFor(id, label),\n\t\tmaxTokens: 64_000,\n\t};\n}\n\nexport const STATIC_CURSOR_CLI_MODELS: readonly ProviderModelConfig[] = STATIC_MODEL_DEFINITIONS.map(({ id, label }) =>\n\tmodelEntry(id, label),\n);\n\n/** Parse the complete `cursor-agent models` listing into extension provider entries. */\nexport function parseCursorAgentModelsListing(listing: string): ProviderModelConfig[] {\n\tconst plainListing = stripAnsi(listing);\n\tconst lines = plainListing.split(/\\r?\\n/);\n\tif (lines.some((line) => MISLEADING_ERROR_LINE.test(line))) return [];\n\n\tconst seen = new Set<string>();\n\tconst models: ProviderModelConfig[] = [];\n\tfor (const rawLine of lines) {\n\t\tconst match = MODEL_LINE.exec(rawLine.trim());\n\t\tif (!match) continue;\n\t\tconst id = match[1];\n\t\tconst label = match[2].trim();\n\t\tif (!MODEL_ID.test(id) || label.length === 0 || seen.has(id)) continue;\n\t\tseen.add(id);\n\t\tmodels.push(modelEntry(id, label));\n\t}\n\treturn models;\n}\n\nasync function runModelsProbe(executable: string, stdoutPath: string, timeoutMs: number): Promise<void> {\n\tconst output = await open(stdoutPath, \"w\");\n\ttry {\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tconst child = spawn(executable, [\"models\"], {\n\t\t\t\tstdio: [\"ignore\", output.fd, \"ignore\"],\n\t\t\t});\n\t\t\tlet timedOut = false;\n\t\t\tlet settled = false;\n\t\t\tconst finish = (error?: Error): void => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\tclearTimeout(deadline);\n\t\t\t\tif (error) reject(error);\n\t\t\t\telse resolve();\n\t\t\t};\n\t\t\tconst deadline = setTimeout(() => {\n\t\t\t\ttimedOut = true;\n\t\t\t\tchild.kill(\"SIGKILL\");\n\t\t\t}, timeoutMs);\n\t\t\tchild.once(\"error\", (error) => finish(error));\n\t\t\tchild.once(\"close\", (code, signal) => {\n\t\t\t\tif (timedOut) {\n\t\t\t\t\tfinish(new Error(`cursor-agent models exceeded its ${timeoutMs}ms deadline`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (code !== 0) {\n\t\t\t\t\tfinish(new Error(`cursor-agent models failed with code ${String(code)} and signal ${String(signal)}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tfinish();\n\t\t\t});\n\t\t});\n\t} finally {\n\t\tawait output.close();\n\t}\n}\n\nfunction defaultDeps(settings: CursorCliModelCatalogSettings): CursorCliModelCatalogDeps {\n\treturn {\n\t\tnow: Date.now,\n\t\tresolveExecutable: () => {\n\t\t\tconst executableDeps = defaultCursorAgentExecutableDeps();\n\t\t\treturn resolveCursorAgentExecutable({\n\t\t\t\t...executableDeps,\n\t\t\t\tsettings: { executablePath: settings.executablePath },\n\t\t\t});\n\t\t},\n\t\trunProbe: runModelsProbe,\n\t\tmakeTemporaryDirectory: (prefix) => mkdtemp(prefix),\n\t\treadTextFile: (path) => readFile(path, \"utf8\"),\n\t\tmakeDirectory: async (path) => {\n\t\t\tawait mkdir(path, { recursive: true });\n\t\t},\n\t\twriteTextFile: async (path, contents) => {\n\t\t\tawait writeFile(path, contents, \"utf8\");\n\t\t},\n\t\trenameFile: async (from, to) => {\n\t\t\tawait rename(from, to);\n\t\t},\n\t\tremoveDirectory: async (path) => {\n\t\t\tawait rm(path, { recursive: true, force: true });\n\t\t},\n\t};\n}\n\nfunction catalogTtlMs(settings: CursorCliModelCatalogSettings): number {\n\tconst hours = settings.modelCatalogTtlHours;\n\tconst validHours =\n\t\ttypeof hours === \"number\" && Number.isFinite(hours) && hours > 0 ? hours : DEFAULT_MODEL_CATALOG_TTL_HOURS;\n\treturn validHours * 60 * 60 * 1_000;\n}\n\nfunction parseCachedCatalog(contents: string): CachedModelCatalog | undefined {\n\tlet parsed: unknown;\n\ttry {\n\t\tparsed = JSON.parse(contents);\n\t} catch {\n\t\treturn undefined;\n\t}\n\tif (typeof parsed !== \"object\" || parsed === null || !(\"cachedAt\" in parsed) || !(\"models\" in parsed)) {\n\t\treturn undefined;\n\t}\n\tconst cachedAt = parsed.cachedAt;\n\tconst models = parsed.models;\n\tif (typeof cachedAt !== \"number\" || !Number.isFinite(cachedAt) || !Array.isArray(models) || models.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst normalized: ProviderModelConfig[] = [];\n\tconst seen = new Set<string>();\n\tfor (const candidate of models) {\n\t\tif (typeof candidate !== \"object\" || candidate === null || !(\"id\" in candidate) || !(\"name\" in candidate)) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst id = candidate.id;\n\t\tconst name = candidate.name;\n\t\tif (\n\t\t\ttypeof id !== \"string\" ||\n\t\t\t!MODEL_ID.test(id) ||\n\t\t\ttypeof name !== \"string\" ||\n\t\t\tname.length === 0 ||\n\t\t\tseen.has(id)\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\t\tseen.add(id);\n\t\tnormalized.push(modelEntry(id, name));\n\t}\n\treturn { cachedAt, models: normalized };\n}\n\nasync function readFreshCache(\n\tcachePath: string,\n\tnow: number,\n\tttlMs: number,\n\tdeps: CursorCliModelCatalogDeps,\n): Promise<readonly ProviderModelConfig[] | undefined> {\n\ttry {\n\t\tconst cached = parseCachedCatalog(await deps.readTextFile(cachePath));\n\t\tif (!cached || now < cached.cachedAt || now - cached.cachedAt >= ttlMs) return undefined;\n\t\treturn cached.models;\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nasync function writeCache(\n\tcacheDirectory: string,\n\tcachePath: string,\n\tcatalog: CachedModelCatalog,\n\tdeps: CursorCliModelCatalogDeps,\n): Promise<void> {\n\tconst temporaryPath = `${cachePath}.${process.pid}.${catalog.cachedAt}.tmp`;\n\tawait deps.makeDirectory(cacheDirectory);\n\tawait deps.writeTextFile(temporaryPath, `${JSON.stringify(catalog, null, 2)}\\n`);\n\tawait deps.renameFile(temporaryPath, cachePath);\n}\n\n/** Resolve a cached or probed catalog, always degrading to the exact offline fallback. */\nexport async function resolveCursorCliModelCatalog(\n\toptions: ResolveCursorCliModelCatalogOptions,\n): Promise<readonly ProviderModelConfig[]> {\n\tconst settings = options.settings ?? {};\n\tconst deps = { ...defaultDeps(settings), ...options.deps };\n\tconst cacheDirectory = join(options.agentDir, \"cursor-cli-oauth\");\n\tconst cachePath = join(cacheDirectory, \"models.json\");\n\tconst now = deps.now();\n\tconst cached = await readFreshCache(cachePath, now, catalogTtlMs(settings), deps);\n\tif (cached) return cached;\n\n\tlet temporaryDirectory: string | undefined;\n\ttry {\n\t\tconst executable = deps.resolveExecutable();\n\t\ttemporaryDirectory = await deps.makeTemporaryDirectory(join(tmpdir(), \"senpi-cursor-models-\"));\n\t\tconst stdoutPath = join(temporaryDirectory, \"stdout.txt\");\n\t\tawait deps.runProbe(executable, stdoutPath, MODEL_PROBE_TIMEOUT_MS);\n\t\tconst models = parseCursorAgentModelsListing(await deps.readTextFile(stdoutPath));\n\t\tif (models.length === 0) return STATIC_CURSOR_CLI_MODELS;\n\t\ttry {\n\t\t\tawait writeCache(cacheDirectory, cachePath, { cachedAt: now, models }, deps);\n\t\t} catch {\n\t\t\t// A read-only cache directory must not prevent provider registration.\n\t\t}\n\t\treturn models;\n\t} catch {\n\t\treturn STATIC_CURSOR_CLI_MODELS;\n\t} finally {\n\t\tif (temporaryDirectory !== undefined) {\n\t\t\ttry {\n\t\t\t\tawait deps.removeDirectory(temporaryDirectory);\n\t\t\t} catch {\n\t\t\t\t// Best-effort cleanup must not replace the catalog result.\n\t\t\t}\n\t\t}\n\t}\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Credential, CredentialStore } from "@earendil-works/pi-ai";
|
|
2
|
+
export type CursorCliNativeBootstrapDeps = {
|
|
3
|
+
store: CredentialStore;
|
|
4
|
+
readNativeCredential: () => Credential | undefined | Promise<Credential | undefined>;
|
|
5
|
+
canBootstrap?: () => boolean | Promise<boolean>;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Read the managed credential afresh and bootstrap it once from the native
|
|
9
|
+
* Cursor OAuth credential when empty. Concurrent reads share only the
|
|
10
|
+
* in-flight operation; later turns re-read storage so login/import changes are
|
|
11
|
+
* immediately visible.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createCursorCliOauthCredentialReader(deps: CursorCliNativeBootstrapDeps): () => Promise<Credential | undefined>;
|
|
14
|
+
//# sourceMappingURL=native-bootstrap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-bootstrap.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIzE,MAAM,MAAM,4BAA4B,GAAG;IAC1C,KAAK,EAAE,eAAe,CAAC;IACvB,oBAAoB,EAAE,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACrF,YAAY,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD,CAAC;AAoCF;;;;;GAKG;AACH,wBAAgB,oCAAoC,CACnD,IAAI,EAAE,4BAA4B,GAChC,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CASvC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { emptyCredential, listAccounts, SENTINEL_OAUTH_FIELDS } from "./accounts.js";
|
|
2
|
+
import { CURSOR_CLI_OAUTH_PROVIDER_ID, importNativeCursorCredential } from "./oauth-login.js";
|
|
3
|
+
function asManagedCredential(credential) {
|
|
4
|
+
if (credential?.type !== "oauth")
|
|
5
|
+
return undefined;
|
|
6
|
+
const managed = credential;
|
|
7
|
+
return Array.isArray(managed.accounts) &&
|
|
8
|
+
managed.access === SENTINEL_OAUTH_FIELDS.access &&
|
|
9
|
+
managed.refresh === SENTINEL_OAUTH_FIELDS.refresh &&
|
|
10
|
+
managed.expires === SENTINEL_OAUTH_FIELDS.expires
|
|
11
|
+
? managed
|
|
12
|
+
: undefined;
|
|
13
|
+
}
|
|
14
|
+
async function bootstrapNativeCredential(deps) {
|
|
15
|
+
let current;
|
|
16
|
+
try {
|
|
17
|
+
current = await deps.store.read(CURSOR_CLI_OAUTH_PROVIDER_ID);
|
|
18
|
+
const managed = asManagedCredential(current);
|
|
19
|
+
if (managed && listAccounts(managed).length > 0)
|
|
20
|
+
return current;
|
|
21
|
+
if (current !== undefined && !managed)
|
|
22
|
+
return current;
|
|
23
|
+
if (deps.canBootstrap !== undefined && !(await deps.canBootstrap()))
|
|
24
|
+
return current;
|
|
25
|
+
const native = await deps.readNativeCredential();
|
|
26
|
+
if (native === undefined)
|
|
27
|
+
return current;
|
|
28
|
+
return await deps.store.modify(CURSOR_CLI_OAUTH_PROVIDER_ID, async (latest) => {
|
|
29
|
+
const latestManaged = asManagedCredential(latest);
|
|
30
|
+
if (latestManaged && listAccounts(latestManaged).length > 0)
|
|
31
|
+
return latest;
|
|
32
|
+
if (latest !== undefined && !latestManaged)
|
|
33
|
+
return latest;
|
|
34
|
+
return importNativeCursorCredential(latestManaged ?? emptyCredential(), async () => native);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return current;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Read the managed credential afresh and bootstrap it once from the native
|
|
43
|
+
* Cursor OAuth credential when empty. Concurrent reads share only the
|
|
44
|
+
* in-flight operation; later turns re-read storage so login/import changes are
|
|
45
|
+
* immediately visible.
|
|
46
|
+
*/
|
|
47
|
+
export function createCursorCliOauthCredentialReader(deps) {
|
|
48
|
+
let inFlight;
|
|
49
|
+
return () => {
|
|
50
|
+
if (inFlight)
|
|
51
|
+
return inFlight;
|
|
52
|
+
inFlight = bootstrapNativeCredential(deps).finally(() => {
|
|
53
|
+
inFlight = undefined;
|
|
54
|
+
});
|
|
55
|
+
return inFlight;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=native-bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-bootstrap.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/cursor-cli-oauth/native-bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,eAAe,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpH,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAQ9F,SAAS,mBAAmB,CAAC,UAAkC;IAC9D,IAAI,UAAU,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,OAAO,GAAG,UAAsC,CAAC;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrC,OAAO,CAAC,MAAM,KAAK,qBAAqB,CAAC,MAAM;QAC/C,OAAO,CAAC,OAAO,KAAK,qBAAqB,CAAC,OAAO;QACjD,OAAO,CAAC,OAAO,KAAK,qBAAqB,CAAC,OAAO;QACjD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,IAAkC;IAC1E,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC;QACtD,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAAE,OAAO,OAAO,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACjD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC;QAEzC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC7E,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,aAAa,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC3E,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,aAAa;gBAAE,OAAO,MAAM,CAAC;YAC1D,OAAO,4BAA4B,CAAC,aAAa,IAAI,eAAe,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,OAAO,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CACnD,IAAkC;IAElC,IAAI,QAAqD,CAAC;IAC1D,OAAO,GAAG,EAAE;QACX,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,QAAQ,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACvD,QAAQ,GAAG,SAAS,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;AACH,CAAC","sourcesContent":["import type { Credential, CredentialStore } from \"@earendil-works/pi-ai\";\nimport { type CursorCliOauthCredential, emptyCredential, listAccounts, SENTINEL_OAUTH_FIELDS } from \"./accounts.ts\";\nimport { CURSOR_CLI_OAUTH_PROVIDER_ID, importNativeCursorCredential } from \"./oauth-login.ts\";\n\nexport type CursorCliNativeBootstrapDeps = {\n\tstore: CredentialStore;\n\treadNativeCredential: () => Credential | undefined | Promise<Credential | undefined>;\n\tcanBootstrap?: () => boolean | Promise<boolean>;\n};\n\nfunction asManagedCredential(credential: Credential | undefined): CursorCliOauthCredential | undefined {\n\tif (credential?.type !== \"oauth\") return undefined;\n\tconst managed = credential as CursorCliOauthCredential;\n\treturn Array.isArray(managed.accounts) &&\n\t\tmanaged.access === SENTINEL_OAUTH_FIELDS.access &&\n\t\tmanaged.refresh === SENTINEL_OAUTH_FIELDS.refresh &&\n\t\tmanaged.expires === SENTINEL_OAUTH_FIELDS.expires\n\t\t? managed\n\t\t: undefined;\n}\n\nasync function bootstrapNativeCredential(deps: CursorCliNativeBootstrapDeps): Promise<Credential | undefined> {\n\tlet current: Credential | undefined;\n\ttry {\n\t\tcurrent = await deps.store.read(CURSOR_CLI_OAUTH_PROVIDER_ID);\n\t\tconst managed = asManagedCredential(current);\n\t\tif (managed && listAccounts(managed).length > 0) return current;\n\t\tif (current !== undefined && !managed) return current;\n\t\tif (deps.canBootstrap !== undefined && !(await deps.canBootstrap())) return current;\n\n\t\tconst native = await deps.readNativeCredential();\n\t\tif (native === undefined) return current;\n\n\t\treturn await deps.store.modify(CURSOR_CLI_OAUTH_PROVIDER_ID, async (latest) => {\n\t\t\tconst latestManaged = asManagedCredential(latest);\n\t\t\tif (latestManaged && listAccounts(latestManaged).length > 0) return latest;\n\t\t\tif (latest !== undefined && !latestManaged) return latest;\n\t\t\treturn importNativeCursorCredential(latestManaged ?? emptyCredential(), async () => native);\n\t\t});\n\t} catch {\n\t\treturn current;\n\t}\n}\n\n/**\n * Read the managed credential afresh and bootstrap it once from the native\n * Cursor OAuth credential when empty. Concurrent reads share only the\n * in-flight operation; later turns re-read storage so login/import changes are\n * immediately visible.\n */\nexport function createCursorCliOauthCredentialReader(\n\tdeps: CursorCliNativeBootstrapDeps,\n): () => Promise<Credential | undefined> {\n\tlet inFlight: Promise<Credential | undefined> | undefined;\n\treturn () => {\n\t\tif (inFlight) return inFlight;\n\t\tinFlight = bootstrapNativeCredential(deps).finally(() => {\n\t\t\tinFlight = undefined;\n\t\t});\n\t\treturn inFlight;\n\t};\n}\n"]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { AuthCheck, AuthContext, Credential, OAuthAuth, OAuthCredential, OAuthCredentials, OAuthLoginCallbacks } from "@earendil-works/pi-ai";
|
|
2
|
+
import { type CursorCliAccountSlot, type CursorCliOauthCredential } from "./accounts.ts";
|
|
3
|
+
import { type CursorCliOauthProviderSettings } from "./settings.ts";
|
|
4
|
+
export declare const CURSOR_CLI_OAUTH_PROVIDER_ID = "cursor-cli-oauth";
|
|
5
|
+
export declare const CURSOR_CLI_OAUTH_NAME = "Cursor CLI (OAuth)";
|
|
6
|
+
declare const FILE_STORE_LANE: "file-store";
|
|
7
|
+
type CursorCliOauthSettings = Pick<CursorCliOauthProviderSettings, "enabled" | "executablePath">;
|
|
8
|
+
type ImportedCursorCredential = {
|
|
9
|
+
access: string;
|
|
10
|
+
refresh: string;
|
|
11
|
+
expires?: number;
|
|
12
|
+
};
|
|
13
|
+
export type CursorCliOauthConfigDeps = {
|
|
14
|
+
readCurrent: () => Promise<Credential | undefined>;
|
|
15
|
+
readSettings: () => CursorCliOauthSettings;
|
|
16
|
+
resolveExecutable: (settings: CursorCliOauthSettings) => string;
|
|
17
|
+
loadOAuth?: () => Promise<OAuthAuth>;
|
|
18
|
+
readCursorFile?: () => Promise<ImportedCursorCredential | undefined>;
|
|
19
|
+
readCursorKeychain?: () => Promise<ImportedCursorCredential | undefined>;
|
|
20
|
+
/** Clock for acknowledgement timestamps; injectable so tests stay deterministic. */
|
|
21
|
+
now?: () => Date;
|
|
22
|
+
/** Persists the no-approval acknowledgement; the disk default is wired in defaultCursorCliOauthConfig. */
|
|
23
|
+
persistAcknowledgement?: (acknowledgedAt: string) => void;
|
|
24
|
+
/** Persists explicit provider activation after a successful login. */
|
|
25
|
+
persistEnabled?: (enabled: boolean) => void;
|
|
26
|
+
};
|
|
27
|
+
export type CursorCliOauthLaneResolution = {
|
|
28
|
+
lane: typeof FILE_STORE_LANE;
|
|
29
|
+
account: CursorCliAccountSlot;
|
|
30
|
+
accounts: CursorCliAccountSlot[];
|
|
31
|
+
};
|
|
32
|
+
export type CursorCliOauthConfig = {
|
|
33
|
+
name: string;
|
|
34
|
+
isSubscription: true;
|
|
35
|
+
check(input: {
|
|
36
|
+
ctx: AuthContext;
|
|
37
|
+
credential?: OAuthCredential;
|
|
38
|
+
signal?: AbortSignal;
|
|
39
|
+
}): Promise<AuthCheck | undefined>;
|
|
40
|
+
login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials>;
|
|
41
|
+
refreshToken(credentials: OAuthCredentials, signal: AbortSignal): Promise<OAuthCredentials>;
|
|
42
|
+
getApiKey(credentials: OAuthCredentials): string;
|
|
43
|
+
};
|
|
44
|
+
export type LocalCursorImportDeps = {
|
|
45
|
+
platform?: NodeJS.Platform;
|
|
46
|
+
readCursorFile?: () => Promise<ImportedCursorCredential | undefined>;
|
|
47
|
+
readCursorKeychain?: () => Promise<ImportedCursorCredential | undefined>;
|
|
48
|
+
onPrompt?: OAuthLoginCallbacks["onPrompt"];
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The typed turn-path error for a missing cursor-agent binary: carries the
|
|
52
|
+
* `cursor-agent not installed` marker plus the install guidance verbatim, with
|
|
53
|
+
* the underlying resolution failure preserved as `cause`.
|
|
54
|
+
*/
|
|
55
|
+
export declare function cursorAgentNotInstalledError(cause: unknown): Error;
|
|
56
|
+
/** Resolve credentials immediately before execution so a concurrent refresh cannot leave a stale token in memory. */
|
|
57
|
+
export declare function resolveCursorCliOauthLane(deps: CursorCliOauthConfigDeps): Promise<CursorCliOauthLaneResolution>;
|
|
58
|
+
/** The one-screen login explanation: what unattended Cursor CLI execution gives up, and the plan-mode alternative. */
|
|
59
|
+
export declare const CURSOR_CLI_OAUTH_LOGIN_ACKNOWLEDGEMENT_EXPLANATION = "The Cursor CLI executes its own tools autonomously: with --force there is no senpi approval, no senpi sandboxing, and no tool-level audit for what it runs. Plan mode (planning only, no tool execution) is available via the executionMode setting.";
|
|
60
|
+
/**
|
|
61
|
+
* Present the no-approval explanation exactly once and return the ISO
|
|
62
|
+
* acknowledgement timestamp on explicit confirmation, undefined otherwise.
|
|
63
|
+
* Shared by the login flow and the /cursor-account acknowledge subcommand so
|
|
64
|
+
* both surfaces present the identical explanation and persist identically.
|
|
65
|
+
*/
|
|
66
|
+
export declare function confirmCursorCliNoApprovalAcknowledgement(onPrompt: ((prompt: {
|
|
67
|
+
message: string;
|
|
68
|
+
placeholder?: string;
|
|
69
|
+
}) => Promise<string>) | undefined, now: () => Date): Promise<string | undefined>;
|
|
70
|
+
export declare function createCursorCliOauthConfig(deps: CursorCliOauthConfigDeps): CursorCliOauthConfig;
|
|
71
|
+
/** Explicitly copy the user's local Cursor credential into this provider's managed account slots. */
|
|
72
|
+
export declare function importLocalCursorCredential(current: CursorCliOauthCredential, deps?: LocalCursorImportDeps): Promise<CursorCliOauthCredential>;
|
|
73
|
+
/** Explicitly copy Senpi's native `cursor` OAuth credential into a managed CLI account slot. */
|
|
74
|
+
export declare function importNativeCursorCredential(current: CursorCliOauthCredential, readNativeCredential: () => Credential | undefined | Promise<Credential | undefined>): Promise<CursorCliOauthCredential>;
|
|
75
|
+
export declare function defaultCursorCliOauthConfig(cwd: string, readCurrent: () => Promise<Credential | undefined>): CursorCliOauthConfig;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=oauth-login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-login.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/cursor-cli-oauth/oauth-login.ts"],"names":[],"mappings":"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"}
|