@goondan/cli 0.0.3-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.d.ts +2 -0
- package/dist/bin.js +148 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/context.d.ts +8 -0
- package/dist/commands/context.js +2 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.js +7 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +12 -0
- package/dist/commands/init.js +29 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/instance-interactive.d.ts +19 -0
- package/dist/commands/instance-interactive.js +259 -0
- package/dist/commands/instance-interactive.js.map +1 -0
- package/dist/commands/instance.d.ts +30 -0
- package/dist/commands/instance.js +36 -0
- package/dist/commands/instance.js.map +1 -0
- package/dist/commands/logs.d.ts +12 -0
- package/dist/commands/logs.js +23 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/package.d.ts +30 -0
- package/dist/commands/package.js +51 -0
- package/dist/commands/package.js.map +1 -0
- package/dist/commands/restart.d.ts +12 -0
- package/dist/commands/restart.js +14 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/run.d.ts +12 -0
- package/dist/commands/run.js +33 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/validate.d.ts +12 -0
- package/dist/commands/validate.js +22 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +3 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.js +93 -0
- package/dist/errors.js.map +1 -0
- package/dist/formatter.d.ts +7 -0
- package/dist/formatter.js +141 -0
- package/dist/formatter.js.map +1 -0
- package/dist/help.d.ts +1 -0
- package/dist/help.js +25 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/options.d.ts +13 -0
- package/dist/options.js +57 -0
- package/dist/options.js.map +1 -0
- package/dist/parser.d.ts +85 -0
- package/dist/parser.js +123 -0
- package/dist/parser.js.map +1 -0
- package/dist/router.d.ts +2 -0
- package/dist/router.js +130 -0
- package/dist/router.js.map +1 -0
- package/dist/services/config.d.ts +13 -0
- package/dist/services/config.js +141 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/conversation-state.d.ts +20 -0
- package/dist/services/conversation-state.js +198 -0
- package/dist/services/conversation-state.js.map +1 -0
- package/dist/services/defaults.d.ts +2 -0
- package/dist/services/defaults.js +92 -0
- package/dist/services/defaults.js.map +1 -0
- package/dist/services/doctor.d.ts +8 -0
- package/dist/services/doctor.js +160 -0
- package/dist/services/doctor.js.map +1 -0
- package/dist/services/env.d.ts +6 -0
- package/dist/services/env.js +76 -0
- package/dist/services/env.js.map +1 -0
- package/dist/services/init.d.ts +4 -0
- package/dist/services/init.js +174 -0
- package/dist/services/init.js.map +1 -0
- package/dist/services/instances.d.ts +7 -0
- package/dist/services/instances.js +393 -0
- package/dist/services/instances.js.map +1 -0
- package/dist/services/logs.d.ts +6 -0
- package/dist/services/logs.js +131 -0
- package/dist/services/logs.js.map +1 -0
- package/dist/services/package.d.ts +11 -0
- package/dist/services/package.js +630 -0
- package/dist/services/package.js.map +1 -0
- package/dist/services/path.d.ts +5 -0
- package/dist/services/path.js +25 -0
- package/dist/services/path.js.map +1 -0
- package/dist/services/registry.d.ts +12 -0
- package/dist/services/registry.js +219 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/runtime-restart-signal.d.ts +5 -0
- package/dist/services/runtime-restart-signal.js +18 -0
- package/dist/services/runtime-restart-signal.js.map +1 -0
- package/dist/services/runtime-restart.d.ts +11 -0
- package/dist/services/runtime-restart.js +151 -0
- package/dist/services/runtime-restart.js.map +1 -0
- package/dist/services/runtime-routing.d.ts +40 -0
- package/dist/services/runtime-routing.js +154 -0
- package/dist/services/runtime-routing.js.map +1 -0
- package/dist/services/runtime-runner-connector-child.d.ts +1 -0
- package/dist/services/runtime-runner-connector-child.js +188 -0
- package/dist/services/runtime-runner-connector-child.js.map +1 -0
- package/dist/services/runtime-runner-protocol.d.ts +12 -0
- package/dist/services/runtime-runner-protocol.js +14 -0
- package/dist/services/runtime-runner-protocol.js.map +1 -0
- package/dist/services/runtime-runner.d.ts +1 -0
- package/dist/services/runtime-runner.js +2595 -0
- package/dist/services/runtime-runner.js.map +1 -0
- package/dist/services/runtime.d.ts +10 -0
- package/dist/services/runtime.js +569 -0
- package/dist/services/runtime.js.map +1 -0
- package/dist/services/turn-policy.d.ts +7 -0
- package/dist/services/turn-policy.js +13 -0
- package/dist/services/turn-policy.js.map +1 -0
- package/dist/services/validator.d.ts +6 -0
- package/dist/services/validator.js +126 -0
- package/dist/services/validator.js.map +1 -0
- package/dist/types.d.ts +243 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +72 -0
- package/dist/utils.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQvE,MAAM,UAAU,gBAAgB,CAAC,MAAuB;IACtD,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,mBAAmB,CAAC;IACvF,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzD,OAAO;QACL,UAAU;QACV,SAAS;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,IAAY;IACnE,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAuB,EAAE,IAAY;IACpE,OAAO,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,IAAY,EAAE,QAAgB;IACrF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,QAAoC;IAC3F,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,CAAC,wBAAwB,EAAE,iCAAiC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAuB;IACrD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,CAAC,wBAAwB,EAAE,gDAAgD,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAuB,EAAE,QAAmB;IAC7E,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,CAAC,wBAAwB,EAAE,0CAA0C,CAAC,CAAC;AACzF,CAAC"}
|
package/dist/parser.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { InferValue, Result } from '@optique/core/parser';
|
|
2
|
+
export declare const gdnParser: import("@optique/core/parser").Parser<"sync", {
|
|
3
|
+
readonly config: string;
|
|
4
|
+
readonly stateRoot: string | undefined;
|
|
5
|
+
readonly json: boolean | undefined;
|
|
6
|
+
readonly verbose: boolean | undefined;
|
|
7
|
+
readonly quiet: boolean | undefined;
|
|
8
|
+
readonly noColor: boolean | undefined;
|
|
9
|
+
} & {
|
|
10
|
+
readonly command: {
|
|
11
|
+
readonly action: "init";
|
|
12
|
+
readonly initPath: string | undefined;
|
|
13
|
+
readonly name: string | undefined;
|
|
14
|
+
readonly template: "default" | "multi-agent" | "package" | "minimal";
|
|
15
|
+
readonly asPackage: boolean | undefined;
|
|
16
|
+
readonly git: boolean;
|
|
17
|
+
readonly noGit: boolean | undefined;
|
|
18
|
+
readonly force: boolean | undefined;
|
|
19
|
+
} | {
|
|
20
|
+
readonly action: "run";
|
|
21
|
+
readonly bundlePath: string | undefined;
|
|
22
|
+
readonly swarm: string | undefined;
|
|
23
|
+
readonly instanceKey: string | undefined;
|
|
24
|
+
readonly watch: boolean | undefined;
|
|
25
|
+
readonly foreground: boolean | undefined;
|
|
26
|
+
readonly interactive: boolean | undefined;
|
|
27
|
+
readonly input: string | undefined;
|
|
28
|
+
readonly inputFile: string | undefined;
|
|
29
|
+
readonly noInstall: boolean | undefined;
|
|
30
|
+
readonly envFile: string | undefined;
|
|
31
|
+
} | {
|
|
32
|
+
readonly action: "restart";
|
|
33
|
+
readonly agent: string | undefined;
|
|
34
|
+
readonly fresh: boolean | undefined;
|
|
35
|
+
} | {
|
|
36
|
+
readonly action: "validate";
|
|
37
|
+
readonly target: string | undefined;
|
|
38
|
+
readonly strict: boolean | undefined;
|
|
39
|
+
readonly fix: boolean | undefined;
|
|
40
|
+
readonly format: "json" | "text" | "github";
|
|
41
|
+
} | {
|
|
42
|
+
readonly action: "instance.list";
|
|
43
|
+
readonly agent: string | undefined;
|
|
44
|
+
readonly limit: number;
|
|
45
|
+
readonly all: boolean | undefined;
|
|
46
|
+
} | {
|
|
47
|
+
readonly action: "instance.delete";
|
|
48
|
+
readonly key: string;
|
|
49
|
+
readonly force: boolean | undefined;
|
|
50
|
+
} | {
|
|
51
|
+
readonly action: "instance.restart";
|
|
52
|
+
readonly key: string;
|
|
53
|
+
readonly fresh: boolean | undefined;
|
|
54
|
+
} | {
|
|
55
|
+
readonly action: "package.add";
|
|
56
|
+
readonly ref: string;
|
|
57
|
+
readonly dev: boolean | undefined;
|
|
58
|
+
readonly exact: boolean | undefined;
|
|
59
|
+
readonly registry: string | undefined;
|
|
60
|
+
} | {
|
|
61
|
+
readonly action: "package.install";
|
|
62
|
+
readonly frozenLockfile: boolean | undefined;
|
|
63
|
+
readonly registry: string | undefined;
|
|
64
|
+
} | {
|
|
65
|
+
readonly action: "package.publish";
|
|
66
|
+
readonly publishPath: string | undefined;
|
|
67
|
+
readonly tag: string;
|
|
68
|
+
readonly access: "public" | "restricted";
|
|
69
|
+
readonly dryRun: boolean | undefined;
|
|
70
|
+
readonly registry: string | undefined;
|
|
71
|
+
} | {
|
|
72
|
+
readonly action: "doctor";
|
|
73
|
+
readonly fix: boolean | undefined;
|
|
74
|
+
} | {
|
|
75
|
+
readonly action: "logs";
|
|
76
|
+
readonly instanceKey: string | undefined;
|
|
77
|
+
readonly process: string;
|
|
78
|
+
readonly stream: "stdout" | "stderr" | "both";
|
|
79
|
+
readonly lines: number;
|
|
80
|
+
};
|
|
81
|
+
}, Record<string | symbol, unknown>>;
|
|
82
|
+
export type GdnArgs = InferValue<typeof gdnParser>;
|
|
83
|
+
export type GdnCommand = GdnArgs['command'];
|
|
84
|
+
export declare function parseArgv(argv: readonly string[]): Result<GdnArgs>;
|
|
85
|
+
export declare function formatParseError(result: Result<GdnArgs>): string;
|
package/dist/parser.js
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { merge, object, or } from '@optique/core/constructs';
|
|
2
|
+
import { optional, withDefault } from '@optique/core/modifiers';
|
|
3
|
+
import { argument, command, constant, option } from '@optique/core/primitives';
|
|
4
|
+
import { choice, integer, string } from '@optique/core/valueparser';
|
|
5
|
+
import { parse } from '@optique/core/parser';
|
|
6
|
+
import { formatMessage } from '@optique/core/message';
|
|
7
|
+
import { DEFAULT_BUNDLE_FILE } from './constants.js';
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Global options (shared across all commands)
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
const globalOptions = object('Global Options', {
|
|
12
|
+
config: withDefault(option('-c', '--config', string({ metavar: 'PATH' })), DEFAULT_BUNDLE_FILE),
|
|
13
|
+
stateRoot: optional(option('--state-root', string({ metavar: 'PATH' }))),
|
|
14
|
+
json: optional(option('--json')),
|
|
15
|
+
verbose: optional(option('-v', '--verbose')),
|
|
16
|
+
quiet: optional(option('-q', '--quiet')),
|
|
17
|
+
noColor: optional(option('--no-color')),
|
|
18
|
+
});
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Command parsers
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
const initCommand = command('init', object({
|
|
23
|
+
action: constant('init'),
|
|
24
|
+
initPath: optional(argument(string({ metavar: 'PATH' }))),
|
|
25
|
+
name: optional(option('-n', '--name', string({ metavar: 'NAME' }))),
|
|
26
|
+
template: withDefault(option('-t', '--template', choice(['default', 'multi-agent', 'package', 'minimal'])), 'default'),
|
|
27
|
+
asPackage: optional(option('--package')),
|
|
28
|
+
git: withDefault(option('--git'), true),
|
|
29
|
+
noGit: optional(option('--no-git')),
|
|
30
|
+
force: optional(option('-f', '--force')),
|
|
31
|
+
}));
|
|
32
|
+
const runCommand = command('run', object({
|
|
33
|
+
action: constant('run'),
|
|
34
|
+
bundlePath: optional(argument(string({ metavar: 'BUNDLE_PATH' }))),
|
|
35
|
+
swarm: optional(option('-s', '--swarm', string({ metavar: 'NAME' }))),
|
|
36
|
+
instanceKey: optional(option('-i', '--instance-key', string({ metavar: 'KEY' }))),
|
|
37
|
+
watch: optional(option('-w', '--watch')),
|
|
38
|
+
foreground: optional(option('--foreground')),
|
|
39
|
+
interactive: optional(option('--interactive')),
|
|
40
|
+
input: optional(option('--input', string())),
|
|
41
|
+
inputFile: optional(option('--input-file', string({ metavar: 'FILE' }))),
|
|
42
|
+
noInstall: optional(option('--no-install')),
|
|
43
|
+
envFile: optional(option('--env-file', string({ metavar: 'FILE' }))),
|
|
44
|
+
}));
|
|
45
|
+
const restartCommand = command('restart', object({
|
|
46
|
+
action: constant('restart'),
|
|
47
|
+
agent: optional(option('-a', '--agent', string({ metavar: 'NAME' }))),
|
|
48
|
+
fresh: optional(option('--fresh')),
|
|
49
|
+
}));
|
|
50
|
+
const validateCommand = command('validate', object({
|
|
51
|
+
action: constant('validate'),
|
|
52
|
+
target: optional(argument(string({ metavar: 'PATH' }))),
|
|
53
|
+
strict: optional(option('--strict')),
|
|
54
|
+
fix: optional(option('--fix')),
|
|
55
|
+
format: withDefault(option('--format', choice(['text', 'json', 'github'])), 'text'),
|
|
56
|
+
}));
|
|
57
|
+
const instanceListCommand = command('list', object({
|
|
58
|
+
action: constant('instance.list'),
|
|
59
|
+
agent: optional(option('-a', '--agent', string({ metavar: 'NAME' }))),
|
|
60
|
+
limit: withDefault(option('-n', '--limit', integer({ min: 1 })), 20),
|
|
61
|
+
all: optional(option('--all')),
|
|
62
|
+
}));
|
|
63
|
+
const instanceDeleteCommand = command('delete', object({
|
|
64
|
+
action: constant('instance.delete'),
|
|
65
|
+
key: argument(string({ metavar: 'KEY' })),
|
|
66
|
+
force: optional(option('-f', '--force')),
|
|
67
|
+
}));
|
|
68
|
+
const instanceRestartCommand = command('restart', object({
|
|
69
|
+
action: constant('instance.restart'),
|
|
70
|
+
key: argument(string({ metavar: 'KEY' })),
|
|
71
|
+
fresh: optional(option('--fresh')),
|
|
72
|
+
}));
|
|
73
|
+
const instanceCommand = command('instance', or(instanceListCommand, instanceDeleteCommand, instanceRestartCommand));
|
|
74
|
+
const packageAddCommand = command('add', object({
|
|
75
|
+
action: constant('package.add'),
|
|
76
|
+
ref: argument(string({ metavar: 'PACKAGE_REF' })),
|
|
77
|
+
dev: optional(option('-D', '--dev')),
|
|
78
|
+
exact: optional(option('-E', '--exact')),
|
|
79
|
+
registry: optional(option('--registry', string({ metavar: 'URL' }))),
|
|
80
|
+
}));
|
|
81
|
+
const packageInstallCommand = command('install', object({
|
|
82
|
+
action: constant('package.install'),
|
|
83
|
+
frozenLockfile: optional(option('--frozen-lockfile')),
|
|
84
|
+
registry: optional(option('--registry', string({ metavar: 'URL' }))),
|
|
85
|
+
}));
|
|
86
|
+
const packagePublishCommand = command('publish', object({
|
|
87
|
+
action: constant('package.publish'),
|
|
88
|
+
publishPath: optional(argument(string({ metavar: 'PATH' }))),
|
|
89
|
+
tag: withDefault(option('--tag', string()), 'latest'),
|
|
90
|
+
access: withDefault(option('--access', choice(['public', 'restricted'])), 'public'),
|
|
91
|
+
dryRun: optional(option('--dry-run')),
|
|
92
|
+
registry: optional(option('--registry', string({ metavar: 'URL' }))),
|
|
93
|
+
}));
|
|
94
|
+
const packageCommand = command('package', or(packageAddCommand, packageInstallCommand, packagePublishCommand));
|
|
95
|
+
const doctorCommand = command('doctor', object({
|
|
96
|
+
action: constant('doctor'),
|
|
97
|
+
fix: optional(option('--fix')),
|
|
98
|
+
}));
|
|
99
|
+
const logsCommand = command('logs', object({
|
|
100
|
+
action: constant('logs'),
|
|
101
|
+
instanceKey: optional(option('-i', '--instance-key', string({ metavar: 'KEY' }))),
|
|
102
|
+
process: withDefault(option('-p', '--process', string({ metavar: 'NAME' })), 'orchestrator'),
|
|
103
|
+
stream: withDefault(option('--stream', choice(['stdout', 'stderr', 'both'])), 'both'),
|
|
104
|
+
lines: withDefault(option('-l', '--lines', integer({ min: 1 })), 200),
|
|
105
|
+
}));
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
// Top-level parser: global options + command union
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
const allCommands = or(initCommand, runCommand, restartCommand, validateCommand, instanceCommand, packageCommand, doctorCommand, logsCommand);
|
|
110
|
+
export const gdnParser = merge(globalOptions, object({ command: allCommands }));
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
// Test-friendly parse wrapper (no process.exit)
|
|
113
|
+
// ---------------------------------------------------------------------------
|
|
114
|
+
export function parseArgv(argv) {
|
|
115
|
+
return parse(gdnParser, argv);
|
|
116
|
+
}
|
|
117
|
+
export function formatParseError(result) {
|
|
118
|
+
if (result.success) {
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
return formatMessage(result.error);
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
package/dist/router.d.ts
ADDED
package/dist/router.js
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { CliError, toCliError, usageError } from './errors.js';
|
|
2
|
+
import { formatCliError } from './formatter.js';
|
|
3
|
+
import { parseArgv, formatParseError } from './parser.js';
|
|
4
|
+
import { handleDoctor } from './commands/doctor.js';
|
|
5
|
+
import { handleInit } from './commands/init.js';
|
|
6
|
+
import { handleInstanceList, handleInstanceDelete, handleInstanceRestart } from './commands/instance.js';
|
|
7
|
+
import { handleInstanceInteractive } from './commands/instance-interactive.js';
|
|
8
|
+
import { handleLogs } from './commands/logs.js';
|
|
9
|
+
import { handlePackageAdd, handlePackageInstall, handlePackagePublish } from './commands/package.js';
|
|
10
|
+
import { handleRestart } from './commands/restart.js';
|
|
11
|
+
import { handleRun } from './commands/run.js';
|
|
12
|
+
import { handleValidate } from './commands/validate.js';
|
|
13
|
+
function extractGlobals(argv) {
|
|
14
|
+
const globals = {
|
|
15
|
+
config: 'goondan.yaml',
|
|
16
|
+
};
|
|
17
|
+
for (let i = 0; i < argv.length; i++) {
|
|
18
|
+
const arg = argv[i];
|
|
19
|
+
if (arg === '--json')
|
|
20
|
+
globals.json = true;
|
|
21
|
+
else if (arg === '--no-color')
|
|
22
|
+
globals.noColor = true;
|
|
23
|
+
else if (arg === '-v' || arg === '--verbose')
|
|
24
|
+
globals.verbose = true;
|
|
25
|
+
else if (arg === '-q' || arg === '--quiet')
|
|
26
|
+
globals.quiet = true;
|
|
27
|
+
else if ((arg === '-c' || arg === '--config') && i + 1 < argv.length) {
|
|
28
|
+
const next = argv[++i];
|
|
29
|
+
if (next !== undefined)
|
|
30
|
+
globals.config = next;
|
|
31
|
+
}
|
|
32
|
+
else if (arg === '--state-root' && i + 1 < argv.length) {
|
|
33
|
+
const val = argv[++i];
|
|
34
|
+
if (val !== undefined)
|
|
35
|
+
globals.stateRoot = val;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return globals;
|
|
39
|
+
}
|
|
40
|
+
function isBareInstanceCommand(argv) {
|
|
41
|
+
const nonGlobalArgs = [];
|
|
42
|
+
for (let i = 0; i < argv.length; i++) {
|
|
43
|
+
const arg = argv[i];
|
|
44
|
+
if (arg === undefined)
|
|
45
|
+
continue;
|
|
46
|
+
// Skip global options with values
|
|
47
|
+
if ((arg === '-c' || arg === '--config' || arg === '--state-root') && i + 1 < argv.length) {
|
|
48
|
+
i++;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Skip global flags
|
|
52
|
+
if (arg === '--json' || arg === '--no-color' || arg === '-v' || arg === '--verbose' || arg === '-q' || arg === '--quiet') {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
nonGlobalArgs.push(arg);
|
|
56
|
+
}
|
|
57
|
+
return nonGlobalArgs.length === 1 && nonGlobalArgs[0] === 'instance';
|
|
58
|
+
}
|
|
59
|
+
export async function executeCli(argv, deps) {
|
|
60
|
+
const result = parseArgv(argv);
|
|
61
|
+
if (!result.success) {
|
|
62
|
+
// bare "instance" (with optional global flags) → interactive mode
|
|
63
|
+
if (isBareInstanceCommand(argv)) {
|
|
64
|
+
const globals = extractGlobals(argv);
|
|
65
|
+
const isJson = globals.json ?? false;
|
|
66
|
+
try {
|
|
67
|
+
return await handleInstanceInteractive({
|
|
68
|
+
cmd: { action: 'instance.interactive' },
|
|
69
|
+
deps,
|
|
70
|
+
globals,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
const cliError = normalizeCommandError(error);
|
|
75
|
+
deps.io.err(formatCliError(cliError, isJson));
|
|
76
|
+
return cliError.exitCode;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
deps.io.err(formatParseError(result));
|
|
80
|
+
return 2;
|
|
81
|
+
}
|
|
82
|
+
const args = result.value;
|
|
83
|
+
const { command: cmd, ...globals } = args;
|
|
84
|
+
const isJson = globals.json ?? false;
|
|
85
|
+
try {
|
|
86
|
+
return await dispatchCommand(cmd, deps, globals);
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
const cliError = normalizeCommandError(error);
|
|
90
|
+
deps.io.err(formatCliError(cliError, isJson));
|
|
91
|
+
return cliError.exitCode;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
async function dispatchCommand(cmd, deps, globals) {
|
|
95
|
+
switch (cmd.action) {
|
|
96
|
+
case 'init':
|
|
97
|
+
return handleInit({ cmd, deps, globals });
|
|
98
|
+
case 'run':
|
|
99
|
+
return handleRun({ cmd, deps, globals });
|
|
100
|
+
case 'restart':
|
|
101
|
+
return handleRestart({ cmd, deps, globals });
|
|
102
|
+
case 'validate':
|
|
103
|
+
return handleValidate({ cmd, deps, globals });
|
|
104
|
+
case 'instance.list':
|
|
105
|
+
return handleInstanceList({ cmd, deps, globals });
|
|
106
|
+
case 'instance.delete':
|
|
107
|
+
return handleInstanceDelete({ cmd, deps, globals });
|
|
108
|
+
case 'instance.restart':
|
|
109
|
+
return handleInstanceRestart({ cmd, deps, globals });
|
|
110
|
+
case 'package.add':
|
|
111
|
+
return handlePackageAdd({ cmd, deps, globals });
|
|
112
|
+
case 'package.install':
|
|
113
|
+
return handlePackageInstall({ cmd, deps, globals });
|
|
114
|
+
case 'package.publish':
|
|
115
|
+
return handlePackagePublish({ cmd, deps, globals });
|
|
116
|
+
case 'doctor':
|
|
117
|
+
return handleDoctor({ cmd, deps, globals });
|
|
118
|
+
case 'logs':
|
|
119
|
+
return handleLogs({ cmd, deps, globals });
|
|
120
|
+
default:
|
|
121
|
+
throw usageError('지원하지 않는 명령어입니다.', 'gdn --help로 명령 목록을 확인하세요.');
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function normalizeCommandError(error) {
|
|
125
|
+
if (error instanceof CliError) {
|
|
126
|
+
return error;
|
|
127
|
+
}
|
|
128
|
+
return toCliError(error);
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACzG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,SAAS,cAAc,CAAC,IAAc;IACpC,MAAM,OAAO,GAA+B;QAC1C,MAAM,EAAE,cAAc;KACvB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;aACrC,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;aACjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;aAC5D,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;QAChD,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,GAAG,KAAK,SAAS;gBAAE,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,SAAS;YAAE,SAAS;QAChC,kCAAkC;QAClC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1F,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,oBAAoB;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACzH,SAAS;QACX,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,IAAqB;IACpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,kEAAkE;QAClE,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;YACrC,IAAI,CAAC;gBACH,OAAO,MAAM,yBAAyB,CAAC;oBACrC,GAAG,EAAE,EAAE,MAAM,EAAE,sBAA+B,EAAE;oBAChD,IAAI;oBACJ,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC9C,OAAO,QAAQ,CAAC,QAAQ,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAErC,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9C,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAuB,EACvB,IAAqB,EACrB,OAAiC;IAEjC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,aAAa,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/C,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,KAAK,eAAe;YAClB,OAAO,kBAAkB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpD,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,KAAK,kBAAkB;YACrB,OAAO,qBAAqB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAClD,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,KAAK,iBAAiB;YACpB,OAAO,oBAAoB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C;YACE,MAAM,UAAU,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface RegistryAuthEntry {
|
|
2
|
+
token?: string;
|
|
3
|
+
}
|
|
4
|
+
export interface CliConfigFile {
|
|
5
|
+
registry?: string;
|
|
6
|
+
registries: Record<string, RegistryAuthEntry>;
|
|
7
|
+
scopedRegistries: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveStateRoot(explicit: string | undefined, env: NodeJS.ProcessEnv): string;
|
|
10
|
+
export declare function readCliConfig(stateRoot: string): Promise<CliConfigFile>;
|
|
11
|
+
export declare function resolveRegistryUrl(optionValue: string | undefined, env: NodeJS.ProcessEnv, config: CliConfigFile, packageName?: string): string;
|
|
12
|
+
export declare function resolveRegistryToken(registryUrl: string, env: NodeJS.ProcessEnv, config: CliConfigFile): string | undefined;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import { readTextFileIfExists, isObjectRecord, trimQuotes } from '../utils.js';
|
|
4
|
+
import { DEFAULT_REGISTRY_URL } from '../constants.js';
|
|
5
|
+
export function resolveStateRoot(explicit, env) {
|
|
6
|
+
if (explicit && explicit.length > 0) {
|
|
7
|
+
return path.resolve(explicit);
|
|
8
|
+
}
|
|
9
|
+
const fromEnv = env['GOONDAN_STATE_ROOT'];
|
|
10
|
+
if (fromEnv && fromEnv.length > 0) {
|
|
11
|
+
return path.resolve(fromEnv);
|
|
12
|
+
}
|
|
13
|
+
return path.join(os.homedir(), '.goondan');
|
|
14
|
+
}
|
|
15
|
+
function parseRegistryAuthEntry(value) {
|
|
16
|
+
if (!isObjectRecord(value)) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
const tokenValue = value['token'];
|
|
20
|
+
if (typeof tokenValue === 'string') {
|
|
21
|
+
return { token: tokenValue };
|
|
22
|
+
}
|
|
23
|
+
return {};
|
|
24
|
+
}
|
|
25
|
+
function parseConfig(raw) {
|
|
26
|
+
if (!isObjectRecord(raw)) {
|
|
27
|
+
return {
|
|
28
|
+
registries: {},
|
|
29
|
+
scopedRegistries: {},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
const registry = typeof raw['registry'] === 'string' ? raw['registry'] : undefined;
|
|
33
|
+
const registries = {};
|
|
34
|
+
const registriesRaw = raw['registries'];
|
|
35
|
+
if (isObjectRecord(registriesRaw)) {
|
|
36
|
+
for (const [key, value] of Object.entries(registriesRaw)) {
|
|
37
|
+
const parsed = parseRegistryAuthEntry(value);
|
|
38
|
+
if (parsed) {
|
|
39
|
+
registries[key] = parsed;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const scopedRegistries = {};
|
|
44
|
+
const scopedRaw = raw['scopedRegistries'];
|
|
45
|
+
if (isObjectRecord(scopedRaw)) {
|
|
46
|
+
for (const [key, value] of Object.entries(scopedRaw)) {
|
|
47
|
+
if (typeof value === 'string') {
|
|
48
|
+
scopedRegistries[key] = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
registry,
|
|
54
|
+
registries,
|
|
55
|
+
scopedRegistries,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export async function readCliConfig(stateRoot) {
|
|
59
|
+
const configPath = path.join(stateRoot, 'config.json');
|
|
60
|
+
const content = await readTextFileIfExists(configPath);
|
|
61
|
+
if (!content) {
|
|
62
|
+
return {
|
|
63
|
+
registries: {},
|
|
64
|
+
scopedRegistries: {},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
const parsed = JSON.parse(content);
|
|
69
|
+
return parseConfig(parsed);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return {
|
|
73
|
+
registries: {},
|
|
74
|
+
scopedRegistries: {},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function packageScope(packageName) {
|
|
79
|
+
if (!packageName.startsWith('@')) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const slashIndex = packageName.indexOf('/');
|
|
83
|
+
if (slashIndex <= 1) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
return packageName.slice(0, slashIndex);
|
|
87
|
+
}
|
|
88
|
+
export function resolveRegistryUrl(optionValue, env, config, packageName) {
|
|
89
|
+
if (optionValue && optionValue.length > 0) {
|
|
90
|
+
return optionValue;
|
|
91
|
+
}
|
|
92
|
+
const envRegistry = env['GOONDAN_REGISTRY'];
|
|
93
|
+
if (envRegistry && envRegistry.length > 0) {
|
|
94
|
+
return envRegistry;
|
|
95
|
+
}
|
|
96
|
+
if (packageName) {
|
|
97
|
+
const scope = packageScope(packageName);
|
|
98
|
+
if (scope) {
|
|
99
|
+
const scoped = config.scopedRegistries[scope];
|
|
100
|
+
if (typeof scoped === 'string' && scoped.length > 0) {
|
|
101
|
+
return scoped;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (config.registry && config.registry.length > 0) {
|
|
106
|
+
return config.registry;
|
|
107
|
+
}
|
|
108
|
+
return DEFAULT_REGISTRY_URL;
|
|
109
|
+
}
|
|
110
|
+
function expandEnvToken(rawToken, env) {
|
|
111
|
+
const trimmed = trimQuotes(rawToken);
|
|
112
|
+
const match = trimmed.match(/^\$\{([A-Z0-9_]+)\}$/);
|
|
113
|
+
if (!match) {
|
|
114
|
+
return trimmed;
|
|
115
|
+
}
|
|
116
|
+
const envName = match[1];
|
|
117
|
+
if (!envName) {
|
|
118
|
+
return '';
|
|
119
|
+
}
|
|
120
|
+
const resolved = env[envName];
|
|
121
|
+
if (!resolved) {
|
|
122
|
+
return '';
|
|
123
|
+
}
|
|
124
|
+
return resolved;
|
|
125
|
+
}
|
|
126
|
+
export function resolveRegistryToken(registryUrl, env, config) {
|
|
127
|
+
const fromEnv = env['GOONDAN_REGISTRY_TOKEN'];
|
|
128
|
+
if (fromEnv && fromEnv.length > 0) {
|
|
129
|
+
return fromEnv;
|
|
130
|
+
}
|
|
131
|
+
const auth = config.registries[registryUrl];
|
|
132
|
+
if (!auth || !auth.token) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
const expanded = expandEnvToken(auth.token, env);
|
|
136
|
+
if (expanded.length === 0) {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
return expanded;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Message } from '@goondan/runtime';
|
|
2
|
+
export interface ConversationTurn {
|
|
3
|
+
role: 'user' | 'assistant';
|
|
4
|
+
content: unknown;
|
|
5
|
+
}
|
|
6
|
+
interface LlmMessage {
|
|
7
|
+
role: string;
|
|
8
|
+
content: unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface AnthropicPreparedConversation {
|
|
11
|
+
messages: Record<string, unknown>[];
|
|
12
|
+
systemAddendum: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function trimConversation(turns: ConversationTurn[], maxTurns: number): ConversationTurn[];
|
|
15
|
+
export declare function toConversationTurns(messages: Message[]): ConversationTurn[];
|
|
16
|
+
export declare function toPersistentMessages(turns: ConversationTurn[]): Message[];
|
|
17
|
+
export declare function toAnthropicMessages(turns: ConversationTurn[]): Record<string, unknown>[];
|
|
18
|
+
export declare function toConversationTurnsFromAnthropicMessages(messages: unknown[]): ConversationTurn[];
|
|
19
|
+
export declare function prepareAnthropicConversation(messages: LlmMessage[]): AnthropicPreparedConversation;
|
|
20
|
+
export {};
|