prompsit-cli 26.225.1206 → 26.227.2006
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -4
- package/dist/api/auth-session.d.ts +11 -11
- package/dist/api/auth-session.d.ts.map +1 -1
- package/dist/api/auth-session.js +21 -17
- package/dist/api/auth-session.js.map +1 -1
- package/dist/api/client.d.ts +4 -4
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +8 -8
- package/dist/api/client.js.map +1 -1
- package/dist/api/curl.d.ts +30 -0
- package/dist/api/curl.d.ts.map +1 -0
- package/dist/api/curl.js +115 -0
- package/dist/api/curl.js.map +1 -0
- package/dist/api/errors.d.ts +2 -3
- package/dist/api/errors.d.ts.map +1 -1
- package/dist/api/errors.js +4 -2
- package/dist/api/errors.js.map +1 -1
- package/dist/api/http-utils.d.ts +5 -0
- package/dist/api/http-utils.d.ts.map +1 -0
- package/dist/api/http-utils.js +19 -0
- package/dist/api/http-utils.js.map +1 -0
- package/dist/api/models.d.ts +135 -89
- package/dist/api/models.d.ts.map +1 -1
- package/dist/api/models.js +62 -72
- package/dist/api/models.js.map +1 -1
- package/dist/api/resources/data.d.ts +3 -5
- package/dist/api/resources/data.d.ts.map +1 -1
- package/dist/api/resources/data.js +11 -12
- package/dist/api/resources/data.js.map +1 -1
- package/dist/api/resources/discovery.d.ts +26 -0
- package/dist/api/resources/discovery.d.ts.map +1 -0
- package/dist/api/resources/discovery.js +46 -0
- package/dist/api/resources/discovery.js.map +1 -0
- package/dist/api/resources/evaluation.d.ts +9 -12
- package/dist/api/resources/evaluation.d.ts.map +1 -1
- package/dist/api/resources/evaluation.js +45 -20
- package/dist/api/resources/evaluation.js.map +1 -1
- package/dist/api/resources/formats.d.ts +1 -1
- package/dist/api/resources/formats.js +2 -2
- package/dist/api/resources/formats.js.map +1 -1
- package/dist/api/resources/jobs.d.ts +7 -8
- package/dist/api/resources/jobs.d.ts.map +1 -1
- package/dist/api/resources/jobs.js +10 -49
- package/dist/api/resources/jobs.js.map +1 -1
- package/dist/api/resources/languages.d.ts +25 -0
- package/dist/api/resources/languages.d.ts.map +1 -0
- package/dist/api/resources/languages.js +44 -0
- package/dist/api/resources/languages.js.map +1 -0
- package/dist/api/resources/translation.d.ts +8 -16
- package/dist/api/resources/translation.d.ts.map +1 -1
- package/dist/api/resources/translation.js +11 -15
- package/dist/api/resources/translation.js.map +1 -1
- package/dist/api/sse-client.d.ts +10 -16
- package/dist/api/sse-client.d.ts.map +1 -1
- package/dist/api/sse-client.js +158 -197
- package/dist/api/sse-client.js.map +1 -1
- package/dist/api/sse-models.js +1 -1
- package/dist/api/sse-models.js.map +1 -1
- package/dist/api/trace.js +1 -1
- package/dist/api/trace.js.map +1 -1
- package/dist/api/transport.d.ts +28 -1
- package/dist/api/transport.d.ts.map +1 -1
- package/dist/api/transport.js +89 -17
- package/dist/api/transport.js.map +1 -1
- package/dist/cli/arg-order.d.ts +2 -0
- package/dist/cli/arg-order.d.ts.map +1 -1
- package/dist/cli/arg-order.js +2 -0
- package/dist/cli/arg-order.js.map +1 -1
- package/dist/cli/exit-codes.d.ts +0 -2
- package/dist/cli/exit-codes.d.ts.map +1 -1
- package/dist/cli/exit-codes.js +0 -2
- package/dist/cli/exit-codes.js.map +1 -1
- package/dist/cli/exit.d.ts +4 -4
- package/dist/cli/exit.d.ts.map +1 -1
- package/dist/cli/exit.js +4 -4
- package/dist/cli/exit.js.map +1 -1
- package/dist/cli/prompts.d.ts +0 -2
- package/dist/cli/prompts.d.ts.map +1 -1
- package/dist/cli/prompts.js +1 -1
- package/dist/cli/prompts.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +0 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/batch-processor.d.ts +38 -0
- package/dist/commands/batch-processor.d.ts.map +1 -0
- package/dist/commands/batch-processor.js +73 -0
- package/dist/commands/batch-processor.js.map +1 -0
- package/dist/commands/config/api-url.d.ts.map +1 -1
- package/dist/commands/config/api-url.js +4 -1
- package/dist/commands/config/api-url.js.map +1 -1
- package/dist/commands/config/command.d.ts.map +1 -1
- package/dist/commands/config/command.js +3 -2
- package/dist/commands/config/command.js.map +1 -1
- package/dist/commands/config/language.d.ts.map +1 -1
- package/dist/commands/config/language.js.map +1 -1
- package/dist/commands/config/reset.d.ts.map +1 -1
- package/dist/commands/config/reset.js.map +1 -1
- package/dist/commands/config/shared.js +3 -3
- package/dist/commands/config/shared.js.map +1 -1
- package/dist/commands/config/show.d.ts.map +1 -1
- package/dist/commands/config/show.js +0 -13
- package/dist/commands/config/show.js.map +1 -1
- package/dist/commands/data.d.ts.map +1 -1
- package/dist/commands/data.js +241 -68
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/evaluate.d.ts.map +1 -1
- package/dist/commands/evaluate.js +111 -29
- package/dist/commands/evaluate.js.map +1 -1
- package/dist/commands/formats.d.ts +1 -1
- package/dist/commands/formats.d.ts.map +1 -1
- package/dist/commands/formats.js +5 -12
- package/dist/commands/formats.js.map +1 -1
- package/dist/commands/health.d.ts +1 -1
- package/dist/commands/health.d.ts.map +1 -1
- package/dist/commands/health.js +3 -10
- package/dist/commands/health.js.map +1 -1
- package/dist/commands/job-tracking.d.ts +13 -5
- package/dist/commands/job-tracking.d.ts.map +1 -1
- package/dist/commands/job-tracking.js +25 -18
- package/dist/commands/job-tracking.js.map +1 -1
- package/dist/commands/languages.d.ts +12 -0
- package/dist/commands/languages.d.ts.map +1 -0
- package/dist/commands/languages.js +48 -0
- package/dist/commands/languages.js.map +1 -0
- package/dist/commands/mappers.d.ts +15 -3
- package/dist/commands/mappers.d.ts.map +1 -1
- package/dist/commands/mappers.js +38 -18
- package/dist/commands/mappers.js.map +1 -1
- package/dist/commands/progress-animator.d.ts +2 -1
- package/dist/commands/progress-animator.d.ts.map +1 -1
- package/dist/commands/progress-animator.js +4 -2
- package/dist/commands/progress-animator.js.map +1 -1
- package/dist/commands/translate.d.ts.map +1 -1
- package/dist/commands/translate.js +149 -87
- package/dist/commands/translate.js.map +1 -1
- package/dist/config/credentials.d.ts +11 -87
- package/dist/config/credentials.d.ts.map +1 -1
- package/dist/config/credentials.js +28 -87
- package/dist/config/credentials.js.map +1 -1
- package/dist/config/env-parser.d.ts.map +1 -1
- package/dist/config/env-parser.js +3 -2
- package/dist/config/env-parser.js.map +1 -1
- package/dist/config/file-utils.js +1 -1
- package/dist/config/file-utils.js.map +1 -1
- package/dist/config/index.d.ts +4 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -12
- package/dist/config/index.js.map +1 -1
- package/dist/config/schemas.d.ts +4 -33
- package/dist/config/schemas.d.ts.map +1 -1
- package/dist/config/schemas.js +14 -19
- package/dist/config/schemas.js.map +1 -1
- package/dist/config/settings.d.ts +4 -4
- package/dist/config/settings.d.ts.map +1 -1
- package/dist/config/settings.js +16 -21
- package/dist/config/settings.js.map +1 -1
- package/dist/config/toml-io.js +1 -1
- package/dist/config/toml-io.js.map +1 -1
- package/dist/constants.d.ts +10 -9
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -9
- package/dist/constants.js.map +1 -1
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +6 -8
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/contracts.d.ts.map +1 -1
- package/dist/errors/contracts.js +2 -3
- package/dist/errors/contracts.js.map +1 -1
- package/dist/i18n/cache.d.ts +0 -2
- package/dist/i18n/cache.d.ts.map +1 -1
- package/dist/i18n/cache.js +4 -4
- package/dist/i18n/cache.js.map +1 -1
- package/dist/i18n/catalog.d.ts +34 -37
- package/dist/i18n/catalog.d.ts.map +1 -1
- package/dist/i18n/catalog.js +38 -40
- package/dist/i18n/catalog.js.map +1 -1
- package/dist/i18n/index.d.ts +0 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +0 -3
- package/dist/i18n/index.js.map +1 -1
- package/dist/i18n/translator-adapter.js +1 -1
- package/dist/i18n/translator-adapter.js.map +1 -1
- package/dist/i18n/translator.d.ts.map +1 -1
- package/dist/i18n/translator.js +1 -0
- package/dist/i18n/translator.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/logging/console-handler.js +1 -1
- package/dist/logging/console-handler.js.map +1 -1
- package/dist/logging/file-handler.d.ts.map +1 -1
- package/dist/logging/file-handler.js +4 -5
- package/dist/logging/file-handler.js.map +1 -1
- package/dist/logging/index.d.ts +2 -2
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +1 -1
- package/dist/logging/index.js.map +1 -1
- package/dist/logging/logger.d.ts +18 -22
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +38 -64
- package/dist/logging/logger.js.map +1 -1
- package/dist/logging/loki-handler.js +1 -1
- package/dist/logging/loki-handler.js.map +1 -1
- package/dist/logging/setup.d.ts +4 -3
- package/dist/logging/setup.d.ts.map +1 -1
- package/dist/logging/setup.js +136 -33
- package/dist/logging/setup.js.map +1 -1
- package/dist/output/ansi-utils.d.ts +13 -0
- package/dist/output/ansi-utils.d.ts.map +1 -0
- package/dist/output/ansi-utils.js +37 -0
- package/dist/output/ansi-utils.js.map +1 -0
- package/dist/output/index.d.ts +2 -5
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +3 -2
- package/dist/output/index.js.map +1 -1
- package/dist/output/output-events.d.ts +0 -1
- package/dist/output/output-events.d.ts.map +1 -1
- package/dist/output/tables/catalog.d.ts +5 -2
- package/dist/output/tables/catalog.d.ts.map +1 -1
- package/dist/output/tables/catalog.js +65 -9
- package/dist/output/tables/catalog.js.map +1 -1
- package/dist/output/tables/evaluation.d.ts.map +1 -1
- package/dist/output/tables/evaluation.js +3 -0
- package/dist/output/tables/evaluation.js.map +1 -1
- package/dist/output/tables/health-status.d.ts.map +1 -1
- package/dist/output/tables/health-status.js +11 -7
- package/dist/output/tables/health-status.js.map +1 -1
- package/dist/output/tables/index.d.ts +3 -3
- package/dist/output/tables/index.d.ts.map +1 -1
- package/dist/output/tables/index.js +2 -2
- package/dist/output/tables/index.js.map +1 -1
- package/dist/output/tables/render.d.ts.map +1 -1
- package/dist/output/tables/render.js +2 -10
- package/dist/output/tables/render.js.map +1 -1
- package/dist/output/terminal.d.ts +1 -5
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +25 -24
- package/dist/output/terminal.js.map +1 -1
- package/dist/output/view-models.d.ts +28 -2
- package/dist/output/view-models.d.ts.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +21 -29
- package/dist/program.js.map +1 -1
- package/dist/repl/controller.d.ts.map +1 -1
- package/dist/repl/controller.js +82 -47
- package/dist/repl/controller.js.map +1 -1
- package/dist/repl/core/output-bridge.d.ts.map +1 -1
- package/dist/repl/core/output-bridge.js +6 -4
- package/dist/repl/core/output-bridge.js.map +1 -1
- package/dist/repl/core/progress-types.d.ts +1 -1
- package/dist/repl/core/progress-types.d.ts.map +1 -1
- package/dist/repl/core/progress-types.js +1 -1
- package/dist/repl/core/progress-types.js.map +1 -1
- package/dist/repl/examples.d.ts +5 -7
- package/dist/repl/examples.d.ts.map +1 -1
- package/dist/repl/examples.js +27 -14
- package/dist/repl/examples.js.map +1 -1
- package/dist/repl/executor.d.ts +2 -4
- package/dist/repl/executor.d.ts.map +1 -1
- package/dist/repl/executor.js +69 -58
- package/dist/repl/executor.js.map +1 -1
- package/dist/repl/help.d.ts +10 -3
- package/dist/repl/help.d.ts.map +1 -1
- package/dist/repl/help.js +31 -4
- package/dist/repl/help.js.map +1 -1
- package/dist/repl/history/command-history.js +5 -5
- package/dist/repl/history/command-history.js.map +1 -1
- package/dist/repl/history/output-render.d.ts +1 -3
- package/dist/repl/history/output-render.d.ts.map +1 -1
- package/dist/repl/history/output-render.js +4 -6
- package/dist/repl/history/output-render.js.map +1 -1
- package/dist/repl/history/output-store.d.ts.map +1 -1
- package/dist/repl/history/output-store.js +6 -3
- package/dist/repl/history/output-store.js.map +1 -1
- package/dist/repl/input/autocomplete-provider.d.ts.map +1 -1
- package/dist/repl/input/autocomplete-provider.js +1 -2
- package/dist/repl/input/autocomplete-provider.js.map +1 -1
- package/dist/repl/input/completer.d.ts +0 -2
- package/dist/repl/input/completer.d.ts.map +1 -1
- package/dist/repl/input/completer.js +9 -7
- package/dist/repl/input/completer.js.map +1 -1
- package/dist/repl/input/ghost-text.d.ts +1 -1
- package/dist/repl/input/ghost-text.d.ts.map +1 -1
- package/dist/repl/input/ghost-text.js +1 -1
- package/dist/repl/input/ghost-text.js.map +1 -1
- package/dist/repl/input/input-handler.d.ts.map +1 -1
- package/dist/repl/input/input-handler.js +21 -15
- package/dist/repl/input/input-handler.js.map +1 -1
- package/dist/repl/input/keybindings.d.ts +0 -5
- package/dist/repl/input/keybindings.d.ts.map +1 -1
- package/dist/repl/input/keybindings.js +0 -65
- package/dist/repl/input/keybindings.js.map +1 -1
- package/dist/repl/loop.d.ts +1 -2
- package/dist/repl/loop.d.ts.map +1 -1
- package/dist/repl/loop.js +14 -14
- package/dist/repl/loop.js.map +1 -1
- package/dist/repl/registry.d.ts +28 -20
- package/dist/repl/registry.d.ts.map +1 -1
- package/dist/repl/registry.js +229 -171
- package/dist/repl/registry.js.map +1 -1
- package/dist/repl/service.d.ts +1 -10
- package/dist/repl/service.d.ts.map +1 -1
- package/dist/repl/service.js +15 -26
- package/dist/repl/service.js.map +1 -1
- package/dist/repl/ui/components/curl-panel.js +4 -4
- package/dist/repl/ui/components/curl-panel.js.map +1 -1
- package/dist/repl/ui/components/ghost-text-editor.d.ts +4 -0
- package/dist/repl/ui/components/ghost-text-editor.d.ts.map +1 -1
- package/dist/repl/ui/components/ghost-text-editor.js +17 -6
- package/dist/repl/ui/components/ghost-text-editor.js.map +1 -1
- package/dist/repl/ui/components/history-component.d.ts.map +1 -1
- package/dist/repl/ui/components/history-component.js +7 -69
- package/dist/repl/ui/components/history-component.js.map +1 -1
- package/dist/repl/ui/components/progress-bar.js.map +1 -1
- package/dist/repl/ui/components/status-bar-line.js +1 -1
- package/dist/repl/ui/components/status-bar-line.js.map +1 -1
- package/dist/repl/ui/data.js +3 -3
- package/dist/repl/ui/data.js.map +1 -1
- package/dist/repl/ui/hint-state.d.ts +0 -1
- package/dist/repl/ui/hint-state.d.ts.map +1 -1
- package/dist/repl/ui/hint-state.js +1 -1
- package/dist/repl/ui/hint-state.js.map +1 -1
- package/dist/repl/ui/selection-utils.d.ts +28 -0
- package/dist/repl/ui/selection-utils.d.ts.map +1 -0
- package/dist/repl/ui/selection-utils.js +70 -0
- package/dist/repl/ui/selection-utils.js.map +1 -0
- package/dist/repl/ui/status-bar.d.ts +1 -4
- package/dist/repl/ui/status-bar.d.ts.map +1 -1
- package/dist/repl/ui/status-bar.js +6 -33
- package/dist/repl/ui/status-bar.js.map +1 -1
- package/dist/runtime/async-utils.d.ts +16 -0
- package/dist/runtime/async-utils.d.ts.map +1 -0
- package/dist/runtime/async-utils.js +40 -0
- package/dist/runtime/async-utils.js.map +1 -0
- package/dist/runtime/clipboard-win32.d.ts.map +1 -1
- package/dist/runtime/clipboard-win32.js +2 -1
- package/dist/runtime/clipboard-win32.js.map +1 -1
- package/dist/runtime/clipboard.d.ts.map +1 -1
- package/dist/runtime/clipboard.js +6 -2
- package/dist/runtime/clipboard.js.map +1 -1
- package/dist/runtime/external-transport.d.ts.map +1 -1
- package/dist/runtime/external-transport.js +1 -1
- package/dist/runtime/external-transport.js.map +1 -1
- package/dist/runtime/file-args.d.ts +38 -0
- package/dist/runtime/file-args.d.ts.map +1 -0
- package/dist/runtime/file-args.js +133 -0
- package/dist/runtime/file-args.js.map +1 -0
- package/dist/runtime/platform.d.ts +0 -2
- package/dist/runtime/platform.d.ts.map +1 -1
- package/dist/runtime/platform.js +0 -6
- package/dist/runtime/platform.js.map +1 -1
- package/dist/tui/settings-screen.d.ts +1 -13
- package/dist/tui/settings-screen.d.ts.map +1 -1
- package/dist/tui/settings-screen.js +46 -34
- package/dist/tui/settings-screen.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -2
- package/dist/version.js.map +1 -1
- package/examples/sample.tmx +6 -0
- package/package.json +18 -7
|
@@ -1,27 +1,7 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/**
|
|
3
|
-
* Credential data schema for persisted CLI auth state.
|
|
4
|
-
*
|
|
5
|
-
* Pattern: Tolerant Reader (optional fields on read, strict on write)
|
|
6
|
-
*
|
|
7
|
-
* Python writes: access_token, refresh_token, account_id
|
|
8
|
-
* Node.js writes: same + optional token_type, expires_at, refresh_expires_at
|
|
9
|
-
* Both CLIs must read each other's files without breaking
|
|
10
|
-
*/
|
|
11
|
-
export declare const CredentialDataSchema: z.ZodObject<{
|
|
12
|
-
access_token: z.ZodString;
|
|
13
|
-
refresh_token: z.ZodOptional<z.ZodString>;
|
|
14
|
-
account_id: z.ZodOptional<z.ZodString>;
|
|
15
|
-
token_type: z.ZodOptional<z.ZodString>;
|
|
16
|
-
expires_at: z.ZodOptional<z.ZodNumber>;
|
|
17
|
-
refresh_expires_at: z.ZodOptional<z.ZodNumber>;
|
|
18
|
-
plan: z.ZodOptional<z.ZodString>;
|
|
19
|
-
}, z.core.$loose>;
|
|
20
|
-
export type CredentialData = z.infer<typeof CredentialDataSchema>;
|
|
21
1
|
/**
|
|
22
2
|
* Credential store with encapsulated cache
|
|
23
3
|
*
|
|
24
|
-
* Pattern:
|
|
4
|
+
* Pattern: Class-based store with encapsulated cache
|
|
25
5
|
*
|
|
26
6
|
* Cache behavior:
|
|
27
7
|
* - Load once from file, cache in memory
|
|
@@ -29,6 +9,7 @@ export type CredentialData = z.infer<typeof CredentialDataSchema>;
|
|
|
29
9
|
* - resetAuthCache() invalidates cache without deleting file
|
|
30
10
|
* - clearTokens() deletes file and resets cache
|
|
31
11
|
*/
|
|
12
|
+
/** @internal Exported for unit tests only. */
|
|
32
13
|
export declare class CredentialStore {
|
|
33
14
|
private cache;
|
|
34
15
|
private authenticated;
|
|
@@ -49,37 +30,17 @@ export declare class CredentialStore {
|
|
|
49
30
|
* @param expiresIn - Token lifetime in seconds (optional, calculates expires_at)
|
|
50
31
|
*/
|
|
51
32
|
saveTokens(accessToken: string, refreshToken?: string, accountId?: string, expiresIn?: number, plan?: string): void;
|
|
52
|
-
/**
|
|
53
|
-
* Get access token from cache or file
|
|
54
|
-
*
|
|
55
|
-
* @returns Access token or null if not found
|
|
56
|
-
*/
|
|
33
|
+
/** @returns Access token or null if not authenticated. */
|
|
57
34
|
getAccessToken(): string | null;
|
|
58
|
-
/**
|
|
59
|
-
* Get refresh token from cache or file
|
|
60
|
-
*
|
|
61
|
-
* @returns Refresh token or null if not found
|
|
62
|
-
*/
|
|
35
|
+
/** @returns Refresh token or null if not available. */
|
|
63
36
|
getRefreshToken(): string | null;
|
|
64
|
-
/**
|
|
65
|
-
* Get account ID from cache or file
|
|
66
|
-
*
|
|
67
|
-
* @returns Account ID or null if not found
|
|
68
|
-
*/
|
|
37
|
+
/** @returns Account ID or null if not authenticated. */
|
|
69
38
|
getAccountId(): string | null;
|
|
70
|
-
/**
|
|
71
|
-
* Get subscription plan from cache or file
|
|
72
|
-
*/
|
|
39
|
+
/** @returns Subscription plan string or null. */
|
|
73
40
|
getPlan(): string | null;
|
|
74
|
-
/**
|
|
75
|
-
* Clear tokens (delete file and reset cache)
|
|
76
|
-
*/
|
|
41
|
+
/** Delete credentials file and reset in-memory cache. */
|
|
77
42
|
clearTokens(): void;
|
|
78
|
-
/**
|
|
79
|
-
* Check if user is authenticated (cached)
|
|
80
|
-
*
|
|
81
|
-
* @returns True if access token exists
|
|
82
|
-
*/
|
|
43
|
+
/** @returns True if access token exists (result cached after first check). */
|
|
83
44
|
isAuthenticated(): boolean;
|
|
84
45
|
/**
|
|
85
46
|
* Reset auth cache (invalidate without deleting file)
|
|
@@ -105,52 +66,15 @@ export declare class CredentialStore {
|
|
|
105
66
|
*/
|
|
106
67
|
private loadCache;
|
|
107
68
|
}
|
|
108
|
-
/**
|
|
109
|
-
* Get credential store singleton
|
|
110
|
-
*
|
|
111
|
-
* Pattern: Singleton with explicit invalidation (same as getSettings)
|
|
112
|
-
*
|
|
113
|
-
* @returns CredentialStore instance (cached after first call)
|
|
114
|
-
*/
|
|
115
|
-
export declare function getCredentialStore(): CredentialStore;
|
|
116
|
-
/**
|
|
117
|
-
* Reset credential store singleton (for testing)
|
|
118
|
-
*/
|
|
119
|
-
export declare function resetCredentialStore(): void;
|
|
120
|
-
/**
|
|
121
|
-
* Save tokens (delegates to singleton)
|
|
122
|
-
*/
|
|
69
|
+
/** Persist OAuth2 tokens to ~/.prompsit/credentials.json with atomic write. */
|
|
123
70
|
export declare function saveTokens(accessToken: string, refreshToken?: string, accountId?: string, expiresIn?: number, plan?: string): void;
|
|
124
|
-
/**
|
|
125
|
-
* Get access token (delegates to singleton)
|
|
126
|
-
*/
|
|
127
71
|
export declare function getAccessToken(): string | null;
|
|
128
|
-
/**
|
|
129
|
-
* Get refresh token (delegates to singleton)
|
|
130
|
-
*/
|
|
131
72
|
export declare function getRefreshToken(): string | null;
|
|
132
|
-
/**
|
|
133
|
-
* Get account ID (delegates to singleton)
|
|
134
|
-
*/
|
|
135
73
|
export declare function getAccountId(): string | null;
|
|
136
|
-
/**
|
|
137
|
-
* Clear tokens (delegates to singleton)
|
|
138
|
-
*/
|
|
139
74
|
export declare function clearTokens(): void;
|
|
140
|
-
/**
|
|
141
|
-
* Check if authenticated (delegates to singleton)
|
|
142
|
-
*/
|
|
143
75
|
export declare function isAuthenticated(): boolean;
|
|
144
|
-
/**
|
|
145
|
-
* Reset auth cache (delegates to singleton)
|
|
146
|
-
*/
|
|
147
|
-
export declare function resetAuthCache(): void;
|
|
148
|
-
/**
|
|
149
|
-
* Get subscription plan (delegates to singleton)
|
|
150
|
-
*/
|
|
151
76
|
export declare function getPlan(): string | null;
|
|
152
|
-
/**
|
|
153
|
-
* Check if token is expired (delegates to singleton)
|
|
154
|
-
*/
|
|
155
77
|
export declare function isTokenExpired(bufferSeconds?: number): boolean;
|
|
78
|
+
/** @public Used by E2E tests (terminal-setup, repl-token-refresh) — do not remove. */
|
|
79
|
+
export declare function resetAuthCache(): void;
|
|
156
80
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"AA6BA;;;;;;;;;;GAUG;AACH,8CAA8C;AAC9C,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;;;;;;OASG;IACH,UAAU,CACR,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI;IAoCP,0DAA0D;IAC1D,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B,uDAAuD;IACvD,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,wDAAwD;IACxD,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B,iDAAiD;IACjD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,yDAAyD;IACzD,WAAW,IAAI,IAAI;IAYnB,8EAA8E;IAC9E,eAAe,IAAI,OAAO;IAQ1B;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAMtB;;;;;;;OAOG;IACH,cAAc,CAAC,aAAa,GAAE,MAA4B,GAAG,OAAO;IAQpE;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;CAoBlB;AAoBD,+EAA+E;AAC/E,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAEN;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAE5C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,OAAO,IAAI,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,sFAAsF;AACtF,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// See API-440: Credential Store (JSON Cross-Compatible)
|
|
2
2
|
// See API-441: Token Expiry with Monotonic Clock
|
|
3
|
-
// Class-based store with encapsulated cache (replaces Python globals)
|
|
4
3
|
import fs from "node:fs";
|
|
5
4
|
import { z } from "zod";
|
|
6
5
|
import { getCredsFile } from "./paths.js";
|
|
@@ -12,27 +11,19 @@ import { FILE_MODE_OWNER_RW } from "../constants.js";
|
|
|
12
11
|
* Credential data schema for persisted CLI auth state.
|
|
13
12
|
*
|
|
14
13
|
* Pattern: Tolerant Reader (optional fields on read, strict on write)
|
|
15
|
-
*
|
|
16
|
-
* Python writes: access_token, refresh_token, account_id
|
|
17
|
-
* Node.js writes: same + optional token_type, expires_at, refresh_expires_at
|
|
18
|
-
* Both CLIs must read each other's files without breaking
|
|
19
14
|
*/
|
|
20
|
-
|
|
21
|
-
.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
refresh_expires_at: z.number().optional(), // Optional (Node.js only, Unix timestamp)
|
|
28
|
-
plan: z.string().optional(), // Optional (subscription plan from API)
|
|
29
|
-
})
|
|
30
|
-
.loose(); // Tolerate unknown keys from future versions
|
|
15
|
+
const CredentialDataSchema = z.object({
|
|
16
|
+
access_token: z.string(),
|
|
17
|
+
refresh_token: z.string().nullish(),
|
|
18
|
+
account_id: z.string().nullish(), // Displayed in REPL status bar
|
|
19
|
+
expires_at: z.number().optional(), // Unix timestamp, calculated from expires_in
|
|
20
|
+
plan: z.string().optional(), // Subscription plan from API
|
|
21
|
+
});
|
|
31
22
|
// ===== CredentialStore Class =====
|
|
32
23
|
/**
|
|
33
24
|
* Credential store with encapsulated cache
|
|
34
25
|
*
|
|
35
|
-
* Pattern:
|
|
26
|
+
* Pattern: Class-based store with encapsulated cache
|
|
36
27
|
*
|
|
37
28
|
* Cache behavior:
|
|
38
29
|
* - Load once from file, cache in memory
|
|
@@ -40,6 +31,7 @@ export const CredentialDataSchema = z
|
|
|
40
31
|
* - resetAuthCache() invalidates cache without deleting file
|
|
41
32
|
* - clearTokens() deletes file and resets cache
|
|
42
33
|
*/
|
|
34
|
+
/** @internal Exported for unit tests only. */
|
|
43
35
|
export class CredentialStore {
|
|
44
36
|
cache = null;
|
|
45
37
|
authenticated = null;
|
|
@@ -76,17 +68,17 @@ export class CredentialStore {
|
|
|
76
68
|
data.account_id = accountId;
|
|
77
69
|
if (plan !== undefined)
|
|
78
70
|
data.plan = plan;
|
|
79
|
-
// Calculate expires_at as Unix timestamp
|
|
80
|
-
if (expiresIn
|
|
71
|
+
// Calculate expires_at as Unix timestamp
|
|
72
|
+
if (expiresIn === undefined) {
|
|
73
|
+
this.expiresAtMono = null; // Unknown expiry
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
81
76
|
data.expires_at = Date.now() / 1000 + expiresIn;
|
|
82
77
|
// Track expiry using monotonic clock (immune to system time changes)
|
|
83
78
|
this.expiresAtMono = performance.now() + expiresIn * 1000; // ms
|
|
84
79
|
}
|
|
85
|
-
else {
|
|
86
|
-
this.expiresAtMono = null; // Unknown expiry
|
|
87
|
-
}
|
|
88
80
|
const credsPath = getCredsFile();
|
|
89
|
-
// Atomic write with JSON indentation
|
|
81
|
+
// Atomic write with JSON indentation
|
|
90
82
|
atomicWriteFile(credsPath, JSON.stringify(data, null, 2));
|
|
91
83
|
// Set file permissions to 0o600 (owner read/write only) on Unix
|
|
92
84
|
// Suppress errors on Windows (chmod not supported)
|
|
@@ -100,39 +92,23 @@ export class CredentialStore {
|
|
|
100
92
|
this.cache = CredentialDataSchema.parse(data);
|
|
101
93
|
this.authenticated = true;
|
|
102
94
|
}
|
|
103
|
-
/**
|
|
104
|
-
* Get access token from cache or file
|
|
105
|
-
*
|
|
106
|
-
* @returns Access token or null if not found
|
|
107
|
-
*/
|
|
95
|
+
/** @returns Access token or null if not authenticated. */
|
|
108
96
|
getAccessToken() {
|
|
109
97
|
return this.loadCache()?.access_token ?? null;
|
|
110
98
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Get refresh token from cache or file
|
|
113
|
-
*
|
|
114
|
-
* @returns Refresh token or null if not found
|
|
115
|
-
*/
|
|
99
|
+
/** @returns Refresh token or null if not available. */
|
|
116
100
|
getRefreshToken() {
|
|
117
101
|
return this.loadCache()?.refresh_token ?? null;
|
|
118
102
|
}
|
|
119
|
-
/**
|
|
120
|
-
* Get account ID from cache or file
|
|
121
|
-
*
|
|
122
|
-
* @returns Account ID or null if not found
|
|
123
|
-
*/
|
|
103
|
+
/** @returns Account ID or null if not authenticated. */
|
|
124
104
|
getAccountId() {
|
|
125
105
|
return this.loadCache()?.account_id ?? null;
|
|
126
106
|
}
|
|
127
|
-
/**
|
|
128
|
-
* Get subscription plan from cache or file
|
|
129
|
-
*/
|
|
107
|
+
/** @returns Subscription plan string or null. */
|
|
130
108
|
getPlan() {
|
|
131
109
|
return this.loadCache()?.plan ?? null;
|
|
132
110
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Clear tokens (delete file and reset cache)
|
|
135
|
-
*/
|
|
111
|
+
/** Delete credentials file and reset in-memory cache. */
|
|
136
112
|
clearTokens() {
|
|
137
113
|
const credsPath = getCredsFile();
|
|
138
114
|
if (fs.existsSync(credsPath)) {
|
|
@@ -142,11 +118,7 @@ export class CredentialStore {
|
|
|
142
118
|
this.authenticated = false;
|
|
143
119
|
this.expiresAtMono = null; // Reset expiry tracking
|
|
144
120
|
}
|
|
145
|
-
/**
|
|
146
|
-
* Check if user is authenticated (cached)
|
|
147
|
-
*
|
|
148
|
-
* @returns True if access token exists
|
|
149
|
-
*/
|
|
121
|
+
/** @returns True if access token exists (result cached after first check). */
|
|
150
122
|
isAuthenticated() {
|
|
151
123
|
if (this.authenticated !== null)
|
|
152
124
|
return this.authenticated;
|
|
@@ -194,7 +166,7 @@ export class CredentialStore {
|
|
|
194
166
|
return null;
|
|
195
167
|
}
|
|
196
168
|
try {
|
|
197
|
-
const raw = fs.readFileSync(credsPath, "
|
|
169
|
+
const raw = fs.readFileSync(credsPath, "utf8");
|
|
198
170
|
const parsed = JSON.parse(raw);
|
|
199
171
|
this.cache = CredentialDataSchema.parse(parsed);
|
|
200
172
|
this.restoreMonotonicExpiry(this.cache.expires_at);
|
|
@@ -215,69 +187,38 @@ let credentialStoreInstance = null;
|
|
|
215
187
|
*
|
|
216
188
|
* @returns CredentialStore instance (cached after first call)
|
|
217
189
|
*/
|
|
218
|
-
|
|
190
|
+
function getCredentialStore() {
|
|
219
191
|
credentialStoreInstance ??= new CredentialStore();
|
|
220
192
|
return credentialStoreInstance;
|
|
221
193
|
}
|
|
222
|
-
/**
|
|
223
|
-
* Reset credential store singleton (for testing)
|
|
224
|
-
*/
|
|
225
|
-
export function resetCredentialStore() {
|
|
226
|
-
credentialStoreInstance = null;
|
|
227
|
-
}
|
|
228
194
|
// ===== Convenience Functions =====
|
|
229
|
-
/**
|
|
230
|
-
* Save tokens (delegates to singleton)
|
|
231
|
-
*/
|
|
195
|
+
/** Persist OAuth2 tokens to ~/.prompsit/credentials.json with atomic write. */
|
|
232
196
|
export function saveTokens(accessToken, refreshToken, accountId, expiresIn, plan) {
|
|
233
197
|
getCredentialStore().saveTokens(accessToken, refreshToken, accountId, expiresIn, plan);
|
|
234
198
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Get access token (delegates to singleton)
|
|
237
|
-
*/
|
|
238
199
|
export function getAccessToken() {
|
|
239
200
|
return getCredentialStore().getAccessToken();
|
|
240
201
|
}
|
|
241
|
-
/**
|
|
242
|
-
* Get refresh token (delegates to singleton)
|
|
243
|
-
*/
|
|
244
202
|
export function getRefreshToken() {
|
|
245
203
|
return getCredentialStore().getRefreshToken();
|
|
246
204
|
}
|
|
247
|
-
/**
|
|
248
|
-
* Get account ID (delegates to singleton)
|
|
249
|
-
*/
|
|
250
205
|
export function getAccountId() {
|
|
251
206
|
return getCredentialStore().getAccountId();
|
|
252
207
|
}
|
|
253
|
-
/**
|
|
254
|
-
* Clear tokens (delegates to singleton)
|
|
255
|
-
*/
|
|
256
208
|
export function clearTokens() {
|
|
257
209
|
getCredentialStore().clearTokens();
|
|
258
210
|
}
|
|
259
|
-
/**
|
|
260
|
-
* Check if authenticated (delegates to singleton)
|
|
261
|
-
*/
|
|
262
211
|
export function isAuthenticated() {
|
|
263
212
|
return getCredentialStore().isAuthenticated();
|
|
264
213
|
}
|
|
265
|
-
/**
|
|
266
|
-
* Reset auth cache (delegates to singleton)
|
|
267
|
-
*/
|
|
268
|
-
export function resetAuthCache() {
|
|
269
|
-
getCredentialStore().resetAuthCache();
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* Get subscription plan (delegates to singleton)
|
|
273
|
-
*/
|
|
274
214
|
export function getPlan() {
|
|
275
215
|
return getCredentialStore().getPlan();
|
|
276
216
|
}
|
|
277
|
-
/**
|
|
278
|
-
* Check if token is expired (delegates to singleton)
|
|
279
|
-
*/
|
|
280
217
|
export function isTokenExpired(bufferSeconds) {
|
|
281
218
|
return getCredentialStore().isTokenExpired(bufferSeconds);
|
|
282
219
|
}
|
|
220
|
+
/** @public Used by E2E tests (terminal-setup, repl-token-refresh) — do not remove. */
|
|
221
|
+
export function resetAuthCache() {
|
|
222
|
+
getCredentialStore().resetAuthCache();
|
|
223
|
+
}
|
|
283
224
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,iDAAiD;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/config/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-parser.d.ts","sourceRoot":"","sources":["../../src/config/env-parser.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"env-parser.d.ts","sourceRoot":"","sources":["../../src/config/env-parser.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+B5F"}
|
|
@@ -37,7 +37,8 @@ export function parseEnvOverrides(prefix, delimiter) {
|
|
|
37
37
|
const next = current[part];
|
|
38
38
|
current = (typeof next === "object" && next !== null ? next : {});
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- array guaranteed non-empty by loop
|
|
41
|
+
current[keyPath.at(-1)] = coercedValue;
|
|
41
42
|
}
|
|
42
43
|
return result;
|
|
43
44
|
}
|
|
@@ -54,7 +55,7 @@ function coerceValue(value) {
|
|
|
54
55
|
return false;
|
|
55
56
|
// Number (integer or float)
|
|
56
57
|
const num = Number(value);
|
|
57
|
-
if (!isNaN(num) && value.trim() !== "")
|
|
58
|
+
if (!Number.isNaN(num) && value.trim() !== "")
|
|
58
59
|
return num;
|
|
59
60
|
// String (fallback)
|
|
60
61
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-parser.js","sourceRoot":"","sources":["../../src/config/env-parser.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qFAAqF;AAErF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,SAAiB;IACjE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAE7D,uCAAuC;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAClE,SAAS;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,sBAAsB;QACtB,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;QAC/F,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"env-parser.js","sourceRoot":"","sources":["../../src/config/env-parser.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qFAAqF;AAErF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,SAAiB;IACjE,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAE7D,uCAAuC;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAClE,SAAS;QACX,CAAC;QAED,gBAAgB;QAChB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,sBAAsB;QACtB,IAAI,OAAO,GAAG,MAAM,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,CAAC;YACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAA4B,CAAC;QAC/F,CAAC;QACD,0GAA0G;QAC1G,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,YAAY,CAAC;IAC1C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,KAAa;IAChC,UAAU;IACV,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAE1D,oBAAoB;IACpB,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -18,7 +18,7 @@ export function atomicWriteFile(filePath, content) {
|
|
|
18
18
|
const tmpPath = path.join(dir, `.${basename}.tmp`);
|
|
19
19
|
try {
|
|
20
20
|
// Step 1: Write to temp file
|
|
21
|
-
fs.writeFileSync(tmpPath, content, { encoding: "
|
|
21
|
+
fs.writeFileSync(tmpPath, content, { encoding: "utf8", mode: FILE_MODE_OWNER_RW, flush: true });
|
|
22
22
|
// Step 2: Atomic rename (replaces target if exists)
|
|
23
23
|
fs.renameSync(tmpPath, filePath);
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/config/file-utils.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,wDAAwD;AAExD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAwB;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,6BAA6B;QAC7B,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/config/file-utils.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,wDAAwD;AAExD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAwB;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,MAAM,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,6BAA6B;QAC7B,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhG,oDAAoD;QACpD,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qCAAqC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { atomicWriteFile } from "./file-utils.ts";
|
|
5
|
-
export { readConfigToml, writeConfigToml } from "./toml-io.ts";
|
|
6
|
-
export { parseEnvOverrides } from "./env-parser.ts";
|
|
1
|
+
export { API_URL_PRESETS } from "./constants.ts";
|
|
2
|
+
export { getConfigFile } from "./paths.ts";
|
|
3
|
+
export { writeConfigToml } from "./toml-io.ts";
|
|
7
4
|
export { getSettings, getSettingsDiagnostics, getEnvOverridesSnapshot, reloadSettings, buildCliKeyMap, getConfigValue, setConfigValue, getValidConfigKeys, resolveLokiPreset, } from "./settings.ts";
|
|
8
|
-
export {
|
|
5
|
+
export { clearTokens, isAuthenticated } from "./credentials.ts";
|
|
9
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
// See API-434:
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { ApiConfigSchema, CliConfigSchema, TelemetryConfigSchema, SettingsSchema, } from "./schemas.js";
|
|
7
|
-
export { API_URL_PRESETS, LOKI_URL_PRESETS, LOKI_KEY_PRESETS, DEFAULT_API_URL_PRESET, TOKEN_EXPIRY_BUFFER, } from "./constants.js";
|
|
8
|
-
export { getConfigDir, getConfigFile, getCredsFile } from "./paths.js";
|
|
9
|
-
export { atomicWriteFile } from "./file-utils.js";
|
|
10
|
-
export { readConfigToml, writeConfigToml } from "./toml-io.js";
|
|
11
|
-
export { parseEnvOverrides } from "./env-parser.js";
|
|
1
|
+
// See API-434, API-436, API-438, API-440: Config module barrel
|
|
2
|
+
// Only re-exports symbols that are actually imported through this barrel.
|
|
3
|
+
export { API_URL_PRESETS } from "./constants.js";
|
|
4
|
+
export { getConfigFile } from "./paths.js";
|
|
5
|
+
export { writeConfigToml } from "./toml-io.js";
|
|
12
6
|
export { getSettings, getSettingsDiagnostics, getEnvOverridesSnapshot, reloadSettings, buildCliKeyMap, getConfigValue, setConfigValue, getValidConfigKeys, resolveLokiPreset, } from "./settings.js";
|
|
13
|
-
export {
|
|
7
|
+
export { clearTokens, isAuthenticated } from "./credentials.js";
|
|
14
8
|
//# sourceMappingURL=index.js.map
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0EAA0E;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/config/schemas.d.ts
CHANGED
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
/**
|
|
3
3
|
* API configuration section schema
|
|
4
|
-
* Matches Python ApiConfig (11 fields)
|
|
5
4
|
*/
|
|
6
5
|
export declare const ApiConfigSchema: z.ZodObject<{
|
|
7
6
|
base_url: z.ZodDefault<z.ZodString>;
|
|
8
7
|
timeout: z.ZodDefault<z.ZodNumber>;
|
|
9
8
|
connect_timeout: z.ZodDefault<z.ZodNumber>;
|
|
10
9
|
write_timeout: z.ZodDefault<z.ZodNumber>;
|
|
11
|
-
pool_timeout: z.ZodDefault<z.ZodNumber>;
|
|
12
10
|
retry_attempts: z.ZodDefault<z.ZodNumber>;
|
|
13
|
-
retry_initial: z.ZodDefault<z.ZodNumber>;
|
|
14
11
|
retry_max: z.ZodDefault<z.ZodNumber>;
|
|
15
|
-
max_connections: z.ZodDefault<z.ZodNumber>;
|
|
16
|
-
max_keepalive: z.ZodDefault<z.ZodNumber>;
|
|
17
12
|
rate_limit_max_wait: z.ZodDefault<z.ZodNumber>;
|
|
18
13
|
}, z.core.$strip>;
|
|
19
14
|
/**
|
|
20
15
|
* CLI behavior configuration section schema
|
|
21
|
-
* Matches Python CliConfig (7 fields)
|
|
22
16
|
*/
|
|
23
17
|
export declare const CliConfigSchema: z.ZodObject<{
|
|
24
18
|
contact_url: z.ZodDefault<z.ZodString>;
|
|
@@ -26,25 +20,17 @@ export declare const CliConfigSchema: z.ZodObject<{
|
|
|
26
20
|
progress_threshold: z.ZodDefault<z.ZodNumber>;
|
|
27
21
|
language: z.ZodDefault<z.ZodString>;
|
|
28
22
|
log_level: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<"error" | "warn" | "debug" | "info", string>>;
|
|
29
|
-
|
|
30
|
-
verbose: "verbose";
|
|
31
|
-
terse: "terse";
|
|
32
|
-
}>, z.ZodPipe<z.ZodBoolean, z.ZodTransform<"verbose" | "terse", boolean>>]>>;
|
|
23
|
+
show_curl: z.ZodDefault<z.ZodBoolean>;
|
|
33
24
|
job_tracking_strategy: z.ZodDefault<z.ZodEnum<{
|
|
34
25
|
auto: "auto";
|
|
35
26
|
sse: "sse";
|
|
36
27
|
polling: "polling";
|
|
37
28
|
}>>;
|
|
38
|
-
|
|
39
|
-
error: "error";
|
|
40
|
-
"first-wins": "first-wins";
|
|
41
|
-
"last-wins": "last-wins";
|
|
42
|
-
}>>;
|
|
29
|
+
file_concurrency: z.ZodDefault<z.ZodNumber>;
|
|
43
30
|
repl_history_max_entries: z.ZodDefault<z.ZodNumber>;
|
|
44
31
|
}, z.core.$strip>;
|
|
45
32
|
/**
|
|
46
33
|
* Remote error telemetry configuration schema
|
|
47
|
-
* Matches Python TelemetryConfig (3 fields)
|
|
48
34
|
*
|
|
49
35
|
* Loki URL is resolved automatically from the active API preset
|
|
50
36
|
* (test -> edge.prompsit.com/loki, local -> localhost:3100).
|
|
@@ -57,7 +43,6 @@ export declare const TelemetryConfigSchema: z.ZodObject<{
|
|
|
57
43
|
}, z.core.$strip>;
|
|
58
44
|
/**
|
|
59
45
|
* Composite settings schema with all config sections
|
|
60
|
-
* Matches Python Settings (api, cli, telemetry)
|
|
61
46
|
*/
|
|
62
47
|
export declare const SettingsSchema: z.ZodObject<{
|
|
63
48
|
api: z.ZodDefault<z.ZodObject<{
|
|
@@ -65,12 +50,8 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
65
50
|
timeout: z.ZodDefault<z.ZodNumber>;
|
|
66
51
|
connect_timeout: z.ZodDefault<z.ZodNumber>;
|
|
67
52
|
write_timeout: z.ZodDefault<z.ZodNumber>;
|
|
68
|
-
pool_timeout: z.ZodDefault<z.ZodNumber>;
|
|
69
53
|
retry_attempts: z.ZodDefault<z.ZodNumber>;
|
|
70
|
-
retry_initial: z.ZodDefault<z.ZodNumber>;
|
|
71
54
|
retry_max: z.ZodDefault<z.ZodNumber>;
|
|
72
|
-
max_connections: z.ZodDefault<z.ZodNumber>;
|
|
73
|
-
max_keepalive: z.ZodDefault<z.ZodNumber>;
|
|
74
55
|
rate_limit_max_wait: z.ZodDefault<z.ZodNumber>;
|
|
75
56
|
}, z.core.$strip>>;
|
|
76
57
|
cli: z.ZodDefault<z.ZodObject<{
|
|
@@ -79,20 +60,13 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
79
60
|
progress_threshold: z.ZodDefault<z.ZodNumber>;
|
|
80
61
|
language: z.ZodDefault<z.ZodString>;
|
|
81
62
|
log_level: z.ZodPipe<z.ZodDefault<z.ZodString>, z.ZodTransform<"error" | "warn" | "debug" | "info", string>>;
|
|
82
|
-
|
|
83
|
-
verbose: "verbose";
|
|
84
|
-
terse: "terse";
|
|
85
|
-
}>, z.ZodPipe<z.ZodBoolean, z.ZodTransform<"verbose" | "terse", boolean>>]>>;
|
|
63
|
+
show_curl: z.ZodDefault<z.ZodBoolean>;
|
|
86
64
|
job_tracking_strategy: z.ZodDefault<z.ZodEnum<{
|
|
87
65
|
auto: "auto";
|
|
88
66
|
sse: "sse";
|
|
89
67
|
polling: "polling";
|
|
90
68
|
}>>;
|
|
91
|
-
|
|
92
|
-
error: "error";
|
|
93
|
-
"first-wins": "first-wins";
|
|
94
|
-
"last-wins": "last-wins";
|
|
95
|
-
}>>;
|
|
69
|
+
file_concurrency: z.ZodDefault<z.ZodNumber>;
|
|
96
70
|
repl_history_max_entries: z.ZodDefault<z.ZodNumber>;
|
|
97
71
|
}, z.core.$strip>>;
|
|
98
72
|
telemetry: z.ZodDefault<z.ZodObject<{
|
|
@@ -104,8 +78,5 @@ export declare const SettingsSchema: z.ZodObject<{
|
|
|
104
78
|
/**
|
|
105
79
|
* Inferred TypeScript types from Zod schemas
|
|
106
80
|
*/
|
|
107
|
-
export type ApiConfig = z.infer<typeof ApiConfigSchema>;
|
|
108
|
-
export type CliConfig = z.infer<typeof CliConfigSchema>;
|
|
109
|
-
export type TelemetryConfig = z.infer<typeof TelemetryConfigSchema>;
|
|
110
81
|
export type Settings = z.infer<typeof SettingsSchema>;
|
|
111
82
|
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;iBAQ1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;iBAqB1B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIzB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|