@corenel/tools-node 0.8.2 → 0.9.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/dist/deviceLogin.d.ts +20 -1
- package/dist/deviceLogin.d.ts.map +1 -1
- package/dist/deviceLogin.js +17 -1
- package/dist/deviceLogin.js.map +1 -1
- package/dist/promptHost.d.ts +8 -0
- package/dist/promptHost.d.ts.map +1 -1
- package/dist/promptHost.js +11 -7
- package/dist/promptHost.js.map +1 -1
- package/package.json +3 -3
package/dist/deviceLogin.d.ts
CHANGED
|
@@ -16,7 +16,8 @@ export interface DeviceLoginOpts {
|
|
|
16
16
|
* behaviour every install has today.
|
|
17
17
|
*/
|
|
18
18
|
store: (token: string, account?: string) => Promise<void>;
|
|
19
|
-
/** Tell the user where
|
|
19
|
+
/** Tell the user where to go (the link already carries the code) and the
|
|
20
|
+
* code to check. Defaults to stdout. */
|
|
20
21
|
open?: (verificationUri: string, userCode: string) => void;
|
|
21
22
|
/** Poll interval override in ms (tests); else the server's `interval` seconds. */
|
|
22
23
|
pollMs?: number;
|
|
@@ -26,6 +27,23 @@ export interface DeviceLoginOpts {
|
|
|
26
27
|
fetchImpl?: typeof fetch;
|
|
27
28
|
signal?: AbortSignal;
|
|
28
29
|
}
|
|
30
|
+
interface DeviceCode {
|
|
31
|
+
device_code: string;
|
|
32
|
+
user_code: string;
|
|
33
|
+
verification_uri: string;
|
|
34
|
+
verification_uri_complete?: string;
|
|
35
|
+
interval?: number;
|
|
36
|
+
expires_in?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The link to print: the approval page with the code already in it, so opening
|
|
40
|
+
* it fills the page's field (the page still waits for a person to approve).
|
|
41
|
+
* RFC 8628's `verification_uri_complete` is used when the server sends one, but
|
|
42
|
+
* only if it is that same page with a query added; anything else is ignored and
|
|
43
|
+
* the link is built from `verification_uri`, so a bad response cannot point the
|
|
44
|
+
* person at a different site.
|
|
45
|
+
*/
|
|
46
|
+
export declare function verificationLink(dc: Pick<DeviceCode, 'user_code' | 'verification_uri' | 'verification_uri_complete'>): string;
|
|
29
47
|
/**
|
|
30
48
|
* WHO the freshly-minted token belongs to, or undefined.
|
|
31
49
|
*
|
|
@@ -56,4 +74,5 @@ export interface DeviceLoginOpts {
|
|
|
56
74
|
*/
|
|
57
75
|
export declare function whoIsThis(base: string, token: string, f: typeof fetch, outer?: AbortSignal, deadlineMs?: number): Promise<string | undefined>;
|
|
58
76
|
export declare function deviceLogin(opts: DeviceLoginOpts): Promise<string>;
|
|
77
|
+
export {};
|
|
59
78
|
//# sourceMappingURL=deviceLogin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceLogin.d.ts","sourceRoot":"","sources":["../deviceLogin.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D
|
|
1
|
+
{"version":3,"file":"deviceLogin.d.ts","sourceRoot":"","sources":["../deviceLogin.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D;4CACwC;IACxC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,UAAU;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;AAErK;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,kBAAkB,GAAG,2BAA2B,CAAC,GAAG,MAAM,CAO7H;AA0DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,OAAO,KAAK,EACf,KAAK,CAAC,EAAE,WAAW,EACnB,UAAU,GAAE,MAA0B,GACrC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB7B;AAMD,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAyFxE"}
|
package/dist/deviceLogin.js
CHANGED
|
@@ -8,6 +8,22 @@
|
|
|
8
8
|
* device code, shows the user the verification URL + code, polls until they
|
|
9
9
|
* authorize, then hands the access token to `store` (writeAuthToken -> ~/.corenel/
|
|
10
10
|
* token). Transport (fetch) + endpoints are injectable for a headless test. */
|
|
11
|
+
/**
|
|
12
|
+
* The link to print: the approval page with the code already in it, so opening
|
|
13
|
+
* it fills the page's field (the page still waits for a person to approve).
|
|
14
|
+
* RFC 8628's `verification_uri_complete` is used when the server sends one, but
|
|
15
|
+
* only if it is that same page with a query added; anything else is ignored and
|
|
16
|
+
* the link is built from `verification_uri`, so a bad response cannot point the
|
|
17
|
+
* person at a different site.
|
|
18
|
+
*/
|
|
19
|
+
export function verificationLink(dc) {
|
|
20
|
+
const base = dc.verification_uri;
|
|
21
|
+
const complete = dc.verification_uri_complete;
|
|
22
|
+
if (typeof complete === 'string' && complete.startsWith(base) && (complete[base.length] === '?' || complete[base.length] === '&')) {
|
|
23
|
+
return complete;
|
|
24
|
+
}
|
|
25
|
+
return `${base}${base.includes('?') ? '&' : '?'}code=${encodeURIComponent(dc.user_code)}`;
|
|
26
|
+
}
|
|
11
27
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
12
28
|
/** Floor for a SERVER-supplied poll interval. RFC 8628's own default is 5s; this
|
|
13
29
|
* only has to stop a zero or a negative from becoming a hot loop. */
|
|
@@ -151,7 +167,7 @@ export async function deviceLogin(opts) {
|
|
|
151
167
|
const dc = await post('/oauth/device/code', { client_id: 'corenel-cli', scope: 'agent pair' });
|
|
152
168
|
if (!dc.device_code)
|
|
153
169
|
throw new Error('device authorization failed');
|
|
154
|
-
(opts.open ?? defaultOpen)(dc
|
|
170
|
+
(opts.open ?? defaultOpen)(verificationLink(dc), dc.user_code);
|
|
155
171
|
/* The server names the poll interval, but it does NOT get to name zero.
|
|
156
172
|
* `(dc.interval ?? 5)` looks like it defaults to 5, and does for a MISSING
|
|
157
173
|
* field -- but `0 ?? 5` is `0`, so a server answering `interval: 0` produced
|
package/dist/deviceLogin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceLogin.js","sourceRoot":"","sources":["../deviceLogin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;+EAS+E;
|
|
1
|
+
{"version":3,"file":"deviceLogin.js","sourceRoot":"","sources":["../deviceLogin.ts"],"names":[],"mappings":"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"}
|
package/dist/promptHost.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import type { AsyncFileBackend } from '@prompd/core';
|
|
1
2
|
import type { FileService } from '@corenel/protocol';
|
|
2
3
|
import type { PromptHost } from '@corenel/harness/prompts/host';
|
|
4
|
+
/** Stream non-source files (context assets) to the compiler from a FileService.
|
|
5
|
+
* Shared with the sidecar's workflow host (compileIn), so both compile alike. */
|
|
6
|
+
export declare function promptBackend(svc: FileService): AsyncFileBackend;
|
|
7
|
+
/** Pre-load every source (only the paths `keep` accepts, when given) so the
|
|
8
|
+
* synchronous Nunjucks {% include %} loader can resolve inherits against
|
|
9
|
+
* siblings. Shared with the sidecar's workflow host. */
|
|
10
|
+
export declare function preloadPromptSources(svc: FileService, keep?: (path: string) => boolean): Promise<Record<string, string>>;
|
|
3
11
|
/** A node PromptHost over a FileService workspace. setPromptHost(nodePromptHost(ws))
|
|
4
12
|
* then makes the harness prompt subsystem (composeAgentSystem) run in node. */
|
|
5
13
|
export declare function nodePromptHost(workspace: FileService, project?: FileService): PromptHost;
|
package/dist/promptHost.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptHost.d.ts","sourceRoot":"","sources":["../promptHost.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"promptHost.d.ts","sourceRoot":"","sources":["../promptHost.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAM/E;iFACiF;AACjF,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB,CAYhE;AAED;;wDAEwD;AACxD,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAO9H;AAWD;+EAC+E;AAC/E,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAqCxF"}
|
package/dist/promptHost.js
CHANGED
|
@@ -9,8 +9,9 @@ import { normalizeFilePath, flattenFiles } from '@corenel/protocol';
|
|
|
9
9
|
import { nodeToolGuidance } from './toolGuidance';
|
|
10
10
|
const parser = new PrompdParser();
|
|
11
11
|
const compiler = new PrompdCompiler();
|
|
12
|
-
/** Stream non-source files (context assets) to the compiler from a FileService.
|
|
13
|
-
|
|
12
|
+
/** Stream non-source files (context assets) to the compiler from a FileService.
|
|
13
|
+
* Shared with the sidecar's workflow host (compileIn), so both compile alike. */
|
|
14
|
+
export function promptBackend(svc) {
|
|
14
15
|
return {
|
|
15
16
|
async readFile(p) {
|
|
16
17
|
try {
|
|
@@ -28,11 +29,14 @@ function backend(svc) {
|
|
|
28
29
|
},
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
|
-
/** Pre-load every
|
|
32
|
-
* loader can resolve inherits against
|
|
33
|
-
|
|
32
|
+
/** Pre-load every source (only the paths `keep` accepts, when given) so the
|
|
33
|
+
* synchronous Nunjucks {% include %} loader can resolve inherits against
|
|
34
|
+
* siblings. Shared with the sidecar's workflow host. */
|
|
35
|
+
export async function preloadPromptSources(svc, keep) {
|
|
34
36
|
const out = {};
|
|
35
37
|
for (const f of flattenFiles(await svc.list())) {
|
|
38
|
+
if (keep && !keep(f.path))
|
|
39
|
+
continue;
|
|
36
40
|
try {
|
|
37
41
|
out[f.path] = await svc.read(f.path);
|
|
38
42
|
}
|
|
@@ -67,10 +71,10 @@ export function nodePromptHost(workspace, project) {
|
|
|
67
71
|
parse: (source) => ({ meta: (parser.parseContent(source).metadata ?? {}) }),
|
|
68
72
|
compileBody: (source, values) => compile(source, values),
|
|
69
73
|
compileTemplate: async (path, liveSrc, values) => {
|
|
70
|
-
const sources = await
|
|
74
|
+
const sources = await preloadPromptSources(workspace);
|
|
71
75
|
const p = normalizeFilePath(path);
|
|
72
76
|
sources[p] = liveSrc; // the (possibly default-fallback) template content
|
|
73
|
-
return compile('', values, new HybridFileSystem(sources,
|
|
77
|
+
return compile('', values, new HybridFileSystem(sources, promptBackend(workspace)), '/' + p);
|
|
74
78
|
},
|
|
75
79
|
siteIndex: () => '', // no site index in node (the help chat is browser-only)
|
|
76
80
|
/* Who the agent says it IS. Without this, `composeAgentSystem` falls back
|
package/dist/promptHost.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promptHost.js","sourceRoot":"","sources":["../promptHost.ts"],"names":[],"mappings":"AAAA;;;;;qEAKqE;AACrE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;AAClC,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;AAEtC
|
|
1
|
+
{"version":3,"file":"promptHost.js","sourceRoot":"","sources":["../promptHost.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@corenel/tools-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "Elastic-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Corenel node capabilities — the tools-web twin. A disk-backed FileService (the harness file tools + node PromptHost workspace) over node:fs, confined to a root. Shell/secrets/~/.corenel to follow.",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@prompd/core": "0.6.0",
|
|
19
|
-
"@corenel/protocol": "0.
|
|
20
|
-
"@corenel/harness": "0.
|
|
19
|
+
"@corenel/protocol": "0.17.0",
|
|
20
|
+
"@corenel/harness": "0.19.0"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^24.13.1",
|