@tangle-network/agent-runtime 0.240.0 → 0.246.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/{activation-q224yRQK.js → activation-C6d-NTWk.js} +3 -3
- package/dist/{activation-q224yRQK.js.map → activation-C6d-NTWk.js.map} +1 -1
- package/dist/{activation-CtkpoWet.d.ts → activation-Df-ae5Uq.d.ts} +115 -5
- package/dist/agent.d.ts +2 -2
- package/dist/agent.js +2 -2
- package/dist/candidate-execution/index.js +7 -7
- package/dist/candidate-execution/index.js.map +1 -1
- package/dist/{coordination-driver-CMprWr0k.js → coordination-driver-De8pyM57.js} +18 -10
- package/dist/coordination-driver-De8pyM57.js.map +1 -0
- package/dist/{delegate-kwBecu_w.js → delegate-DE6hNhbD.js} +2 -2
- package/dist/{delegate-kwBecu_w.js.map → delegate-DE6hNhbD.js.map} +1 -1
- package/dist/{durable-file-D24y9zg7.js → durable-file-DWQA4ooo.js} +2 -2
- package/dist/{durable-file-D24y9zg7.js.map → durable-file-DWQA4ooo.js.map} +1 -1
- package/dist/durable.d.ts +2 -2
- package/dist/durable.js +3 -3
- package/dist/{graph-Bke7I2gs.js → graph-s57f-VCR.js} +3 -3
- package/dist/{graph-Bke7I2gs.js.map → graph-s57f-VCR.js.map} +1 -1
- package/dist/{improvement-cycle-BpSVwIJw.js → improvement-cycle-BE3gIJwL.js} +458 -60
- package/dist/improvement-cycle-BE3gIJwL.js.map +1 -0
- package/dist/{index-CbZaoYbD.d.ts → index-CAG31NtK.d.ts} +7 -7
- package/dist/index.d.ts +11 -8
- package/dist/index.js +27 -17
- package/dist/index.js.map +1 -1
- package/dist/intelligence.d.ts +3 -3
- package/dist/intelligence.js +9 -6
- package/dist/intelligence.js.map +1 -1
- package/dist/kernel.d.ts +3 -3
- package/dist/kernel.js +9 -9
- package/dist/{loop-runner-bin-BUkkPt10.d.ts → loop-runner-bin-B_oSVrE7.d.ts} +3 -3
- package/dist/{loop-runner-bin-DU8XqsGN.js → loop-runner-bin-Bp8Mih20.js} +3 -3
- package/dist/{loop-runner-bin-DU8XqsGN.js.map → loop-runner-bin-Bp8Mih20.js.map} +1 -1
- package/dist/loop-runner-bin.d.ts +1 -1
- package/dist/loop-runner-bin.js +1 -1
- package/dist/mcp/bin.js +3 -3
- package/dist/mcp/index.d.ts +5 -5
- package/dist/mcp/index.js +4 -4
- package/dist/{openai-tools-BI1ofIfL.d.ts → openai-tools-B1GMKDjW.d.ts} +2 -2
- package/dist/{prepare-Dc30WRB0.js → prepare-CibQrhfi.js} +28 -28
- package/dist/prepare-CibQrhfi.js.map +1 -0
- package/dist/profiles.d.ts +2 -2
- package/dist/{protected-model-port-D5gDcnrH.js → protected-model-port-Dhdi5mDl.js} +3 -3
- package/dist/{protected-model-port-D5gDcnrH.js.map → protected-model-port-Dhdi5mDl.js.map} +1 -1
- package/dist/{protected-redaction-wGo44k2K.js → protected-redaction-Fn1ETfJ-.js} +6 -6
- package/dist/protected-redaction-Fn1ETfJ-.js.map +1 -0
- package/dist/{provision-supervisor-DoSrqsM7.js → provision-supervisor-D0X9KUv-.js} +5 -5
- package/dist/{provision-supervisor-DoSrqsM7.js.map → provision-supervisor-D0X9KUv-.js.map} +1 -1
- package/dist/{run-layout-hZREkcfu.js → run-layout-B8-Gqhpg.js} +2 -2
- package/dist/{run-layout-hZREkcfu.js.map → run-layout-B8-Gqhpg.js.map} +1 -1
- package/dist/{runtime-CmuAQsWI.js → runtime-CHbVv5UI.js} +16 -13
- package/dist/{runtime-CmuAQsWI.js.map → runtime-CHbVv5UI.js.map} +1 -1
- package/dist/{server-shkdLqls.js → server-DwsC_FyV.js} +3 -3
- package/dist/{server-shkdLqls.js.map → server-DwsC_FyV.js.map} +1 -1
- package/dist/{stream-agent-turn-DayHmtvw.d.ts → stream-agent-turn-DQ-W8mHf.d.ts} +2 -2
- package/dist/{structural-rollout-CW67upUV.js → structural-rollout-DasmuuUp.js} +2 -2
- package/dist/{structural-rollout-CW67upUV.js.map → structural-rollout-DasmuuUp.js.map} +1 -1
- package/dist/{substrate-iQOskmQ_.d.ts → substrate-DJOnuoa_.d.ts} +2 -2
- package/dist/{supervise-DzoCYAe-.js → supervise-o6CzD2Rt.js} +142 -35
- package/dist/supervise-o6CzD2Rt.js.map +1 -0
- package/dist/{supervisor-CFSPj8rx.js → supervisor-tGq-TPIv.js} +161 -103
- package/dist/supervisor-tGq-TPIv.js.map +1 -0
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +398 -398
- package/dist/{top-app-CMMd8DgR.js → top-app-DL-sjv7K.js} +2 -2
- package/dist/{top-app-CMMd8DgR.js.map → top-app-DL-sjv7K.js.map} +1 -1
- package/dist/tui/bin.js +1 -1
- package/dist/tui/index.d.ts +1 -1
- package/dist/tui/index.js +2 -2
- package/dist/{types-CEma9LKR.d.ts → types-BoEzH8V6.d.ts} +3 -2
- package/dist/{workspace-archive-CBX0hwL_.js → workspace-archive-DSRT4Tro.js} +8 -8
- package/dist/workspace-archive-DSRT4Tro.js.map +1 -0
- package/package.json +6 -6
- package/dist/coordination-driver-CMprWr0k.js.map +0 -1
- package/dist/improvement-cycle-BpSVwIJw.js.map +0 -1
- package/dist/prepare-Dc30WRB0.js.map +0 -1
- package/dist/protected-redaction-wGo44k2K.js.map +0 -1
- package/dist/supervise-DzoCYAe-.js.map +0 -1
- package/dist/supervisor-CFSPj8rx.js.map +0 -1
- package/dist/workspace-archive-CBX0hwL_.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protected-redaction-wGo44k2K.js","names":["canonicalCandidateDigest"],"sources":["../src/candidate-execution/digest.ts","../src/candidate-execution/protected-redaction.ts"],"sourcesContent":["import { createHash } from 'node:crypto'\nimport {\n type AgentCandidateEmbeddedArtifact,\n canonicalCandidateBytes,\n type Sha256Digest,\n} from '@tangle-network/agent-interface'\n\nimport type { CanonicalCandidateDocument } from './types'\n\nexport { canonicalCandidateBytes }\n\n/** Use native hashing for workspace archives. */\nexport function sha256Bytes(bytes: Uint8Array): Sha256Digest {\n return `sha256:${createHash('sha256').update(bytes).digest('hex')}`\n}\n\nexport function canonicalCandidateDigest(value: unknown): Sha256Digest {\n return sha256Bytes(canonicalCandidateBytes(value))\n}\n\n/** Returns a detached, deeply frozen JSON value with canonical number normalization. */\nexport function immutableCandidateValue<T>(value: T): T {\n return deepFreezeCandidate(\n JSON.parse(Buffer.from(canonicalCandidateBytes(value)).toString('utf8')) as T,\n )\n}\n\nexport function canonicalCandidateDocument<T extends { digest: Sha256Digest }>(\n valueWithoutDigest: Omit<T, 'digest'>,\n): CanonicalCandidateDocument<T> {\n const bytes = canonicalCandidateBytes(valueWithoutDigest)\n const digest = sha256Bytes(bytes)\n const value = deepFreezeCandidate({\n ...JSON.parse(Buffer.from(bytes).toString('utf8')),\n digest,\n }) as T\n return Object.freeze({\n value,\n get bytes(): Uint8Array {\n return Uint8Array.from(bytes)\n },\n digest,\n })\n}\n\nexport function verifyCanonicalCandidateDocument<T extends { digest: Sha256Digest }>(\n value: T,\n label: string,\n): T {\n if (canonicalCandidateDigest(omitTopLevelDigest(value)) !== value.digest) {\n throw new Error(`${label} digest does not match`)\n }\n return immutableCandidateValue(value)\n}\n\nexport function embeddedCandidateArtifact(bytes: Uint8Array): AgentCandidateEmbeddedArtifact {\n return {\n encoding: 'base64',\n content: Buffer.from(bytes).toString('base64'),\n sha256: sha256Bytes(bytes),\n byteLength: bytes.byteLength,\n }\n}\n\nexport function omitTopLevelDigest<T extends { digest: Sha256Digest }>(\n value: T,\n): Omit<T, 'digest'> {\n const { digest: _digest, ...rest } = value\n return rest\n}\n\nexport function deepFreezeCandidate<T>(value: T, seen = new Set<object>()): T {\n if (\n value === null ||\n typeof value !== 'object' ||\n ArrayBuffer.isView(value) ||\n seen.has(value as object)\n ) {\n return value\n }\n seen.add(value as object)\n for (const child of Object.values(value as Record<string, unknown>)) {\n deepFreezeCandidate(child, seen)\n }\n return Object.freeze(value)\n}\n","import { createHmac, randomBytes } from 'node:crypto'\n\nimport {\n DEFAULT_REDACTION_RULES,\n REDACTION_VERSION,\n type RedactionRule,\n redactString,\n} from '@tangle-network/agent-eval'\n\nexport interface ProtectedRedactionReport {\n version: string\n redactionCount: number\n byRule: Record<string, number>\n}\n\nexport interface ProtectedTraceIdentity {\n readonly runId: string\n readonly tags: Readonly<Record<string, string>>\n}\n\nexport interface ProtectedRecordRedactor {\n record<T>(value: T): T\n query<T>(value: T): T\n identifier(value: string): string\n traceIdentity(trace: ProtectedTraceIdentity): ProtectedTraceIdentity\n report(): ProtectedRedactionReport\n}\n\n/** Create one execution-local namespace for identifiers changed by redaction. */\nexport function createProtectedRecordRedactor(\n protectedValues: readonly string[],\n): ProtectedRecordRedactor {\n const identityKey = randomBytes(32)\n const aggregate: ProtectedRedactionReport = {\n version: REDACTION_VERSION,\n redactionCount: 0,\n byRule: {},\n }\n\n const mergeReport = (report: ProtectedRedactionReport): void => {\n aggregate.version = report.version\n aggregate.redactionCount += report.redactionCount\n for (const [rule, count] of Object.entries(report.byRule)) {\n aggregate.byRule[rule] = (aggregate.byRule[rule] ?? 0) + count\n }\n }\n\n const redactScalar = <T>(value: T, record: boolean): T => {\n const redacted = redactProtectedValue(value, protectedValues)\n if (record) mergeReport(redacted.report)\n return redacted.value\n }\n\n const identifier = (value: string, record: boolean): string => {\n const redacted = redactScalar(value, record)\n if (redacted === value) return value\n const digest = createHmac('sha256', identityKey).update(value).digest('hex')\n return `${redacted}:hmac-sha256:${digest}`\n }\n\n const transform = <T>(value: T, record: boolean): T => {\n const transformed = transformProtectedRecord(\n value,\n undefined,\n record,\n redactScalar,\n identifier,\n ) as T\n assertNoProtectedEvidence(transformed, protectedValues)\n return transformed\n }\n\n return Object.freeze({\n record: <T>(value: T): T => transform(value, true),\n query: <T>(value: T): T => transform(value, false),\n identifier: (value: string): string => identifier(value, false),\n traceIdentity: (trace: ProtectedTraceIdentity): ProtectedTraceIdentity =>\n transform(trace, false),\n report: (): ProtectedRedactionReport => ({\n version: aggregate.version,\n redactionCount: aggregate.redactionCount,\n byRule: { ...aggregate.byRule },\n }),\n })\n}\n\n/** Redact protected values at the first persistence boundary, including object keys and bytes. */\nexport function redactProtectedValue<T>(\n value: T,\n protectedValues: readonly string[],\n): { value: T; report: ProtectedRedactionReport } {\n const report: ProtectedRedactionReport = {\n version: REDACTION_VERSION,\n redactionCount: 0,\n byRule: {},\n }\n const rules = protectedRedactionRules(protectedValues)\n const redacted = redactNode(value, protectedValues, rules, report) as T\n assertNoProtectedEvidence(redacted, protectedValues)\n return { value: redacted, report }\n}\n\nexport function redactProtectedReason(reason: string, protectedValues: readonly string[]): string {\n try {\n return redactProtectedValue(reason, protectedValues).value\n } catch {\n return 'candidate execution failed with a protected error'\n }\n}\n\nexport function assertNoProtectedEvidence(\n value: unknown,\n protectedValues: readonly string[],\n): void {\n if (value instanceof Uint8Array) {\n assertNoProtectedBytes(value, protectedValues)\n return\n }\n if (typeof value === 'string') {\n for (const protectedValue of protectedValueVariants(protectedValues)) {\n if (value.includes(protectedValue)) {\n throw new Error('protected value survived candidate evidence redaction')\n }\n }\n if (decodedBase64ContainsProtectedValue(value, protectedValues)) {\n throw new Error('base64 protected value survived candidate evidence redaction')\n }\n return\n }\n if (Array.isArray(value)) {\n for (const entry of value) assertNoProtectedEvidence(entry, protectedValues)\n return\n }\n if (value && typeof value === 'object') {\n for (const [key, entry] of Object.entries(value)) {\n assertNoProtectedEvidence(key, protectedValues)\n assertNoProtectedEvidence(entry, protectedValues)\n }\n }\n}\n\nexport function assertNoProtectedBytes(\n bytes: Uint8Array,\n protectedValues: readonly string[],\n): void {\n if (containsProtectedBytes(bytes, protectedValues)) {\n throw new Error('protected value survived candidate evidence byte redaction')\n }\n}\n\nfunction redactNode(\n value: unknown,\n protectedValues: readonly string[],\n rules: readonly RedactionRule[],\n report: ProtectedRedactionReport,\n): unknown {\n if (value instanceof Uint8Array) {\n if (containsProtectedBytes(value, protectedValues)) {\n recordRedaction(report, 'candidate-access-binary', 1)\n return Uint8Array.from(Buffer.from('[redacted:candidate-access-binary]', 'utf8'))\n }\n return Uint8Array.from(value)\n }\n if (typeof value === 'string') {\n if (decodedBase64ContainsProtectedValue(value, protectedValues)) {\n recordRedaction(report, 'candidate-access-binary', 1)\n return '[redacted:candidate-access-binary]'\n }\n const redacted = redactString(value, [...rules])\n for (const [rule, count] of Object.entries(redacted.report.byRule)) {\n recordRedaction(report, rule, count)\n }\n return redacted.output\n }\n if (Array.isArray(value)) {\n return value.map((entry) => redactNode(entry, protectedValues, rules, report))\n }\n if (value && typeof value === 'object') {\n const entries: Array<[string, unknown]> = []\n const seenKeys = new Set<string>()\n for (const [key, entry] of Object.entries(value)) {\n const redactedKey = redactNode(key, protectedValues, rules, report)\n if (typeof redactedKey !== 'string' || seenKeys.has(redactedKey)) {\n throw new Error('protected evidence redaction produced an ambiguous object key')\n }\n seenKeys.add(redactedKey)\n entries.push([redactedKey, redactNode(entry, protectedValues, rules, report)])\n }\n return Object.fromEntries(entries)\n }\n return value\n}\n\nfunction transformProtectedRecord(\n value: unknown,\n fieldName: string | undefined,\n record: boolean,\n redactScalar: <T>(value: T, record: boolean) => T,\n redactIdentifier: (value: string, record: boolean) => string,\n): unknown {\n if (value instanceof Uint8Array) return redactScalar(value, record)\n if (typeof value === 'string') {\n return fieldName && isIdentifierFieldName(fieldName)\n ? redactIdentifier(value, record)\n : redactScalar(value, record)\n }\n if (Array.isArray(value)) {\n return value.map((entry) =>\n transformProtectedRecord(entry, fieldName, record, redactScalar, redactIdentifier),\n )\n }\n if (!value || typeof value !== 'object') return value\n\n if (fieldName === 'tags') {\n return transformTagMap(value, record, redactScalar, redactIdentifier)\n }\n if (fieldName === 'tag') {\n return transformTagFilter(value, record, redactScalar, redactIdentifier)\n }\n\n const entries: Array<[string, unknown]> = []\n const seenKeys = new Set<string>()\n for (const [key, entry] of Object.entries(value)) {\n const redactedKey = redactScalar(key, record)\n if (seenKeys.has(redactedKey)) {\n throw new Error('protected evidence redaction produced an ambiguous object key')\n }\n seenKeys.add(redactedKey)\n entries.push([\n redactedKey,\n transformProtectedRecord(entry, key, record, redactScalar, redactIdentifier),\n ])\n }\n return Object.fromEntries(entries)\n}\n\nfunction transformTagMap(\n value: object,\n record: boolean,\n redactScalar: <T>(value: T, record: boolean) => T,\n redactIdentifier: (value: string, record: boolean) => string,\n): Record<string, unknown> {\n const entries: Array<[string, unknown]> = []\n const seenKeys = new Set<string>()\n for (const [key, entry] of Object.entries(value)) {\n const redactedKey = redactIdentifier(key, record)\n if (seenKeys.has(redactedKey)) {\n throw new Error('protected evidence redaction produced an ambiguous trace tag')\n }\n seenKeys.add(redactedKey)\n entries.push([\n redactedKey,\n typeof entry === 'string'\n ? redactIdentifier(entry, record)\n : transformProtectedRecord(entry, key, record, redactScalar, redactIdentifier),\n ])\n }\n return Object.fromEntries(entries)\n}\n\nfunction transformTagFilter(\n value: object,\n record: boolean,\n redactScalar: <T>(value: T, record: boolean) => T,\n redactIdentifier: (value: string, record: boolean) => string,\n): Record<string, unknown> {\n const output: Record<string, unknown> = {}\n for (const [key, entry] of Object.entries(value)) {\n const redactedKey = redactScalar(key, record)\n output[redactedKey] =\n (key === 'key' || key === 'value') && typeof entry === 'string'\n ? redactIdentifier(entry, record)\n : transformProtectedRecord(entry, key, record, redactScalar, redactIdentifier)\n }\n return output\n}\n\nfunction isIdentifierFieldName(name: string): boolean {\n return /ids?$/i.test(name)\n}\n\nfunction protectedRedactionRules(protectedValues: readonly string[]): RedactionRule[] {\n const exactRules = protectedValueVariants(protectedValues)\n .sort((left, right) => right.length - left.length || left.localeCompare(right))\n .map((value, index) => ({\n id: `candidate-access-${index}`,\n pattern: new RegExp(escapeRegularExpression(value), 'g'),\n replacement: '[redacted:candidate-access]',\n }))\n return [...exactRules, ...DEFAULT_REDACTION_RULES]\n}\n\nfunction recordRedaction(report: ProtectedRedactionReport, rule: string, count: number): void {\n if (count <= 0) return\n report.redactionCount += count\n report.byRule[rule] = (report.byRule[rule] ?? 0) + count\n}\n\nfunction containsProtectedBytes(bytes: Uint8Array, protectedValues: readonly string[]): boolean {\n const source = Buffer.from(bytes)\n return protectedValueVariants(protectedValues).some((value) =>\n source.includes(Buffer.from(value, 'utf8')),\n )\n}\n\nfunction decodedBase64ContainsProtectedValue(\n value: string,\n protectedValues: readonly string[],\n): boolean {\n if (value.length < 4 || value.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(value)) {\n return false\n }\n try {\n return containsProtectedBytes(Buffer.from(value, 'base64'), protectedValues)\n } catch {\n return false\n }\n}\n\nfunction protectedValueVariants(protectedValues: readonly string[]): string[] {\n const variants = new Set<string>()\n for (const value of normalizedProtectedValues(protectedValues)) {\n variants.add(value)\n variants.add(Buffer.from(value, 'utf8').toString('base64'))\n variants.add(Buffer.from(value, 'utf8').toString('base64url'))\n variants.add(encodeURIComponent(value))\n }\n return [...variants]\n}\n\nfunction normalizedProtectedValues(values: readonly string[]): string[] {\n return [...new Set(values.filter((value) => value.length > 0))]\n}\n\nfunction escapeRegularExpression(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n}\n"],"mappings":"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"}
|