@snutils/snu 0.1.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.
Files changed (67) hide show
  1. package/README.md +156 -0
  2. package/bin/snu.js +8 -0
  3. package/dist/cli/format.d.ts +14 -0
  4. package/dist/cli/format.d.ts.map +1 -0
  5. package/dist/cli/format.js +231 -0
  6. package/dist/cli/format.js.map +1 -0
  7. package/dist/cli/index.d.ts +4 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +296 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/stdin.d.ts +14 -0
  12. package/dist/cli/stdin.d.ts.map +1 -0
  13. package/dist/cli/stdin.js +75 -0
  14. package/dist/cli/stdin.js.map +1 -0
  15. package/dist/client.d.ts +43 -0
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +350 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/index.d.ts +7 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +28 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/mcp/index.d.ts +4 -0
  24. package/dist/mcp/index.d.ts.map +1 -0
  25. package/dist/mcp/index.js +185 -0
  26. package/dist/mcp/index.js.map +1 -0
  27. package/dist/registry.d.ts +5 -0
  28. package/dist/registry.d.ts.map +1 -0
  29. package/dist/registry.js +527 -0
  30. package/dist/registry.js.map +1 -0
  31. package/dist/server/canonical.d.ts +10 -0
  32. package/dist/server/canonical.d.ts.map +1 -0
  33. package/dist/server/canonical.js +72 -0
  34. package/dist/server/canonical.js.map +1 -0
  35. package/dist/server/config.d.ts +9 -0
  36. package/dist/server/config.d.ts.map +1 -0
  37. package/dist/server/config.js +117 -0
  38. package/dist/server/config.js.map +1 -0
  39. package/dist/server/dispatcher.d.ts +32 -0
  40. package/dist/server/dispatcher.d.ts.map +1 -0
  41. package/dist/server/dispatcher.js +631 -0
  42. package/dist/server/dispatcher.js.map +1 -0
  43. package/dist/server/httpBridge.d.ts +20 -0
  44. package/dist/server/httpBridge.d.ts.map +1 -0
  45. package/dist/server/httpBridge.js +219 -0
  46. package/dist/server/httpBridge.js.map +1 -0
  47. package/dist/server/pendingRegistry.d.ts +26 -0
  48. package/dist/server/pendingRegistry.d.ts.map +1 -0
  49. package/dist/server/pendingRegistry.js +76 -0
  50. package/dist/server/pendingRegistry.js.map +1 -0
  51. package/dist/server/policy.d.ts +18 -0
  52. package/dist/server/policy.d.ts.map +1 -0
  53. package/dist/server/policy.js +53 -0
  54. package/dist/server/policy.js.map +1 -0
  55. package/dist/server/standalone.d.ts +24 -0
  56. package/dist/server/standalone.d.ts.map +1 -0
  57. package/dist/server/standalone.js +152 -0
  58. package/dist/server/standalone.js.map +1 -0
  59. package/dist/server/wsBridge.d.ts +45 -0
  60. package/dist/server/wsBridge.d.ts.map +1 -0
  61. package/dist/server/wsBridge.js +321 -0
  62. package/dist/server/wsBridge.js.map +1 -0
  63. package/dist/types.d.ts +123 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/types.js +6 -0
  66. package/dist/types.js.map +1 -0
  67. package/package.json +51 -0
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION = void 0;
4
+ exports.printHelp = printHelp;
5
+ exports.runCli = runCli;
6
+ const util_1 = require("util");
7
+ const registry_js_1 = require("../registry.js");
8
+ const client_js_1 = require("../client.js");
9
+ const stdin_js_1 = require("./stdin.js");
10
+ const format_js_1 = require("./format.js");
11
+ const index_js_1 = require("../mcp/index.js");
12
+ const standalone_js_1 = require("../server/standalone.js");
13
+ exports.VERSION = '0.1.0';
14
+ function printHelp() {
15
+ console.log(`
16
+ \x1b[1mSN Utils CLI (snu)\x1b[0m — Unified CLI and MCP Bridge for ServiceNow
17
+
18
+ \x1b[1mUSAGE:\x1b[0m
19
+ snu <command> [arguments...] [options...]
20
+ snu --mcp Start Model Context Protocol (MCP) server on stdio
21
+ snu serve [--port <p>] [--ws <p>] Start persistent standalone bridge daemon
22
+
23
+ \x1b[1mCORE COMMANDS:\x1b[0m
24
+ context Show active connection, helper tab, and instance roster
25
+ search <term> Fast GraphQL code search across script tables (Pro)
26
+ schema <table> Inspect table columns, types, references, and choices
27
+ query <table> [query] Query records with encoded query and field projections
28
+ run [script] Execute server-side Background Script and capture output
29
+
30
+ \x1b[1mRECORD & ARTIFACT COMMANDS:\x1b[0m
31
+ record get <table> <sys_id> Fetch a record by sys_id
32
+ record update <table> <sys_id> <f> Update a record field (--value <v>, --file <p>, or stdin)
33
+ record delete <table> <sys_id> Delete a record (--confirm or --dry-run)
34
+ artifact create <table> <name> Create a scriptable artifact (Script Include, etc.)
35
+
36
+ \x1b[1mBROWSER COMMANDS:\x1b[0m
37
+ browser form Read live form table, sys_id, and fields via g_form
38
+ browser set <field> <value> Set live form field value via g_form.setValue
39
+ browser action <action> Trigger form UI action (e.g. save, sysverb_update)
40
+ browser nav <url> Navigate connected tab to URL and wait for load
41
+ screenshot Capture viewport screenshot of active tab
42
+
43
+ \x1b[1mGLOBAL OPTIONS:\x1b[0m
44
+ -j, --json Output strict JSON on stdout for scripting/agents
45
+ -i, --instance <name> Target specific instance folder
46
+ --port-file <path> Explicit path to sn-agent-port.json
47
+ -h, --help Show help
48
+ -v, --version Show version
49
+ `);
50
+ }
51
+ async function runCli(argv = process.argv.slice(2)) {
52
+ // Check for MCP server trigger first
53
+ if (argv.includes('--mcp')) {
54
+ await (0, index_js_1.startMcpServer)();
55
+ return;
56
+ }
57
+ if (argv.includes('-h') || argv.includes('--help') || argv.length === 0) {
58
+ printHelp();
59
+ return;
60
+ }
61
+ if (argv.includes('-v') || argv.includes('--version')) {
62
+ console.log(`snu v${exports.VERSION}`);
63
+ return;
64
+ }
65
+ let isJsonMode = argv.includes('-j') || argv.includes('--json');
66
+ let instance;
67
+ let portFile;
68
+ // Extract global options and identify the command tokens
69
+ const nonGlobalTokens = [];
70
+ for (let i = 0; i < argv.length; i++) {
71
+ const arg = argv[i];
72
+ if (arg === '-j' || arg === '--json') {
73
+ isJsonMode = true;
74
+ }
75
+ else if (arg === '-i' || arg === '--instance') {
76
+ instance = argv[++i];
77
+ }
78
+ else if (arg.startsWith('--instance=')) {
79
+ instance = arg.slice('--instance='.length);
80
+ }
81
+ else if (arg === '--port-file') {
82
+ portFile = argv[++i];
83
+ }
84
+ else if (arg.startsWith('--port-file=')) {
85
+ portFile = arg.slice('--port-file='.length);
86
+ }
87
+ else {
88
+ nonGlobalTokens.push(arg);
89
+ }
90
+ }
91
+ if (nonGlobalTokens.length === 0) {
92
+ printHelp();
93
+ return;
94
+ }
95
+ // Handle standalone daemon command: snu serve
96
+ if (nonGlobalTokens[0] === 'serve') {
97
+ const standalone = new standalone_js_1.StandaloneBridge({
98
+ cwd: process.cwd(),
99
+ onYield: () => {
100
+ console.log('\n[snu] VS Code requested port handover. Standalone bridge yielded ports.');
101
+ process.exit(0);
102
+ },
103
+ });
104
+ try {
105
+ const { httpPort, wsPort } = await standalone.start();
106
+ console.log(`\n\x1b[1m\x1b[32m[snu] Standalone Bridge Active\x1b[0m`);
107
+ console.log(` • HTTP API: http://127.0.0.1:${httpPort}/api`);
108
+ console.log(` • WebSocket: ws://127.0.0.1:${wsPort} (connect via SN Utils helper tab)`);
109
+ console.log(`\n\x1b[90mRunning standalone. Press Ctrl+C to stop.\x1b[0m\n`);
110
+ }
111
+ catch (err) {
112
+ (0, format_js_1.outputError)(err, false);
113
+ process.exit(1);
114
+ }
115
+ return;
116
+ }
117
+ try {
118
+ // 1. Check for 2-word command matches (e.g. "record get", "artifact create", "browser form")
119
+ let tool = nonGlobalTokens.length >= 2 ? (0, registry_js_1.getToolByCliCommand)(`${nonGlobalTokens[0]} ${nonGlobalTokens[1]}`) : undefined;
120
+ let commandArgOffset = tool ? 2 : 1;
121
+ // 2. If not matched, check 1-word command matches (e.g. "search", "query", "schema", "context")
122
+ if (!tool) {
123
+ tool = (0, registry_js_1.getToolByCliCommand)(nonGlobalTokens[0]);
124
+ }
125
+ if (!tool) {
126
+ throw new client_js_1.ScriptSyncClientError(`Unknown command: ${nonGlobalTokens.join(' ')}. Run 'snu --help' for usage.`, 'E_UNKNOWN_COMMAND');
127
+ }
128
+ const commandArgs = nonGlobalTokens.slice(commandArgOffset);
129
+ // Prepare parseArgs options schema from tool definition
130
+ const optionsConfig = {
131
+ json: { type: 'boolean', short: 'j' },
132
+ instance: { type: 'string', short: 'i' },
133
+ 'port-file': { type: 'string' },
134
+ };
135
+ if (tool.cliOptions) {
136
+ for (const [optName, optDef] of Object.entries(tool.cliOptions)) {
137
+ optionsConfig[optName] = {
138
+ type: optDef.type,
139
+ short: optDef.short,
140
+ };
141
+ }
142
+ }
143
+ const parsed = (0, util_1.parseArgs)({
144
+ args: commandArgs,
145
+ options: optionsConfig,
146
+ allowPositionals: true,
147
+ strict: false,
148
+ });
149
+ const positionals = parsed.positionals;
150
+ const values = parsed.values;
151
+ const inputData = {
152
+ instance: instance || values.instance,
153
+ ...values,
154
+ };
155
+ // Subcommand-specific positional argument mapping & validation
156
+ switch (tool.cliCommand) {
157
+ case 'context':
158
+ break;
159
+ case 'search':
160
+ if (!positionals[0])
161
+ throw new client_js_1.ScriptSyncClientError('Missing required search term: snu search <term>', 'E_INVALID_PARAMS');
162
+ inputData.term = positionals.join(' ');
163
+ break;
164
+ case 'schema':
165
+ if (!positionals[0])
166
+ throw new client_js_1.ScriptSyncClientError('Missing required table: snu schema <table>', 'E_INVALID_PARAMS');
167
+ inputData.table = positionals[0];
168
+ break;
169
+ case 'query':
170
+ if (!positionals[0])
171
+ throw new client_js_1.ScriptSyncClientError('Missing required table: snu query <table> [query]', 'E_INVALID_PARAMS');
172
+ inputData.table = positionals[0];
173
+ inputData.query = positionals.slice(1).join(' ') || values.query;
174
+ break;
175
+ case 'record get':
176
+ if (!positionals[0] || !positionals[1]) {
177
+ throw new client_js_1.ScriptSyncClientError('Usage: snu record get <table> <sys_id>', 'E_INVALID_PARAMS');
178
+ }
179
+ inputData.table = positionals[0];
180
+ inputData.sys_id = positionals[1];
181
+ break;
182
+ case 'artifact create':
183
+ if (!positionals[0] || !positionals[1]) {
184
+ throw new client_js_1.ScriptSyncClientError('Usage: snu artifact create <table> <name>', 'E_INVALID_PARAMS');
185
+ }
186
+ inputData.table = positionals[0];
187
+ inputData.name = positionals[1];
188
+ break;
189
+ case 'record update':
190
+ if (positionals.length < 2) {
191
+ throw new client_js_1.ScriptSyncClientError('Usage: snu record update <table> <sys_id> <field> (--value <v> | --file <path> | stdin)', 'E_INVALID_PARAMS');
192
+ }
193
+ inputData.table = positionals[0];
194
+ inputData.sys_id = positionals[1];
195
+ // If 3rd positional is given (e.g. "short_description" or "short_description=foo")
196
+ if (positionals[2]) {
197
+ const rawFieldToken = positionals[2];
198
+ if (rawFieldToken.includes('=') && values.value === undefined && values.file === undefined) {
199
+ const eqIdx = rawFieldToken.indexOf('=');
200
+ inputData.field = rawFieldToken.slice(0, eqIdx);
201
+ inputData.content = rawFieldToken.slice(eqIdx + 1);
202
+ }
203
+ else {
204
+ inputData.field = rawFieldToken;
205
+ }
206
+ }
207
+ if (inputData.content === undefined) {
208
+ inputData.content = await (0, stdin_js_1.resolveContentInput)({
209
+ value: values.value,
210
+ filePath: values.file,
211
+ });
212
+ }
213
+ if (!inputData.field) {
214
+ throw new client_js_1.ScriptSyncClientError('Missing field name to update', 'E_INVALID_PARAMS');
215
+ }
216
+ if (inputData.content === undefined) {
217
+ throw new client_js_1.ScriptSyncClientError('Missing new field content: provide --value <v>, --file <path>, or pipe via stdin', 'E_INVALID_PARAMS');
218
+ }
219
+ break;
220
+ case 'record delete':
221
+ if (!positionals[0] || !positionals[1]) {
222
+ throw new client_js_1.ScriptSyncClientError('Usage: snu record delete <table> <sys_id> [--confirm] [--dry-run]', 'E_INVALID_PARAMS');
223
+ }
224
+ inputData.table = positionals[0];
225
+ inputData.sys_id = positionals[1];
226
+ break;
227
+ case 'run':
228
+ const positionalScript = positionals.length > 0 ? positionals.join(' ') : undefined;
229
+ inputData.script = await (0, stdin_js_1.resolveContentInput)({
230
+ value: positionalScript,
231
+ filePath: values.file,
232
+ });
233
+ if (!inputData.script) {
234
+ throw new client_js_1.ScriptSyncClientError('Usage: snu run [script] [--file <path>] or pipe via stdin', 'E_INVALID_PARAMS');
235
+ }
236
+ break;
237
+ case 'browser form':
238
+ if (values.fields) {
239
+ inputData.fields = String(values.fields).split(',').map((f) => f.trim()).filter(Boolean);
240
+ }
241
+ break;
242
+ case 'browser set':
243
+ if (!positionals[0] || positionals[1] === undefined) {
244
+ throw new client_js_1.ScriptSyncClientError('Usage: snu browser set <field> <value>', 'E_INVALID_PARAMS');
245
+ }
246
+ inputData.field = positionals[0];
247
+ inputData.value = positionals.slice(1).join(' ');
248
+ break;
249
+ case 'browser action':
250
+ if (!positionals[0]) {
251
+ throw new client_js_1.ScriptSyncClientError('Usage: snu browser action <action>', 'E_INVALID_PARAMS');
252
+ }
253
+ inputData.uiAction = positionals[0];
254
+ break;
255
+ case 'browser nav':
256
+ if (!positionals[0]) {
257
+ throw new client_js_1.ScriptSyncClientError('Usage: snu browser nav <url>', 'E_INVALID_PARAMS');
258
+ }
259
+ inputData.url = positionals[0];
260
+ break;
261
+ case 'screenshot':
262
+ if (values.url)
263
+ inputData.url = values.url;
264
+ if (values.tab)
265
+ inputData.tabId = parseInt(String(values.tab), 10);
266
+ if (!inputData.url && inputData.tabId === undefined) {
267
+ // If neither provided, default to matching ServiceNow tab
268
+ inputData.url = 'https://*.service-now.com/*';
269
+ }
270
+ break;
271
+ }
272
+ // Execute through Client
273
+ const client = new client_js_1.ScriptSyncClient({ portFile, cwd: process.cwd() });
274
+ let result;
275
+ if (tool.agentCommand === 'get_context') {
276
+ result = await client.getContext(inputData.instance);
277
+ }
278
+ else {
279
+ const mapped = tool.mapInput(inputData);
280
+ const resp = await client.execute(mapped);
281
+ result = resp.result;
282
+ }
283
+ // Output Result
284
+ if (isJsonMode) {
285
+ (0, format_js_1.outputJson)(result);
286
+ }
287
+ else {
288
+ process.stdout.write((0, format_js_1.formatHumanOutput)(tool.agentCommand, result));
289
+ }
290
+ }
291
+ catch (err) {
292
+ (0, format_js_1.outputError)(err, isJsonMode);
293
+ process.exit(1);
294
+ }
295
+ }
296
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Read all text from process.stdin asynchronously.
3
+ */
4
+ export declare function readStdin(): Promise<string>;
5
+ /**
6
+ * Resolve content from either direct string, local file path, or stdin.
7
+ * Strictly rejects conflicting sources (e.g. both value and file provided).
8
+ */
9
+ export declare function resolveContentInput(options: {
10
+ value?: string;
11
+ filePath?: string;
12
+ allowStdin?: boolean;
13
+ }): Promise<string | undefined>;
14
+ //# sourceMappingURL=stdin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.d.ts","sourceRoot":"","sources":["../../src/cli/stdin.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAOjD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwB9B"}
@@ -0,0 +1,75 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.readStdin = readStdin;
37
+ exports.resolveContentInput = resolveContentInput;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ /**
41
+ * Read all text from process.stdin asynchronously.
42
+ */
43
+ async function readStdin() {
44
+ const chunks = [];
45
+ return new Promise((resolve, reject) => {
46
+ process.stdin.on('data', (chunk) => chunks.push(Buffer.from(chunk)));
47
+ process.stdin.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
48
+ process.stdin.on('error', reject);
49
+ });
50
+ }
51
+ /**
52
+ * Resolve content from either direct string, local file path, or stdin.
53
+ * Strictly rejects conflicting sources (e.g. both value and file provided).
54
+ */
55
+ async function resolveContentInput(options) {
56
+ const { value, filePath, allowStdin = true } = options;
57
+ if (value !== undefined && filePath !== undefined) {
58
+ throw new Error('Conflicting arguments: provide either a direct value or --file <path>, not both.');
59
+ }
60
+ if (value !== undefined) {
61
+ return value;
62
+ }
63
+ if (filePath !== undefined) {
64
+ const resolved = path.resolve(process.cwd(), filePath);
65
+ if (!fs.existsSync(resolved)) {
66
+ throw new Error(`File not found: ${resolved}`);
67
+ }
68
+ return fs.readFileSync(resolved, 'utf8');
69
+ }
70
+ if (allowStdin && !process.stdin.isTTY) {
71
+ return await readStdin();
72
+ }
73
+ return undefined;
74
+ }
75
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../../src/cli/stdin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,8BAOC;AAMD,kDA4BC;AA/CD,uCAAyB;AACzB,2CAA6B;AAE7B;;GAEG;AACI,KAAK,UAAU,SAAS;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CAAC,OAIzC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvD,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;IACtG,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { AgentResponse, DiscoveryOptions, DiscoveryResult, HealthResponse, MappedCommand } from './types.js';
2
+ export declare const MIN_API_VERSION = 7;
3
+ export declare const DEFAULT_COMMAND_TIMEOUT_MS = 70000;
4
+ export declare const REVIEWED_COMMAND_TIMEOUT_MS = 310000;
5
+ export declare const HEALTH_CHECK_TIMEOUT_MS = 1500;
6
+ export declare class ScriptSyncClientError extends Error {
7
+ code?: string | undefined;
8
+ status?: number | undefined;
9
+ details?: any | undefined;
10
+ constructor(message: string, code?: string | undefined, status?: number | undefined, details?: any | undefined);
11
+ }
12
+ /**
13
+ * Global port file path (~/.sn-scriptsync/agent-port.json).
14
+ * Written when a Pro/Trial/Enterprise license is connected in the browser.
15
+ */
16
+ export declare function getGlobalPortFilePath(): string;
17
+ /**
18
+ * Walk up directory tree from startDir looking for .vscode/sn-agent-port.json.
19
+ */
20
+ export declare function findWorkspacePortFile(startDir: string): string | undefined;
21
+ /**
22
+ * Discover the active ScriptSync bridge port and token using deterministic precedence.
23
+ */
24
+ export declare function discoverBridge(options?: DiscoveryOptions): Promise<DiscoveryResult>;
25
+ /**
26
+ * Probe GET /api/health with a short timeout.
27
+ */
28
+ export declare function checkHealth(port: number, expectedPid?: number): Promise<HealthResponse>;
29
+ /**
30
+ * ScriptSync Client for sending typed commands to the bridge.
31
+ */
32
+ export declare class ScriptSyncClient {
33
+ private options?;
34
+ private discoveryResult?;
35
+ constructor(options?: DiscoveryOptions | undefined);
36
+ getDiscovery(): Promise<DiscoveryResult>;
37
+ execute<T = any>(mapped: MappedCommand, timeoutMs?: number): Promise<AgentResponse<T>>;
38
+ /**
39
+ * Composite context fetcher for `snu context` / `snu_get_context`
40
+ */
41
+ getContext(instance?: string): Promise<Record<string, any>>;
42
+ }
43
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,aAAa,EAEb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD,eAAO,MAAM,2BAA2B,SAAU,CAAC;AACnD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C,qBAAa,qBAAsB,SAAQ,KAAK;IAGrC,IAAI,CAAC,EAAE,MAAM;IACb,MAAM,CAAC,EAAE,MAAM;IACf,OAAO,CAAC,EAAE,GAAG;gBAHpB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,OAAO,CAAC,EAAE,GAAG,YAAA;CAKvB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+C7F;AAiDD;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoC7F;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAGf,OAAO,CAAC,OAAO,CAAC;IAF5B,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAEtB,OAAO,CAAC,EAAE,gBAAgB,YAAA;IAExC,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAOxC,OAAO,CAAC,CAAC,GAAG,GAAG,EACnB,MAAM,EAAE,aAAa,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAsF5B;;OAEG;IACG,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CA2DlE"}