@xenosystem/agent-sdk 0.10.8 → 0.10.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/index.cjs +10 -10
- package/dist/artifacts/index.js +10 -10
- package/dist/artifacts/metafile-cjs.json +1 -1
- package/dist/artifacts/metafile-esm.json +1 -1
- package/dist/automation/index.cjs +15 -15
- package/dist/automation/index.js +16 -16
- package/dist/automation/metafile-cjs.json +1 -1
- package/dist/automation/metafile-esm.json +1 -1
- package/dist/control-plane/index.cjs +1 -1
- package/dist/control-plane/index.js +1 -1
- package/dist/control-plane/metafile-cjs.json +1 -1
- package/dist/control-plane/metafile-esm.json +1 -1
- package/dist/electron/index.cjs +169 -169
- package/dist/electron/index.d.cts +1 -0
- package/dist/electron/index.d.ts +1 -0
- package/dist/electron/index.js +163 -163
- package/dist/electron/metafile-cjs.json +1 -1
- package/dist/electron/metafile-esm.json +1 -1
- package/dist/index.cjs +347 -347
- package/dist/index.d.cts +11 -2
- package/dist/index.d.ts +11 -2
- package/dist/index.js +348 -348
- package/dist/intelligence/index.cjs +10 -10
- package/dist/intelligence/index.js +10 -10
- package/dist/intelligence/metafile-cjs.json +1 -1
- package/dist/intelligence/metafile-esm.json +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/providers/index.cjs +10 -10
- package/dist/providers/index.js +10 -10
- package/dist/providers/metafile-cjs.json +1 -1
- package/dist/providers/metafile-esm.json +1 -1
- package/dist/recipes/index.cjs +2 -2
- package/dist/recipes/index.js +2 -2
- package/dist/recipes/metafile-cjs.json +1 -1
- package/dist/recipes/metafile-esm.json +1 -1
- package/dist/research/index.cjs +3 -3
- package/dist/research/index.js +3 -3
- package/dist/research/metafile-cjs.json +1 -1
- package/dist/research/metafile-esm.json +1 -1
- package/dist/session/index.cjs +1 -1
- package/dist/session/index.js +1 -1
- package/dist/session/metafile-cjs.json +1 -1
- package/dist/session/metafile-esm.json +1 -1
- package/dist/sharing/index.cjs +4 -4
- package/dist/sharing/index.js +4 -4
- package/dist/sharing/metafile-cjs.json +1 -1
- package/dist/sharing/metafile-esm.json +1 -1
- package/dist/utils/index.cjs +13 -13
- package/dist/utils/index.d.cts +2 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/metafile-cjs.json +1 -1
- package/dist/utils/metafile-esm.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/config/models.ts":{"bytes":16323,"imports":[],"format":"esm"},"src/core/llm-provider.ts":{"bytes":13791,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":19125,"imports":[{"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/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-errors.ts":{"bytes":8749,"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"}],"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":3986,"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":13579,"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"}],"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":12249,"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/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":9783,"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":55136,"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/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":24437,"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/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":
|
|
1
|
+
{"inputs":{"src/config/models.ts":{"bytes":16323,"imports":[],"format":"esm"},"src/core/llm-provider.ts":{"bytes":13791,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":19125,"imports":[{"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/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-errors.ts":{"bytes":8749,"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"}],"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":3986,"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":13579,"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"}],"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":12249,"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/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":9783,"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":55136,"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/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":24437,"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":11685,"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":1627,"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/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: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":976},"src/config/models.ts":{"bytesInOutput":50},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":5733},"src/providers/direct-provider.ts":{"bytesInOutput":25786},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6200},"src/observability/telemetry.ts":{"bytesInOutput":1600},"src/observability/index.ts":{"bytesInOutput":0},"src/providers/endpoint-policy.ts":{"bytesInOutput":3343},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-errors.ts":{"bytesInOutput":3248},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1519},"src/providers/tool-schema-projection.ts":{"bytesInOutput":5711},"src/utils/json-schema.ts":{"bytesInOutput":19790},"src/providers/quota.ts":{"bytesInOutput":3435},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":11924},"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":1067},"src/providers/quota-store.ts":{"bytesInOutput":8105}},"bytes":106893}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/config/models.ts":{"bytes":16323,"imports":[],"format":"esm"},"src/core/llm-provider.ts":{"bytes":13791,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":19125,"imports":[{"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/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-errors.ts":{"bytes":8749,"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"}],"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":3986,"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":13579,"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"}],"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":12249,"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/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":9783,"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":55136,"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/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":24437,"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/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":8269,"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/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":1627,"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/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:fs/promises","kind":"import-statement","external":true},{"path":"node:path","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","ProviderError","QuotaAcknowledgementError","QuotaError","ToolSchemaProjectionError","XENO_PROVIDER_CATALOG_SCHEMA_VERSION","XENO_PROVIDER_CONNECTION_STORE_SCHEMA_VERSION","XenoProviderCatalog","assertDirectEndpointResolution","classifyProviderHttpError","createDirectProvider","createOllamaNativeProvider","createQuotaGovernedProvider","directProviderConfigFromConnection","isQuotaControlError","normalizeQuotaScope","parseRetryAfter","probeXenoProvider","projectToolDefinitionsForProvider","projectToolSchemaForProvider","providerCapabilityError","providerProtocolError","quotaAncestors","quotaInteger","quotaScopeKey","quotaText","selectXenoProviderRoute","validateDirectEndpoint"],"entryPoint":"src/providers/index.ts","inputs":{"src/config/models.ts":{"bytesInOutput":50},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":5733},"src/providers/index.ts":{"bytesInOutput":0},"src/providers/direct-provider.ts":{"bytesInOutput":25751},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6167},"src/observability/telemetry.ts":{"bytesInOutput":1599},"src/observability/index.ts":{"bytesInOutput":0},"src/providers/endpoint-policy.ts":{"bytesInOutput":3316},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-errors.ts":{"bytesInOutput":3247},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1519},"src/providers/tool-schema-projection.ts":{"bytesInOutput":5709},"src/utils/json-schema.ts":{"bytesInOutput":19782},"src/providers/quota.ts":{"bytesInOutput":3412},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":11924},"src/providers/file-connection-store.ts":{"bytesInOutput":3787},"src/artifacts/hash.ts":{"bytesInOutput":564},"src/control-plane/lock.ts":{"bytesInOutput":1054},"src/providers/quota-store.ts":{"bytesInOutput":8082}},"bytes":105006}}}
|
|
1
|
+
{"inputs":{"src/config/models.ts":{"bytes":16323,"imports":[],"format":"esm"},"src/core/llm-provider.ts":{"bytes":13791,"imports":[],"format":"esm"},"src/providers/DualLLMProvider.ts":{"bytes":19125,"imports":[{"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/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-errors.ts":{"bytes":8749,"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"}],"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":3986,"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":13579,"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"}],"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":12249,"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/utils/acknowledgement.ts":{"bytes":1197,"imports":[],"format":"esm"},"src/providers/quota.ts":{"bytes":9783,"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":55136,"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/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":24437,"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":11685,"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":1627,"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/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: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","ProviderError","QuotaAcknowledgementError","QuotaError","ToolSchemaProjectionError","XENO_PROVIDER_CATALOG_SCHEMA_VERSION","XENO_PROVIDER_CONNECTION_STORE_SCHEMA_VERSION","XenoProviderCatalog","assertDirectEndpointResolution","classifyProviderHttpError","createDirectProvider","createOllamaNativeProvider","createQuotaGovernedProvider","directProviderConfigFromConnection","isQuotaControlError","normalizeQuotaScope","parseRetryAfter","probeXenoProvider","projectToolDefinitionsForProvider","projectToolSchemaForProvider","providerCapabilityError","providerProtocolError","quotaAncestors","quotaInteger","quotaScopeKey","quotaText","selectXenoProviderRoute","validateDirectEndpoint"],"entryPoint":"src/providers/index.ts","inputs":{"src/config/models.ts":{"bytesInOutput":50},"src/core/llm-provider.ts":{"bytesInOutput":1142},"src/providers/DualLLMProvider.ts":{"bytesInOutput":5733},"src/providers/index.ts":{"bytesInOutput":0},"src/providers/direct-provider.ts":{"bytesInOutput":25751},"src/utils/tool-result-content.ts":{"bytesInOutput":436},"src/providers/bounded-provider-transport.ts":{"bytesInOutput":6174},"src/observability/telemetry.ts":{"bytesInOutput":1599},"src/observability/index.ts":{"bytesInOutput":0},"src/providers/endpoint-policy.ts":{"bytesInOutput":3316},"src/utils/context-overflow-phrases.ts":{"bytesInOutput":169},"src/providers/provider-errors.ts":{"bytesInOutput":3247},"src/providers/pinned-provider-dispatcher.ts":{"bytesInOutput":1519},"src/providers/tool-schema-projection.ts":{"bytesInOutput":5709},"src/utils/json-schema.ts":{"bytesInOutput":19782},"src/providers/quota.ts":{"bytesInOutput":3412},"src/utils/acknowledgement.ts":{"bytesInOutput":470},"src/utils/text-security.ts":{"bytesInOutput":180},"src/providers/catalog.ts":{"bytesInOutput":11924},"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":8082}},"bytes":105314}}}
|
package/dist/recipes/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var E=Object.defineProperty;var
|
|
2
|
-
`}function z(e,t){let i=h(e,`inputs[${t}]`,["name","description","required","default","enum","pattern"]);return{name:c(i.name,`inputs[${t}].name`),description:c(i.description,`inputs[${t}].description`),required:te(i.required,`inputs[${t}].required`),...i.default!==void 0?{default:c(i.default,`inputs[${t}].default`)}:{},...i.enum!==void 0?{enum:m(i.enum,`inputs[${t}].enum`).map(r=>c(r,"enum value"))}:{},...i.pattern!==void 0?{pattern:c(i.pattern,`inputs[${t}].pattern`)}:{}}}function U(e,t){let i=h(e,`steps[${t}]`,["id","title","kind","prompt","dependsOn","agentProfile","approval","expectedArtifacts"]),r=i.approval===void 0?void 0:h(i.approval,`steps[${t}].approval`,["message"]);return{id:c(i.id,`steps[${t}].id`),title:c(i.title,`steps[${t}].title`),kind:i.kind,prompt:c(i.prompt,`steps[${t}].prompt`),...i.dependsOn!==void 0?{dependsOn:m(i.dependsOn,"dependsOn").map(o=>c(o,"dependency"))}:{},...i.agentProfile!==void 0?{agentProfile:c(i.agentProfile,"agentProfile")}:{},...r?{approval:{message:c(r.message,"approval message")}}:{},...i.expectedArtifacts!==void 0?{expectedArtifacts:m(i.expectedArtifacts,"expectedArtifacts").map(o=>c(o,"expected artifact"))}:{}}}function W(e){let t=h(e,"provenance",["publisherId","source","revision"]);return{publisherId:c(t.publisherId,"provenance.publisherId"),...t.source!==void 0?{source:c(t.source,"provenance.source")}:{},...t.revision!==void 0?{revision:c(t.revision,"provenance.revision")}:{}}}function G(e,t){(!Number.isSafeInteger(e?.maxAgents)||e.maxAgents<1||e.maxAgents>256)&&t.push("budget.maxAgents is invalid"),(!Number.isSafeInteger(e?.maxConcurrency)||e.maxConcurrency<1||e.maxConcurrency>64)&&t.push("budget.maxConcurrency is invalid"),e?.maxConcurrency>e?.maxAgents&&t.push("budget.maxConcurrency cannot exceed maxAgents"),(!Number.isSafeInteger(e?.maxTotalTokens)||e.maxTotalTokens<1||e.maxTotalTokens>1e8)&&t.push("budget.maxTotalTokens is invalid"),(!Number.isSafeInteger(e?.timeoutMs)||e.timeoutMs<1e3||e.timeoutMs>10080*60*1e3)&&t.push("budget.timeoutMs is invalid")}function K(e,t){let i=new Map(e.map(n=>[n.id,n])),r=new Set,o=new Set,a=n=>{if(!(o.has(n)||!i.has(n))){if(r.has(n)){t.push(`recipe step dependency cycle includes ${n}`);return}r.add(n);for(let s of i.get(n)?.dependsOn??[])a(s);r.delete(n),o.add(n)}};for(let n of e)a(n.id)}function
|
|
1
|
+
"use strict";var E=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var F=(e,t)=>{for(var i in t)E(e,i,{get:t[i],enumerable:!0})},L=(e,t,i,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of V(t))!D.call(e,o)&&o!==i&&E(e,o,{get:()=>t[o],enumerable:!(r=O(t,o))||r.enumerable});return e};var M=e=>L(E({},"__esModule",{value:!0}),e);var oe={};F(oe,{XENO_RECIPE_SCHEMA_VERSION:()=>P,XenoRecipeValidationError:()=>d,assertValidXenoRecipeDefinition:()=>y,compileXenoRecipe:()=>q,parseXenoRecipeDefinition:()=>B,serializeXenoRecipe:()=>J,xenoRecipeFingerprint:()=>$});module.exports=M(oe);var _=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],x=["draft","pending_review","approved","rejected","superseded","archived"],T=["public","internal","confidential","restricted"],k=["agent","tool","user","system","integration"],A=["requirement","design-decision","risk","task","agent","run","tool-call","edit","commit","test-case","test-run","finding","approval","artifact","release","claim"],w=["decomposes","depends_on","implements","changes","tests","verifies","finds","fixes","reviews","approves","rejects","supersedes","derived_from","produced_by","supports_claim","contradicts_claim","released_as"];var C=require("node:crypto");function p(e){return{algorithm:"sha256",value:(0,C.createHash)("sha256").update(e).digest("hex")}}function u(e){return JSON.stringify(R(e,new Set))}function g(e){return p(u(e))}function R(e,t){if(e===null||typeof e!="object"){if(typeof e=="number"&&!Number.isFinite(e))throw new TypeError("Artifact JSON cannot contain non-finite numbers");return e}if(t.has(e))throw new TypeError("Artifact JSON cannot contain cycles");if(t.add(e),Array.isArray(e)){let r=e.map(o=>R(o,t));return t.delete(e),r}let i={};for(let r of Object.keys(e).sort((o,a)=>o.localeCompare(a))){let o=e[r];if(o===void 0)throw new TypeError(`Artifact JSON property ${r} is undefined`);i[r]=R(o,t)}return t.delete(e),i}var j="[\\u0000-\\u001f\\u007f]",me=new RegExp(j);var he=new Set(x),ge=new Set(T),ve=new Set(k),ye=new Set(_),Ae=new Set(A),we=new Set(w);var Se=new Set(A),_e=new Set(w);var Ge=64*1024*1024;var et=16*1024*1024;var Xt=16*1024*1024;function b(e,t={}){for(let i of e){let r=i.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&t.allowTab===!0)&&!((r===10||r===13)&&t.allowLineBreaks===!0))return!0}return!1}var P="xeno.recipe.v1",d=class extends Error{constructor(i){super(`XENO recipe is invalid: ${i.join("; ")}`);this.issues=i;this.name="XenoRecipeValidationError"}issues;code="XENO_RECIPE_INVALID"};function B(e){let t=h(e,"recipe",["schemaVersion","recipeId","name","description","version","modes","inputs","requiredSecretRefs","authority","budget","steps","provenance"]),i=h(t.authority,"authority",["permissionMode","externalActions","network"]),r=h(t.budget,"budget",["maxAgents","maxConcurrency","maxTotalTokens","timeoutMs"]),o={schemaVersion:t.schemaVersion,recipeId:c(t.recipeId,"recipeId"),name:c(t.name,"name"),description:c(t.description,"description"),version:v(t.version,"version"),modes:m(t.modes,"modes").map(a=>a),inputs:m(t.inputs,"inputs").map((a,n)=>z(a,n)),requiredSecretRefs:m(t.requiredSecretRefs,"requiredSecretRefs").map(a=>c(a,"secret ref")),authority:{permissionMode:i.permissionMode,externalActions:i.externalActions,network:i.network},budget:{maxAgents:v(r.maxAgents,"budget.maxAgents"),maxConcurrency:v(r.maxConcurrency,"budget.maxConcurrency"),maxTotalTokens:v(r.maxTotalTokens,"budget.maxTotalTokens"),timeoutMs:v(r.timeoutMs,"budget.timeoutMs")},steps:m(t.steps,"steps").map((a,n)=>U(a,n)),...t.provenance!==void 0?{provenance:W(t.provenance)}:{}};return y(o),o}function y(e){let t=[];e?.schemaVersion!==P&&t.push("schemaVersion must be xeno.recipe.v1"),I(e?.recipeId,"recipeId",t),f(e?.name,"name",t,256),f(e?.description,"description",t,8e3),(!Number.isSafeInteger(e?.version)||e.version<1||e.version>1e6)&&t.push("version must be a positive bounded integer"),(!Array.isArray(e?.modes)||e.modes.length<1)&&t.push("modes must contain at least one execution mode");let i=new Set;for(let n of e?.modes??[])n!=="interactive"&&n!=="headless"&&n!=="ci"&&t.push(`unsupported recipe mode ${String(n)}`),i.has(n)&&t.push(`duplicate recipe mode ${n}`),i.add(n);re(e?.authority?.permissionMode)||t.push("authority.permissionMode is invalid"),e?.authority?.externalActions!=="deny"&&e?.authority?.externalActions!=="approval-required"&&t.push("authority.externalActions is invalid"),e?.authority?.network!=="deny"&&e?.authority?.network!=="environment-policy"&&t.push("authority.network is invalid"),G(e?.budget,t);let r=new Set;for(let n of e?.inputs??[]){if(ne(n?.name,t),r.has(n.name)&&t.push(`duplicate input ${n.name}`),r.add(n.name),f(n?.description,`input ${n.name} description`,t,2e3),typeof n?.required!="boolean"&&t.push(`input ${n.name} required must be boolean`),n?.default!==void 0&&f(n.default,`input ${n.name} default`,t,32e3),n?.required&&n?.default!==void 0&&t.push(`required input ${n.name} cannot define a default`),n?.enum!==void 0){(!Array.isArray(n.enum)||n.enum.length<1||n.enum.length>256)&&t.push(`input ${n.name} enum is invalid`);for(let s of n.enum??[])f(s,`input ${n.name} enum value`,t,2e3);n.default!==void 0&&!n.enum.includes(n.default)&&t.push(`input ${n.name} default is outside its enum`)}if(n?.pattern!==void 0){f(n.pattern,`input ${n.name} pattern`,t,1e3);try{new RegExp(n.pattern,"u")}catch{t.push(`input ${n.name} pattern is invalid`)}}}let o=new Set;for(let n of e?.requiredSecretRefs??[])/^[A-Z_][A-Z0-9_]{0,127}$/u.test(n)||t.push(`required secret ref ${n} is invalid`),o.has(n)&&t.push(`duplicate secret ref ${n}`),o.add(n);(!Array.isArray(e?.steps)||e.steps.length<1||e.steps.length>256)&&t.push("steps must contain 1 through 256 records"),Array.isArray(e?.steps)&&e.steps.length>(e?.budget?.maxAgents??0)&&t.push("budget.maxAgents must cover every recipe step");let a=new Map;for(let n of e?.steps??[]){I(n?.id,"step id",t),a.has(n.id)&&t.push(`duplicate step ${n.id}`),a.set(n.id,n),f(n?.title,`step ${n.id} title`,t,2e3),n?.kind!=="agent"&&n?.kind!=="verification"&&t.push(`step ${n.id} kind is invalid`),f(n?.prompt,`step ${n.id} prompt`,t,128e3),n?.agentProfile!==void 0&&I(n.agentProfile,`step ${n.id} agentProfile`,t);for(let s of n?.dependsOn??[])I(s,`step ${n.id} dependency`,t);n?.approval&&f(n.approval.message,`step ${n.id} approval message`,t,8e3);for(let s of n?.expectedArtifacts??[])ie(s,`step ${n.id} expected artifact`,t);for(let s of ee(n?.prompt??""))r.has(s)||t.push(`step ${n.id} references unknown input ${s}`);/\{\{\s*(?:secret|env)[.:]/iu.test(n?.prompt??"")&&t.push(`step ${n.id} cannot interpolate secrets into prompts`)}for(let n of e?.steps??[])for(let s of n.dependsOn??[])a.has(s)||t.push(`step ${n.id} depends on unknown step ${s}`),s===n.id&&t.push(`step ${n.id} cannot depend on itself`);if(K(e?.steps??[],t),t.length>0)throw new d([...new Set(t)])}function q(e,t){if(y(e),!e.modes.includes(t.mode))throw new d([`recipe does not allow ${t.mode} mode`]);let i=t.inputs??{},r=new Map(e.inputs.map(s=>[s.name,s])),o=Object.keys(i).filter(s=>!r.has(s));if(o.length>0)throw new d(o.map(s=>`unknown recipe input ${s}`));let a={};for(let s of e.inputs){let S=i[s.name]??s.default;if(S===void 0){if(s.required)throw new d([`required recipe input ${s.name} is missing`]);a[s.name]="";continue}a[s.name]=Z(s,S)}let n=e.requiredSecretRefs.filter(s=>t.hasSecretRef&&!t.hasSecretRef(s));if(n.length>0)throw new d(n.map(s=>`required secret reference is unavailable: ${s}`));return{schemaVersion:1,recipeId:e.recipeId,recipeVersion:e.version,recipeFingerprint:$(e),mode:t.mode,inputs:a,requiredSecretRefs:[...e.requiredSecretRefs],authority:structuredClone(e.authority),budget:structuredClone(e.budget),steps:Y(e.steps).map(s=>({...structuredClone(s),prompt:Q(s.prompt,a)}))}}function $(e){return y(e),{algorithm:"sha256",value:g(e).value}}function J(e){return y(e),`${u(e)}
|
|
2
|
+
`}function z(e,t){let i=h(e,`inputs[${t}]`,["name","description","required","default","enum","pattern"]);return{name:c(i.name,`inputs[${t}].name`),description:c(i.description,`inputs[${t}].description`),required:te(i.required,`inputs[${t}].required`),...i.default!==void 0?{default:c(i.default,`inputs[${t}].default`)}:{},...i.enum!==void 0?{enum:m(i.enum,`inputs[${t}].enum`).map(r=>c(r,"enum value"))}:{},...i.pattern!==void 0?{pattern:c(i.pattern,`inputs[${t}].pattern`)}:{}}}function U(e,t){let i=h(e,`steps[${t}]`,["id","title","kind","prompt","dependsOn","agentProfile","approval","expectedArtifacts"]),r=i.approval===void 0?void 0:h(i.approval,`steps[${t}].approval`,["message"]);return{id:c(i.id,`steps[${t}].id`),title:c(i.title,`steps[${t}].title`),kind:i.kind,prompt:c(i.prompt,`steps[${t}].prompt`),...i.dependsOn!==void 0?{dependsOn:m(i.dependsOn,"dependsOn").map(o=>c(o,"dependency"))}:{},...i.agentProfile!==void 0?{agentProfile:c(i.agentProfile,"agentProfile")}:{},...r?{approval:{message:c(r.message,"approval message")}}:{},...i.expectedArtifacts!==void 0?{expectedArtifacts:m(i.expectedArtifacts,"expectedArtifacts").map(o=>c(o,"expected artifact"))}:{}}}function W(e){let t=h(e,"provenance",["publisherId","source","revision"]);return{publisherId:c(t.publisherId,"provenance.publisherId"),...t.source!==void 0?{source:c(t.source,"provenance.source")}:{},...t.revision!==void 0?{revision:c(t.revision,"provenance.revision")}:{}}}function G(e,t){(!Number.isSafeInteger(e?.maxAgents)||e.maxAgents<1||e.maxAgents>256)&&t.push("budget.maxAgents is invalid"),(!Number.isSafeInteger(e?.maxConcurrency)||e.maxConcurrency<1||e.maxConcurrency>64)&&t.push("budget.maxConcurrency is invalid"),e?.maxConcurrency>e?.maxAgents&&t.push("budget.maxConcurrency cannot exceed maxAgents"),(!Number.isSafeInteger(e?.maxTotalTokens)||e.maxTotalTokens<1||e.maxTotalTokens>1e8)&&t.push("budget.maxTotalTokens is invalid"),(!Number.isSafeInteger(e?.timeoutMs)||e.timeoutMs<1e3||e.timeoutMs>10080*60*1e3)&&t.push("budget.timeoutMs is invalid")}function K(e,t){let i=new Map(e.map(n=>[n.id,n])),r=new Set,o=new Set,a=n=>{if(!(o.has(n)||!i.has(n))){if(r.has(n)){t.push(`recipe step dependency cycle includes ${n}`);return}r.add(n);for(let s of i.get(n)?.dependsOn??[])a(s);r.delete(n),o.add(n)}};for(let n of e)a(n.id)}function Y(e){let t=new Map(e.map(o=>[o.id,o])),i=new Map(e.map((o,a)=>[o.id,{step:o,index:a,dependencies:new Set(o.dependsOn??[])}])),r=[];for(;i.size>0;){let o=[...i.values()].filter(({dependencies:a})=>[...a].every(n=>!i.has(n))).sort((a,n)=>a.index-n.index);if(o.length===0)throw new d(["recipe step dependency graph is cyclic"]);for(let a of o)r.push(t.get(a.step.id)),i.delete(a.step.id)}return r}function Z(e,t){let i=t.trim();if(i.length>32e3||b(i,{allowTab:!0,allowLineBreaks:!0}))throw new d([`input ${e.name} is invalid`]);if(e.enum&&!e.enum.includes(i))throw new d([`input ${e.name} is outside its enum`]);if(e.pattern&&!new RegExp(e.pattern,"u").test(i))throw new d([`input ${e.name} does not match its pattern`]);return i}function Q(e,t){return e.replace(/\{\{\s*input\.([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/gu,(i,r)=>t[r]??"")}function ee(e){return[...e.matchAll(/\{\{\s*input\.([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/gu)].map(t=>t[1])}function h(e,t,i){if(!e||typeof e!="object"||Array.isArray(e))throw new d([`${t} must be an object`]);let r=e,o=Object.keys(r).filter(a=>!i.includes(a));if(o.length>0)throw new d(o.map(a=>`${t} contains unsupported field ${a}`));return r}function m(e,t){if(!Array.isArray(e))throw new d([`${t} must be an array`]);return e}function c(e,t){if(typeof e!="string")throw new d([`${t} must be text`]);return e}function te(e,t){if(typeof e!="boolean")throw new d([`${t} must be boolean`]);return e}function v(e,t){if(!Number.isSafeInteger(e))throw new d([`${t} must be an integer`]);return e}function I(e,t,i){(typeof e!="string"||!/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(e))&&i.push(`${t} is invalid`)}function ne(e,t){(typeof e!="string"||!/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u.test(e))&&t.push(`input name ${String(e)} is invalid`)}function f(e,t,i,r){(typeof e!="string"||!e.trim()||e.length>r||b(e,{allowTab:!0,allowLineBreaks:!0}))&&i.push(`${t} must be non-empty bounded text`)}function ie(e,t,i){(typeof e!="string"||!e||e.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(e)||e.includes("\\")||e.split("/").some(r=>!r||r==="."||r===".."))&&i.push(`${t} must be workflow-relative`)}function re(e){return e==="default"||e==="plan"||e==="acceptEdits"||e==="auto"||e==="dontAsk"}0&&(module.exports={XENO_RECIPE_SCHEMA_VERSION,XenoRecipeValidationError,assertValidXenoRecipeDefinition,compileXenoRecipe,parseXenoRecipeDefinition,serializeXenoRecipe,xenoRecipeFingerprint});
|
package/dist/recipes/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var S=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],_=["draft","pending_review","approved","rejected","superseded","archived"],x=["public","internal","confidential","restricted"],
|
|
2
|
-
`}function
|
|
1
|
+
var S=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],_=["draft","pending_review","approved","rejected","superseded","archived"],x=["public","internal","confidential","restricted"],T=["agent","tool","user","system","integration"],y=["requirement","design-decision","risk","task","agent","run","tool-call","edit","commit","test-case","test-run","finding","approval","artifact","release","claim"],A=["decomposes","depends_on","implements","changes","tests","verifies","finds","fixes","reviews","approves","rejects","supersedes","derived_from","produced_by","supports_claim","contradicts_claim","released_as"];import{createHash as C}from"node:crypto";function p(e){return{algorithm:"sha256",value:C("sha256").update(e).digest("hex")}}function u(e){return JSON.stringify(E(e,new Set))}function g(e){return p(u(e))}function E(e,t){if(e===null||typeof e!="object"){if(typeof e=="number"&&!Number.isFinite(e))throw new TypeError("Artifact JSON cannot contain non-finite numbers");return e}if(t.has(e))throw new TypeError("Artifact JSON cannot contain cycles");if(t.add(e),Array.isArray(e)){let r=e.map(s=>E(s,t));return t.delete(e),r}let i={};for(let r of Object.keys(e).sort((s,a)=>s.localeCompare(a))){let s=e[r];if(s===void 0)throw new TypeError(`Artifact JSON property ${r} is undefined`);i[r]=E(s,t)}return t.delete(e),i}var N="[\\u0000-\\u001f\\u007f]",ie=new RegExp(N);var re=new Set(_),oe=new Set(x),se=new Set(T),ae=new Set(S),ce=new Set(y),de=new Set(A);var he=new Set(y),ge=new Set(A);var Fe=64*1024*1024;var Be=16*1024*1024;var lt=16*1024*1024;function X(e,t={}){for(let i of e){let r=i.codePointAt(0);if(r===127)return!0;if(!(r>31)&&!(r===9&&t.allowTab===!0)&&!((r===10||r===13)&&t.allowLineBreaks===!0))return!0}return!1}var $="xeno.recipe.v1",d=class extends Error{constructor(i){super(`XENO recipe is invalid: ${i.join("; ")}`);this.issues=i;this.name="XenoRecipeValidationError"}issues;code="XENO_RECIPE_INVALID"};function Ct(e){let t=h(e,"recipe",["schemaVersion","recipeId","name","description","version","modes","inputs","requiredSecretRefs","authority","budget","steps","provenance"]),i=h(t.authority,"authority",["permissionMode","externalActions","network"]),r=h(t.budget,"budget",["maxAgents","maxConcurrency","maxTotalTokens","timeoutMs"]),s={schemaVersion:t.schemaVersion,recipeId:c(t.recipeId,"recipeId"),name:c(t.name,"name"),description:c(t.description,"description"),version:v(t.version,"version"),modes:m(t.modes,"modes").map(a=>a),inputs:m(t.inputs,"inputs").map((a,n)=>V(a,n)),requiredSecretRefs:m(t.requiredSecretRefs,"requiredSecretRefs").map(a=>c(a,"secret ref")),authority:{permissionMode:i.permissionMode,externalActions:i.externalActions,network:i.network},budget:{maxAgents:v(r.maxAgents,"budget.maxAgents"),maxConcurrency:v(r.maxConcurrency,"budget.maxConcurrency"),maxTotalTokens:v(r.maxTotalTokens,"budget.maxTotalTokens"),timeoutMs:v(r.timeoutMs,"budget.timeoutMs")},steps:m(t.steps,"steps").map((a,n)=>D(a,n)),...t.provenance!==void 0?{provenance:F(t.provenance)}:{}};return I(s),s}function I(e){let t=[];e?.schemaVersion!==$&&t.push("schemaVersion must be xeno.recipe.v1"),w(e?.recipeId,"recipeId",t),f(e?.name,"name",t,256),f(e?.description,"description",t,8e3),(!Number.isSafeInteger(e?.version)||e.version<1||e.version>1e6)&&t.push("version must be a positive bounded integer"),(!Array.isArray(e?.modes)||e.modes.length<1)&&t.push("modes must contain at least one execution mode");let i=new Set;for(let n of e?.modes??[])n!=="interactive"&&n!=="headless"&&n!=="ci"&&t.push(`unsupported recipe mode ${String(n)}`),i.has(n)&&t.push(`duplicate recipe mode ${n}`),i.add(n);W(e?.authority?.permissionMode)||t.push("authority.permissionMode is invalid"),e?.authority?.externalActions!=="deny"&&e?.authority?.externalActions!=="approval-required"&&t.push("authority.externalActions is invalid"),e?.authority?.network!=="deny"&&e?.authority?.network!=="environment-policy"&&t.push("authority.network is invalid"),L(e?.budget,t);let r=new Set;for(let n of e?.inputs??[]){if(z(n?.name,t),r.has(n.name)&&t.push(`duplicate input ${n.name}`),r.add(n.name),f(n?.description,`input ${n.name} description`,t,2e3),typeof n?.required!="boolean"&&t.push(`input ${n.name} required must be boolean`),n?.default!==void 0&&f(n.default,`input ${n.name} default`,t,32e3),n?.required&&n?.default!==void 0&&t.push(`required input ${n.name} cannot define a default`),n?.enum!==void 0){(!Array.isArray(n.enum)||n.enum.length<1||n.enum.length>256)&&t.push(`input ${n.name} enum is invalid`);for(let o of n.enum??[])f(o,`input ${n.name} enum value`,t,2e3);n.default!==void 0&&!n.enum.includes(n.default)&&t.push(`input ${n.name} default is outside its enum`)}if(n?.pattern!==void 0){f(n.pattern,`input ${n.name} pattern`,t,1e3);try{new RegExp(n.pattern,"u")}catch{t.push(`input ${n.name} pattern is invalid`)}}}let s=new Set;for(let n of e?.requiredSecretRefs??[])/^[A-Z_][A-Z0-9_]{0,127}$/u.test(n)||t.push(`required secret ref ${n} is invalid`),s.has(n)&&t.push(`duplicate secret ref ${n}`),s.add(n);(!Array.isArray(e?.steps)||e.steps.length<1||e.steps.length>256)&&t.push("steps must contain 1 through 256 records"),Array.isArray(e?.steps)&&e.steps.length>(e?.budget?.maxAgents??0)&&t.push("budget.maxAgents must cover every recipe step");let a=new Map;for(let n of e?.steps??[]){w(n?.id,"step id",t),a.has(n.id)&&t.push(`duplicate step ${n.id}`),a.set(n.id,n),f(n?.title,`step ${n.id} title`,t,2e3),n?.kind!=="agent"&&n?.kind!=="verification"&&t.push(`step ${n.id} kind is invalid`),f(n?.prompt,`step ${n.id} prompt`,t,128e3),n?.agentProfile!==void 0&&w(n.agentProfile,`step ${n.id} agentProfile`,t);for(let o of n?.dependsOn??[])w(o,`step ${n.id} dependency`,t);n?.approval&&f(n.approval.message,`step ${n.id} approval message`,t,8e3);for(let o of n?.expectedArtifacts??[])U(o,`step ${n.id} expected artifact`,t);for(let o of q(n?.prompt??""))r.has(o)||t.push(`step ${n.id} references unknown input ${o}`);/\{\{\s*(?:secret|env)[.:]/iu.test(n?.prompt??"")&&t.push(`step ${n.id} cannot interpolate secrets into prompts`)}for(let n of e?.steps??[])for(let o of n.dependsOn??[])a.has(o)||t.push(`step ${n.id} depends on unknown step ${o}`),o===n.id&&t.push(`step ${n.id} cannot depend on itself`);if(M(e?.steps??[],t),t.length>0)throw new d([...new Set(t)])}function Nt(e,t){if(I(e),!e.modes.includes(t.mode))throw new d([`recipe does not allow ${t.mode} mode`]);let i=t.inputs??{},r=new Map(e.inputs.map(o=>[o.name,o])),s=Object.keys(i).filter(o=>!r.has(o));if(s.length>0)throw new d(s.map(o=>`unknown recipe input ${o}`));let a={};for(let o of e.inputs){let b=i[o.name]??o.default;if(b===void 0){if(o.required)throw new d([`required recipe input ${o.name} is missing`]);a[o.name]="";continue}a[o.name]=H(o,b)}let n=e.requiredSecretRefs.filter(o=>t.hasSecretRef&&!t.hasSecretRef(o));if(n.length>0)throw new d(n.map(o=>`required secret reference is unavailable: ${o}`));return{schemaVersion:1,recipeId:e.recipeId,recipeVersion:e.version,recipeFingerprint:O(e),mode:t.mode,inputs:a,requiredSecretRefs:[...e.requiredSecretRefs],authority:structuredClone(e.authority),budget:structuredClone(e.budget),steps:j(e.steps).map(o=>({...structuredClone(o),prompt:B(o.prompt,a)}))}}function O(e){return I(e),{algorithm:"sha256",value:g(e).value}}function Pt(e){return I(e),`${u(e)}
|
|
2
|
+
`}function V(e,t){let i=h(e,`inputs[${t}]`,["name","description","required","default","enum","pattern"]);return{name:c(i.name,`inputs[${t}].name`),description:c(i.description,`inputs[${t}].description`),required:J(i.required,`inputs[${t}].required`),...i.default!==void 0?{default:c(i.default,`inputs[${t}].default`)}:{},...i.enum!==void 0?{enum:m(i.enum,`inputs[${t}].enum`).map(r=>c(r,"enum value"))}:{},...i.pattern!==void 0?{pattern:c(i.pattern,`inputs[${t}].pattern`)}:{}}}function D(e,t){let i=h(e,`steps[${t}]`,["id","title","kind","prompt","dependsOn","agentProfile","approval","expectedArtifacts"]),r=i.approval===void 0?void 0:h(i.approval,`steps[${t}].approval`,["message"]);return{id:c(i.id,`steps[${t}].id`),title:c(i.title,`steps[${t}].title`),kind:i.kind,prompt:c(i.prompt,`steps[${t}].prompt`),...i.dependsOn!==void 0?{dependsOn:m(i.dependsOn,"dependsOn").map(s=>c(s,"dependency"))}:{},...i.agentProfile!==void 0?{agentProfile:c(i.agentProfile,"agentProfile")}:{},...r?{approval:{message:c(r.message,"approval message")}}:{},...i.expectedArtifacts!==void 0?{expectedArtifacts:m(i.expectedArtifacts,"expectedArtifacts").map(s=>c(s,"expected artifact"))}:{}}}function F(e){let t=h(e,"provenance",["publisherId","source","revision"]);return{publisherId:c(t.publisherId,"provenance.publisherId"),...t.source!==void 0?{source:c(t.source,"provenance.source")}:{},...t.revision!==void 0?{revision:c(t.revision,"provenance.revision")}:{}}}function L(e,t){(!Number.isSafeInteger(e?.maxAgents)||e.maxAgents<1||e.maxAgents>256)&&t.push("budget.maxAgents is invalid"),(!Number.isSafeInteger(e?.maxConcurrency)||e.maxConcurrency<1||e.maxConcurrency>64)&&t.push("budget.maxConcurrency is invalid"),e?.maxConcurrency>e?.maxAgents&&t.push("budget.maxConcurrency cannot exceed maxAgents"),(!Number.isSafeInteger(e?.maxTotalTokens)||e.maxTotalTokens<1||e.maxTotalTokens>1e8)&&t.push("budget.maxTotalTokens is invalid"),(!Number.isSafeInteger(e?.timeoutMs)||e.timeoutMs<1e3||e.timeoutMs>10080*60*1e3)&&t.push("budget.timeoutMs is invalid")}function M(e,t){let i=new Map(e.map(n=>[n.id,n])),r=new Set,s=new Set,a=n=>{if(!(s.has(n)||!i.has(n))){if(r.has(n)){t.push(`recipe step dependency cycle includes ${n}`);return}r.add(n);for(let o of i.get(n)?.dependsOn??[])a(o);r.delete(n),s.add(n)}};for(let n of e)a(n.id)}function j(e){let t=new Map(e.map(s=>[s.id,s])),i=new Map(e.map((s,a)=>[s.id,{step:s,index:a,dependencies:new Set(s.dependsOn??[])}])),r=[];for(;i.size>0;){let s=[...i.values()].filter(({dependencies:a})=>[...a].every(n=>!i.has(n))).sort((a,n)=>a.index-n.index);if(s.length===0)throw new d(["recipe step dependency graph is cyclic"]);for(let a of s)r.push(t.get(a.step.id)),i.delete(a.step.id)}return r}function H(e,t){let i=t.trim();if(i.length>32e3||X(i,{allowTab:!0,allowLineBreaks:!0}))throw new d([`input ${e.name} is invalid`]);if(e.enum&&!e.enum.includes(i))throw new d([`input ${e.name} is outside its enum`]);if(e.pattern&&!new RegExp(e.pattern,"u").test(i))throw new d([`input ${e.name} does not match its pattern`]);return i}function B(e,t){return e.replace(/\{\{\s*input\.([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/gu,(i,r)=>t[r]??"")}function q(e){return[...e.matchAll(/\{\{\s*input\.([A-Za-z_][A-Za-z0-9_-]*)\s*\}\}/gu)].map(t=>t[1])}function h(e,t,i){if(!e||typeof e!="object"||Array.isArray(e))throw new d([`${t} must be an object`]);let r=e,s=Object.keys(r).filter(a=>!i.includes(a));if(s.length>0)throw new d(s.map(a=>`${t} contains unsupported field ${a}`));return r}function m(e,t){if(!Array.isArray(e))throw new d([`${t} must be an array`]);return e}function c(e,t){if(typeof e!="string")throw new d([`${t} must be text`]);return e}function J(e,t){if(typeof e!="boolean")throw new d([`${t} must be boolean`]);return e}function v(e,t){if(!Number.isSafeInteger(e))throw new d([`${t} must be an integer`]);return e}function w(e,t,i){(typeof e!="string"||!/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(e))&&i.push(`${t} is invalid`)}function z(e,t){(typeof e!="string"||!/^[A-Za-z_][A-Za-z0-9_-]{0,127}$/u.test(e))&&t.push(`input name ${String(e)} is invalid`)}function f(e,t,i,r){(typeof e!="string"||!e.trim()||e.length>r||X(e,{allowTab:!0,allowLineBreaks:!0}))&&i.push(`${t} must be non-empty bounded text`)}function U(e,t,i){(typeof e!="string"||!e||e.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(e)||e.includes("\\")||e.split("/").some(r=>!r||r==="."||r===".."))&&i.push(`${t} must be workflow-relative`)}function W(e){return e==="default"||e==="plan"||e==="acceptEdits"||e==="auto"||e==="dontAsk"}export{$ as XENO_RECIPE_SCHEMA_VERSION,d as XenoRecipeValidationError,I as assertValidXenoRecipeDefinition,Nt as compileXenoRecipe,Ct as parseXenoRecipeDefinition,Pt as serializeXenoRecipe,O as xenoRecipeFingerprint};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"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/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":11685,"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/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/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"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/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/recipes/protocol.ts":{"bytes":21365,"imports":[{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/recipes/index.ts":{"bytes":31,"imports":[{"path":"src/recipes/protocol.ts","kind":"import-statement","original":"./protocol.js"}],"format":"esm"}},"outputs":{"dist/recipes/index.cjs":{"imports":[{"path":"node:crypto","kind":"require-call","external":true}],"exports":[],"entryPoint":"src/recipes/index.ts","inputs":{"src/recipes/index.ts":{"bytesInOutput":252},"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":715},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179},"src/recipes/protocol.ts":{"bytesInOutput":10079}},"bytes":12893}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"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/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/artifacts/types.ts":{"bytes":11227,"imports":[],"format":"esm"},"src/artifacts/hash.ts":{"bytes":1489,"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"format":"esm"},"src/utils/custom-names.ts":{"bytes":2210,"imports":[],"format":"esm"},"src/artifacts/validation.ts":{"bytes":25271,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/evidence-graph.ts":{"bytes":8778,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/repository.ts":{"bytes":29289,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/utils/fs.ts":{"bytes":11685,"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/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/version.ts":{"bytes":195,"imports":[],"format":"esm"},"src/artifacts/file-repository.ts":{"bytes":16401,"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/control-plane/lock.ts","kind":"import-statement","original":"../control-plane/lock.js"},{"path":"src/version.ts","kind":"import-statement","original":"../version.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/diff-artifact.ts":{"bytes":17998,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"}],"format":"esm"},"src/artifacts/review-service.ts":{"bytes":8672,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"}],"format":"esm"},"src/artifacts/spec-lifecycle.ts":{"bytes":31007,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/multi-agent-review.ts":{"bytes":30649,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/utils/custom-names.ts","kind":"import-statement","original":"../utils/custom-names.js"}],"format":"esm"},"src/artifacts/legacy-adapters.ts":{"bytes":10908,"imports":[{"path":"node:buffer","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"}],"format":"esm"},"src/artifacts/pages.ts":{"bytes":20179,"imports":[{"path":"node:crypto","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"node:crypto","kind":"import-statement","external":true},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/artifacts/index.ts":{"bytes":413,"imports":[{"path":"src/artifacts/types.ts","kind":"import-statement","original":"./types.js"},{"path":"src/artifacts/validation.ts","kind":"import-statement","original":"./validation.js"},{"path":"src/artifacts/hash.ts","kind":"import-statement","original":"./hash.js"},{"path":"src/artifacts/evidence-graph.ts","kind":"import-statement","original":"./evidence-graph.js"},{"path":"src/artifacts/repository.ts","kind":"import-statement","original":"./repository.js"},{"path":"src/artifacts/file-repository.ts","kind":"import-statement","original":"./file-repository.js"},{"path":"src/artifacts/diff-artifact.ts","kind":"import-statement","original":"./diff-artifact.js"},{"path":"src/artifacts/review-service.ts","kind":"import-statement","original":"./review-service.js"},{"path":"src/artifacts/spec-lifecycle.ts","kind":"import-statement","original":"./spec-lifecycle.js"},{"path":"src/artifacts/multi-agent-review.ts","kind":"import-statement","original":"./multi-agent-review.js"},{"path":"src/artifacts/legacy-adapters.ts","kind":"import-statement","original":"./legacy-adapters.js"},{"path":"src/artifacts/pages.ts","kind":"import-statement","original":"./pages.js"}],"format":"esm"},"src/utils/text-security.ts":{"bytes":809,"imports":[],"format":"esm"},"src/recipes/protocol.ts":{"bytes":21365,"imports":[{"path":"src/artifacts/index.ts","kind":"import-statement","original":"../artifacts/index.js"},{"path":"src/utils/text-security.ts","kind":"import-statement","original":"../utils/text-security.js"}],"format":"esm"},"src/recipes/index.ts":{"bytes":31,"imports":[{"path":"src/recipes/protocol.ts","kind":"import-statement","original":"./protocol.js"}],"format":"esm"}},"outputs":{"dist/recipes/index.js":{"imports":[{"path":"node:crypto","kind":"import-statement","external":true}],"exports":["XENO_RECIPE_SCHEMA_VERSION","XenoRecipeValidationError","assertValidXenoRecipeDefinition","compileXenoRecipe","parseXenoRecipeDefinition","serializeXenoRecipe","xenoRecipeFingerprint"],"entryPoint":"src/recipes/index.ts","inputs":{"src/artifacts/types.ts":{"bytesInOutput":819},"src/artifacts/index.ts":{"bytesInOutput":0},"src/artifacts/hash.ts":{"bytesInOutput":712},"src/artifacts/validation.ts":{"bytesInOutput":138},"src/artifacts/evidence-graph.ts":{"bytesInOutput":32},"src/artifacts/file-repository.ts":{"bytesInOutput":20},"src/artifacts/diff-artifact.ts":{"bytesInOutput":20},"src/artifacts/pages.ts":{"bytesInOutput":20},"src/utils/text-security.ts":{"bytesInOutput":179},"src/recipes/protocol.ts":{"bytesInOutput":10072},"src/recipes/index.ts":{"bytesInOutput":0}},"bytes":12230}}}
|
package/dist/research/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var y=Object.defineProperty;var
|
|
2
|
-
`)}function U(e,t){e?.provider!=="github"&&e?.provider!=="gitlab"&&t.push("repository provider must be github or gitlab"),Z(e?.host,"repository host",t),Q(e?.repository,t),a(e?.ref,"repository ref",t,512),(typeof e?.commit!="string"||!/^[a-f0-9]{7,64}$/u.test(e.commit))&&t.push("repository commit must be a lowercase hexadecimal object ID"),ee(e?.url,"repository url",t)}function W(e,t){P(e?.path,"source file path",t),g(e?.contentHash,`source file ${e?.path} contentHash`,t),(!Number.isSafeInteger(e?.sizeBytes)||e.sizeBytes<0||e.sizeBytes>8*1024*1024)&&t.push(`source file ${e?.path} sizeBytes is invalid`),(!Number.isSafeInteger(e?.lineCount)||e.lineCount<1||e.lineCount>1e6)&&t.push(`source file ${e?.path} lineCount is invalid`),e?.blobId!==void 0&&a(e.blobId,`source file ${e.path} blobId`,t,256),e?.language!==void 0&&a(e.language,`source file ${e.path} language`,t,128)}function G(e,t,n){
|
|
3
|
-
`).length!==e.endLine-e.startLine+1&&n.push(`excerpt ${e?.excerptId} line span does not match text`)}function K(e,t){
|
|
1
|
+
"use strict";var y=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var D=Object.prototype.hasOwnProperty;var F=(e,t)=>{for(var n in t)y(e,n,{get:t[n],enumerable:!0})},L=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of V(t))!D.call(e,o)&&o!==n&&y(e,o,{get:()=>t[o],enumerable:!(i=O(t,o))||i.enumerable});return e};var H=e=>L(y({},"__esModule",{value:!0}),e);var ie={};F(ie,{XENO_SOURCE_RESEARCH_SCHEMA_VERSION:()=>E,XenoSourceResearchValidationError:()=>c,assertValidXenoSourceResearchReport:()=>v,createXenoSourceResearchExcerpt:()=>q,createXenoSourceResearchReport:()=>B,normalizeSourceText:()=>h,xenoArtifactToSourceResearchReport:()=>z,xenoSourceResearchReportToArtifact:()=>J});module.exports=H(ie);var w=require("node:crypto");var X=["plan","requirements","design","task-graph","patch","diff","file","document","diagram","screenshot","recording","browser-snapshot","test-report","review-report","security-report","performance-report","release-report","sbom","provenance","attestation","page"],b=["draft","pending_review","approved","rejected","superseded","archived"],S=["public","internal","confidential","restricted"],x=["agent","tool","user","system","integration"],l=["requirement","design-decision","risk","task","agent","run","tool-call","edit","commit","test-case","test-run","finding","approval","artifact","release","claim"],m=["decomposes","depends_on","implements","changes","tests","verifies","finds","fixes","reviews","approves","rejects","supersedes","derived_from","produced_by","supports_claim","contradicts_claim","released_as"];var _=require("node:crypto");function s(e){return{algorithm:"sha256",value:(0,_.createHash)("sha256").update(e).digest("hex")}}function d(e){return JSON.stringify(A(e,new Set))}function f(e){return s(d(e))}function A(e,t){if(e===null||typeof e!="object"){if(typeof e=="number"&&!Number.isFinite(e))throw new TypeError("Artifact JSON cannot contain non-finite numbers");return e}if(t.has(e))throw new TypeError("Artifact JSON cannot contain cycles");if(t.add(e),Array.isArray(e)){let i=e.map(o=>A(o,t));return t.delete(e),i}let n={};for(let i of Object.keys(e).sort((o,r)=>o.localeCompare(r))){let o=e[i];if(o===void 0)throw new TypeError(`Artifact JSON property ${i} is undefined`);n[i]=A(o,t)}return t.delete(e),n}var M="[\\u0000-\\u001f\\u007f]",pe=new RegExp(M);var le=new Set(b),me=new Set(S),he=new Set(x),ge=new Set(X),ve=new Set(l),ye=new Set(m);var Xe=new Set(l),be=new Set(m);var Ue=64*1024*1024;var Ze=16*1024*1024;var Et=16*1024*1024;function k(e,t={}){for(let n of e){let i=n.codePointAt(0);if(i===127)return!0;if(!(i>31)&&!(i===9&&t.allowTab===!0)&&!((i===10||i===13)&&t.allowLineBreaks===!0))return!0}return!1}var E="xeno.source-research-report.v1",c=class extends Error{constructor(n){super(`XENO source-research report is invalid: ${n.join("; ")}`);this.issues=n;this.name="XenoSourceResearchValidationError"}issues;code="XENO_SOURCE_RESEARCH_INVALID"};function B(e){let t={schemaVersion:E,reportId:e.reportId??`research_${(0,w.randomUUID)()}`,runId:e.runId??`research_run_${(0,w.randomUUID)()}`,query:e.query.trim(),queryHash:$(e.query.trim()),repository:structuredClone(e.repository),collectedAt:e.collectedAt,completedAt:e.completedAt??new Date().toISOString(),model:structuredClone(e.model),files:structuredClone(e.files),excerpts:structuredClone(e.excerpts),answer:e.answer.trim(),answerExcerptIds:[...new Set(e.answerExcerptIds)],publicRationale:e.publicRationale.trim(),findings:structuredClone(e.findings),limitations:[...new Set((e.limitations??[]).map(n=>n.trim()).filter(Boolean))],usage:{inputTokens:N(e.usage?.inputTokens),outputTokens:N(e.usage?.outputTokens)}};return v(t),t}function q(e){return{excerptId:e.excerptId,path:e.path,startLine:e.startLine,endLine:e.endLine,text:h(e.text),contentHash:$(h(e.text)),sourceContentHash:structuredClone(e.sourceContentHash)}}function v(e){let t=[];e?.schemaVersion!==E&&t.push("schemaVersion must be xeno.source-research-report.v1"),p(e?.reportId,"reportId",t),p(e?.runId,"runId",t),a(e?.query,"query",t,128e3),g(e?.queryHash,"queryHash",t),typeof e?.query=="string"&&e.queryHash?.value!==s(e.query).value&&t.push("queryHash does not match query"),U(e?.repository,t),C(e?.collectedAt,"collectedAt",t),C(e?.completedAt,"completedAt",t),Date.parse(e?.completedAt)<Date.parse(e?.collectedAt)&&t.push("completedAt cannot precede collectedAt"),K(e?.model,t),a(e?.answer,"answer",t,512e3),a(e?.publicRationale,"publicRationale",t,256e3),Y(e?.usage,t),(!Array.isArray(e?.files)||e.files.length<1||e.files.length>256)&&t.push("files must contain 1 through 256 source records");let n=new Map;for(let r of e?.files??[])W(r,t),n.has(r.path)&&t.push(`duplicate source file ${r.path}`),n.set(r.path,r);(!Array.isArray(e?.excerpts)||e.excerpts.length>1024)&&t.push("excerpts must contain at most 1024 records");let i=new Map;for(let r of e?.excerpts??[])G(r,n,t),i.has(r.excerptId)&&t.push(`duplicate excerpt ${r.excerptId}`),i.set(r.excerptId,r);(!Array.isArray(e?.answerExcerptIds)||e.answerExcerptIds.length<1)&&t.push("answerExcerptIds must cite at least one source excerpt");for(let r of e?.answerExcerptIds??[])i.has(r)||t.push(`answer references unknown excerpt ${r}`);(!Array.isArray(e?.findings)||e.findings.length>512)&&t.push("findings must contain at most 512 records");let o=new Set;for(let r of e?.findings??[]){p(r?.findingId,"findingId",t),o.has(r.findingId)&&t.push(`duplicate finding ${r.findingId}`),o.add(r.findingId),a(r?.title,`finding ${r.findingId} title`,t,2e3),a(r?.summary,`finding ${r.findingId} summary`,t,64e3),ne(r?.severity)||t.push(`finding ${r.findingId} severity is invalid`),te(r?.confidence)||t.push(`finding ${r.findingId} confidence must be between 0 and 1`),(!Array.isArray(r?.excerptIds)||r.excerptIds.length<1)&&t.push(`finding ${r.findingId} requires source excerpts`);for(let R of r?.excerptIds??[])i.has(R)||t.push(`finding ${r.findingId} references unknown excerpt ${R}`)}(!Array.isArray(e?.limitations)||e.limitations.length>256)&&t.push("limitations must contain at most 256 records");for(let r of e?.limitations??[])a(r,"limitation",t,16e3);if(t.length>0)throw new c([...new Set(t)])}function J(e,t){v(e);let n=t.createdAt??e.completedAt,i=d(e);return{schemaVersion:1,artifactId:t.artifactId??`research_${s(`${e.runId}:${e.repository.commit}:${e.queryHash.value}`).value.slice(0,24)}`,revision:1,kind:"custom:source-research-report",title:`Source research: ${e.repository.repository}`,description:e.answer.slice(0,1e3),state:"pending_review",createdAt:n,mediaType:"application/vnd.xeno.source-research-report+json",sensitivity:t.sensitivity??"internal",identity:{...t.identity,runId:t.identity?.runId??e.runId,repositoryId:t.identity?.repositoryId??`${e.repository.provider}:${e.repository.repository}`},content:{hash:f(e),sizeBytes:Buffer.byteLength(i,"utf8"),storage:{type:"inline",text:i},encoding:"utf8",redactedPreview:e.answer.slice(0,2e3)},provenance:{producer:structuredClone(t.producer),attributes:{"xeno.research.provider":e.repository.provider,"xeno.research.repository":e.repository.repository,"xeno.research.commit":e.repository.commit,"xeno.research.model":`${e.model.providerId}/${e.model.model}`,"xeno.research.fileCount":e.files.length,"xeno.research.findingCount":e.findings.length}},anchors:e.excerpts.map(o=>({kind:"source-line",path:o.path,startLine:o.startLine,endLine:o.endLine,repositoryId:`${e.repository.provider}:${e.repository.repository}`,commit:e.repository.commit}))}}function z(e){if(e.kind!=="custom:source-research-report"||e.mediaType!=="application/vnd.xeno.source-research-report+json")throw new c([`Artifact ${e.artifactId} is not a source-research report`]);if(e.content.storage.type!=="inline"||typeof e.content.storage.text!="string")throw new c(["Source-research reports require inline JSON content"]);let t;try{t=JSON.parse(e.content.storage.text)}catch{throw new c(["Source-research artifact content is invalid JSON"])}if(v(t),f(t).value!==e.content.hash.value)throw new c(["Source-research content hash does not match the artifact"]);return structuredClone(t)}function h(e){return e.replace(/\r\n?/gu,`
|
|
2
|
+
`)}function U(e,t){e?.provider!=="github"&&e?.provider!=="gitlab"&&t.push("repository provider must be github or gitlab"),Z(e?.host,"repository host",t),Q(e?.repository,t),a(e?.ref,"repository ref",t,512),(typeof e?.commit!="string"||!/^[a-f0-9]{7,64}$/u.test(e.commit))&&t.push("repository commit must be a lowercase hexadecimal object ID"),ee(e?.url,"repository url",t)}function W(e,t){P(e?.path,"source file path",t),g(e?.contentHash,`source file ${e?.path} contentHash`,t),(!Number.isSafeInteger(e?.sizeBytes)||e.sizeBytes<0||e.sizeBytes>8*1024*1024)&&t.push(`source file ${e?.path} sizeBytes is invalid`),(!Number.isSafeInteger(e?.lineCount)||e.lineCount<1||e.lineCount>1e6)&&t.push(`source file ${e?.path} lineCount is invalid`),e?.blobId!==void 0&&a(e.blobId,`source file ${e.path} blobId`,t,256),e?.language!==void 0&&a(e.language,`source file ${e.path} language`,t,128)}function G(e,t,n){p(e?.excerptId,"excerptId",n),P(e?.path,`excerpt ${e?.excerptId} path`,n);let i=t.get(e?.path);i||n.push(`excerpt ${e?.excerptId} references unknown source file ${e?.path}`),(!Number.isSafeInteger(e?.startLine)||e.startLine<1)&&n.push(`excerpt ${e?.excerptId} startLine is invalid`),(!Number.isSafeInteger(e?.endLine)||e.endLine<e.startLine)&&n.push(`excerpt ${e?.excerptId} endLine is invalid`),i&&e.endLine>i.lineCount&&n.push(`excerpt ${e?.excerptId} exceeds source line count`),a(e?.text,`excerpt ${e?.excerptId} text`,n,256e3),g(e?.contentHash,`excerpt ${e?.excerptId} contentHash`,n),g(e?.sourceContentHash,`excerpt ${e?.excerptId} sourceContentHash`,n);let o=typeof e?.text=="string"?h(e.text):"";e?.contentHash?.value!==s(o).value&&n.push(`excerpt ${e?.excerptId} contentHash does not match text`),i&&e?.sourceContentHash?.value!==i.contentHash.value&&n.push(`excerpt ${e?.excerptId} is bound to a different source hash`),o&&o.split(`
|
|
3
|
+
`).length!==e.endLine-e.startLine+1&&n.push(`excerpt ${e?.excerptId} line span does not match text`)}function K(e,t){p(e?.providerId,"model providerId",t),a(e?.model,"model",t,512),e?.connectionId!==void 0&&p(e.connectionId,"model connectionId",t)}function Y(e,t){(!Number.isSafeInteger(e?.inputTokens)||e.inputTokens<0)&&t.push("usage.inputTokens must be a non-negative integer"),(!Number.isSafeInteger(e?.outputTokens)||e.outputTokens<0)&&t.push("usage.outputTokens must be a non-negative integer")}function g(e,t,n){(e?.algorithm!=="sha256"||!/^[a-f0-9]{64}$/u.test(e?.value??""))&&n.push(`${t} must be a lowercase SHA-256 digest`)}function p(e,t,n){(typeof e!="string"||!/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(e))&&n.push(`${t} is invalid`)}function a(e,t,n,i){(typeof e!="string"||!e.trim()||e.length>i||k(e,{allowTab:!0,allowLineBreaks:!0}))&&n.push(`${t} must be non-empty bounded text`)}function C(e,t,n){(typeof e!="string"||!Number.isFinite(Date.parse(e))||new Date(e).toISOString()!==e)&&n.push(`${t} must be an ISO-8601 UTC timestamp`)}function Z(e,t,n){(typeof e!="string"||e.length>253||!/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/u.test(e))&&n.push(`${t} is invalid`)}function Q(e,t){(typeof e!="string"||e.length>2048||e.startsWith("/")||e.endsWith("/")||e.split("/").some(n=>!n||n==="."||n===".."))&&t.push("repository name is invalid")}function P(e,t,n){(typeof e!="string"||e.length>4096||e.startsWith("/")||/^[A-Za-z]:[\\/]/u.test(e)||e.includes("\\")||e.split("/").some(i=>!i||i==="."||i===".."))&&n.push(`${t} must be repository-relative`)}function ee(e,t,n){try{let i=new URL(String(e));(i.protocol!=="https:"||i.username||i.password)&&n.push(`${t} must be credential-free HTTPS`)}catch{n.push(`${t} is invalid`)}}function N(e){return Number.isSafeInteger(e)&&(e??-1)>=0?e:0}function $(e){return{algorithm:"sha256",value:s(e).value}}function te(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function ne(e){return e==="info"||e==="low"||e==="medium"||e==="high"||e==="critical"}0&&(module.exports={XENO_SOURCE_RESEARCH_SCHEMA_VERSION,XenoSourceResearchValidationError,assertValidXenoSourceResearchReport,createXenoSourceResearchExcerpt,createXenoSourceResearchReport,normalizeSourceText,xenoArtifactToSourceResearchReport,xenoSourceResearchReportToArtifact});
|