@xenosystem/agent-sdk 0.10.37 → 0.10.38

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.
@@ -1 +1 @@
1
- {"inputs":{"src/observability/telemetry.ts":{"bytes":7271,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true}],"format":"esm"},"src/observability/index.ts":{"bytes":32,"imports":[{"path":"src/observability/telemetry.ts","kind":"import-statement","original":"./telemetry.js"}],"format":"esm"},"src/utils/context-overflow-phrases.ts":{"bytes":2266,"imports":[],"format":"esm"},"src/providers/provider-error-redaction.ts":{"bytes":9369,"imports":[],"format":"esm"},"src/providers/provider-errors.ts":{"bytes":19820,"imports":[{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/utils/context-overflow-phrases.ts","kind":"import-statement","original":"../utils/context-overflow-phrases.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/providers/legacy-chat-stream.ts":{"bytes":5039,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/config/models.ts":{"bytes":19498,"imports":[{"path":"src/utils/request-context.ts","kind":"import-statement","original":"../utils/request-context.js"}],"format":"esm"},"src/core/llm-provider.ts":{"bytes":14191,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":21175,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/legacy-chat-stream.ts","kind":"import-statement","original":"./legacy-chat-stream.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"},{"path":"src/config/models.ts","kind":"import-statement","original":"../config/models.js"},{"path":"src/core/llm-provider.ts","kind":"import-statement","original":"../core/llm-provider.js"}],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/providers/endpoint-policy.ts":{"bytes":6439,"imports":[{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/pinned-provider-dispatcher.ts":{"bytes":4419,"imports":[{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"}],"format":"esm"},"src/providers/bounded-provider-transport.ts":{"bytes":15554,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/pinned-provider-dispatcher.ts","kind":"import-statement","original":"./pinned-provider-dispatcher.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/json-schema.ts":{"bytes":43478,"imports":[{"path":"node:net","kind":"import-statement","external":true}],"format":"esm"},"src/providers/tool-schema-projection.ts":{"bytes":13846,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/json-schema.ts","kind":"import-statement","original":"../utils/json-schema.js"}],"format":"esm"},"src/providers/tool-name-codec.ts":{"bytes":4437,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":11467,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/acknowledgement.ts","kind":"import-statement","original":"../utils/acknowledgement.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/direct-provider.ts":{"bytes":78374,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"../utils/tool-result-content.js"},{"path":"src/providers/bounded-provider-transport.ts","kind":"import-statement","original":"./bounded-provider-transport.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/providers/catalog.ts":{"bytes":33443,"imports":[{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/providers/file-connection-store.ts":{"bytes":8338,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"}],"format":"esm"},"src/providers/quota-store.ts":{"bytes":15760,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/providers/index.ts":{"bytes":1868,"imports":[{"path":"src/providers/DualLLMProvider.ts","kind":"import-statement","original":"./DualLLMProvider.js"},{"path":"src/providers/direct-provider.ts","kind":"import-statement","original":"./direct-provider.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"},{"path":"src/providers/file-connection-store.ts","kind":"import-statement","original":"./file-connection-store.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"},{"path":"src/providers/quota-store.ts","kind":"import-statement","original":"./quota-store.js"}],"format":"esm"}},"outputs":{"dist/providers/index.cjs":{"imports":[{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:perf_hooks","kind":"require-call","external":true},{"path":"node:dns/promises","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:http","kind":"require-call","external":true},{"path":"node:https","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:events","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:os","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/providers/index.ts","inputs":{"src/providers/index.ts":{"bytesInOutput":1109},"src/observability/telemetry.ts":{"bytesInOutput":1600},"src/observability/index.ts":{"bytesInOutput":0},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-error-redaction.ts":{"bytesInOutput":3342},"src/providers/provider-errors.ts":{"bytesInOutput":7209},"src/providers/legacy-chat-stream.ts":{"bytesInOutput":1432},"src/config/models.ts":{"bytesInOutput":56},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":6184},"src/providers/direct-provider.ts":{"bytesInOutput":36664},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6811},"src/providers/endpoint-policy.ts":{"bytesInOutput":3344},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1676},"src/providers/tool-schema-projection.ts":{"bytesInOutput":6687},"src/utils/json-schema.ts":{"bytesInOutput":19836},"src/providers/tool-name-codec.ts":{"bytesInOutput":1044},"src/providers/quota.ts":{"bytesInOutput":4120},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":16055},"src/providers/file-connection-store.ts":{"bytesInOutput":3784},"src/utils/fs.ts":{"bytesInOutput":319},"src/artifacts/hash.ts":{"bytesInOutput":564},"src/control-plane/lock.ts":{"bytesInOutput":1073},"src/providers/quota-store.ts":{"bytesInOutput":8105}},"bytes":134857}}}
1
+ {"inputs":{"src/observability/telemetry.ts":{"bytes":7271,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true}],"format":"esm"},"src/observability/index.ts":{"bytes":32,"imports":[{"path":"src/observability/telemetry.ts","kind":"import-statement","original":"./telemetry.js"}],"format":"esm"},"src/utils/context-overflow-phrases.ts":{"bytes":2266,"imports":[],"format":"esm"},"src/providers/provider-error-redaction.ts":{"bytes":9369,"imports":[],"format":"esm"},"src/providers/provider-errors.ts":{"bytes":19820,"imports":[{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/utils/context-overflow-phrases.ts","kind":"import-statement","original":"../utils/context-overflow-phrases.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/providers/legacy-chat-stream.ts":{"bytes":5039,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/config/models.ts":{"bytes":21106,"imports":[{"path":"src/utils/request-context.ts","kind":"import-statement","original":"../utils/request-context.js"}],"format":"esm"},"src/core/llm-provider.ts":{"bytes":14191,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":21175,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/legacy-chat-stream.ts","kind":"import-statement","original":"./legacy-chat-stream.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"},{"path":"src/config/models.ts","kind":"import-statement","original":"../config/models.js"},{"path":"src/core/llm-provider.ts","kind":"import-statement","original":"../core/llm-provider.js"}],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/providers/endpoint-policy.ts":{"bytes":6439,"imports":[{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/pinned-provider-dispatcher.ts":{"bytes":4419,"imports":[{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"}],"format":"esm"},"src/providers/bounded-provider-transport.ts":{"bytes":15554,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/pinned-provider-dispatcher.ts","kind":"import-statement","original":"./pinned-provider-dispatcher.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/json-schema.ts":{"bytes":43478,"imports":[{"path":"node:net","kind":"import-statement","external":true}],"format":"esm"},"src/providers/tool-schema-projection.ts":{"bytes":13846,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/json-schema.ts","kind":"import-statement","original":"../utils/json-schema.js"}],"format":"esm"},"src/providers/tool-name-codec.ts":{"bytes":4437,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":11467,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/acknowledgement.ts","kind":"import-statement","original":"../utils/acknowledgement.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/direct-provider.ts":{"bytes":78374,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"../utils/tool-result-content.js"},{"path":"src/providers/bounded-provider-transport.ts","kind":"import-statement","original":"./bounded-provider-transport.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/providers/catalog.ts":{"bytes":33443,"imports":[{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/providers/file-connection-store.ts":{"bytes":8338,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"}],"format":"esm"},"src/providers/quota-store.ts":{"bytes":15760,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/providers/index.ts":{"bytes":1868,"imports":[{"path":"src/providers/DualLLMProvider.ts","kind":"import-statement","original":"./DualLLMProvider.js"},{"path":"src/providers/direct-provider.ts","kind":"import-statement","original":"./direct-provider.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"},{"path":"src/providers/file-connection-store.ts","kind":"import-statement","original":"./file-connection-store.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"},{"path":"src/providers/quota-store.ts","kind":"import-statement","original":"./quota-store.js"}],"format":"esm"}},"outputs":{"dist/providers/index.cjs":{"imports":[{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:perf_hooks","kind":"require-call","external":true},{"path":"node:dns/promises","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:http","kind":"require-call","external":true},{"path":"node:https","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:events","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:net","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:fs","kind":"require-call","external":true},{"path":"node:os","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true},{"path":"node:crypto","kind":"require-call","external":true},{"path":"node:fs/promises","kind":"require-call","external":true},{"path":"node:path","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/providers/index.ts","inputs":{"src/providers/index.ts":{"bytesInOutput":1109},"src/observability/telemetry.ts":{"bytesInOutput":1600},"src/observability/index.ts":{"bytesInOutput":0},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-error-redaction.ts":{"bytesInOutput":3342},"src/providers/provider-errors.ts":{"bytesInOutput":7209},"src/providers/legacy-chat-stream.ts":{"bytesInOutput":1432},"src/config/models.ts":{"bytesInOutput":56},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":6184},"src/providers/direct-provider.ts":{"bytesInOutput":36664},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6811},"src/providers/endpoint-policy.ts":{"bytesInOutput":3344},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1676},"src/providers/tool-schema-projection.ts":{"bytesInOutput":6687},"src/utils/json-schema.ts":{"bytesInOutput":19836},"src/providers/tool-name-codec.ts":{"bytesInOutput":1044},"src/providers/quota.ts":{"bytesInOutput":4120},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":16055},"src/providers/file-connection-store.ts":{"bytesInOutput":3784},"src/utils/fs.ts":{"bytesInOutput":319},"src/artifacts/hash.ts":{"bytesInOutput":564},"src/control-plane/lock.ts":{"bytesInOutput":1073},"src/providers/quota-store.ts":{"bytesInOutput":8105}},"bytes":134857}}}
@@ -1 +1 @@
1
- {"inputs":{"src/observability/telemetry.ts":{"bytes":7271,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true}],"format":"esm"},"src/observability/index.ts":{"bytes":32,"imports":[{"path":"src/observability/telemetry.ts","kind":"import-statement","original":"./telemetry.js"}],"format":"esm"},"src/utils/context-overflow-phrases.ts":{"bytes":2266,"imports":[],"format":"esm"},"src/providers/provider-error-redaction.ts":{"bytes":9369,"imports":[],"format":"esm"},"src/providers/provider-errors.ts":{"bytes":19820,"imports":[{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/utils/context-overflow-phrases.ts","kind":"import-statement","original":"../utils/context-overflow-phrases.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/providers/legacy-chat-stream.ts":{"bytes":5039,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/config/models.ts":{"bytes":19498,"imports":[{"path":"src/utils/request-context.ts","kind":"import-statement","original":"../utils/request-context.js"}],"format":"esm"},"src/core/llm-provider.ts":{"bytes":14191,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":21175,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/legacy-chat-stream.ts","kind":"import-statement","original":"./legacy-chat-stream.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"},{"path":"src/config/models.ts","kind":"import-statement","original":"../config/models.js"},{"path":"src/core/llm-provider.ts","kind":"import-statement","original":"../core/llm-provider.js"}],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/providers/endpoint-policy.ts":{"bytes":6439,"imports":[{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/pinned-provider-dispatcher.ts":{"bytes":4419,"imports":[{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"}],"format":"esm"},"src/providers/bounded-provider-transport.ts":{"bytes":15554,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/pinned-provider-dispatcher.ts","kind":"import-statement","original":"./pinned-provider-dispatcher.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/json-schema.ts":{"bytes":43478,"imports":[{"path":"node:net","kind":"import-statement","external":true}],"format":"esm"},"src/providers/tool-schema-projection.ts":{"bytes":13846,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/json-schema.ts","kind":"import-statement","original":"../utils/json-schema.js"}],"format":"esm"},"src/providers/tool-name-codec.ts":{"bytes":4437,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":11467,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/acknowledgement.ts","kind":"import-statement","original":"../utils/acknowledgement.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/direct-provider.ts":{"bytes":78374,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"../utils/tool-result-content.js"},{"path":"src/providers/bounded-provider-transport.ts","kind":"import-statement","original":"./bounded-provider-transport.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/providers/catalog.ts":{"bytes":33443,"imports":[{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/providers/file-connection-store.ts":{"bytes":8338,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"}],"format":"esm"},"src/providers/quota-store.ts":{"bytes":15760,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/providers/index.ts":{"bytes":1868,"imports":[{"path":"src/providers/DualLLMProvider.ts","kind":"import-statement","original":"./DualLLMProvider.js"},{"path":"src/providers/direct-provider.ts","kind":"import-statement","original":"./direct-provider.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"},{"path":"src/providers/file-connection-store.ts","kind":"import-statement","original":"./file-connection-store.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"},{"path":"src/providers/quota-store.ts","kind":"import-statement","original":"./quota-store.js"}],"format":"esm"}},"outputs":{"dist/providers/index.js":{"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"exports":["BUILT_IN_XENO_PROVIDER_PRESETS","DualLLMProvider","FileQuotaAuthority","FileXenoProviderConnectionStore","PROVIDER_TOOL_NAME_PATTERN","ProviderError","QuotaAcknowledgementError","QuotaError","ToolSchemaProjectionError","XENO_PROVIDER_CATALOG_SCHEMA_VERSION","XENO_PROVIDER_CONNECTION_STORE_SCHEMA_VERSION","XenoProviderCatalog","assertDirectEndpointResolution","classifyProviderHttpError","classifyProviderStreamError","createDirectProvider","createOllamaNativeProvider","createQuotaGovernedProvider","createToolNameCodec","directProviderConfigFromConnection","isQuotaControlError","normalizeQuotaScope","parseRetryAfter","probeLocalToolGrammarSupport","probeXenoProvider","projectToolDefinitionsForProvider","projectToolSchemaForProvider","providerCapabilityError","providerProtocolError","quotaAncestors","quotaInteger","quotaScopeKey","quotaText","selectXenoProviderRoute","validateDirectEndpoint"],"entryPoint":"src/providers/index.ts","inputs":{"src/observability/telemetry.ts":{"bytesInOutput":1600},"src/observability/index.ts":{"bytesInOutput":0},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-error-redaction.ts":{"bytesInOutput":3342},"src/providers/provider-errors.ts":{"bytesInOutput":7209},"src/providers/legacy-chat-stream.ts":{"bytesInOutput":1432},"src/config/models.ts":{"bytesInOutput":56},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":6184},"src/providers/index.ts":{"bytesInOutput":0},"src/providers/direct-provider.ts":{"bytesInOutput":36631},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6788},"src/providers/endpoint-policy.ts":{"bytesInOutput":3317},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1676},"src/providers/tool-schema-projection.ts":{"bytesInOutput":6685},"src/utils/json-schema.ts":{"bytesInOutput":19808},"src/providers/tool-name-codec.ts":{"bytesInOutput":1046},"src/providers/quota.ts":{"bytesInOutput":4102},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":16055},"src/providers/file-connection-store.ts":{"bytesInOutput":3774},"src/utils/fs.ts":{"bytesInOutput":314},"src/artifacts/hash.ts":{"bytesInOutput":564},"src/control-plane/lock.ts":{"bytesInOutput":1054},"src/providers/quota-store.ts":{"bytesInOutput":8090}},"bytes":133166}}}
1
+ {"inputs":{"src/observability/telemetry.ts":{"bytes":7271,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true}],"format":"esm"},"src/observability/index.ts":{"bytes":32,"imports":[{"path":"src/observability/telemetry.ts","kind":"import-statement","original":"./telemetry.js"}],"format":"esm"},"src/utils/context-overflow-phrases.ts":{"bytes":2266,"imports":[],"format":"esm"},"src/providers/provider-error-redaction.ts":{"bytes":9369,"imports":[],"format":"esm"},"src/providers/provider-errors.ts":{"bytes":19820,"imports":[{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/utils/context-overflow-phrases.ts","kind":"import-statement","original":"../utils/context-overflow-phrases.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/providers/legacy-chat-stream.ts":{"bytes":5039,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/request-context.ts":{"bytes":3679,"imports":[],"format":"esm"},"src/config/models.ts":{"bytes":21106,"imports":[{"path":"src/utils/request-context.ts","kind":"import-statement","original":"../utils/request-context.js"}],"format":"esm"},"src/core/llm-provider.ts":{"bytes":14191,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":21175,"imports":[{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/legacy-chat-stream.ts","kind":"import-statement","original":"./legacy-chat-stream.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"},{"path":"src/config/models.ts","kind":"import-statement","original":"../config/models.js"},{"path":"src/core/llm-provider.ts","kind":"import-statement","original":"../core/llm-provider.js"}],"format":"esm"},"src/utils/tool-result-content.ts":{"bytes":4820,"imports":[],"format":"esm"},"src/providers/endpoint-policy.ts":{"bytes":6439,"imports":[{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/pinned-provider-dispatcher.ts":{"bytes":4419,"imports":[{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"}],"format":"esm"},"src/providers/bounded-provider-transport.ts":{"bytes":15554,"imports":[{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"src/observability/index.ts","kind":"import-statement","original":"../observability/index.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/pinned-provider-dispatcher.ts","kind":"import-statement","original":"./pinned-provider-dispatcher.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/provider-error-redaction.ts","kind":"import-statement","original":"./provider-error-redaction.js"}],"format":"esm"},"src/utils/json-schema.ts":{"bytes":43478,"imports":[{"path":"node:net","kind":"import-statement","external":true}],"format":"esm"},"src/providers/tool-schema-projection.ts":{"bytes":13846,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/json-schema.ts","kind":"import-statement","original":"../utils/json-schema.js"}],"format":"esm"},"src/providers/tool-name-codec.ts":{"bytes":4437,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":11467,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/acknowledgement.ts","kind":"import-statement","original":"../utils/acknowledgement.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"}],"format":"esm"},"src/providers/direct-provider.ts":{"bytes":78374,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/utils/tool-result-content.ts","kind":"import-statement","original":"../utils/tool-result-content.js"},{"path":"src/providers/bounded-provider-transport.ts","kind":"import-statement","original":"./bounded-provider-transport.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/providers/catalog.ts":{"bytes":33443,"imports":[{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":13746,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/control-plane/lock.ts":{"bytes":2496,"imports":[{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"format":"esm"},"src/providers/file-connection-store.ts":{"bytes":8338,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/utils/fs.ts","kind":"import-statement","original":"../utils/fs.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"}],"format":"esm"},"src/providers/quota-store.ts":{"bytes":15760,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"../artifacts/hash.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"}],"format":"esm"},"src/providers/index.ts":{"bytes":1868,"imports":[{"path":"src/providers/DualLLMProvider.ts","kind":"import-statement","original":"./DualLLMProvider.js"},{"path":"src/providers/direct-provider.ts","kind":"import-statement","original":"./direct-provider.js"},{"path":"src/providers/provider-errors.ts","kind":"import-statement","original":"./provider-errors.js"},{"path":"src/providers/endpoint-policy.ts","kind":"import-statement","original":"./endpoint-policy.js"},{"path":"src/providers/tool-schema-projection.ts","kind":"import-statement","original":"./tool-schema-projection.js"},{"path":"src/providers/tool-name-codec.ts","kind":"import-statement","original":"./tool-name-codec.js"},{"path":"src/providers/catalog.ts","kind":"import-statement","original":"./catalog.js"},{"path":"src/providers/file-connection-store.ts","kind":"import-statement","original":"./file-connection-store.js"},{"path":"src/providers/quota.ts","kind":"import-statement","original":"./quota.js"},{"path":"src/providers/quota-store.ts","kind":"import-statement","original":"./quota-store.js"}],"format":"esm"}},"outputs":{"dist/providers/index.js":{"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:perf_hooks","kind":"import-statement","external":true},{"path":"node:dns/promises","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:http","kind":"import-statement","external":true},{"path":"node:https","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:events","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:net","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:os","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true}],"exports":["BUILT_IN_XENO_PROVIDER_PRESETS","DualLLMProvider","FileQuotaAuthority","FileXenoProviderConnectionStore","PROVIDER_TOOL_NAME_PATTERN","ProviderError","QuotaAcknowledgementError","QuotaError","ToolSchemaProjectionError","XENO_PROVIDER_CATALOG_SCHEMA_VERSION","XENO_PROVIDER_CONNECTION_STORE_SCHEMA_VERSION","XenoProviderCatalog","assertDirectEndpointResolution","classifyProviderHttpError","classifyProviderStreamError","createDirectProvider","createOllamaNativeProvider","createQuotaGovernedProvider","createToolNameCodec","directProviderConfigFromConnection","isQuotaControlError","normalizeQuotaScope","parseRetryAfter","probeLocalToolGrammarSupport","probeXenoProvider","projectToolDefinitionsForProvider","projectToolSchemaForProvider","providerCapabilityError","providerProtocolError","quotaAncestors","quotaInteger","quotaScopeKey","quotaText","selectXenoProviderRoute","validateDirectEndpoint"],"entryPoint":"src/providers/index.ts","inputs":{"src/observability/telemetry.ts":{"bytesInOutput":1600},"src/observability/index.ts":{"bytesInOutput":0},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-error-redaction.ts":{"bytesInOutput":3342},"src/providers/provider-errors.ts":{"bytesInOutput":7209},"src/providers/legacy-chat-stream.ts":{"bytesInOutput":1432},"src/config/models.ts":{"bytesInOutput":56},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":6184},"src/providers/index.ts":{"bytesInOutput":0},"src/providers/direct-provider.ts":{"bytesInOutput":36631},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6788},"src/providers/endpoint-policy.ts":{"bytesInOutput":3317},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1676},"src/providers/tool-schema-projection.ts":{"bytesInOutput":6685},"src/utils/json-schema.ts":{"bytesInOutput":19808},"src/providers/tool-name-codec.ts":{"bytesInOutput":1046},"src/providers/quota.ts":{"bytesInOutput":4102},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":16055},"src/providers/file-connection-store.ts":{"bytesInOutput":3774},"src/utils/fs.ts":{"bytesInOutput":314},"src/artifacts/hash.ts":{"bytesInOutput":564},"src/control-plane/lock.ts":{"bytesInOutput":1054},"src/providers/quota-store.ts":{"bytesInOutput":8090}},"bytes":133166}}}
@@ -48,7 +48,7 @@ ${this.stringify(e.data)}
48
48
  `)+`
49
49
  `;await k(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await k(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await k(u,l)}catch(l){this.workspaceMirrorDisabled=!0,F("Transcript workspace mirror disabled",l)}}}async truncateAfterMessageCount(e){let t=await S(this.transcriptPath);if(!t)return;let r=ee(t),s=Math.max(0,e),i=0,o=[];for(let u of r){if(u.type==="user_message"||u.type==="assistant_message"){if(i>=s)break;i+=1}o.push(u)}let a=o.length>0?o.map(u=>JSON.stringify(u)).join(`
50
50
  `)+`
51
- `:"";await k(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await k(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await k(u,l)}catch(l){this.workspaceMirrorDisabled=!0,F("Transcript workspace mirror disabled",l)}}}getSequence(){return this.sequence}async initialize(){try{let e=await S(this.transcriptPath);if(!e){this.sequence=0;return}let t=ee(e);if(t.length===0){this.sequence=0;return}let r=t[t.length-1];this.sequence=r.sequence+1}catch(e){let t=e instanceof Error?e.message:String(e);F(`Transcript initialization warning: ${t}. Starting with empty transcript.`),this.sequence=0}}async flush(){await this.writeQueue}};var te=_(require("path"),1),mt=require("crypto"),ht=require("fs/promises");var tr={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function we(n){return tr[n]??n}var D=class{sessionDir;checkpointsDir;autoInterval;lastCheckpointMessageCount=0;constructor(e,t){this.sessionDir=e,this.checkpointsDir=te.join(e,"checkpoints"),this.autoInterval=t?.autoInterval??10}async initialize(){let e=await this.list();e.length>0&&(this.lastCheckpointMessageCount=e[0].messageCount)}async create(e){await N(this.checkpointsDir);let t=(0,mt.randomUUID)(),r={id:t,name:e.description,trigger:e.trigger,createdAt:new Date().toISOString(),messageCount:e.messages.length,tokenCount:this.estimateTokens(e.messages)},s={info:r,messages:e.messages},i=te.join(this.checkpointsDir,`${t}.json`);return await k(i,JSON.stringify(s,null,2)),this.lastCheckpointMessageCount=e.messages.length,r}async list(){let e=await it(this.checkpointsDir,/\.json$/),t=[];for(let r of e){let s=await S(r);if(s){let i=b(s,null);if(i){let o=await(0,ht.stat)(r);t.push({info:i.info,modifiedAtMs:o.mtimeMs})}}}return t.sort((r,s)=>new Date(s.info.createdAt).getTime()-new Date(r.info.createdAt).getTime()||s.modifiedAtMs-r.modifiedAtMs).map(({info:r})=>r)}async restore(e){let t=te.join(this.checkpointsDir,`${e}.json`),r;try{r=await S(t)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`Failed to read checkpoint ${e}: ${o}`)}if(!r)throw new Error(`Checkpoint not found: ${e} (path: ${t})`);let s=b(r,null);if(!s)throw new Error(`Invalid checkpoint data for ${e}: JSON parse failed`);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Invalid checkpoint data for ${e}: missing or invalid messages array`);if(!s.info)throw new Error(`Invalid checkpoint data for ${e}: missing info object`);return{messages:s.messages,info:s.info}}shouldAutoCheckpoint(e){return e-this.lastCheckpointMessageCount>=this.autoInterval}static isDangerousOperation(e,t){if(e=we(e),e==="Write")return!0;if(e==="Bash"){let s=t.command?.toLowerCase()||"";return["rm ","del ","git push","git reset","drop ","truncate"].some(o=>s.includes(o))}return!1}async delete(e){let t=te.join(this.checkpointsDir,`${e}.json`);await $(t)}estimateTokens(e){let t=0;for(let r of e)if(typeof r.content=="string")t+=Math.ceil(r.content.length/4);else if(Array.isArray(r.content))for(let s of r.content)"text"in s&&(t+=Math.ceil(s.text.length/4));return t}};var U=_(require("path"),1),Ue=_(require("os"),1),j=_(require("fs"),1);var rr=Symbol.for("@xenosystem/agent-sdk/shutdown-registry"),nr=globalThis,Fe=nr[rr]??={cleanups:new Set,exitHandlerRegistered:!1,signalHandlersInstalled:!1},je=Fe.cleanups;function sr(){for(let n of je)try{n()}catch{}}function wt(n){return je.add(n),!Fe.exitHandlerRegistered&&typeof process<"u"&&typeof process.on=="function"&&(Fe.exitHandlerRegistered=!0,process.on("exit",sr)),()=>{je.delete(n)}}var yt="0.10.37";var ir=1e4,or=6e4,ar="session.lock",cr="lock.json",Z=new Map;function He(n,e){return n!=null&&n.pid===e.pid&&n.hostname===e.hostname&&n.processStartedAt===e.processStartedAt&&n.acquiredAt===e.acquiredAt}function ur(){for(let[n,e]of Z)try{let t=b(j.readFileSync(n,"utf8"),null);He(t,e)&&j.unlinkSync(n)}catch{}Z.clear()}wt(ur);var W=class n{sessionDir;lockPath;legacyLockPath;sessionId;heartbeatTimer;acquiredOwner;constructor(e){this.sessionDir=e,this.lockPath=U.join(e,ar),this.legacyLockPath=U.join(e,cr),this.sessionId=U.basename(e)}async acquire(){let e=new Date().toISOString(),t={schemaVersion:1,name:`session:${this.sessionId}`,sessionId:this.sessionId,pid:process.pid,hostname:Ue.hostname(),processStartedAt:new Date(Date.now()-Math.floor(process.uptime()*1e3)).toISOString(),version:yt,acquiredAt:e,updatedAt:e,heartbeat:e},r=U.dirname(this.lockPath);await j.promises.mkdir(r,{recursive:!0});let s=await this.findExistingLockPath();if(s){if(!await this.isStalePath(s)){let o=await this.readLockAt(s);throw new Error(`Session ${this.sessionId} is already locked by PID ${o?.pid} on ${o?.hostname}`)}await $(s)}try{await j.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"}),this.acquiredOwner=t,Z.set(this.lockPath,t)}catch(i){if(i.code==="EEXIST"){if(!await this.isStalePath(this.lockPath)){let c=await this.readLockAt(this.lockPath);throw new Error(`Session ${this.sessionId} is already locked by PID ${c?.pid} on ${c?.hostname}`)}await $(this.lockPath);try{await j.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"})}catch(c){throw c.code==="EEXIST"?new Error(`Session ${this.sessionId} lock was acquired by another process during stale recovery`):c}this.acquiredOwner=t,Z.set(this.lockPath,t)}else throw i}}async release(){this.stopHeartbeat();let e=this.acquiredOwner;if(this.acquiredOwner=void 0,!e)return;Z.delete(this.lockPath);let t=await this.readLockAt(this.lockPath);He(t,e)&&await $(this.lockPath)}async isLocked(){let e=await this.findExistingLockPath();return e?!await this.isStalePath(e):!1}async isStale(){let e=await this.findExistingLockPath();return e?this.isStalePath(e):!1}async isStalePath(e){let t=await this.readLockAt(e);if(!t)return!1;if(t.hostname===Ue.hostname())try{return process.kill(t.pid,0),!1}catch(i){return i.code!=="EPERM"}let r=new Date(t.heartbeat).getTime();return Date.now()-r>or}startHeartbeat(e=ir){this.heartbeatTimer&&this.stopHeartbeat(),this.heartbeatTimer=setInterval(async()=>{try{await this.updateHeartbeat()}catch(t){let r=t instanceof Error?t.message:String(t);if(t?.code==="ENOENT"){q("SessionLock: Session directory removed, stopping heartbeat"),this.stopHeartbeat();return}q(`SessionLock: Failed to update heartbeat: ${r}`)}},e),this.heartbeatTimer.unref()}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0)}async updateHeartbeat(){let e=await this.readLockAt(this.lockPath),t=this.acquiredOwner;if(!(!e||!t)){if(!He(e,t)){this.acquiredOwner=void 0,Z.delete(this.lockPath),this.stopHeartbeat();return}e.heartbeat=new Date().toISOString(),e.updatedAt=e.heartbeat,await k(this.lockPath,JSON.stringify(e,null,2))}}async readLock(){let e=await this.findExistingLockPath();return e?this.readLockAt(e):null}async readLockAt(e){let t=await S(e);return t?b(t,null):null}async findExistingLockPath(){return await S(this.lockPath)?this.lockPath:await S(this.legacyLockPath)?this.legacyLockPath:null}static async cleanStale(e){let t=await pe(e),r=[];for(let s of t){let i=new n(s);if(await i.isStale()){let a=await i.findExistingLockPath();a&&await $(a),r.push(U.basename(s))}}return r}};var O=_(require("path"),1);var re=1;var A=_(require("path"),1);function lr(n,e){let t=A.resolve(n),r=A.resolve(n,e);return r===t?!0:t===A.parse(t).root?r.startsWith(t):r.startsWith(t+A.sep)}function X(n,e){if(A.isAbsolute(e))return A.resolve(e);if(!lr(n,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return A.resolve(n,e)}function ye(n,e=process.platform){let t=A.resolve(n);return e==="win32"?t.toLowerCase():t}function J(n){if(n!==void 0&&n!=="agent"&&n!=="chatOnly")throw new Error("Invalid session execution mode; expected agent or chatOnly.")}var E=_(require("path"),1),xe=_(require("os"),1),R=_(require("node:fs/promises"),1),Te=require("node:crypto");var V=require("node:os");var ne=require("node:path");var wn=(0,V.platform)();var yn=(0,V.release)(),kn=(0,V.homedir)();function ke(){let n=process.env.XENO_AGENT_HOME?.trim();return n?(0,ne.resolve)(n):(0,ne.resolve)((0,V.homedir)(),".xeno-agent")}var kt=1,St="recent.json",dr=".lock",Tt=".entries",pr=3e4,qe=6e4,vt=new Set(["EACCES","EBUSY","EPERM"]),gr=[5,10,20,40,80,160,320],Se=new Map;function fr(n,e){let t=(0,Te.createHash)("sha256").update(e).digest("hex");return E.join(`${n}${Tt}`,`${t}.json`)}async function Ge(n,e,t){let r={schemaVersion:1,key:e,entry:t};await k(fr(n,e),JSON.stringify(r)+`
51
+ `:"";await k(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await k(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await k(u,l)}catch(l){this.workspaceMirrorDisabled=!0,F("Transcript workspace mirror disabled",l)}}}getSequence(){return this.sequence}async initialize(){try{let e=await S(this.transcriptPath);if(!e){this.sequence=0;return}let t=ee(e);if(t.length===0){this.sequence=0;return}let r=t[t.length-1];this.sequence=r.sequence+1}catch(e){let t=e instanceof Error?e.message:String(e);F(`Transcript initialization warning: ${t}. Starting with empty transcript.`),this.sequence=0}}async flush(){await this.writeQueue}};var te=_(require("path"),1),mt=require("crypto"),ht=require("fs/promises");var tr={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function we(n){return tr[n]??n}var D=class{sessionDir;checkpointsDir;autoInterval;lastCheckpointMessageCount=0;constructor(e,t){this.sessionDir=e,this.checkpointsDir=te.join(e,"checkpoints"),this.autoInterval=t?.autoInterval??10}async initialize(){let e=await this.list();e.length>0&&(this.lastCheckpointMessageCount=e[0].messageCount)}async create(e){await N(this.checkpointsDir);let t=(0,mt.randomUUID)(),r={id:t,name:e.description,trigger:e.trigger,createdAt:new Date().toISOString(),messageCount:e.messages.length,tokenCount:this.estimateTokens(e.messages)},s={info:r,messages:e.messages},i=te.join(this.checkpointsDir,`${t}.json`);return await k(i,JSON.stringify(s,null,2)),this.lastCheckpointMessageCount=e.messages.length,r}async list(){let e=await it(this.checkpointsDir,/\.json$/),t=[];for(let r of e){let s=await S(r);if(s){let i=b(s,null);if(i){let o=await(0,ht.stat)(r);t.push({info:i.info,modifiedAtMs:o.mtimeMs})}}}return t.sort((r,s)=>new Date(s.info.createdAt).getTime()-new Date(r.info.createdAt).getTime()||s.modifiedAtMs-r.modifiedAtMs).map(({info:r})=>r)}async restore(e){let t=te.join(this.checkpointsDir,`${e}.json`),r;try{r=await S(t)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`Failed to read checkpoint ${e}: ${o}`)}if(!r)throw new Error(`Checkpoint not found: ${e} (path: ${t})`);let s=b(r,null);if(!s)throw new Error(`Invalid checkpoint data for ${e}: JSON parse failed`);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Invalid checkpoint data for ${e}: missing or invalid messages array`);if(!s.info)throw new Error(`Invalid checkpoint data for ${e}: missing info object`);return{messages:s.messages,info:s.info}}shouldAutoCheckpoint(e){return e-this.lastCheckpointMessageCount>=this.autoInterval}static isDangerousOperation(e,t){if(e=we(e),e==="Write")return!0;if(e==="Bash"){let s=t.command?.toLowerCase()||"";return["rm ","del ","git push","git reset","drop ","truncate"].some(o=>s.includes(o))}return!1}async delete(e){let t=te.join(this.checkpointsDir,`${e}.json`);await $(t)}estimateTokens(e){let t=0;for(let r of e)if(typeof r.content=="string")t+=Math.ceil(r.content.length/4);else if(Array.isArray(r.content))for(let s of r.content)"text"in s&&(t+=Math.ceil(s.text.length/4));return t}};var U=_(require("path"),1),Ue=_(require("os"),1),j=_(require("fs"),1);var rr=Symbol.for("@xenosystem/agent-sdk/shutdown-registry"),nr=globalThis,Fe=nr[rr]??={cleanups:new Set,exitHandlerRegistered:!1,signalHandlersInstalled:!1},je=Fe.cleanups;function sr(){for(let n of je)try{n()}catch{}}function wt(n){return je.add(n),!Fe.exitHandlerRegistered&&typeof process<"u"&&typeof process.on=="function"&&(Fe.exitHandlerRegistered=!0,process.on("exit",sr)),()=>{je.delete(n)}}var yt="0.10.38";var ir=1e4,or=6e4,ar="session.lock",cr="lock.json",Z=new Map;function He(n,e){return n!=null&&n.pid===e.pid&&n.hostname===e.hostname&&n.processStartedAt===e.processStartedAt&&n.acquiredAt===e.acquiredAt}function ur(){for(let[n,e]of Z)try{let t=b(j.readFileSync(n,"utf8"),null);He(t,e)&&j.unlinkSync(n)}catch{}Z.clear()}wt(ur);var W=class n{sessionDir;lockPath;legacyLockPath;sessionId;heartbeatTimer;acquiredOwner;constructor(e){this.sessionDir=e,this.lockPath=U.join(e,ar),this.legacyLockPath=U.join(e,cr),this.sessionId=U.basename(e)}async acquire(){let e=new Date().toISOString(),t={schemaVersion:1,name:`session:${this.sessionId}`,sessionId:this.sessionId,pid:process.pid,hostname:Ue.hostname(),processStartedAt:new Date(Date.now()-Math.floor(process.uptime()*1e3)).toISOString(),version:yt,acquiredAt:e,updatedAt:e,heartbeat:e},r=U.dirname(this.lockPath);await j.promises.mkdir(r,{recursive:!0});let s=await this.findExistingLockPath();if(s){if(!await this.isStalePath(s)){let o=await this.readLockAt(s);throw new Error(`Session ${this.sessionId} is already locked by PID ${o?.pid} on ${o?.hostname}`)}await $(s)}try{await j.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"}),this.acquiredOwner=t,Z.set(this.lockPath,t)}catch(i){if(i.code==="EEXIST"){if(!await this.isStalePath(this.lockPath)){let c=await this.readLockAt(this.lockPath);throw new Error(`Session ${this.sessionId} is already locked by PID ${c?.pid} on ${c?.hostname}`)}await $(this.lockPath);try{await j.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"})}catch(c){throw c.code==="EEXIST"?new Error(`Session ${this.sessionId} lock was acquired by another process during stale recovery`):c}this.acquiredOwner=t,Z.set(this.lockPath,t)}else throw i}}async release(){this.stopHeartbeat();let e=this.acquiredOwner;if(this.acquiredOwner=void 0,!e)return;Z.delete(this.lockPath);let t=await this.readLockAt(this.lockPath);He(t,e)&&await $(this.lockPath)}async isLocked(){let e=await this.findExistingLockPath();return e?!await this.isStalePath(e):!1}async isStale(){let e=await this.findExistingLockPath();return e?this.isStalePath(e):!1}async isStalePath(e){let t=await this.readLockAt(e);if(!t)return!1;if(t.hostname===Ue.hostname())try{return process.kill(t.pid,0),!1}catch(i){return i.code!=="EPERM"}let r=new Date(t.heartbeat).getTime();return Date.now()-r>or}startHeartbeat(e=ir){this.heartbeatTimer&&this.stopHeartbeat(),this.heartbeatTimer=setInterval(async()=>{try{await this.updateHeartbeat()}catch(t){let r=t instanceof Error?t.message:String(t);if(t?.code==="ENOENT"){q("SessionLock: Session directory removed, stopping heartbeat"),this.stopHeartbeat();return}q(`SessionLock: Failed to update heartbeat: ${r}`)}},e),this.heartbeatTimer.unref()}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0)}async updateHeartbeat(){let e=await this.readLockAt(this.lockPath),t=this.acquiredOwner;if(!(!e||!t)){if(!He(e,t)){this.acquiredOwner=void 0,Z.delete(this.lockPath),this.stopHeartbeat();return}e.heartbeat=new Date().toISOString(),e.updatedAt=e.heartbeat,await k(this.lockPath,JSON.stringify(e,null,2))}}async readLock(){let e=await this.findExistingLockPath();return e?this.readLockAt(e):null}async readLockAt(e){let t=await S(e);return t?b(t,null):null}async findExistingLockPath(){return await S(this.lockPath)?this.lockPath:await S(this.legacyLockPath)?this.legacyLockPath:null}static async cleanStale(e){let t=await pe(e),r=[];for(let s of t){let i=new n(s);if(await i.isStale()){let a=await i.findExistingLockPath();a&&await $(a),r.push(U.basename(s))}}return r}};var O=_(require("path"),1);var re=1;var A=_(require("path"),1);function lr(n,e){let t=A.resolve(n),r=A.resolve(n,e);return r===t?!0:t===A.parse(t).root?r.startsWith(t):r.startsWith(t+A.sep)}function X(n,e){if(A.isAbsolute(e))return A.resolve(e);if(!lr(n,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return A.resolve(n,e)}function ye(n,e=process.platform){let t=A.resolve(n);return e==="win32"?t.toLowerCase():t}function J(n){if(n!==void 0&&n!=="agent"&&n!=="chatOnly")throw new Error("Invalid session execution mode; expected agent or chatOnly.")}var E=_(require("path"),1),xe=_(require("os"),1),R=_(require("node:fs/promises"),1),Te=require("node:crypto");var V=require("node:os");var ne=require("node:path");var wn=(0,V.platform)();var yn=(0,V.release)(),kn=(0,V.homedir)();function ke(){let n=process.env.XENO_AGENT_HOME?.trim();return n?(0,ne.resolve)(n):(0,ne.resolve)((0,V.homedir)(),".xeno-agent")}var kt=1,St="recent.json",dr=".lock",Tt=".entries",pr=3e4,qe=6e4,vt=new Set(["EACCES","EBUSY","EPERM"]),gr=[5,10,20,40,80,160,320],Se=new Map;function fr(n,e){let t=(0,Te.createHash)("sha256").update(e).digest("hex");return E.join(`${n}${Tt}`,`${t}.json`)}async function Ge(n,e,t){let r={schemaVersion:1,key:e,entry:t};await k(fr(n,e),JSON.stringify(r)+`
52
52
  `)}async function mr(n,e){let t=`${n}${Tt}`,r;try{r=await R.readdir(t)}catch(s){if(s.code==="ENOENT")return;throw s}await Promise.all(r.filter(s=>s.endsWith(".json")).map(async s=>{let i=await R.readFile(E.join(t,s),"utf8").catch(()=>""),o=b(i,null);if(!(!o||o.schemaVersion!==1||typeof o.key!="string")){if(o.entry===null){delete e[o.key];return}typeof o.entry.sessionId!="string"||typeof o.entry.endedAt!="string"||(e[o.key]=o.entry)}}))}function xt(n){if(!Number.isInteger(n)||n<=0)return!1;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function hr(n){try{let[e,t]=await Promise.all([R.readFile(E.join(n,"owner.json"),"utf8").catch(()=>""),R.stat(n)]),r=b(e,null);return r?.hostname===xe.hostname()&&xt(r.pid)?!1:r?.hostname&&r.hostname!==xe.hostname()||!r?Date.now()-t.mtimeMs>qe:Date.now()-t.mtimeMs>qe||!xt(r.pid)}catch{return!1}}async function bt(n){for(let e=0;;e+=1)try{await R.rm(n,{recursive:!0});return}catch(t){let r=t.code;if(r==="ENOENT")return;let s=gr[e];if(process.platform!=="win32"||!r||!vt.has(r)||s===void 0)throw t;await new Promise(i=>setTimeout(i,s))}}async function wr(n,e){try{let t=await R.readFile(E.join(n,"owner.json"),"utf8");b(t,null)?.token===e&&await bt(n)}catch(t){if(t.code!=="ENOENT")throw t}}async function We(n,e){let t=K(n),r=Se.get(t)??Promise.resolve(),s,i=new Promise(o=>{s=o});Se.set(t,i),await r;try{return await yr(t,e)}finally{s(),Se.get(t)===i&&Se.delete(t)}}async function yr(n,e){let t=`${n}${dr}`,r=(0,Te.randomUUID)(),s=Date.now();await R.mkdir(E.dirname(n),{recursive:!0});for(let i=0;;i+=1){let o={schemaVersion:1,token:r,pid:process.pid,hostname:xe.hostname(),acquiredAt:new Date().toISOString()};try{await R.mkdir(t),await R.writeFile(E.join(t,"owner.json"),JSON.stringify(o),"utf8");break}catch(a){let c=a.code,u=process.platform==="win32"&&!!c&&vt.has(c);if(c!=="EEXIST"&&!u)throw a;if(await hr(t)){await bt(t);continue}if(Date.now()-s>=pr)throw new Error(`Timed out waiting for recent-sessions index lock: ${t}`);let l=Math.min(100,5+i*5)+Math.floor(Math.random()*10);await new Promise(p=>setTimeout(p,l))}}try{return await e()}finally{await wr(t,r)}}function K(n){return n===void 0?E.join(ke(),St):E.join(n,".xeno-agent",St)}function se(n){let e=E.normalize(n).replace(/[\\/]+$/,""),t=e.length>0?e:E.parse(E.normalize(n)).root;return process.platform==="win32"?t.toLowerCase():t}async function H(n){let e=K(n),t=de(e)?await S(e):null,r=t?b(t,null):null,s=r&&typeof r=="object"?r:null,i={},o=s?.version===kt&&s.entries&&typeof s.entries=="object"?s.entries:{};for(let[a,c]of Object.entries(o)){if(!c||typeof c!="object")continue;let u=c;typeof u.sessionId!="string"||u.sessionId.length===0||typeof u.endedAt=="string"&&(i[a]={sessionId:u.sessionId,endedAt:u.endedAt,role:typeof u.role=="string"?u.role:void 0})}return await mr(e,i),{version:kt,entries:i}}async function ve(n,e={}){let t=await H(e.homeDir),r=se(n),s=t.entries[r];if(s&&!(e.role&&s.role&&s.role!==e.role))return s}async function be(n,e={}){let t=se(n.cwd),r={sessionId:n.sessionId,role:n.role,endedAt:n.endedAt??new Date().toISOString()},s=K(e.homeDir);await Ge(s,t,r),await We(e.homeDir,async()=>{let i=await H(e.homeDir);i.entries[t]=r,await k(s,JSON.stringify(i,null,2)+`
53
53
  `)})}async function Pt(n,e={}){let t=se(n),r=K(e.homeDir);(await H(e.homeDir)).entries[t]&&(await Ge(r,t,null),await We(e.homeDir,async()=>{let i=await H(e.homeDir);delete i.entries[t],await k(r,JSON.stringify(i,null,2)+`
54
54
  `)}))}async function ie(n,e={}){let t=await H(e.homeDir),r=Object.entries(t.entries).filter(([,i])=>i.sessionId===n).map(([i])=>i);if(r.length===0)return;let s=K(e.homeDir);await Promise.all(r.map(i=>Ge(s,i,null))),await We(e.homeDir,async()=>{let i=await H(e.homeDir);for(let[o,a]of Object.entries(i.entries))a.sessionId===n&&delete i.entries[o];await k(s,JSON.stringify(i,null,2)+`
@@ -48,7 +48,7 @@ ${this.stringify(e.data)}
48
48
  `)+`
49
49
  `;await y(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await y(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await y(u,l)}catch(l){this.workspaceMirrorDisabled=!0,L("Transcript workspace mirror disabled",l)}}}async truncateAfterMessageCount(e){let t=await k(this.transcriptPath);if(!t)return;let r=Q(t),s=Math.max(0,e),i=0,o=[];for(let u of r){if(u.type==="user_message"||u.type==="assistant_message"){if(i>=s)break;i+=1}o.push(u)}let a=o.length>0?o.map(u=>JSON.stringify(u)).join(`
50
50
  `)+`
51
- `:"";await y(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await y(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await y(u,l)}catch(l){this.workspaceMirrorDisabled=!0,L("Transcript workspace mirror disabled",l)}}}getSequence(){return this.sequence}async initialize(){try{let e=await k(this.transcriptPath);if(!e){this.sequence=0;return}let t=Q(e);if(t.length===0){this.sequence=0;return}let r=t[t.length-1];this.sequence=r.sequence+1}catch(e){let t=e instanceof Error?e.message:String(e);L(`Transcript initialization warning: ${t}. Starting with empty transcript.`),this.sequence=0}}async flush(){await this.writeQueue}};import*as Y from"path";import{randomUUID as Jt}from"crypto";import{stat as Vt}from"fs/promises";var Xt={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function ae(n){return Xt[n]??n}var A=class{sessionDir;checkpointsDir;autoInterval;lastCheckpointMessageCount=0;constructor(e,t){this.sessionDir=e,this.checkpointsDir=Y.join(e,"checkpoints"),this.autoInterval=t?.autoInterval??10}async initialize(){let e=await this.list();e.length>0&&(this.lastCheckpointMessageCount=e[0].messageCount)}async create(e){await O(this.checkpointsDir);let t=Jt(),r={id:t,name:e.description,trigger:e.trigger,createdAt:new Date().toISOString(),messageCount:e.messages.length,tokenCount:this.estimateTokens(e.messages)},s={info:r,messages:e.messages},i=Y.join(this.checkpointsDir,`${t}.json`);return await y(i,JSON.stringify(s,null,2)),this.lastCheckpointMessageCount=e.messages.length,r}async list(){let e=await Ve(this.checkpointsDir,/\.json$/),t=[];for(let r of e){let s=await k(r);if(s){let i=v(s,null);if(i){let o=await Vt(r);t.push({info:i.info,modifiedAtMs:o.mtimeMs})}}}return t.sort((r,s)=>new Date(s.info.createdAt).getTime()-new Date(r.info.createdAt).getTime()||s.modifiedAtMs-r.modifiedAtMs).map(({info:r})=>r)}async restore(e){let t=Y.join(this.checkpointsDir,`${e}.json`),r;try{r=await k(t)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`Failed to read checkpoint ${e}: ${o}`)}if(!r)throw new Error(`Checkpoint not found: ${e} (path: ${t})`);let s=v(r,null);if(!s)throw new Error(`Invalid checkpoint data for ${e}: JSON parse failed`);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Invalid checkpoint data for ${e}: missing or invalid messages array`);if(!s.info)throw new Error(`Invalid checkpoint data for ${e}: missing info object`);return{messages:s.messages,info:s.info}}shouldAutoCheckpoint(e){return e-this.lastCheckpointMessageCount>=this.autoInterval}static isDangerousOperation(e,t){if(e=ae(e),e==="Write")return!0;if(e==="Bash"){let s=t.command?.toLowerCase()||"";return["rm ","del ","git push","git reset","drop ","truncate"].some(o=>s.includes(o))}return!1}async delete(e){let t=Y.join(this.checkpointsDir,`${e}.json`);await C(t)}estimateTokens(e){let t=0;for(let r of e)if(typeof r.content=="string")t+=Math.ceil(r.content.length/4);else if(Array.isArray(r.content))for(let s of r.content)"text"in s&&(t+=Math.ceil(s.text.length/4));return t}};import*as F from"path";import*as Ee from"os";import*as B from"fs";var Kt=Symbol.for("@xenosystem/agent-sdk/shutdown-registry"),zt=globalThis,be=zt[Kt]??={cleanups:new Set,exitHandlerRegistered:!1,signalHandlersInstalled:!1},Pe=be.cleanups;function Qt(){for(let n of Pe)try{n()}catch{}}function st(n){return Pe.add(n),!be.exitHandlerRegistered&&typeof process<"u"&&typeof process.on=="function"&&(be.exitHandlerRegistered=!0,process.on("exit",Qt)),()=>{Pe.delete(n)}}var it="0.10.37";var Yt=1e4,Zt=6e4,er="session.lock",tr="lock.json",X=new Map;function Re(n,e){return n!=null&&n.pid===e.pid&&n.hostname===e.hostname&&n.processStartedAt===e.processStartedAt&&n.acquiredAt===e.acquiredAt}function rr(){for(let[n,e]of X)try{let t=v(B.readFileSync(n,"utf8"),null);Re(t,e)&&B.unlinkSync(n)}catch{}X.clear()}st(rr);var J=class n{sessionDir;lockPath;legacyLockPath;sessionId;heartbeatTimer;acquiredOwner;constructor(e){this.sessionDir=e,this.lockPath=F.join(e,er),this.legacyLockPath=F.join(e,tr),this.sessionId=F.basename(e)}async acquire(){let e=new Date().toISOString(),t={schemaVersion:1,name:`session:${this.sessionId}`,sessionId:this.sessionId,pid:process.pid,hostname:Ee.hostname(),processStartedAt:new Date(Date.now()-Math.floor(process.uptime()*1e3)).toISOString(),version:it,acquiredAt:e,updatedAt:e,heartbeat:e},r=F.dirname(this.lockPath);await B.promises.mkdir(r,{recursive:!0});let s=await this.findExistingLockPath();if(s){if(!await this.isStalePath(s)){let o=await this.readLockAt(s);throw new Error(`Session ${this.sessionId} is already locked by PID ${o?.pid} on ${o?.hostname}`)}await C(s)}try{await B.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"}),this.acquiredOwner=t,X.set(this.lockPath,t)}catch(i){if(i.code==="EEXIST"){if(!await this.isStalePath(this.lockPath)){let c=await this.readLockAt(this.lockPath);throw new Error(`Session ${this.sessionId} is already locked by PID ${c?.pid} on ${c?.hostname}`)}await C(this.lockPath);try{await B.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"})}catch(c){throw c.code==="EEXIST"?new Error(`Session ${this.sessionId} lock was acquired by another process during stale recovery`):c}this.acquiredOwner=t,X.set(this.lockPath,t)}else throw i}}async release(){this.stopHeartbeat();let e=this.acquiredOwner;if(this.acquiredOwner=void 0,!e)return;X.delete(this.lockPath);let t=await this.readLockAt(this.lockPath);Re(t,e)&&await C(this.lockPath)}async isLocked(){let e=await this.findExistingLockPath();return e?!await this.isStalePath(e):!1}async isStale(){let e=await this.findExistingLockPath();return e?this.isStalePath(e):!1}async isStalePath(e){let t=await this.readLockAt(e);if(!t)return!1;if(t.hostname===Ee.hostname())try{return process.kill(t.pid,0),!1}catch(i){return i.code!=="EPERM"}let r=new Date(t.heartbeat).getTime();return Date.now()-r>Zt}startHeartbeat(e=Yt){this.heartbeatTimer&&this.stopHeartbeat(),this.heartbeatTimer=setInterval(async()=>{try{await this.updateHeartbeat()}catch(t){let r=t instanceof Error?t.message:String(t);if(t?.code==="ENOENT"){j("SessionLock: Session directory removed, stopping heartbeat"),this.stopHeartbeat();return}j(`SessionLock: Failed to update heartbeat: ${r}`)}},e),this.heartbeatTimer.unref()}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0)}async updateHeartbeat(){let e=await this.readLockAt(this.lockPath),t=this.acquiredOwner;if(!(!e||!t)){if(!Re(e,t)){this.acquiredOwner=void 0,X.delete(this.lockPath),this.stopHeartbeat();return}e.heartbeat=new Date().toISOString(),e.updatedAt=e.heartbeat,await y(this.lockPath,JSON.stringify(e,null,2))}}async readLock(){let e=await this.findExistingLockPath();return e?this.readLockAt(e):null}async readLockAt(e){let t=await k(e);return t?v(t,null):null}async findExistingLockPath(){return await k(this.lockPath)?this.lockPath:await k(this.legacyLockPath)?this.legacyLockPath:null}static async cleanStale(e){let t=await ie(e),r=[];for(let s of t){let i=new n(s);if(await i.isStale()){let a=await i.findExistingLockPath();a&&await C(a),r.push(F.basename(s))}}return r}};import*as I from"path";var Z=1;import*as _ from"path";function nr(n,e){let t=_.resolve(n),r=_.resolve(n,e);return r===t?!0:t===_.parse(t).root?r.startsWith(t):r.startsWith(t+_.sep)}function H(n,e){if(_.isAbsolute(e))return _.resolve(e);if(!nr(n,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return _.resolve(n,e)}function ce(n,e=process.platform){let t=_.resolve(n);return e==="win32"?t.toLowerCase():t}function q(n){if(n!==void 0&&n!=="agent"&&n!=="chatOnly")throw new Error("Invalid session execution mode; expected agent or chatOnly.")}import*as P from"path";import*as de from"os";import*as E from"node:fs/promises";import{createHash as or,randomUUID as ar}from"node:crypto";import{homedir as at,platform as sr,release as ir}from"node:os";import{delimiter as Rn,join as _n,resolve as ot}from"node:path";var In=sr();var An=ir(),Dn=at();function ue(){let n=process.env.XENO_AGENT_HOME?.trim();return n?ot(n):ot(at(),".xeno-agent")}var ct=1,ut="recent.json",cr=".lock",dt=".entries",ur=3e4,_e=6e4,pt=new Set(["EACCES","EBUSY","EPERM"]),lr=[5,10,20,40,80,160,320],le=new Map;function dr(n,e){let t=or("sha256").update(e).digest("hex");return P.join(`${n}${dt}`,`${t}.json`)}async function Me(n,e,t){let r={schemaVersion:1,key:e,entry:t};await y(dr(n,e),JSON.stringify(r)+`
51
+ `:"";await y(this.transcriptPath,a);let c=this.buildMarkdownDocument(o,"session store");if(await y(this.markdownPath,c),!this.workspaceMirrorDisabled){let u=await this.resolveWorkspaceMarkdownPath();if(u)try{let l=this.buildMarkdownDocument(o,"workspace mirror");await y(u,l)}catch(l){this.workspaceMirrorDisabled=!0,L("Transcript workspace mirror disabled",l)}}}getSequence(){return this.sequence}async initialize(){try{let e=await k(this.transcriptPath);if(!e){this.sequence=0;return}let t=Q(e);if(t.length===0){this.sequence=0;return}let r=t[t.length-1];this.sequence=r.sequence+1}catch(e){let t=e instanceof Error?e.message:String(e);L(`Transcript initialization warning: ${t}. Starting with empty transcript.`),this.sequence=0}}async flush(){await this.writeQueue}};import*as Y from"path";import{randomUUID as Jt}from"crypto";import{stat as Vt}from"fs/promises";var Xt={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function ae(n){return Xt[n]??n}var A=class{sessionDir;checkpointsDir;autoInterval;lastCheckpointMessageCount=0;constructor(e,t){this.sessionDir=e,this.checkpointsDir=Y.join(e,"checkpoints"),this.autoInterval=t?.autoInterval??10}async initialize(){let e=await this.list();e.length>0&&(this.lastCheckpointMessageCount=e[0].messageCount)}async create(e){await O(this.checkpointsDir);let t=Jt(),r={id:t,name:e.description,trigger:e.trigger,createdAt:new Date().toISOString(),messageCount:e.messages.length,tokenCount:this.estimateTokens(e.messages)},s={info:r,messages:e.messages},i=Y.join(this.checkpointsDir,`${t}.json`);return await y(i,JSON.stringify(s,null,2)),this.lastCheckpointMessageCount=e.messages.length,r}async list(){let e=await Ve(this.checkpointsDir,/\.json$/),t=[];for(let r of e){let s=await k(r);if(s){let i=v(s,null);if(i){let o=await Vt(r);t.push({info:i.info,modifiedAtMs:o.mtimeMs})}}}return t.sort((r,s)=>new Date(s.info.createdAt).getTime()-new Date(r.info.createdAt).getTime()||s.modifiedAtMs-r.modifiedAtMs).map(({info:r})=>r)}async restore(e){let t=Y.join(this.checkpointsDir,`${e}.json`),r;try{r=await k(t)}catch(i){let o=i instanceof Error?i.message:String(i);throw new Error(`Failed to read checkpoint ${e}: ${o}`)}if(!r)throw new Error(`Checkpoint not found: ${e} (path: ${t})`);let s=v(r,null);if(!s)throw new Error(`Invalid checkpoint data for ${e}: JSON parse failed`);if(!s.messages||!Array.isArray(s.messages))throw new Error(`Invalid checkpoint data for ${e}: missing or invalid messages array`);if(!s.info)throw new Error(`Invalid checkpoint data for ${e}: missing info object`);return{messages:s.messages,info:s.info}}shouldAutoCheckpoint(e){return e-this.lastCheckpointMessageCount>=this.autoInterval}static isDangerousOperation(e,t){if(e=ae(e),e==="Write")return!0;if(e==="Bash"){let s=t.command?.toLowerCase()||"";return["rm ","del ","git push","git reset","drop ","truncate"].some(o=>s.includes(o))}return!1}async delete(e){let t=Y.join(this.checkpointsDir,`${e}.json`);await C(t)}estimateTokens(e){let t=0;for(let r of e)if(typeof r.content=="string")t+=Math.ceil(r.content.length/4);else if(Array.isArray(r.content))for(let s of r.content)"text"in s&&(t+=Math.ceil(s.text.length/4));return t}};import*as F from"path";import*as Ee from"os";import*as B from"fs";var Kt=Symbol.for("@xenosystem/agent-sdk/shutdown-registry"),zt=globalThis,be=zt[Kt]??={cleanups:new Set,exitHandlerRegistered:!1,signalHandlersInstalled:!1},Pe=be.cleanups;function Qt(){for(let n of Pe)try{n()}catch{}}function st(n){return Pe.add(n),!be.exitHandlerRegistered&&typeof process<"u"&&typeof process.on=="function"&&(be.exitHandlerRegistered=!0,process.on("exit",Qt)),()=>{Pe.delete(n)}}var it="0.10.38";var Yt=1e4,Zt=6e4,er="session.lock",tr="lock.json",X=new Map;function Re(n,e){return n!=null&&n.pid===e.pid&&n.hostname===e.hostname&&n.processStartedAt===e.processStartedAt&&n.acquiredAt===e.acquiredAt}function rr(){for(let[n,e]of X)try{let t=v(B.readFileSync(n,"utf8"),null);Re(t,e)&&B.unlinkSync(n)}catch{}X.clear()}st(rr);var J=class n{sessionDir;lockPath;legacyLockPath;sessionId;heartbeatTimer;acquiredOwner;constructor(e){this.sessionDir=e,this.lockPath=F.join(e,er),this.legacyLockPath=F.join(e,tr),this.sessionId=F.basename(e)}async acquire(){let e=new Date().toISOString(),t={schemaVersion:1,name:`session:${this.sessionId}`,sessionId:this.sessionId,pid:process.pid,hostname:Ee.hostname(),processStartedAt:new Date(Date.now()-Math.floor(process.uptime()*1e3)).toISOString(),version:it,acquiredAt:e,updatedAt:e,heartbeat:e},r=F.dirname(this.lockPath);await B.promises.mkdir(r,{recursive:!0});let s=await this.findExistingLockPath();if(s){if(!await this.isStalePath(s)){let o=await this.readLockAt(s);throw new Error(`Session ${this.sessionId} is already locked by PID ${o?.pid} on ${o?.hostname}`)}await C(s)}try{await B.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"}),this.acquiredOwner=t,X.set(this.lockPath,t)}catch(i){if(i.code==="EEXIST"){if(!await this.isStalePath(this.lockPath)){let c=await this.readLockAt(this.lockPath);throw new Error(`Session ${this.sessionId} is already locked by PID ${c?.pid} on ${c?.hostname}`)}await C(this.lockPath);try{await B.promises.writeFile(this.lockPath,JSON.stringify(t,null,2),{flag:"wx",encoding:"utf-8"})}catch(c){throw c.code==="EEXIST"?new Error(`Session ${this.sessionId} lock was acquired by another process during stale recovery`):c}this.acquiredOwner=t,X.set(this.lockPath,t)}else throw i}}async release(){this.stopHeartbeat();let e=this.acquiredOwner;if(this.acquiredOwner=void 0,!e)return;X.delete(this.lockPath);let t=await this.readLockAt(this.lockPath);Re(t,e)&&await C(this.lockPath)}async isLocked(){let e=await this.findExistingLockPath();return e?!await this.isStalePath(e):!1}async isStale(){let e=await this.findExistingLockPath();return e?this.isStalePath(e):!1}async isStalePath(e){let t=await this.readLockAt(e);if(!t)return!1;if(t.hostname===Ee.hostname())try{return process.kill(t.pid,0),!1}catch(i){return i.code!=="EPERM"}let r=new Date(t.heartbeat).getTime();return Date.now()-r>Zt}startHeartbeat(e=Yt){this.heartbeatTimer&&this.stopHeartbeat(),this.heartbeatTimer=setInterval(async()=>{try{await this.updateHeartbeat()}catch(t){let r=t instanceof Error?t.message:String(t);if(t?.code==="ENOENT"){j("SessionLock: Session directory removed, stopping heartbeat"),this.stopHeartbeat();return}j(`SessionLock: Failed to update heartbeat: ${r}`)}},e),this.heartbeatTimer.unref()}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0)}async updateHeartbeat(){let e=await this.readLockAt(this.lockPath),t=this.acquiredOwner;if(!(!e||!t)){if(!Re(e,t)){this.acquiredOwner=void 0,X.delete(this.lockPath),this.stopHeartbeat();return}e.heartbeat=new Date().toISOString(),e.updatedAt=e.heartbeat,await y(this.lockPath,JSON.stringify(e,null,2))}}async readLock(){let e=await this.findExistingLockPath();return e?this.readLockAt(e):null}async readLockAt(e){let t=await k(e);return t?v(t,null):null}async findExistingLockPath(){return await k(this.lockPath)?this.lockPath:await k(this.legacyLockPath)?this.legacyLockPath:null}static async cleanStale(e){let t=await ie(e),r=[];for(let s of t){let i=new n(s);if(await i.isStale()){let a=await i.findExistingLockPath();a&&await C(a),r.push(F.basename(s))}}return r}};import*as I from"path";var Z=1;import*as _ from"path";function nr(n,e){let t=_.resolve(n),r=_.resolve(n,e);return r===t?!0:t===_.parse(t).root?r.startsWith(t):r.startsWith(t+_.sep)}function H(n,e){if(_.isAbsolute(e))return _.resolve(e);if(!nr(n,e))throw new Error(`PathSecurity: Path traversal attempt detected: ${e}`);return _.resolve(n,e)}function ce(n,e=process.platform){let t=_.resolve(n);return e==="win32"?t.toLowerCase():t}function q(n){if(n!==void 0&&n!=="agent"&&n!=="chatOnly")throw new Error("Invalid session execution mode; expected agent or chatOnly.")}import*as P from"path";import*as de from"os";import*as E from"node:fs/promises";import{createHash as or,randomUUID as ar}from"node:crypto";import{homedir as at,platform as sr,release as ir}from"node:os";import{delimiter as Rn,join as _n,resolve as ot}from"node:path";var In=sr();var An=ir(),Dn=at();function ue(){let n=process.env.XENO_AGENT_HOME?.trim();return n?ot(n):ot(at(),".xeno-agent")}var ct=1,ut="recent.json",cr=".lock",dt=".entries",ur=3e4,_e=6e4,pt=new Set(["EACCES","EBUSY","EPERM"]),lr=[5,10,20,40,80,160,320],le=new Map;function dr(n,e){let t=or("sha256").update(e).digest("hex");return P.join(`${n}${dt}`,`${t}.json`)}async function Me(n,e,t){let r={schemaVersion:1,key:e,entry:t};await y(dr(n,e),JSON.stringify(r)+`
52
52
  `)}async function pr(n,e){let t=`${n}${dt}`,r;try{r=await E.readdir(t)}catch(s){if(s.code==="ENOENT")return;throw s}await Promise.all(r.filter(s=>s.endsWith(".json")).map(async s=>{let i=await E.readFile(P.join(t,s),"utf8").catch(()=>""),o=v(i,null);if(!(!o||o.schemaVersion!==1||typeof o.key!="string")){if(o.entry===null){delete e[o.key];return}typeof o.entry.sessionId!="string"||typeof o.entry.endedAt!="string"||(e[o.key]=o.entry)}}))}function lt(n){if(!Number.isInteger(n)||n<=0)return!1;try{return process.kill(n,0),!0}catch(e){return e.code==="EPERM"}}async function gr(n){try{let[e,t]=await Promise.all([E.readFile(P.join(n,"owner.json"),"utf8").catch(()=>""),E.stat(n)]),r=v(e,null);return r?.hostname===de.hostname()&&lt(r.pid)?!1:r?.hostname&&r.hostname!==de.hostname()||!r?Date.now()-t.mtimeMs>_e:Date.now()-t.mtimeMs>_e||!lt(r.pid)}catch{return!1}}async function gt(n){for(let e=0;;e+=1)try{await E.rm(n,{recursive:!0});return}catch(t){let r=t.code;if(r==="ENOENT")return;let s=lr[e];if(process.platform!=="win32"||!r||!pt.has(r)||s===void 0)throw t;await new Promise(i=>setTimeout(i,s))}}async function fr(n,e){try{let t=await E.readFile(P.join(n,"owner.json"),"utf8");v(t,null)?.token===e&&await gt(n)}catch(t){if(t.code!=="ENOENT")throw t}}async function Ie(n,e){let t=V(n),r=le.get(t)??Promise.resolve(),s,i=new Promise(o=>{s=o});le.set(t,i),await r;try{return await mr(t,e)}finally{s(),le.get(t)===i&&le.delete(t)}}async function mr(n,e){let t=`${n}${cr}`,r=ar(),s=Date.now();await E.mkdir(P.dirname(n),{recursive:!0});for(let i=0;;i+=1){let o={schemaVersion:1,token:r,pid:process.pid,hostname:de.hostname(),acquiredAt:new Date().toISOString()};try{await E.mkdir(t),await E.writeFile(P.join(t,"owner.json"),JSON.stringify(o),"utf8");break}catch(a){let c=a.code,u=process.platform==="win32"&&!!c&&pt.has(c);if(c!=="EEXIST"&&!u)throw a;if(await gr(t)){await gt(t);continue}if(Date.now()-s>=ur)throw new Error(`Timed out waiting for recent-sessions index lock: ${t}`);let l=Math.min(100,5+i*5)+Math.floor(Math.random()*10);await new Promise(p=>setTimeout(p,l))}}try{return await e()}finally{await fr(t,r)}}function V(n){return n===void 0?P.join(ue(),ut):P.join(n,".xeno-agent",ut)}function pe(n){let e=P.normalize(n).replace(/[\\/]+$/,""),t=e.length>0?e:P.parse(P.normalize(n)).root;return process.platform==="win32"?t.toLowerCase():t}async function G(n){let e=V(n),t=se(e)?await k(e):null,r=t?v(t,null):null,s=r&&typeof r=="object"?r:null,i={},o=s?.version===ct&&s.entries&&typeof s.entries=="object"?s.entries:{};for(let[a,c]of Object.entries(o)){if(!c||typeof c!="object")continue;let u=c;typeof u.sessionId!="string"||u.sessionId.length===0||typeof u.endedAt=="string"&&(i[a]={sessionId:u.sessionId,endedAt:u.endedAt,role:typeof u.role=="string"?u.role:void 0})}return await pr(e,i),{version:ct,entries:i}}async function Ae(n,e={}){let t=await G(e.homeDir),r=pe(n),s=t.entries[r];if(s&&!(e.role&&s.role&&s.role!==e.role))return s}async function De(n,e={}){let t=pe(n.cwd),r={sessionId:n.sessionId,role:n.role,endedAt:n.endedAt??new Date().toISOString()},s=V(e.homeDir);await Me(s,t,r),await Ie(e.homeDir,async()=>{let i=await G(e.homeDir);i.entries[t]=r,await y(s,JSON.stringify(i,null,2)+`
53
53
  `)})}async function hr(n,e={}){let t=pe(n),r=V(e.homeDir);(await G(e.homeDir)).entries[t]&&(await Me(r,t,null),await Ie(e.homeDir,async()=>{let i=await G(e.homeDir);delete i.entries[t],await y(r,JSON.stringify(i,null,2)+`
54
54
  `)}))}async function ge(n,e={}){let t=await G(e.homeDir),r=Object.entries(t.entries).filter(([,i])=>i.sessionId===n).map(([i])=>i);if(r.length===0)return;let s=V(e.homeDir);await Promise.all(r.map(i=>Me(s,i,null))),await Ie(e.homeDir,async()=>{let i=await G(e.homeDir);for(let[o,a]of Object.entries(i.entries))a.sessionId===n&&delete i.entries[o];await y(s,JSON.stringify(i,null,2)+`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenosystem/agent-sdk",
3
- "version": "0.10.37",
3
+ "version": "0.10.38",
4
4
  "description": "XENO Agent SDK built from the same engine as XENO CODE",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",