ysagc-agent 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,6 +10,8 @@ well-scoped executor — all policy lives on the platform.
10
10
 
11
11
  ## Highlights
12
12
 
13
+ - **One-command startup** — `ysagc-agent` (or `npx ysagc-agent`) with **zero flags**. Interactive onboarding on the first run, then auto-connects on every later run.
14
+ - **No baked-in secrets** — the default server is the customer platform; the device token is never defaulted, never logged, and never committed anywhere.
13
15
  - **Authorization root** — every file operation is forced inside one directory tree.
14
16
  - **Danger-command guard** — destructive shell commands are detected and blocked.
15
17
  - **Sensitive-path guard** — credential/system paths are blocked regardless of mode.
@@ -31,16 +33,30 @@ well-scoped executor — all policy lives on the platform.
31
33
 
32
34
  ## Quick start
33
35
 
34
- ### Install globally and run
36
+ ### One-command startup (zero flags)
35
37
 
36
38
  ```bash
37
39
  npm install -g ysagc-agent
40
+ ysagc-agent
41
+ ```
42
+
43
+ That's it. On the **first run** the wizard asks, in order:
44
+
45
+ 1. **平台地址 / server URL** — the default is `ws://interface.ysagi.cn/api/workbench/agent`; press **Enter** to accept, or type another (`http`/`https` are accepted and converted to `ws`/`wss`).
46
+ 2. **设备 Token** — paste the device token copied from the workbench's「如何连接」. Input is **masked** (not echoed). Leave it empty to generate a local device id and a short pairing hint instead.
47
+ 3. **工作区目录 / workspace root** — defaults to the current directory; press **Enter** to accept or type an absolute path.
38
48
 
39
- ysagc-agent --server ws://platform.example.com/agent \
40
- --token <your-device-token> \
41
- --root ~/my-projects
49
+ The answers are saved to `~/.ysagc-agent/config.json` (mode `0600`) so every later run connects **without prompting**:
50
+
51
+ ```bash
52
+ ysagc-agent
42
53
  ```
43
54
 
55
+ `npx ysagc-agent` is the same entry and needs no flags either.
56
+
57
+ > **Non-interactive first run:** if no config exists and stdin is not a terminal (e.g. a CI/piped run), `ysagc-agent` prints
58
+ > `需要在你的终端里运行以完成首次引导(会向你询问地址/Token/工作区)` and exits `1` instead of hanging.
59
+
44
60
  Once connected the agent sends a `hello` frame, waits for `welcome`, then answers
45
61
  `ping`/`tool_call`/`cancel` frames.
46
62
 
@@ -50,19 +66,23 @@ Once connected the agent sends a `hello` frame, waits for `welcome`, then answer
50
66
  npm install
51
67
  npm run build # tsc -> dist/
52
68
  node dist/cli.js --selftest # run the smoke test
53
- node dist/cli.js --server ws://... --token ... --root ~/my-projects
69
+ node dist/cli.js # same interactive boot / auto-connect
54
70
  ```
55
71
 
56
72
  ## Configuration
57
73
 
58
- Settings come from defaults, then environment variables, then CLI flags
59
- (CLI wins). `--token` is **never logged**.
74
+ Settings are resolved in this precedence order:
75
+
76
+ **CLI flags > environment variables > saved config (`~/.ysagc-agent/config.json`) > defaults.**
77
+
78
+ The device token is **never logged** — `describeConfig` omits it and the logger
79
+ masks secret-looking values before they reach stdout/stderr.
60
80
 
61
81
  | CLI flag | Environment | Default | Description |
62
82
  | --------------------- | ------------------ | ----------------- | ---------------------------------------------------- |
63
- | `--server <url>` | `WS_URL` | _(required)_ | Platform WebSocket URL for the agent channel |
64
- | `--token <token>` | `YSAGC_TOKEN` | _(required)_ | Device/agent auth token |
65
- | `--device-id <id>` | `DEVICE_ID` | host+pid | Stable device identifier |
83
+ | `--server <url>` | `WS_URL` | `ws://interface.ysagi.cn/api/workbench/agent` | Platform WebSocket URL (http/https auto-converted to ws/wss) |
84
+ | `--token <token>` | `YSAGC_TOKEN` | _(saved config)_ | Device/agent auth token; **never** defaulted/baked-in |
85
+ | `--device-id <id>` | `DEVICE_ID` | host+pid / generated | Stable device identifier |
66
86
  | `--root <dir>` | `WORKSPACE_ROOT` | cwd | Authorization root (all file ops stay inside it) |
67
87
  | `--mode <mode>` | `PERMISSION_MODE` | `smart` | Permission mode (see below) |
68
88
  | `--web` | `YSAGC_WEB` | off | Enable the local web_search (stub) tool |
@@ -73,6 +93,13 @@ Settings come from defaults, then environment variables, then CLI flags
73
93
  | `-V, --version` | — | — | Print version |
74
94
  | `-h, --help` | — | — | Print usage |
75
95
 
96
+ ### Saved config file
97
+
98
+ The onboarding wizard persists the resolved settings to `~/.ysagc-agent/config.json`
99
+ (mode `0600`, directory created if missing). Override the path with the
100
+ `YSAGC_CONFIG` environment variable. A missing or corrupt file is treated as a
101
+ first run and triggers onboarding again.
102
+
76
103
  ### Permission modes
77
104
 
78
105
  | Mode | Shell behaviour |
@@ -142,10 +169,10 @@ for approval when overwriting), and `delete_file` always requires approval in
142
169
  node dist/cli.js --selftest
143
170
  ```
144
171
 
145
- Runs 46 checks over path safety, danger-command detection, sensitive-path
172
+ Runs 53 checks over path safety, danger-command detection, sensitive-path
146
173
  detection, secret masking, the tool registry, command timeout/process-tree kill,
147
- environment sanitization, and idempotency over a real WebSocket connection.
148
- It prints `PASS`/`FAIL` lines and exits `0`/`1`.
174
+ environment sanitization, config save/load + onboarding path, and idempotency
175
+ over a real WebSocket connection. It prints `PASS`/`FAIL` lines and exits `0`/`1`.
149
176
 
150
177
  ## Protocol
151
178
 
@@ -154,7 +181,7 @@ JSON text frames over a WebSocket.
154
181
  **Client → server**
155
182
 
156
183
  ```jsonc
157
- { "type": "hello", "token": "...", "deviceId": "...", "version": "0.6.0", "platform": "node" }
184
+ { "type": "hello", "token": "...", "deviceId": "...", "version": "0.7.0", "platform": "node" }
158
185
  { "type": "pong", "t": 42 } // reply to a server ping
159
186
  { "type": "tool_result", "jobId": "j1", "ok": true, "result": { }, "durationMs": 12 }
160
187
  { "type": "status", "state": "online" | "busy" | "error", "sessionId": "..." }
package/dist/agent.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { type ClientState } from './protocol';
2
2
  import { type AgentConfig } from './config';
3
3
  /** Kept in sync with package.json. */
4
- export declare const AGENT_VERSION = "0.6.0";
4
+ export declare const AGENT_VERSION = "0.7.0";
5
5
  export interface AgentHandle {
6
6
  stop(): void;
7
7
  }
package/dist/agent.js CHANGED
@@ -12,7 +12,7 @@ const tools_1 = require("./tools");
12
12
  const config_1 = require("./config");
13
13
  const tokens_1 = require("./tokens");
14
14
  /** Kept in sync with package.json. */
15
- exports.AGENT_VERSION = '0.6.0';
15
+ exports.AGENT_VERSION = '0.7.0';
16
16
  const MAX_IDEMPOTENCY_ENTRIES = 512;
17
17
  const RECONNECT_BASE_MS = 1000;
18
18
  const RECONNECT_CAP_MS = 60000;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAeA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8PD;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoSvD"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AA0BA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAgUD;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CA6YvD"}
package/dist/cli.js CHANGED
@@ -42,6 +42,7 @@ const path = __importStar(require("node:path"));
42
42
  const ws_1 = require("ws");
43
43
  const agent_1 = require("./agent");
44
44
  const config_1 = require("./config");
45
+ const onboarding_1 = require("./onboarding");
45
46
  const logger_1 = require("./logger");
46
47
  const path_utils_1 = require("./path-utils");
47
48
  const security_1 = require("./security");
@@ -75,6 +76,23 @@ function toInt(value) {
75
76
  function asStr(value) {
76
77
  return typeof value === 'string' && value.trim() !== '' ? value.trim() : undefined;
77
78
  }
79
+ function env(name) {
80
+ const v = process.env[name];
81
+ return v && v.trim() !== '' ? v.trim() : undefined;
82
+ }
83
+ function envBool(name) {
84
+ const v = env(name);
85
+ if (v === undefined)
86
+ return undefined;
87
+ return /^(1|true|yes|on)$/i.test(v);
88
+ }
89
+ function envInt(name) {
90
+ const v = env(name);
91
+ if (v === undefined)
92
+ return undefined;
93
+ const n = Number(v);
94
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : undefined;
95
+ }
78
96
  function shutdown(handle, signal) {
79
97
  // eslint-disable-next-line no-console
80
98
  console.log(`\n${signal} received; shutting down`);
@@ -87,19 +105,22 @@ async function main() {
87
105
  runAndPrintSelfTest(results);
88
106
  return;
89
107
  }
108
+ // CLI overrides always win over env/saved config.
109
+ const overrides = {
110
+ server: asStr(opts.server),
111
+ token: asStr(opts.token),
112
+ deviceId: asStr(opts.deviceId),
113
+ root: asStr(opts.root),
114
+ mode: asStr(opts.mode),
115
+ preset: asStr(opts.permissionPreset),
116
+ web: opts.web === true ? true : undefined,
117
+ timeoutMs: toInt(opts.timeout),
118
+ maxBytes: toInt(opts.maxBytes),
119
+ logLevel: asStr(opts.logLevel),
120
+ };
90
121
  try {
91
- const config = (0, config_1.loadConfig)({
92
- server: asStr(opts.server),
93
- token: asStr(opts.token),
94
- deviceId: asStr(opts.deviceId),
95
- root: asStr(opts.root),
96
- mode: asStr(opts.mode),
97
- preset: asStr(opts.permissionPreset),
98
- web: opts.web === true ? true : undefined,
99
- timeoutMs: toInt(opts.timeout),
100
- maxBytes: toInt(opts.maxBytes),
101
- logLevel: asStr(opts.logLevel),
102
- });
122
+ const saved = (0, config_1.loadSavedConfig)();
123
+ const config = await resolveConfigForRun(overrides, saved);
103
124
  const log = new logger_1.Logger({ level: config.logLevel, name: 'cli' });
104
125
  log.info('agent config', (0, config_1.describeConfig)(config));
105
126
  const handle = (0, agent_1.startAgent)(config);
@@ -117,6 +138,44 @@ async function main() {
117
138
  throw err;
118
139
  }
119
140
  }
141
+ /**
142
+ * Pick the config for a run: onboard on the first run (no saved config) only
143
+ * when something is missing, otherwise connect with the saved config and let
144
+ * CLI/env overrides win. Never hangs on a non-interactive first run.
145
+ */
146
+ async function resolveConfigForRun(overrides, saved) {
147
+ const serverProvided = overrides.server ?? env('WS_URL');
148
+ const tokenProvided = overrides.token ?? env('YSAGC_TOKEN');
149
+ if (!saved) {
150
+ // First run with no persisted config.
151
+ const needOnboarding = !serverProvided || !tokenProvided;
152
+ if (needOnboarding) {
153
+ if (!(0, onboarding_1.isInteractiveStdin)()) {
154
+ // eslint-disable-next-line no-console
155
+ console.error('\n需要在你的终端里运行以完成首次引导(会向你询问地址/Token/工作区)');
156
+ process.exit(1);
157
+ }
158
+ const config = await (0, onboarding_1.runOnboarding)({
159
+ server: serverProvided,
160
+ token: tokenProvided,
161
+ deviceId: overrides.deviceId ?? env('DEVICE_ID'),
162
+ root: overrides.root ?? env('WORKSPACE_ROOT'),
163
+ mode: overrides.mode ?? env('PERMISSION_MODE'),
164
+ preset: overrides.preset ?? env('YSAGC_PERMISSION_PRESET'),
165
+ web: overrides.web ?? envBool('YSAGC_WEB'),
166
+ timeoutMs: overrides.timeoutMs ?? envInt('YSAGC_TIMEOUT'),
167
+ maxBytes: overrides.maxBytes ?? envInt('YSAGC_MAX_BYTES'),
168
+ logLevel: overrides.logLevel ?? env('YSAGC_LOG_LEVEL'),
169
+ });
170
+ (0, config_1.saveConfig)(config);
171
+ return config;
172
+ }
173
+ // Everything required was supplied via CLI/env; connect without onboarding.
174
+ return (0, config_1.loadConfig)(overrides);
175
+ }
176
+ // A config file exists: load it and let CLI/env overrides win on top.
177
+ return (0, config_1.loadConfig)(overrides, saved);
178
+ }
120
179
  function runAndPrintSelfTest(results) {
121
180
  let failed = 0;
122
181
  for (const r of results) {
@@ -360,6 +419,113 @@ async function runSelfTest() {
360
419
  const masked = (0, security_1.maskSecrets)('Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.sig');
361
420
  return !masked.includes('eyJhbGci') && masked.includes('***');
362
421
  });
422
+ // --- config loading / onboarding path ----------------------------------
423
+ sync('normalizeServerUrl: http -> ws', () => (0, config_1.normalizeServerUrl)('http://example.com/agent') === 'ws://example.com/agent');
424
+ sync('normalizeServerUrl: https -> wss', () => (0, config_1.normalizeServerUrl)('https://example.com/agent') === 'wss://example.com/agent');
425
+ sync('normalizeServerUrl: keeps ws scheme', () => (0, config_1.normalizeServerUrl)('ws://example.com/agent') === 'ws://example.com/agent');
426
+ sync('default server is the customer platform (no secret baked in)', () => config_1.DEFAULT_SERVER === 'ws://interface.ysagi.cn/api/workbench/agent');
427
+ sync('config save/load round-trip never logs the token', () => {
428
+ const prevCfg = process.env.YSAGC_CONFIG;
429
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'ysagc-cfg-'));
430
+ const cfgPath = path.join(tmp, 'config.json');
431
+ process.env.YSAGC_CONFIG = cfgPath;
432
+ try {
433
+ const cfg = {
434
+ server: 'ws://interface.ysagi.cn/api/workbench/agent',
435
+ token: 'super-secret-token-value',
436
+ deviceId: 'device-abc123',
437
+ root: dir,
438
+ mode: 'smart',
439
+ permissionPreset: 'workspace-write',
440
+ web: false,
441
+ timeoutMs: 120000,
442
+ maxBytes: 64000,
443
+ logLevel: 'info',
444
+ platform: 'node',
445
+ };
446
+ (0, config_1.saveConfig)(cfg);
447
+ const loaded = (0, config_1.loadSavedConfig)();
448
+ if (!loaded)
449
+ return false;
450
+ if (loaded.server !== cfg.server)
451
+ return false;
452
+ if (loaded.token !== cfg.token)
453
+ return false; // persisted as-is (required to send)
454
+ if (loaded.deviceId !== cfg.deviceId || loaded.root !== cfg.root)
455
+ return false;
456
+ // describeConfig must never expose the token.
457
+ const desc = (0, config_1.describeConfig)(cfg);
458
+ if ('token' in desc)
459
+ return false;
460
+ if (JSON.stringify(desc).includes('super-secret-token-value'))
461
+ return false;
462
+ return true;
463
+ }
464
+ finally {
465
+ if (prevCfg === undefined)
466
+ delete process.env.YSAGC_CONFIG;
467
+ else
468
+ process.env.YSAGC_CONFIG = prevCfg;
469
+ fs.rmSync(tmp, { recursive: true, force: true });
470
+ }
471
+ });
472
+ sync('loadConfig: CLI overrides saved config, saved fills the rest', () => {
473
+ const cfg = (0, config_1.loadConfig)({ server: 'ws://cli.example.com/agent' }, {
474
+ server: 'ws://saved.example.com/agent',
475
+ token: 'saved-token',
476
+ deviceId: 'saved-device',
477
+ root: dir,
478
+ });
479
+ if (cfg.server !== 'ws://cli.example.com/agent')
480
+ return false; // CLI wins
481
+ if (cfg.token !== 'saved-token')
482
+ return false; // no CLI token -> saved used
483
+ if (cfg.deviceId !== 'saved-device')
484
+ return false;
485
+ if (cfg.root !== dir)
486
+ return false;
487
+ return true;
488
+ });
489
+ sync('loadConfig: no environment ever provides a default token', () => {
490
+ const keys = [
491
+ 'WS_URL',
492
+ 'YSAGC_TOKEN',
493
+ 'DEVICE_ID',
494
+ 'WORKSPACE_ROOT',
495
+ 'PERMISSION_MODE',
496
+ 'YSAGC_PERMISSION_PRESET',
497
+ 'YSAGC_WEB',
498
+ 'YSAGC_TIMEOUT',
499
+ 'YSAGC_MAX_BYTES',
500
+ 'YSAGC_LOG_LEVEL',
501
+ 'YSAGC_CONFIG',
502
+ ];
503
+ const saved = {};
504
+ for (const k of keys) {
505
+ saved[k] = process.env[k];
506
+ delete process.env[k];
507
+ }
508
+ try {
509
+ const cfg = (0, config_1.loadConfig)({});
510
+ if (cfg.server !== config_1.DEFAULT_SERVER)
511
+ return false; // default customer platform
512
+ if (cfg.token !== '')
513
+ return false; // token is never defaulted
514
+ if (!cfg.deviceId)
515
+ return false; // device id always present
516
+ if (!path.isAbsolute(cfg.root))
517
+ return false; // root is absolute
518
+ return true;
519
+ }
520
+ finally {
521
+ for (const k of keys) {
522
+ if (saved[k] === undefined)
523
+ delete process.env[k];
524
+ else
525
+ process.env[k] = saved[k];
526
+ }
527
+ }
528
+ });
363
529
  // --- tools ------------------------------------------------------------
364
530
  const logger = new logger_1.Logger({ level: 'error', name: 'selftest' });
365
531
  const registry = (0, tools_1.createToolRegistry)({
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -41,14 +41,40 @@ export interface ConfigOverrides {
41
41
  export declare class ConfigError extends Error {
42
42
  constructor(message: string);
43
43
  }
44
+ /** Default platform endpoint for a customer-first install (no secrets). */
45
+ export declare const DEFAULT_SERVER = "ws://interface.ysagi.cn/api/workbench/agent";
44
46
  /**
45
- * Resolve an {@link AgentConfig} from defaults, environment variables and CLI
46
- * overrides (in that order of precedence). Environment variables are read from
47
- * WS_URL / YSAGC_TOKEN / DEVICE_ID / WORKSPACE_ROOT / PERMISSION_MODE /
48
- * YSAGC_PERMISSION_PRESET / YSAGC_WEB / YSAGC_TIMEOUT / YSAGC_MAX_BYTES /
49
- * YSAGC_LOG_LEVEL.
47
+ * Normalise a user/CLI web URL to a WebSocket URL. `http:` → `ws:`, `https:` →
48
+ * `wss:`. Already-ws(s) URLs pass through unchanged. An empty value returns ''.
50
49
  */
51
- export declare function loadConfig(overrides?: ConfigOverrides): AgentConfig;
50
+ export declare function normalizeServerUrl(url: string | undefined): string;
51
+ /**
52
+ * Resolve the persisted config file path. `YSAGC_CONFIG` gives an explicit
53
+ * override; otherwise it is `~/.ysagc-agent/config.json`.
54
+ */
55
+ export declare function resolveConfigPath(): string;
56
+ /** Whether a saved config file already exists. */
57
+ export declare function configFileExists(): boolean;
58
+ /**
59
+ * Load a previously-saved config as a partial {@link AgentConfig}. Returns
60
+ * `undefined` when there is no file or when it is unreadable/corrupt (a corrupt
61
+ * file is treated as absent so the first-run onboarding can re-author it).
62
+ * The token is loaded in plaintext (it must be sent on connect) but is always
63
+ * kept out of logs by `describeConfig` / the Logger.
64
+ */
65
+ export declare function loadSavedConfig(): Partial<AgentConfig> | undefined;
66
+ /** Persist a fully-resolved config to the config file (0600, dir created). */
67
+ export declare function saveConfig(config: AgentConfig): void;
68
+ /**
69
+ * Resolve an {@link AgentConfig} from defaults, environment variables, a saved
70
+ * config file snippet and CLI overrides (in that order of precedence). CLI wins
71
+ * over environment, which wins over the saved file, which wins over defaults.
72
+ *
73
+ * Environment variables are read from WS_URL / YSAGC_TOKEN / DEVICE_ID /
74
+ * WORKSPACE_ROOT / PERMISSION_MODE / YSAGC_PERMISSION_PRESET / YSAGC_WEB /
75
+ * YSAGC_TIMEOUT / YSAGC_MAX_BYTES / YSAGC_LOG_LEVEL.
76
+ */
77
+ export declare function loadConfig(overrides?: ConfigOverrides, saved?: Partial<AgentConfig>): AgentConfig;
52
78
  /** Validate the subset of config required to start the agent. Throws a
53
79
  * {@link ConfigError} with a friendly message for missing values. */
54
80
  export declare function validateConfig(config: AgentConfig): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAStF,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,cAAc,CAAC;IACrB,oEAAoE;IACpE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oDAAoD;IACpD,GAAG,EAAE,OAAO,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAwDD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,eAAoB,GAAG,WAAW,CA4BvE;AAiBD;qEACqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAYxD;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc3E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAStF,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,IAAI,EAAE,cAAc,CAAC;IACrB,oEAAoE;IACpE,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oDAAoD;IACpD,GAAG,EAAE,OAAO,CAAC;IACb,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,2EAA2E;AAC3E,eAAO,MAAM,cAAc,gDAAgD,CAAC;AA6E5E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMlE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,CAalE;AAED,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAsBpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,SAAS,GAAE,eAAoB,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAmCrG;AAiBD;qEACqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAYxD;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc3E"}
package/dist/config.js CHANGED
@@ -3,11 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ConfigError = void 0;
6
+ exports.DEFAULT_SERVER = exports.ConfigError = void 0;
7
+ exports.normalizeServerUrl = normalizeServerUrl;
8
+ exports.resolveConfigPath = resolveConfigPath;
9
+ exports.configFileExists = configFileExists;
10
+ exports.loadSavedConfig = loadSavedConfig;
11
+ exports.saveConfig = saveConfig;
7
12
  exports.loadConfig = loadConfig;
8
13
  exports.validateConfig = validateConfig;
9
14
  exports.loggerFromConfig = loggerFromConfig;
10
15
  exports.describeConfig = describeConfig;
16
+ const node_fs_1 = __importDefault(require("node:fs"));
11
17
  const node_path_1 = __importDefault(require("node:path"));
12
18
  const node_os_1 = __importDefault(require("node:os"));
13
19
  const logger_1 = require("./logger");
@@ -24,6 +30,8 @@ class ConfigError extends Error {
24
30
  }
25
31
  }
26
32
  exports.ConfigError = ConfigError;
33
+ /** Default platform endpoint for a customer-first install (no secrets). */
34
+ exports.DEFAULT_SERVER = 'ws://interface.ysagi.cn/api/workbench/agent';
27
35
  const DEFAULT_TIMEOUT_MS = 120000;
28
36
  const DEFAULT_MAX_BYTES = 64000;
29
37
  function readEnv(name) {
@@ -76,29 +84,119 @@ function resolveRoot(raw) {
76
84
  return node_path_1.default.join(node_os_1.default.homedir(), t.slice(2));
77
85
  return node_path_1.default.resolve(t);
78
86
  }
87
+ function resolveBool(override, envStr, saved) {
88
+ if (override !== undefined)
89
+ return override;
90
+ if (envStr !== undefined)
91
+ return truthy(envStr);
92
+ return saved ?? false;
93
+ }
94
+ function resolvePosInt(override, envStr, saved, fallback, name) {
95
+ const raw = override != null ? String(override) : envStr ?? (saved != null ? String(saved) : undefined);
96
+ return parsePosInt(raw, fallback, name);
97
+ }
98
+ /**
99
+ * Normalise a user/CLI web URL to a WebSocket URL. `http:` → `ws:`, `https:` →
100
+ * `wss:`. Already-ws(s) URLs pass through unchanged. An empty value returns ''.
101
+ */
102
+ function normalizeServerUrl(url) {
103
+ if (!url)
104
+ return '';
105
+ const u = url.trim();
106
+ if (/^https:\/\//i.test(u))
107
+ return `wss://${u.slice(8)}`;
108
+ if (/^http:\/\//i.test(u))
109
+ return `ws://${u.slice(7)}`;
110
+ return u;
111
+ }
112
+ /**
113
+ * Resolve the persisted config file path. `YSAGC_CONFIG` gives an explicit
114
+ * override; otherwise it is `~/.ysagc-agent/config.json`.
115
+ */
116
+ function resolveConfigPath() {
117
+ const env = readEnv('YSAGC_CONFIG');
118
+ if (env)
119
+ return node_path_1.default.resolve(env);
120
+ return node_path_1.default.join(node_os_1.default.homedir(), '.ysagc-agent', 'config.json');
121
+ }
122
+ /** Whether a saved config file already exists. */
123
+ function configFileExists() {
124
+ return node_fs_1.default.existsSync(resolveConfigPath());
125
+ }
126
+ /**
127
+ * Load a previously-saved config as a partial {@link AgentConfig}. Returns
128
+ * `undefined` when there is no file or when it is unreadable/corrupt (a corrupt
129
+ * file is treated as absent so the first-run onboarding can re-author it).
130
+ * The token is loaded in plaintext (it must be sent on connect) but is always
131
+ * kept out of logs by `describeConfig` / the Logger.
132
+ */
133
+ function loadSavedConfig() {
134
+ const p = resolveConfigPath();
135
+ if (!node_fs_1.default.existsSync(p))
136
+ return undefined;
137
+ try {
138
+ const raw = node_fs_1.default.readFileSync(p, 'utf8');
139
+ // Strip a UTF-8 BOM if present so editor-written configs still parse.
140
+ const clean = raw.charCodeAt(0) === 0xfeff ? raw.slice(1) : raw;
141
+ const parsed = JSON.parse(clean);
142
+ if (!parsed || typeof parsed !== 'object')
143
+ return undefined;
144
+ return parsed;
145
+ }
146
+ catch {
147
+ return undefined;
148
+ }
149
+ }
150
+ /** Persist a fully-resolved config to the config file (0600, dir created). */
151
+ function saveConfig(config) {
152
+ const p = resolveConfigPath();
153
+ node_fs_1.default.mkdirSync(node_path_1.default.dirname(p), { recursive: true });
154
+ const persisted = {
155
+ server: config.server,
156
+ token: config.token,
157
+ deviceId: config.deviceId,
158
+ root: config.root,
159
+ mode: config.mode,
160
+ permissionPreset: config.permissionPreset,
161
+ web: config.web,
162
+ timeoutMs: config.timeoutMs,
163
+ maxBytes: config.maxBytes,
164
+ logLevel: config.logLevel,
165
+ platform: config.platform,
166
+ };
167
+ node_fs_1.default.writeFileSync(p, `${JSON.stringify(persisted, null, 2)}\n`, { mode: 0o600, encoding: 'utf8' });
168
+ try {
169
+ node_fs_1.default.chmodSync(p, 0o600);
170
+ }
171
+ catch {
172
+ /* best-effort on filesystems without POSIX modes (e.g. Windows) */
173
+ }
174
+ }
79
175
  /**
80
- * Resolve an {@link AgentConfig} from defaults, environment variables and CLI
81
- * overrides (in that order of precedence). Environment variables are read from
82
- * WS_URL / YSAGC_TOKEN / DEVICE_ID / WORKSPACE_ROOT / PERMISSION_MODE /
83
- * YSAGC_PERMISSION_PRESET / YSAGC_WEB / YSAGC_TIMEOUT / YSAGC_MAX_BYTES /
84
- * YSAGC_LOG_LEVEL.
176
+ * Resolve an {@link AgentConfig} from defaults, environment variables, a saved
177
+ * config file snippet and CLI overrides (in that order of precedence). CLI wins
178
+ * over environment, which wins over the saved file, which wins over defaults.
179
+ *
180
+ * Environment variables are read from WS_URL / YSAGC_TOKEN / DEVICE_ID /
181
+ * WORKSPACE_ROOT / PERMISSION_MODE / YSAGC_PERMISSION_PRESET / YSAGC_WEB /
182
+ * YSAGC_TIMEOUT / YSAGC_MAX_BYTES / YSAGC_LOG_LEVEL.
85
183
  */
86
- function loadConfig(overrides = {}) {
87
- const mode = parseMode(overrides.mode ?? readEnv('PERMISSION_MODE'), 'smart');
88
- const preset = parsePreset(overrides.preset ?? readEnv('YSAGC_PERMISSION_PRESET'), 'workspace-write');
184
+ function loadConfig(overrides = {}, saved) {
185
+ const mode = parseMode(overrides.mode ?? readEnv('PERMISSION_MODE') ?? saved?.mode, 'smart');
186
+ const preset = parsePreset(overrides.preset ?? readEnv('YSAGC_PERMISSION_PRESET') ?? saved?.permissionPreset, 'workspace-write');
89
187
  return {
90
- server: overrides.server ?? readEnv('WS_URL') ?? '',
91
- token: overrides.token ?? readEnv('YSAGC_TOKEN') ?? '',
92
- deviceId: overrides.deviceId ??
93
- readEnv('DEVICE_ID') ??
94
- defaultDeviceId(),
95
- root: resolveRoot(overrides.root ?? readEnv('WORKSPACE_ROOT')),
188
+ // A missing server falls back to the customer platform, so a bare install
189
+ // connects by default. The token can never fall back to a baked-in secret.
190
+ server: normalizeServerUrl(overrides.server ?? readEnv('WS_URL') ?? saved?.server ?? exports.DEFAULT_SERVER),
191
+ token: overrides.token ?? readEnv('YSAGC_TOKEN') ?? saved?.token ?? '',
192
+ deviceId: overrides.deviceId ?? readEnv('DEVICE_ID') ?? saved?.deviceId ?? defaultDeviceId(),
193
+ root: resolveRoot(overrides.root ?? readEnv('WORKSPACE_ROOT') ?? saved?.root),
96
194
  mode,
97
195
  permissionPreset: preset,
98
- web: overrides.web ?? truthy(readEnv('YSAGC_WEB')),
99
- timeoutMs: parsePosInt(overrides.timeoutMs != null ? String(overrides.timeoutMs) : readEnv('YSAGC_TIMEOUT'), DEFAULT_TIMEOUT_MS, 'timeout'),
100
- maxBytes: parsePosInt(overrides.maxBytes != null ? String(overrides.maxBytes) : readEnv('YSAGC_MAX_BYTES'), DEFAULT_MAX_BYTES, 'max-bytes'),
101
- logLevel: parseLogLevel(overrides.logLevel ?? readEnv('YSAGC_LOG_LEVEL')),
196
+ web: resolveBool(overrides.web, readEnv('YSAGC_WEB'), saved?.web),
197
+ timeoutMs: resolvePosInt(overrides.timeoutMs, readEnv('YSAGC_TIMEOUT'), saved?.timeoutMs, DEFAULT_TIMEOUT_MS, 'timeout'),
198
+ maxBytes: resolvePosInt(overrides.maxBytes, readEnv('YSAGC_MAX_BYTES'), saved?.maxBytes, DEFAULT_MAX_BYTES, 'max-bytes'),
199
+ logLevel: parseLogLevel(overrides.logLevel ?? readEnv('YSAGC_LOG_LEVEL') ?? saved?.logLevel),
102
200
  platform: 'node',
103
201
  };
104
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,8 +8,10 @@ export { isDangerCommand, isSensitivePath, maskSecrets, MASK, } from './security
8
8
  export type { DangerAssessment, DangerSeverity } from './security';
9
9
  export { createToolRegistry, preExecute, postExecute, walkTree, globToRegex } from './tools';
10
10
  export type { ToolRegistry, ToolContext, ToolResult, ToolOutcome, PreCheckOutcome, PostCheckOutcome, WalkEntry, } from './tools';
11
- export { loadConfig, validateConfig, describeConfig } from './config';
11
+ export { loadConfig, loadSavedConfig, saveConfig, resolveConfigPath, configFileExists, normalizeServerUrl, validateConfig, describeConfig, DEFAULT_SERVER, } from './config';
12
12
  export type { AgentConfig, ConfigOverrides, PermissionMode, PermissionPreset, } from './config';
13
+ export { runOnboarding, isInteractiveStdin, prompt, promptMasked } from './onboarding';
14
+ export type { OnboardingInputs } from './onboarding';
13
15
  export { encodeMessage, decodeMessage, computeIdempotencyKey, stableStringify } from './protocol';
14
16
  export type { ClientMessage, ServerMessage, PlatformMessage, ToolCallMessage, ToolResultMessage, UsageMessage, PingMessage, WelcomeMessage, CancelMessage, HelloMessage, ClientState, } from './protocol';
15
17
  export { countTextTokens, estimateTokens, computeUsage } from './tokens';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,IAAI,GACL,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7F,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACtE,YAAY,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClG,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,IAAI,GACL,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC7F,YAAY,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACvF,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClG,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACzE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,eAAe,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // Public API for ysagc-agent.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Logger = exports.loadSkillRecord = exports.loadSkill = exports.listSkills = exports.shouldUseShell = exports.tokenize = exports.sanitizeEnv = exports.runCommand = exports.computeUsage = exports.estimateTokens = exports.countTextTokens = exports.stableStringify = exports.computeIdempotencyKey = exports.decodeMessage = exports.encodeMessage = exports.describeConfig = exports.validateConfig = exports.loadConfig = exports.globToRegex = exports.walkTree = exports.postExecute = exports.preExecute = exports.createToolRegistry = exports.MASK = exports.maskSecrets = exports.isSensitivePath = exports.isDangerCommand = exports.safeResolve = exports.assertInsideRoot = exports.isWithinRoot = exports.canonicalize = exports.runSelfTest = exports.AGENT_VERSION = exports.startAgent = void 0;
4
+ exports.Logger = exports.loadSkillRecord = exports.loadSkill = exports.listSkills = exports.shouldUseShell = exports.tokenize = exports.sanitizeEnv = exports.runCommand = exports.computeUsage = exports.estimateTokens = exports.countTextTokens = exports.stableStringify = exports.computeIdempotencyKey = exports.decodeMessage = exports.encodeMessage = exports.promptMasked = exports.prompt = exports.isInteractiveStdin = exports.runOnboarding = exports.DEFAULT_SERVER = exports.describeConfig = exports.validateConfig = exports.normalizeServerUrl = exports.configFileExists = exports.resolveConfigPath = exports.saveConfig = exports.loadSavedConfig = exports.loadConfig = exports.globToRegex = exports.walkTree = exports.postExecute = exports.preExecute = exports.createToolRegistry = exports.MASK = exports.maskSecrets = exports.isSensitivePath = exports.isDangerCommand = exports.safeResolve = exports.assertInsideRoot = exports.isWithinRoot = exports.canonicalize = exports.runSelfTest = exports.AGENT_VERSION = exports.startAgent = void 0;
5
5
  var agent_1 = require("./agent");
6
6
  Object.defineProperty(exports, "startAgent", { enumerable: true, get: function () { return agent_1.startAgent; } });
7
7
  Object.defineProperty(exports, "AGENT_VERSION", { enumerable: true, get: function () { return agent_1.AGENT_VERSION; } });
@@ -25,8 +25,19 @@ Object.defineProperty(exports, "walkTree", { enumerable: true, get: function ()
25
25
  Object.defineProperty(exports, "globToRegex", { enumerable: true, get: function () { return tools_1.globToRegex; } });
26
26
  var config_1 = require("./config");
27
27
  Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_1.loadConfig; } });
28
+ Object.defineProperty(exports, "loadSavedConfig", { enumerable: true, get: function () { return config_1.loadSavedConfig; } });
29
+ Object.defineProperty(exports, "saveConfig", { enumerable: true, get: function () { return config_1.saveConfig; } });
30
+ Object.defineProperty(exports, "resolveConfigPath", { enumerable: true, get: function () { return config_1.resolveConfigPath; } });
31
+ Object.defineProperty(exports, "configFileExists", { enumerable: true, get: function () { return config_1.configFileExists; } });
32
+ Object.defineProperty(exports, "normalizeServerUrl", { enumerable: true, get: function () { return config_1.normalizeServerUrl; } });
28
33
  Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_1.validateConfig; } });
29
34
  Object.defineProperty(exports, "describeConfig", { enumerable: true, get: function () { return config_1.describeConfig; } });
35
+ Object.defineProperty(exports, "DEFAULT_SERVER", { enumerable: true, get: function () { return config_1.DEFAULT_SERVER; } });
36
+ var onboarding_1 = require("./onboarding");
37
+ Object.defineProperty(exports, "runOnboarding", { enumerable: true, get: function () { return onboarding_1.runOnboarding; } });
38
+ Object.defineProperty(exports, "isInteractiveStdin", { enumerable: true, get: function () { return onboarding_1.isInteractiveStdin; } });
39
+ Object.defineProperty(exports, "prompt", { enumerable: true, get: function () { return onboarding_1.prompt; } });
40
+ Object.defineProperty(exports, "promptMasked", { enumerable: true, get: function () { return onboarding_1.promptMasked; } });
30
41
  var protocol_1 = require("./protocol");
31
42
  Object.defineProperty(exports, "encodeMessage", { enumerable: true, get: function () { return protocol_1.encodeMessage; } });
32
43
  Object.defineProperty(exports, "decodeMessage", { enumerable: true, get: function () { return protocol_1.decodeMessage; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAE9B,iCAAoD;AAA3C,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAGlC,6BAAoC;AAA3B,kGAAA,WAAW,OAAA;AAGpB,2CAAyF;AAAhF,0GAAA,YAAY,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAGlE,uCAKoB;AAJlB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,uGAAA,WAAW,OAAA;AACX,gGAAA,IAAI,OAAA;AAIN,iCAA6F;AAApF,2GAAA,kBAAkB,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,oGAAA,WAAW,OAAA;AAW3E,mCAAsE;AAA7D,oGAAA,UAAU,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,wGAAA,cAAc,OAAA;AAQnD,uCAAkG;AAAzF,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAAE,2GAAA,eAAe,OAAA;AAe7E,mCAAyE;AAAhE,yGAAA,eAAe,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,sGAAA,YAAY,OAAA;AAGtD,uCAA+E;AAAtE,sGAAA,UAAU,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA;AAG1D,mCAAkE;AAAzD,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAG/C,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAGf,mCAAqC;AACrC,kBAAe,kBAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;AAE9B,iCAAoD;AAA3C,mGAAA,UAAU,OAAA;AAAE,sGAAA,aAAa,OAAA;AAGlC,6BAAoC;AAA3B,kGAAA,WAAW,OAAA;AAGpB,2CAAyF;AAAhF,0GAAA,YAAY,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,yGAAA,WAAW,OAAA;AAGlE,uCAKoB;AAJlB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,uGAAA,WAAW,OAAA;AACX,gGAAA,IAAI,OAAA;AAIN,iCAA6F;AAApF,2GAAA,kBAAkB,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,oGAAA,WAAW,OAAA;AAW3E,mCAUkB;AAThB,oGAAA,UAAU,OAAA;AACV,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AACjB,0GAAA,gBAAgB,OAAA;AAChB,4GAAA,kBAAkB,OAAA;AAClB,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AAShB,2CAAuF;AAA9E,2GAAA,aAAa,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,oGAAA,MAAM,OAAA;AAAE,0GAAA,YAAY,OAAA;AAGhE,uCAAkG;AAAzF,yGAAA,aAAa,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAAE,2GAAA,eAAe,OAAA;AAe7E,mCAAyE;AAAhE,yGAAA,eAAe,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,sGAAA,YAAY,OAAA;AAGtD,uCAA+E;AAAtE,sGAAA,UAAU,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA;AAG1D,mCAAkE;AAAzD,oGAAA,UAAU,OAAA;AAAE,mGAAA,SAAS,OAAA;AAAE,yGAAA,eAAe,OAAA;AAG/C,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAGf,mCAAqC;AACrC,kBAAe,kBAAU,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { type AgentConfig } from './config';
2
+ /** Values that can be pre-seeded into onboarding (from CLI/env overrides). */
3
+ export interface OnboardingInputs {
4
+ server?: string;
5
+ token?: string;
6
+ deviceId?: string;
7
+ root?: string;
8
+ mode?: string;
9
+ preset?: string;
10
+ web?: boolean;
11
+ timeoutMs?: number;
12
+ maxBytes?: number;
13
+ logLevel?: string;
14
+ }
15
+ /** Whether stdin is an interactive terminal (used to avoid hanging in piped runs). */
16
+ export declare function isInteractiveStdin(): boolean;
17
+ /** A fresh, stable device identifier used for pairing with the platform. */
18
+ export declare function generateDeviceId(): string;
19
+ /** A fresh device token value sent in the hello frame. */
20
+ export declare function generateDeviceToken(): string;
21
+ /** Prompt with an echoed line for interactive terminals. */
22
+ export declare function prompt(question: string, opts?: {
23
+ default?: string;
24
+ }): Promise<string>;
25
+ /**
26
+ * Prompt for a secret WITHOUT echoing (masks each typed character as `*`).
27
+ * Uses raw-mode keypress handling — no external dependency.
28
+ */
29
+ export declare function promptMasked(question: string): Promise<string>;
30
+ /**
31
+ * Interactive first-run onboarding. Prompts for the platform address (server),
32
+ * the device token (masked) and the workspace root, then returns a fully
33
+ * resolved {@link AgentConfig}. Any value present in {@link inputs} (from CLI /
34
+ * env) is used as-is and its prompt is skipped; an empty device token falls back
35
+ * to a freshly-generated device id + token with a short pairing hint.
36
+ */
37
+ export declare function runOnboarding(inputs?: OnboardingInputs): Promise<AgentConfig>;
38
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../src/onboarding.ts"],"names":[],"mappings":"AAMA,OAAO,EAA+D,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzG,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,4EAA4E;AAC5E,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,0DAA0D;AAC1D,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,4DAA4D;AAC5D,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9B,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD9D;AAuBD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,MAAM,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkDvF"}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.isInteractiveStdin = isInteractiveStdin;
40
+ exports.generateDeviceId = generateDeviceId;
41
+ exports.generateDeviceToken = generateDeviceToken;
42
+ exports.prompt = prompt;
43
+ exports.promptMasked = promptMasked;
44
+ exports.runOnboarding = runOnboarding;
45
+ const node_fs_1 = __importDefault(require("node:fs"));
46
+ const node_path_1 = __importDefault(require("node:path"));
47
+ const node_os_1 = __importDefault(require("node:os"));
48
+ const node_crypto_1 = __importDefault(require("node:crypto"));
49
+ const readline = __importStar(require("node:readline"));
50
+ const readlinePromises = __importStar(require("node:readline/promises"));
51
+ const config_1 = require("./config");
52
+ /** Whether stdin is an interactive terminal (used to avoid hanging in piped runs). */
53
+ function isInteractiveStdin() {
54
+ return process.stdin.isTTY === true;
55
+ }
56
+ /** A fresh, stable device identifier used for pairing with the platform. */
57
+ function generateDeviceId() {
58
+ return `device-${node_crypto_1.default.randomBytes(6).toString('hex')}`;
59
+ }
60
+ /** A fresh device token value sent in the hello frame. */
61
+ function generateDeviceToken() {
62
+ return node_crypto_1.default.randomBytes(18).toString('hex');
63
+ }
64
+ /** Prompt with an echoed line for interactive terminals. */
65
+ async function prompt(question, opts = {}) {
66
+ const rl = readlinePromises.createInterface({
67
+ input: process.stdin,
68
+ output: process.stdout,
69
+ });
70
+ try {
71
+ const label = opts.default !== undefined ? `${question} [${opts.default}]: ` : `${question}: `;
72
+ const answer = await rl.question(label);
73
+ return answer.trim();
74
+ }
75
+ finally {
76
+ rl.close();
77
+ }
78
+ }
79
+ /**
80
+ * Prompt for a secret WITHOUT echoing (masks each typed character as `*`).
81
+ * Uses raw-mode keypress handling — no external dependency.
82
+ */
83
+ function promptMasked(question) {
84
+ const input = process.stdin;
85
+ const output = process.stdout;
86
+ return new Promise((resolve) => {
87
+ if (input.isTTY !== true) {
88
+ // Not a TTY: never hang. Return empty so onboarding can derive a token.
89
+ output.write(`${question}\n`);
90
+ resolve('');
91
+ return;
92
+ }
93
+ readline.emitKeypressEvents(input);
94
+ const setRaw = input.setRawMode;
95
+ if (typeof setRaw === 'function')
96
+ setRaw.call(input, true);
97
+ input.resume();
98
+ let value = '';
99
+ let done = false;
100
+ const finish = () => {
101
+ if (done)
102
+ return;
103
+ done = true;
104
+ input.removeListener('keypress', onKeypress);
105
+ if (typeof setRaw === 'function')
106
+ setRaw.call(input, false);
107
+ output.write('\n');
108
+ resolve(value);
109
+ };
110
+ const onKeypress = (str, key) => {
111
+ if (key) {
112
+ if (key.name === 'return' || key.name === 'enter') {
113
+ finish();
114
+ return;
115
+ }
116
+ if (key.name === 'backspace') {
117
+ if (value.length > 0) {
118
+ value = value.slice(0, -1);
119
+ output.write('\b \b');
120
+ }
121
+ return;
122
+ }
123
+ if (key.ctrl && (key.name === 'c' || key.name === 'd')) {
124
+ finish();
125
+ return;
126
+ }
127
+ }
128
+ if (str && (!key || (!key.ctrl && !key.meta))) {
129
+ value += str;
130
+ output.write('*');
131
+ }
132
+ };
133
+ input.on('keypress', onKeypress);
134
+ output.write(question);
135
+ });
136
+ }
137
+ /** Resolve a root path, creating it if missing and rejecting non-directories. */
138
+ function resolveAndValidateRoot(raw) {
139
+ const t = (raw ?? '').trim();
140
+ let abs;
141
+ if (!t)
142
+ abs = process.cwd();
143
+ else if (t === '~')
144
+ abs = node_os_1.default.homedir();
145
+ else if (t.startsWith('~/') || t.startsWith('~\\'))
146
+ abs = node_path_1.default.join(node_os_1.default.homedir(), t.slice(2));
147
+ else
148
+ abs = node_path_1.default.resolve(t);
149
+ try {
150
+ if (!node_fs_1.default.existsSync(abs))
151
+ node_fs_1.default.mkdirSync(abs, { recursive: true });
152
+ }
153
+ catch (err) {
154
+ throw new config_1.ConfigError(`无法创建工作区目录 ${abs}${err instanceof Error ? ` (${err.message})` : ''}`);
155
+ }
156
+ if (!node_fs_1.default.statSync(abs).isDirectory()) {
157
+ throw new config_1.ConfigError(`工作区路径不是目录: ${abs}`);
158
+ }
159
+ return abs;
160
+ }
161
+ /**
162
+ * Interactive first-run onboarding. Prompts for the platform address (server),
163
+ * the device token (masked) and the workspace root, then returns a fully
164
+ * resolved {@link AgentConfig}. Any value present in {@link inputs} (from CLI /
165
+ * env) is used as-is and its prompt is skipped; an empty device token falls back
166
+ * to a freshly-generated device id + token with a short pairing hint.
167
+ */
168
+ async function runOnboarding(inputs = {}) {
169
+ const out = process.stdout;
170
+ // 1) Platform address (server URL) — http(s) normalised to ws(s).
171
+ let server;
172
+ if (inputs.server && inputs.server.trim() !== '') {
173
+ server = (0, config_1.normalizeServerUrl)(inputs.server);
174
+ out.write(`\n平台地址: ${server}\n`);
175
+ }
176
+ else {
177
+ const raw = await prompt('平台地址', { default: config_1.DEFAULT_SERVER });
178
+ server = (0, config_1.normalizeServerUrl)(raw || config_1.DEFAULT_SERVER);
179
+ }
180
+ // 2) Device token — masked. Empty => derive a fresh device id + token.
181
+ let token = (inputs.token ?? '').trim();
182
+ let deviceId = (inputs.deviceId ?? '').trim() || undefined;
183
+ if (!token) {
184
+ out.write('\n从工作台的『如何连接』复制你的设备 Token 粘贴到这里\n');
185
+ token = await promptMasked('设备 Token(留空则以本机设备 ID 配对): ');
186
+ if (!token) {
187
+ deviceId = deviceId ?? generateDeviceId();
188
+ token = generateDeviceToken();
189
+ out.write('\n未提供设备 Token。');
190
+ out.write(`已生成本机设备 ID: ${deviceId}\n`);
191
+ out.write('请到平台工作台的『设备』页绑定该设备 ID(并复制 Token 填入)后重试。\n');
192
+ }
193
+ }
194
+ if (!deviceId)
195
+ deviceId = generateDeviceId();
196
+ // 3) Workspace root — default cwd, validated (created if missing).
197
+ let root;
198
+ if (inputs.root && inputs.root.trim() !== '') {
199
+ root = resolveAndValidateRoot(inputs.root);
200
+ }
201
+ else {
202
+ const raw = await prompt('工作区目录', { default: process.cwd() });
203
+ root = resolveAndValidateRoot(raw || process.cwd());
204
+ }
205
+ return (0, config_1.loadConfig)({
206
+ server,
207
+ token,
208
+ deviceId,
209
+ root,
210
+ mode: inputs.mode,
211
+ preset: inputs.preset,
212
+ web: inputs.web,
213
+ timeoutMs: inputs.timeoutMs,
214
+ maxBytes: inputs.maxBytes,
215
+ logLevel: inputs.logLevel,
216
+ });
217
+ }
218
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../src/onboarding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ysagc-agent",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Local execution agent for ysagc: a state-agnostic, safety-bounded worker that connects to a platform backend over WebSocket, executes tool instructions inside an authorization root, and reports results back.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",