@vedmalex/ai-connect 0.7.0 → 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/README.md +37 -4
- package/dist/browser/index.js +717 -284
- package/dist/browser/index.js.map +3 -3
- package/dist/bun/index.js +1248 -450
- package/dist/bun/index.js.map +4 -4
- package/dist/bun/local.js +1194 -444
- package/dist/bun/local.js.map +4 -4
- package/dist/node/index.js +1248 -450
- package/dist/node/index.js.map +4 -4
- package/dist/node/local.js +1194 -444
- package/dist/node/local.js.map +4 -4
- package/dist/types/acp.d.ts +14 -0
- package/dist/types/acp.d.ts.map +1 -1
- package/dist/types/cli-presets.d.ts.map +1 -1
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/default-handlers.d.ts.map +1 -1
- package/dist/types/errors.d.ts +11 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/fanout.d.ts.map +1 -1
- package/dist/types/files.d.ts +47 -1
- package/dist/types/files.d.ts.map +1 -1
- package/dist/types/local-handlers.d.ts.map +1 -1
- package/dist/types/logging.d.ts +18 -1
- package/dist/types/logging.d.ts.map +1 -1
- package/dist/types/mock-gateway.d.ts +20 -0
- package/dist/types/mock-gateway.d.ts.map +1 -1
- package/dist/types/model-reference.d.ts +5 -2
- package/dist/types/model-reference.d.ts.map +1 -1
- package/dist/types/router.d.ts.map +1 -1
- package/dist/types/server-presets.d.ts +1 -1
- package/dist/types/server-presets.d.ts.map +1 -1
- package/dist/types/server.d.ts.map +1 -1
- package/dist/types/transport-runtime.d.ts +75 -0
- package/dist/types/transport-runtime.d.ts.map +1 -0
- package/dist/types/types.d.ts +44 -0
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/types/acp.d.ts
CHANGED
|
@@ -10,6 +10,12 @@ type AcpPromptOutput = {
|
|
|
10
10
|
stopReason?: string;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* True iff `line` (after trimming) is ENTIRELY one of the curated harness
|
|
15
|
+
* markers. Empty/whitespace lines are NOT markers (a real answer may contain
|
|
16
|
+
* blank lines); they are handled by the buffer/join logic, not classified here.
|
|
17
|
+
*/
|
|
18
|
+
declare function isHarnessNoiseLine(line: string): boolean;
|
|
13
19
|
declare function mergeUsageInfo(current: UsageInfo | undefined, next: UsageInfo | undefined): UsageInfo | undefined;
|
|
14
20
|
declare function usageFromMeta(meta: Record<string, unknown>): UsageInfo | undefined;
|
|
15
21
|
declare function usageFromUpdate(update: Record<string, unknown>): UsageInfo | undefined;
|
|
@@ -35,5 +41,13 @@ export declare const __acpUsageInternals: {
|
|
|
35
41
|
readonly usageFromUpdate: typeof usageFromUpdate;
|
|
36
42
|
readonly usageFromMeta: typeof usageFromMeta;
|
|
37
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Internal harness-noise primitives surfaced for deterministic unit tests
|
|
46
|
+
* (TASK-033 / UR-003, F-PLAN-5). NOT re-exported from `src/index*.ts`.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare const __acpHarnessInternals: {
|
|
50
|
+
readonly isHarnessNoiseLine: typeof isHarnessNoiseLine;
|
|
51
|
+
};
|
|
38
52
|
export {};
|
|
39
53
|
//# sourceMappingURL=acp.d.ts.map
|
package/dist/types/acp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/acp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/acp.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAEV,eAAe,EAEf,gBAAgB,EAGhB,wBAAwB,EACxB,eAAe,EAEf,mBAAmB,EACnB,eAAe,EAEf,iBAAiB,EAEjB,SAAS,EAGV,MAAM,YAAY,CAAC;AAmFpB,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CAAC;AAsEF;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAo3BD,iBAAS,cAAc,CACrB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,IAAI,EAAE,SAAS,GAAG,SAAS,GAC1B,SAAS,GAAG,SAAS,CAuBvB;AAqCD,iBAAS,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,CAY3E;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,SAAS,CA8B/E;AAoBD,iBAAS,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAqDrE;AAsLD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,gBAAgB,GAAG,SAAS,GACpC,MAAM,CAqBR;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,gBAAgB,GAAG,SAAS,GACpC,MAAM,CAER;AAotCD,wBAAgB,yBAAyB,CACvC,OAAO,CAAC,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAClE,YAAY,EAAE,CACZ,OAAO,EAAE,eAAe,KACrB,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACxC,cAAc,EAAE,CACd,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAoZA;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,CAAC,CAW1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;CAExB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-presets.d.ts","sourceRoot":"","sources":["../../src/cli-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,oBAAoB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CACjD,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"cli-presets.d.ts","sourceRoot":"","sources":["../../src/cli-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,oBAAoB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,MAAM,CACjD,oBAAoB,EACpB,kBAAkB,CA0IjB,CAAC;AAEJ,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMlE,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAC7B,kBAAkB,CAEpB"}
|
package/dist/types/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAEf,gBAAgB,EAUhB,wBAAwB,EACxB,eAAe,EACf,6BAA6B,EAC7B,eAAe,EAEf,0BAA0B,EAI3B,MAAM,YAAY,CAAC;AAoBpB,MAAM,MAAM,0BAA0B,GAClC;IACE,GAAG,EAAE,MAAM,CAAC;CACb,GACD;IACE,GAAG,EAAE,QAAQ,CAAC;CACf,GACD;IACE,GAAG,EAAE,SAAS,CAAC;IACf,OAAO,EAAE,6BAA6B,CAAC;IACvC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC7B,GACD;IACE,GAAG,EAAE,KAAK,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IACF,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AA2IN,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,MAAM,CAER;AA6FD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,GACrB,0BAA0B,CAmC5B;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,GACrB,eAAe,GAAG,SAAS,CAkB7B;AA2/BD,wBAAgB,yBAAyB,CACvC,OAAO,CAAC,EAAE,gBAAgB,GACzB;IACD,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7E,cAAc,EAAE,CACd,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,eAAe,CAAC,CAAC;CAC/B,CA2KA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAKV,eAAe,EACf,eAAe,EACf,oBAAoB,EAMpB,mBAAmB,EAoDpB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAKV,eAAe,EACf,eAAe,EACf,oBAAoB,EAMpB,mBAAmB,EAoDpB,MAAM,YAAY,CAAC;AAuhCpB,wBAAgB,YAAY,CAAC,aAAa,EAAE,eAAe,GAAG,oBAAoB,EAAE,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAo4DtI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EAQpB,YAAY,EACZ,sBAAsB,EAQtB,eAAe,EAIf,uBAAuB,EACvB,iBAAiB,EAGjB,qBAAqB,EAMtB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EACf,oBAAoB,EAQpB,YAAY,EACZ,sBAAsB,EAQtB,eAAe,EAIf,uBAAuB,EACvB,iBAAiB,EAGjB,qBAAqB,EAMtB,MAAM,YAAY,CAAC;AA8HpB;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,iBAAiB,GAC9B,uBAAuB,CAYzB;AAyID;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,sBAAsB,CAMxB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,YAAY,GAAG,SAAS,EAC9B,OAAO,EAAE,YAAY,GAAG,SAAS,GAChC,YAAY,CAkBd;AA8wBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,eAAe,CAkPzE;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,oBAAoB,GAC5C,KAAK,IAAI,eAAe,CAQ1B;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,EAC/B,MAAM,EAAE,eAAe,EAAE,EACzB,MAAM,CAAC,EAAE;IACP,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,MAAM,EAAE,CAEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-handlers.d.ts","sourceRoot":"","sources":["../../src/default-handlers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAGZ,SAAS,EAUT,eAAe,EAGf,oBAAoB,EAKrB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"default-handlers.d.ts","sourceRoot":"","sources":["../../src/default-handlers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAGZ,SAAS,EAUT,eAAe,EAGf,oBAAoB,EAKrB,MAAM,YAAY,CAAC;AAk5BpB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,SAAS,CAEpB;AAYD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,eAAe,EAAE,YAAY,EAAE,EAC/B,cAAc,CAAC,EAAE,MAAM,GACtB,eAAe,CA8BjB;AAwtED,wBAAgB,0BAA0B,CACxC,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,SAAS,CAAC;CACd,GACL,oBAAoB,CAiEtB"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -3,6 +3,17 @@ export declare class AiConnectError extends Error {
|
|
|
3
3
|
readonly code: AiConnectErrorCode;
|
|
4
4
|
readonly details: Record<string, unknown> | undefined;
|
|
5
5
|
constructor(code: AiConnectErrorCode, message: string, details?: Record<string, unknown>);
|
|
6
|
+
/**
|
|
7
|
+
* `Error.prototype.message` is non-enumerable, so a bare `JSON.stringify(err)` silently drops
|
|
8
|
+
* it (LOW, review-report-seed.md). Provide an explicit projection so serializing an
|
|
9
|
+
* `AiConnectError` (logs, wide events, error-response bodies) always carries the message.
|
|
10
|
+
*/
|
|
11
|
+
toJSON(): {
|
|
12
|
+
name: string;
|
|
13
|
+
code: AiConnectErrorCode;
|
|
14
|
+
message: string;
|
|
15
|
+
details: Record<string, unknown> | undefined;
|
|
16
|
+
};
|
|
6
17
|
}
|
|
7
18
|
export declare function isAiConnectError(error: unknown): error is AiConnectError;
|
|
8
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAGpD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAGpD,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQnC;;;;OAIG;IACH,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;KAAE;CAQpH;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAIhB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,YAAY,GAAE,kBAA4C,GACzD,cAAc,CA0BhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fanout.d.ts","sourceRoot":"","sources":["../../src/fanout.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"fanout.d.ts","sourceRoot":"","sources":["../../src/fanout.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA2BpB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,kBAAkB,GAC1B,aAAa,CA6Mf"}
|
package/dist/types/files.d.ts
CHANGED
|
@@ -44,5 +44,51 @@ export declare function portableFileToText(file: PortableFile): Promise<string |
|
|
|
44
44
|
* `loadFsPromises` guard (F-A2: browser-reachable, node:*-free).
|
|
45
45
|
*/
|
|
46
46
|
export declare function materializePortableFile(file: PortableFile): Promise<PortableFilePayload>;
|
|
47
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Opt-in guard for the plain-string `{kind:'path'}` branch of
|
|
49
|
+
* {@link preparePortableFile} (see the trust-boundary doc comment there).
|
|
50
|
+
* Omitted (default) → unrestricted, byte-identical to pre-existing behavior.
|
|
51
|
+
* - `"basename"`: strip any directory component; only the bare filename is
|
|
52
|
+
* kept as the path source (no `/`, no `\`, no `..` — traversal is
|
|
53
|
+
* structurally impossible because there is no directory left to escape
|
|
54
|
+
* with). The caller is expected to resolve the basename against its own
|
|
55
|
+
* trusted base directory downstream.
|
|
56
|
+
* - `{ allowedRoots: string[] }`: the input path must resolve (after
|
|
57
|
+
* collapsing `.`/`..` segments, WITHOUT touching the filesystem — this is
|
|
58
|
+
* a lightweight, dependency-free check, not a substitute for
|
|
59
|
+
* `fs.realpath`-based canonicalization when symlinks are a concern) inside
|
|
60
|
+
* one of the given root directories, or `preparePortableFile` throws
|
|
61
|
+
* `AiConnectError('validation_error', ...)`.
|
|
62
|
+
*/
|
|
63
|
+
export type PreparePortableFilePathGuard = "basename" | {
|
|
64
|
+
allowedRoots: string[];
|
|
65
|
+
};
|
|
66
|
+
export interface PreparePortableFileOptions {
|
|
67
|
+
pathGuard?: PreparePortableFilePathGuard;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Normalizes a `PortableFileInput` (path string / remote URL / data URL /
|
|
71
|
+
* browser File|Blob / remote reference / already-normalized `PortableFile`)
|
|
72
|
+
* into a `PortableFile`.
|
|
73
|
+
*
|
|
74
|
+
* TRUST BOUNDARY (MEDIUM, review-report-seed.md files.ts:302-310): any plain
|
|
75
|
+
* string that is neither a `data:` URL nor an `http(s):` URL is treated as a
|
|
76
|
+
* filesystem PATH (`{kind:'path'}`) and later read VERBATIM via
|
|
77
|
+
* `fs.readFile` (`readPathBytes`/`readPathText`, below) with NO sandboxing —
|
|
78
|
+
* whatever string reaches this function is eligible to read any file the
|
|
79
|
+
* host process can access. This function is reachable from the PUBLIC
|
|
80
|
+
* `GenerateRequest.attachments` API (and `image.sourceImage`/`mask`/
|
|
81
|
+
* `referenceImages`), so any caller that forwards attacker-controlled strings
|
|
82
|
+
* from an untrusted source (e.g. a server request body) into `attachments`
|
|
83
|
+
* effectively grants that caller read access to the host filesystem.
|
|
84
|
+
*
|
|
85
|
+
* Callers that accept `PortableFileInput`/`attachments` from an untrusted or
|
|
86
|
+
* public caller MUST NOT pass raw strings through unchecked — either
|
|
87
|
+
* pre-validate/allow-list the path themselves, or pass `options.pathGuard`
|
|
88
|
+
* (`"basename"` or `{allowedRoots}`) to restrict what `{kind:'path'}` values
|
|
89
|
+
* this function will produce. Default (no `options`/no `pathGuard`) is
|
|
90
|
+
* UNRESTRICTED for backward compatibility with existing local/CLI callers
|
|
91
|
+
* that intentionally pass trusted local paths.
|
|
92
|
+
*/
|
|
93
|
+
export declare function preparePortableFile(input: PortableFileInput, options?: PreparePortableFileOptions): PortableFile;
|
|
48
94
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAE5D,CAAC;AAsEH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,MAAM,CAE5D,CAAC;AAsEH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD;AA2KD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAmBhF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAO9D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAO5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,oBAAoB,CAY7E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAElE;AAUD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAsCD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAyB7B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAkBjC;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAsB7B;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAgE9B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,4BAA4B,GACpC,UAAU,GACV;IAAE,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE/B,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,4BAA4B,CAAC;CAC1C;AAsDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,EAAE,0BAA0B,GACnC,YAAY,CA4Ed"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-handlers.d.ts","sourceRoot":"","sources":["../../src/local-handlers.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"local-handlers.d.ts","sourceRoot":"","sources":["../../src/local-handlers.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,gBAAgB,EAEhB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AA4BF,wBAAgB,wBAAwB,CACtC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,GAAG,CAAC,EAAE,gBAAgB,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;CACzB,GACL,kBAAkB,CA2IpB"}
|
package/dist/types/logging.d.ts
CHANGED
|
@@ -3,6 +3,23 @@ export interface ConsoleWideEventLoggerOptions {
|
|
|
3
3
|
pretty?: boolean;
|
|
4
4
|
write?: (line: string) => void;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Deep, immutable-copy redaction of a wide event (SYS-3). Never mutates the
|
|
8
|
+
* input. Applied at the logging choke-point so every sink — including custom
|
|
9
|
+
* ones — inherits credential-safe output.
|
|
10
|
+
*/
|
|
11
|
+
export declare function redactEvent<T>(event: T): T;
|
|
12
|
+
/**
|
|
13
|
+
* Strip credentials from a base URL before it reaches telemetry (SYS-3):
|
|
14
|
+
* removes userinfo (`user:pass@`) and the query string / fragment, keeping only
|
|
15
|
+
* scheme + host + path.
|
|
16
|
+
*/
|
|
17
|
+
export declare function redactBaseUrl(url: string): string;
|
|
6
18
|
export declare function createConsoleWideEventLogger(options?: ConsoleWideEventLoggerOptions): WideEventLogger;
|
|
7
|
-
export declare function shouldEmitWideEvent(event: WideEvent, options?: WideEventSamplingOptions
|
|
19
|
+
export declare function shouldEmitWideEvent(event: WideEvent, options?: WideEventSamplingOptions,
|
|
20
|
+
/**
|
|
21
|
+
* Injectable RNG seam (C5 LOW) — defaults to `Math.random`. Lets deterministic
|
|
22
|
+
* tests pin the sampling decision without touching global state.
|
|
23
|
+
*/
|
|
24
|
+
random?: () => number): Promise<boolean>;
|
|
8
25
|
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,eAAe,
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AA4ED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE1C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,GAAE,6BAAkC,GAC1C,eAAe,CAejB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,wBAA6B;AACtC;;;GAGG;AACH,MAAM,GAAE,MAAM,MAAoB,GACjC,OAAO,CAAC,OAAO,CAAC,CAoDlB"}
|
|
@@ -48,6 +48,26 @@ export interface MockGatewayOptions {
|
|
|
48
48
|
upstreamOrigin?: string;
|
|
49
49
|
onRequest?: (request: CapturedGatewayRequest, requestIndex: number) => void;
|
|
50
50
|
onExchange?: (exchange: CapturedGatewayExchange, requestIndex: number) => void;
|
|
51
|
+
/**
|
|
52
|
+
* SECURITY (MEDIUM, review-report-seed.md — "open relay / credential
|
|
53
|
+
* capture"): by default `host` must resolve to a loopback address
|
|
54
|
+
* (127.0.0.1 / ::1 / localhost). This gateway captures raw request headers
|
|
55
|
+
* (including `Authorization`/API-key headers) verbatim in `requests` /
|
|
56
|
+
* `exchanges`, and in `mitm` mode forwards them to a real upstream —
|
|
57
|
+
* binding non-loopback would turn a local test helper into a
|
|
58
|
+
* network-reachable open relay / credential-capture endpoint. Set to
|
|
59
|
+
* `true` to explicitly opt in to a non-loopback `host`.
|
|
60
|
+
*/
|
|
61
|
+
allowNonLoopbackHost?: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* SECURITY: captured request/response headers redact common credential
|
|
64
|
+
* header names (`authorization`, `x-api-key`, `x-goog-api-key`, and their
|
|
65
|
+
* mixed-case forms) to `"[REDACTED]"` by default, so they never leak
|
|
66
|
+
* through `requests` / `exchanges` / `onRequest` / `onExchange` (e.g. into
|
|
67
|
+
* test snapshots, logs, or CI artifacts). Set to `true` to see raw header
|
|
68
|
+
* values — local debugging only, never for anything persisted/committed.
|
|
69
|
+
*/
|
|
70
|
+
unredactedHeaders?: boolean;
|
|
51
71
|
}
|
|
52
72
|
export interface MockGateway {
|
|
53
73
|
origin: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-gateway.d.ts","sourceRoot":"","sources":["../../src/mock-gateway.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,gBAAgB,EAAE,GAClB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAChC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACjD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC9C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-gateway.d.ts","sourceRoot":"","sources":["../../src/mock-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,11 @@ export declare const MODEL_REFERENCE: Record<string, ModelReferenceEntry>;
|
|
|
23
23
|
/**
|
|
24
24
|
* Normalize a model id into a {@link MODEL_REFERENCE} lookup key:
|
|
25
25
|
* 1. lowercase
|
|
26
|
-
* 2. drop a
|
|
27
|
-
*
|
|
26
|
+
* 2. drop a trailing `/<reasoning-effort>` suffix (e.g. `gpt-5.4/xhigh` → `gpt-5.4`) —
|
|
27
|
+
* see {@link REASONING_EFFORT_SUFFIXES}; done BEFORE the provider-prefix strip so a
|
|
28
|
+
* reasoning-effort suffix is never misread as the model half of `provider/model` (H9)
|
|
29
|
+
* 3. drop a leading `provider/` segment (e.g. `openai/gpt-4.1` → `gpt-4.1`)
|
|
30
|
+
* 4. drop a trailing `:free` / `:beta` modifier (e.g. `gpt-4.1:free` → `gpt-4.1`)
|
|
28
31
|
*
|
|
29
32
|
* Pure string transform — provider/transport-blind.
|
|
30
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-reference.d.ts","sourceRoot":"","sources":["../../src/model-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAwC/D,CAAC;
|
|
1
|
+
{"version":3,"file":"model-reference.d.ts","sourceRoot":"","sources":["../../src/model-reference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAwC/D,CAAC;AAgBF;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqBvD;AAUD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAqC7E;AAMD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAuB1E;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CA0BxE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,OAAO,GACZ,OAAO,CAsBT;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;CAAE,CActE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,MAAM,EAAE,YAAY,EAAE,GACrB,YAAY,EAAE,CAoBhB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAMA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,mBAAmB,EAGnB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA+HpB,qBAAa,aAAa;;IACxB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAOzB,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,kBAAkB;IAShE,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,mBAAmB;IA0BtD,UAAU,CAAC,MAAM,CAAC,EAAE;QAClB,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;KAC1C,GAAG,eAAe,EAAE;IAWrB;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,CAAC,EAAE;QACvB,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,GAAG,cAAc,EAAE;IAyBpB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG;QAAE,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;KAAE,GAAG,eAAe,EAAE;IAuDzH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAO3C,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CA0FtE;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CA8CT;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,eAAe,GAAG,SAAS,CAiB7B"}
|
|
@@ -4,6 +4,6 @@ export type ServerTransportPreset = {
|
|
|
4
4
|
command: string;
|
|
5
5
|
transportId: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const AI_CONNECT_DEFAULT_SERVER_PRESETS: Record<
|
|
7
|
+
export declare const AI_CONNECT_DEFAULT_SERVER_PRESETS: Record<string, ServerTransportPreset>;
|
|
8
8
|
export declare const AI_CONNECT_DEFAULT_SERVER_COMMANDS: Record<string, string>;
|
|
9
9
|
//# sourceMappingURL=server-presets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-presets.d.ts","sourceRoot":"","sources":["../../src/server-presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-presets.d.ts","sourceRoot":"","sources":["../../src/server-presets.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACpD,MAAM,EACN,qBAAqB,CASpB,CAAC;AAEJ,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EAExB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAgEpB,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,MAAM,CAER;AA0TD,wBAAgB,4BAA4B,CAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B;IACD,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC7E,cAAc,EAAE,CACd,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,WAAW,EAAE,CACX,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC;QACX,EAAE,EAAE,OAAO,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CA2MA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { ChildProcess, StdioOptions } from "node:child_process";
|
|
2
|
+
/**
|
|
3
|
+
* Shared transport-runtime primitives (TASK-035 Wave 1).
|
|
4
|
+
*
|
|
5
|
+
* Consolidates the process-spawning concerns that were previously duplicated
|
|
6
|
+
* (and subtly divergent) across the ACP, CLI, and server transport managers:
|
|
7
|
+
* - child-environment scoping (SYS-2): a minimal-by-default env so the full
|
|
8
|
+
* `process.env` (host credentials, CI tokens) does NOT leak into third-party
|
|
9
|
+
* `npx`-loaded binaries;
|
|
10
|
+
* - process-group kill (C2/C3): reliably tear down a detached child *and its
|
|
11
|
+
* descendants*, not just the direct child;
|
|
12
|
+
* - command-override precedence (SYS-5): a single precedence rule
|
|
13
|
+
* (`options.commands` wins) shared by every transport;
|
|
14
|
+
* - an orphaned-process safety net: a single best-effort process-exit hook
|
|
15
|
+
* that kills every tracked child on host teardown.
|
|
16
|
+
*
|
|
17
|
+
* This is a node-runtime-only module (transports are node-only), so a direct
|
|
18
|
+
* import of `node:child_process` is intentional and safe here.
|
|
19
|
+
*/
|
|
20
|
+
export type EnvMode = "inherit" | "minimal";
|
|
21
|
+
export interface ChildEnvOptions {
|
|
22
|
+
/**
|
|
23
|
+
* `'minimal'` (default) exposes only PATH + HOME + explicitly allowlisted keys
|
|
24
|
+
* from `process.env`, plus `extra`. `'inherit'` forwards the full `process.env`
|
|
25
|
+
* (plus `extra`) — opt-in only, for callers that knowingly trust the child.
|
|
26
|
+
*/
|
|
27
|
+
envMode?: EnvMode;
|
|
28
|
+
/** Additional `process.env` keys to forward in `'minimal'` mode. */
|
|
29
|
+
allowlist?: string[];
|
|
30
|
+
/** Explicit key/value pairs layered on top (always win). */
|
|
31
|
+
extra?: Record<string, string>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Build the environment for a spawned child process (SYS-2).
|
|
35
|
+
*
|
|
36
|
+
* Default is `'minimal'`: the host's full `process.env` is NOT inherited, so
|
|
37
|
+
* unrelated provider keys / CI tokens are not handed to third-party binaries.
|
|
38
|
+
* Callers that genuinely need full inheritance pass `envMode: 'inherit'`.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveChildEnv(opts?: ChildEnvOptions): Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Kill a spawned child and its descendants (C2/C3).
|
|
43
|
+
*
|
|
44
|
+
* When the child was spawned `detached` on a POSIX platform it is a process
|
|
45
|
+
* group leader, so `process.kill(-pid, signal)` reaches the whole group. On
|
|
46
|
+
* win32 (no POSIX process groups) — or if the group kill throws (already gone)
|
|
47
|
+
* — fall back to killing the direct child.
|
|
48
|
+
*/
|
|
49
|
+
export declare function killProcessTree(child: ChildProcess, signal: NodeJS.Signals, detached: boolean): void;
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a managed transport command with a single, transport-agnostic
|
|
52
|
+
* precedence (SYS-5): an explicit `options.commands[key]` override always wins,
|
|
53
|
+
* then the route's `transport.command`, then the built-in preset command.
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveManagedCommand(key: string, optionsCommands: Record<string, string> | undefined, routeCommand: string | undefined, presetCommand: string | undefined): string;
|
|
56
|
+
export interface SpawnManagedOptions {
|
|
57
|
+
cwd?: string;
|
|
58
|
+
env?: Record<string, string>;
|
|
59
|
+
stdio?: StdioOptions;
|
|
60
|
+
detached?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Thin wrapper over `child_process.spawn` that applies the shared env-scoping
|
|
64
|
+
* default and registers the child in the orphaned-process safety net. Callers
|
|
65
|
+
* that already build their own env pass it via `opts.env`; otherwise a minimal
|
|
66
|
+
* env is resolved.
|
|
67
|
+
*/
|
|
68
|
+
export declare function spawnManaged(cmd: string, args: string[], opts?: SpawnManagedOptions): ChildProcess;
|
|
69
|
+
/**
|
|
70
|
+
* Register a spawned child in the orphaned-process safety net. Returns an
|
|
71
|
+
* `untrack()` function the caller MUST invoke once the child is reaped (on
|
|
72
|
+
* `close`/`exit` and in `dispose()`), so the registry does not grow unbounded.
|
|
73
|
+
*/
|
|
74
|
+
export declare function trackChild(child: ChildProcess, detached: boolean): () => void;
|
|
75
|
+
//# sourceMappingURL=transport-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-runtime.d.ts","sourceRoot":"","sources":["../../src/transport-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKrE;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AA4CD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,GAAE,eAAoB,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsBxB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,QAAQ,EAAE,OAAO,GAChB,IAAI,CAmBN;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACnD,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAcR;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,GAAE,mBAAwB,GAC7B,YAAY,CAWd;AA6CD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,OAAO,GAChB,MAAM,IAAI,CAUZ"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -409,6 +409,15 @@ export interface PortableFilePayload {
|
|
|
409
409
|
uri?: string;
|
|
410
410
|
text?: string;
|
|
411
411
|
providerFileId?: string;
|
|
412
|
+
/**
|
|
413
|
+
* Non-fatal decode notes (e.g. an `other`-category file that carried no
|
|
414
|
+
* usable carrier and was silently dropped by a builder). Optional,
|
|
415
|
+
* additive — absent unless a decode path populates it (SYS-6/MEDIUM,
|
|
416
|
+
* review-report-seed.md files.ts:416-459 "other" silent data loss).
|
|
417
|
+
*/
|
|
418
|
+
warnings?: string[];
|
|
419
|
+
/** Machine-readable reason a payload's content was dropped, if any. */
|
|
420
|
+
droppedReason?: string;
|
|
412
421
|
}
|
|
413
422
|
export interface ToolCallInput {
|
|
414
423
|
id: string;
|
|
@@ -443,6 +452,15 @@ export interface ClientToolContext {
|
|
|
443
452
|
toolCall: ToolCallInput;
|
|
444
453
|
messages: MessageInput[];
|
|
445
454
|
workingDirectory?: string;
|
|
455
|
+
/**
|
|
456
|
+
* Optional cancellation context (CD-3/CD-6). When the call site threads the
|
|
457
|
+
* derived abort context through (client.ts), client tools can observe
|
|
458
|
+
* `abort.signal.aborted` / listen for `'abort'` to cooperatively cancel
|
|
459
|
+
* long-running work. Optional for back-compat — existing tool
|
|
460
|
+
* implementations that don't read it are unaffected (SYS-1/MEDIUM,
|
|
461
|
+
* review-report-seed.md types.ts:563-570).
|
|
462
|
+
*/
|
|
463
|
+
abort?: AbortContext;
|
|
446
464
|
}
|
|
447
465
|
export type ClientToolExecutionResult = string | {
|
|
448
466
|
content?: string;
|
|
@@ -1288,6 +1306,32 @@ export interface AcpClientOptions {
|
|
|
1288
1306
|
timeoutMs?: number;
|
|
1289
1307
|
sessionCache?: boolean | AcpSessionCacheOptions;
|
|
1290
1308
|
maxConcurrentConnections?: number;
|
|
1309
|
+
/**
|
|
1310
|
+
* Select the route's model through the ACP PROTOCOL via a `session/set_model`
|
|
1311
|
+
* call after `session/new` (default `true`), sourcing `route.model`
|
|
1312
|
+
* (`routeHints.model ?? account model`) — superseding an `ANTHROPIC_MODEL`
|
|
1313
|
+
* env hack and the agent's env-driven "model switched" announcement. The call
|
|
1314
|
+
* is sent only when the agent advertises a model catalog AND the requested
|
|
1315
|
+
* model is in `availableModels` AND it differs from the current model; a
|
|
1316
|
+
* non-advertised model is surfaced as a warning rather than silently run.
|
|
1317
|
+
*/
|
|
1318
|
+
selectModel?: boolean;
|
|
1319
|
+
/**
|
|
1320
|
+
* Filter known interactive-harness marker lines (greeting / model-switch
|
|
1321
|
+
* announcement / `<local-command-caveat>` commentary / idle prompts) out of
|
|
1322
|
+
* the accumulated `agent_message_chunk` text — on both the generate and the
|
|
1323
|
+
* streaming (`delta`) paths (default `true`). Only the curated, anchored
|
|
1324
|
+
* whole-line markers are removed; legitimate task output is preserved.
|
|
1325
|
+
*/
|
|
1326
|
+
suppressHarnessNoise?: boolean;
|
|
1327
|
+
/**
|
|
1328
|
+
* When a `session/prompt` turn yields ONLY harness-noise lines and no
|
|
1329
|
+
* substantive content, surface it as `temporary_unavailable` (so the consumer
|
|
1330
|
+
* can retry / fall back) instead of returning the chatter as a successful
|
|
1331
|
+
* generation (default `true`). Relies on {@link suppressHarnessNoise} (the
|
|
1332
|
+
* shared line-classification path); disabling that disables the guard.
|
|
1333
|
+
*/
|
|
1334
|
+
failOnHarnessOnlyTurn?: boolean;
|
|
1291
1335
|
}
|
|
1292
1336
|
export interface CliStagingOptions {
|
|
1293
1337
|
/** Base dir for the per-invocation mkdtemp. Default: os.tmpdir(). */
|