@adversarylabs/sdk 0.1.37 → 0.1.39
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 +111 -0
- package/dist/candidate-recovery.d.ts +53 -0
- package/dist/candidate-recovery.d.ts.map +1 -0
- package/dist/candidate-recovery.js +185 -0
- package/dist/candidate-recovery.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -2
- package/dist/index.js.map +1 -1
- package/dist/model-diagnostics.d.ts +6 -0
- package/dist/model-diagnostics.d.ts.map +1 -0
- package/dist/model-diagnostics.js +78 -0
- package/dist/model-diagnostics.js.map +1 -0
- package/dist/model.d.ts +2 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +92 -26
- package/dist/model.js.map +1 -1
- package/dist/repository-diagnostics.d.ts +29 -0
- package/dist/repository-diagnostics.d.ts.map +1 -0
- package/dist/repository-diagnostics.js +73 -0
- package/dist/repository-diagnostics.js.map +1 -0
- package/dist/repository-model.d.ts +4 -0
- package/dist/repository-model.d.ts.map +1 -1
- package/dist/repository-model.js +333 -168
- package/dist/repository-model.js.map +1 -1
- package/dist/repository-path.d.ts +4 -0
- package/dist/repository-path.d.ts.map +1 -0
- package/dist/repository-path.js +16 -0
- package/dist/repository-path.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-diagnostics.js","sourceRoot":"","sources":["../src/repository-diagnostics.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\n\nimport { normalizeRepositoryPath } from \"./repository-path.js\";\n\nexport type RepositoryReadReason =\n | \"excluded_file\"\n | \"symlink_rejected\"\n | \"not_regular_file\"\n | \"unsafe_path\"\n | \"invalid_range\"\n | \"range_past_eof\"\n | \"binary_file\"\n | \"change_context_missing\"\n | \"file_not_changed\"\n | \"invalid_revision\";\n\nexport class RepositoryReadError extends Error {\n constructor(\n readonly reason: RepositoryReadReason,\n message: string,\n ) {\n super(message);\n this.name = \"RepositoryReadError\";\n }\n}\n\nexport function readErrorReason(error: unknown): string {\n if (error instanceof RepositoryReadError) return error.reason;\n const code = (error as { code?: unknown } | null)?.code;\n const codes: Record<string, string> = {\n ENOENT: \"file_missing\",\n EACCES: \"permission_denied\",\n EPERM: \"permission_denied\",\n ENOTDIR: \"parent_not_directory\",\n EIO: \"io_error\",\n ENOBUFS: \"command_output_limit\",\n };\n return typeof code === \"string\" && Object.hasOwn(codes, code) ? codes[code] : \"read_failed\";\n}\n\nexport function safeDiagnosticPath(path: string, knownPaths: ReadonlySet<string>): string {\n const normalized = normalizeRepositoryPath(path);\n if (normalized === undefined) return \"[invalid repository path]\";\n return knownPaths.has(normalized) ? normalized : \"[unverified repository path]\";\n}\n\n/** Optional diagnostics must never alter a review result or replace its error. */\nexport function writeRepositoryDiagnostic(record: Record<string, unknown>): void {\n try {\n process.stderr.write(`${JSON.stringify(record)}\\n`);\n } catch {\n // A failed diagnostic sink does not affect repository retrieval.\n }\n}\n\ntype Counts = { rounds: number; toolCalls: number; bytes: number };\ntype Limits = {\n maxRounds: number;\n maxToolCalls: number;\n maxTotalBytes: number;\n maxBytesPerRead: number;\n maxLinesPerRead: number;\n};\nexport function repositoryDiagnostics(\n reviewer: string | undefined,\n limits: Limits,\n enabled = true,\n) {\n const readingId = randomUUID();\n // Each retrieval is already bounded to 128 operations. Cap gap diagnostics too.\n let records = 0;\n let omitted = 0;\n const emit = (details: Record<string, string | number | boolean>, counts: Counts) => {\n if (!enabled) return;\n if (records++ >= 1024) {\n omitted++;\n return;\n }\n writeRepositoryDiagnostic({\n event: \"repository.read-detail\",\n readingId,\n reviewer:\n reviewer && /^[A-Za-z0-9][A-Za-z0-9._/-]{0,95}$/.test(reviewer) ? reviewer : \"unknown\",\n ...details,\n ...counts,\n callsRemaining: Math.max(0, limits.maxToolCalls - counts.toolCalls),\n bytesRemaining: Math.max(0, limits.maxTotalBytes - counts.bytes),\n });\n };\n return {\n readingId,\n emit,\n start: () =>\n emit(\n { kind: \"session\", outcome: \"started\", ...limits },\n { rounds: 0, toolCalls: 0, bytes: 0 },\n ),\n finish: (counts: Counts, complete: boolean) => {\n // Reserve a completion record even when the diagnostic cap was reached.\n records = Math.min(records, 1023);\n emit({ kind: \"session\", outcome: \"finished\", complete, omittedRecords: omitted }, counts);\n },\n };\n}\n"]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ModelReviewRequest, type ModelReviewResult, type ReviewModel } from "./model.js";
|
|
2
2
|
export interface ModelRepositoryToolOptions {
|
|
3
|
+
/** Emit bounded file-reading diagnostics without source contents or raw errors. */
|
|
4
|
+
readDiagnostics?: boolean;
|
|
3
5
|
/** File globs the model may read. Empty means every regular non-excluded file. */
|
|
4
6
|
include?: readonly string[];
|
|
5
7
|
/** Additional file or directory globs hidden from repository tools. */
|
|
@@ -32,6 +34,8 @@ export interface ModelRepositoryCoverage {
|
|
|
32
34
|
reasons: readonly string[];
|
|
33
35
|
}
|
|
34
36
|
export interface ModelRepositoryRetrieval {
|
|
37
|
+
/** Correlates source reads and missing-line diagnostics for this retrieval. */
|
|
38
|
+
readingId?: string;
|
|
35
39
|
rounds: number;
|
|
36
40
|
toolCalls: number;
|
|
37
41
|
bytes: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-model.d.ts","sourceRoot":"","sources":["../src/repository-model.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"repository-model.d.ts","sourceRoot":"","sources":["../src/repository-model.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AA2CpB,MAAM,WAAW,0BAA0B;IACzC,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,uBAAuB,EAAE,GAAG,SAAS,EACzD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,uBAAuB,GAAG,SAAS,CAOrC;AAmHD,wBAAsB,yBAAyB,CAAC,CAAC,EAC/C,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,qBAAqB,GAAG,IAAI,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAuW/B"}
|